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:
@@ -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
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user