Fase-00: Configuración inicial del proyecto

- Configuración de Composer con PSR-4 en _testing-suite/
- Configuración de PHPUnit en _testing-suite/phpunit.xml
- Configuración de PHPCS en _testing-suite/phpcs.xml
- WordPress Test Suite integrado en bootstrap-integration.php
- Scripts de backup automatizado (backup-database.php, backup-files.bat)
- Procedimientos de rollback documentados (RESTORE-PROCEDURE.md)
- Estrategia de Git branching documentada (GIT-BRANCHING-STRATEGY.md)
- .gitignore actualizado para excluir _testing-suite/ y _planeacion/
- Limpieza de estructura anterior de Clean Architecture
- Documentación completa en _planeacion/roi-theme/_MIGRACION-CLEAN-ARCHITECTURE/Fase-00/

Archivos de configuración movidos a _testing-suite/:
- composer.json (PSR-4 autoloading, dev dependencies)
- phpunit.xml (3 suites: Unit, Integration, E2E)
- phpcs.xml (WordPress Coding Standards)
- bootstrap-unit.php y bootstrap-integration.php

Sistema de backup implementado con 4 mejoras críticas:
- Password protegido con --defaults-file
- Verificación de espacio en disco
- Lock files para prevenir ejecuciones concurrentes
- Detección automática de rutas

Procedimientos de rollback documentados:
- Rollback de base de datos (5-10 min)
- Rollback de archivos (10-15 min)
- Rollback de Git (5 min)
- Rollback completo (20-30 min)

Preparación del entorno completa. Listo para comenzar Fase-1.
This commit is contained in:
FrankZamora
2025-11-18 23:26:28 -06:00
parent e34fd28df7
commit 42edfab50d
40 changed files with 234 additions and 2780 deletions

View File

@@ -45,6 +45,69 @@ function roi_container(): DIContainer {
* ========================================================================
*/
/**
* ========================================================================
* THEME DATABASE TABLES SETUP
* ========================================================================
*
* Crea las tablas del tema cuando se activa.
* Esto asegura que el tema sea portable y funcione en cualquier instalación WordPress.
*/
/**
* Crear tablas del tema en la activación
*
* Este hook se ejecuta cuando el tema se activa en WordPress.
* Crea las tablas necesarias si no existen.
*
* @since 1.0.19
*/
add_action('after_switch_theme', function() {
global $wpdb;
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
$charset_collate = $wpdb->get_charset_collate();
// Tabla de components
$table_components = $wpdb->prefix . 'roi_theme_components';
$sql_components = "CREATE TABLE {$table_components} (
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
component_name VARCHAR(50) NOT NULL,
configuration LONGTEXT NOT NULL,
content LONGTEXT,
visibility TEXT NOT NULL,
is_enabled TINYINT(1) NOT NULL DEFAULT 1,
schema_version VARCHAR(20) NOT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY component_name (component_name),
INDEX idx_enabled (is_enabled),
INDEX idx_schema_version (schema_version)
) {$charset_collate};";
// Tabla de defaults/schemas
$table_defaults = $wpdb->prefix . 'roi_theme_defaults';
$sql_defaults = "CREATE TABLE {$table_defaults} (
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
component_name VARCHAR(50) NOT NULL,
default_schema LONGTEXT NOT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY component_name (component_name)
) {$charset_collate};";
// Crear/actualizar tablas
dbDelta($sql_components);
dbDelta($sql_defaults);
// Log en modo debug
if (defined('WP_DEBUG') && WP_DEBUG) {
error_log('ROI Theme: Database tables created/updated');
}
});
/**
* Theme Version
*/