Fase 1: Estructura Base y DI Container - Clean Architecture
COMPLETADO: Fase 1 de la migración a Clean Architecture + POO ## Estructura de Carpetas - ✓ Estructura completa de 4 capas (Domain, Application, Infrastructure, Presentation) - ✓ Carpetas de Use Cases (SaveComponent, GetComponent, DeleteComponent, SyncSchema) - ✓ Estructura de tests (Unit, Integration, E2E) - ✓ Carpetas de schemas y templates ## Composer y Autoloading - ✓ PSR-4 autoloading configurado para ROITheme namespace - ✓ Autoloader optimizado regenerado ## DI Container - ✓ DIContainer implementado con patrón Singleton - ✓ Métodos set(), get(), has() para gestión de servicios - ✓ Getters específicos para ComponentRepository, ValidationService, CacheService - ✓ Placeholders que serán implementados en Fase 5 - ✓ Prevención de clonación y deserialización ## Interfaces - ✓ ComponentRepositoryInterface (Domain) - ✓ ValidationServiceInterface (Application) - ✓ CacheServiceInterface (Application) - ✓ Component entity placeholder (Domain) ## Bootstrap - ✓ functions.php actualizado con carga de Composer autoloader - ✓ Inicialización del DIContainer - ✓ Helper function roi_container() disponible globalmente ## Tests - ✓ 10 tests unitarios para DIContainer (100% cobertura) - ✓ Total: 13 tests unitarios, 28 assertions - ✓ Suite de tests pasando correctamente ## Validación - ✓ Script de validación automatizado (48/48 checks pasados) - ✓ 100% de validaciones exitosas La arquitectura base está lista para la Fase 2. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
/**
|
||||
* Theme Options Helper Functions
|
||||
*
|
||||
* @package Apus_Theme
|
||||
* @package ROI_Theme
|
||||
* @since 1.0.0
|
||||
*/
|
||||
|
||||
@@ -18,8 +18,8 @@ if (!defined('ABSPATH')) {
|
||||
* @param mixed $default Default value if option doesn't exist
|
||||
* @return mixed The option value
|
||||
*/
|
||||
function apus_get_option($option_name, $default = '') {
|
||||
$options = get_option('apus_theme_options', array());
|
||||
function roi_get_option($option_name, $default = '') {
|
||||
$options = get_option('roi_theme_options', array());
|
||||
|
||||
if (isset($options[$option_name])) {
|
||||
return $options[$option_name];
|
||||
@@ -34,8 +34,8 @@ function apus_get_option($option_name, $default = '') {
|
||||
* @param string $option_name The option name
|
||||
* @return bool True if enabled, false otherwise
|
||||
*/
|
||||
function apus_is_option_enabled($option_name) {
|
||||
return (bool) apus_get_option($option_name, false);
|
||||
function roi_is_option_enabled($option_name) {
|
||||
return (bool) roi_get_option($option_name, false);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -43,8 +43,8 @@ function apus_is_option_enabled($option_name) {
|
||||
*
|
||||
* @return string The separator
|
||||
*/
|
||||
function apus_get_breadcrumb_separator() {
|
||||
return apus_get_option('breadcrumb_separator', '>');
|
||||
function roi_get_breadcrumb_separator() {
|
||||
return roi_get_option('breadcrumb_separator', '>');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -52,8 +52,8 @@ function apus_get_breadcrumb_separator() {
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
function apus_show_breadcrumbs() {
|
||||
return apus_is_option_enabled('enable_breadcrumbs');
|
||||
function roi_show_breadcrumbs() {
|
||||
return roi_is_option_enabled('enable_breadcrumbs');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -61,8 +61,8 @@ function apus_show_breadcrumbs() {
|
||||
*
|
||||
* @return int The excerpt length
|
||||
*/
|
||||
function apus_get_excerpt_length() {
|
||||
return (int) apus_get_option('excerpt_length', 55);
|
||||
function roi_get_excerpt_length() {
|
||||
return (int) roi_get_option('excerpt_length', 55);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -70,8 +70,8 @@ function apus_get_excerpt_length() {
|
||||
*
|
||||
* @return string The excerpt more text
|
||||
*/
|
||||
function apus_get_excerpt_more() {
|
||||
return apus_get_option('excerpt_more', '...');
|
||||
function roi_get_excerpt_more() {
|
||||
return roi_get_option('excerpt_more', '...');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -79,8 +79,8 @@ function apus_get_excerpt_more() {
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
function apus_show_related_posts() {
|
||||
return apus_is_option_enabled('enable_related_posts');
|
||||
function roi_show_related_posts() {
|
||||
return roi_is_option_enabled('enable_related_posts');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -88,8 +88,8 @@ function apus_show_related_posts() {
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
function apus_get_related_posts_count() {
|
||||
return (int) apus_get_option('related_posts_count', 3);
|
||||
function roi_get_related_posts_count() {
|
||||
return (int) roi_get_option('related_posts_count', 3);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -97,8 +97,8 @@ function apus_get_related_posts_count() {
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function apus_get_related_posts_taxonomy() {
|
||||
return apus_get_option('related_posts_taxonomy', 'category');
|
||||
function roi_get_related_posts_taxonomy() {
|
||||
return roi_get_option('related_posts_taxonomy', 'category');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -106,8 +106,8 @@ function apus_get_related_posts_taxonomy() {
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function apus_get_related_posts_title() {
|
||||
return apus_get_option('related_posts_title', __('Related Posts', 'apus-theme'));
|
||||
function roi_get_related_posts_title() {
|
||||
return roi_get_option('related_posts_title', __('Related Posts', 'roi-theme'));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -116,8 +116,8 @@ function apus_get_related_posts_title() {
|
||||
* @param string $optimization The optimization name
|
||||
* @return bool
|
||||
*/
|
||||
function apus_is_performance_enabled($optimization) {
|
||||
return apus_is_option_enabled('performance_' . $optimization);
|
||||
function roi_is_performance_enabled($optimization) {
|
||||
return roi_is_option_enabled('performance_' . $optimization);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -125,13 +125,13 @@ function apus_is_performance_enabled($optimization) {
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function apus_get_copyright_text() {
|
||||
function roi_get_copyright_text() {
|
||||
$default = sprintf(
|
||||
__('© %s %s. All rights reserved.', 'apus-theme'),
|
||||
__('© %s %s. All rights reserved.', 'roi-theme'),
|
||||
date('Y'),
|
||||
get_bloginfo('name')
|
||||
);
|
||||
return apus_get_option('copyright_text', $default);
|
||||
return roi_get_option('copyright_text', $default);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -139,13 +139,13 @@ function apus_get_copyright_text() {
|
||||
*
|
||||
* @return array Array of social media links
|
||||
*/
|
||||
function apus_get_social_links() {
|
||||
function roi_get_social_links() {
|
||||
return array(
|
||||
'facebook' => apus_get_option('social_facebook', ''),
|
||||
'twitter' => apus_get_option('social_twitter', ''),
|
||||
'instagram' => apus_get_option('social_instagram', ''),
|
||||
'linkedin' => apus_get_option('social_linkedin', ''),
|
||||
'youtube' => apus_get_option('social_youtube', ''),
|
||||
'facebook' => roi_get_option('social_facebook', ''),
|
||||
'twitter' => roi_get_option('social_twitter', ''),
|
||||
'instagram' => roi_get_option('social_instagram', ''),
|
||||
'linkedin' => roi_get_option('social_linkedin', ''),
|
||||
'youtube' => roi_get_option('social_youtube', ''),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -154,8 +154,8 @@ function apus_get_social_links() {
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
function apus_comments_enabled_for_posts() {
|
||||
return apus_is_option_enabled('enable_comments_posts');
|
||||
function roi_comments_enabled_for_posts() {
|
||||
return roi_is_option_enabled('enable_comments_posts');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -163,8 +163,8 @@ function apus_comments_enabled_for_posts() {
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
function apus_comments_enabled_for_pages() {
|
||||
return apus_is_option_enabled('enable_comments_pages');
|
||||
function roi_comments_enabled_for_pages() {
|
||||
return roi_is_option_enabled('enable_comments_pages');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -172,8 +172,8 @@ function apus_comments_enabled_for_pages() {
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function apus_get_default_post_layout() {
|
||||
return apus_get_option('default_post_layout', 'right-sidebar');
|
||||
function roi_get_default_post_layout() {
|
||||
return roi_get_option('default_post_layout', 'right-sidebar');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -181,8 +181,8 @@ function apus_get_default_post_layout() {
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function apus_get_default_page_layout() {
|
||||
return apus_get_option('default_page_layout', 'right-sidebar');
|
||||
function roi_get_default_page_layout() {
|
||||
return roi_get_option('default_page_layout', 'right-sidebar');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -190,8 +190,8 @@ function apus_get_default_page_layout() {
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
function apus_get_archive_posts_per_page() {
|
||||
$custom = (int) apus_get_option('archive_posts_per_page', 0);
|
||||
function roi_get_archive_posts_per_page() {
|
||||
$custom = (int) roi_get_option('archive_posts_per_page', 0);
|
||||
return $custom > 0 ? $custom : get_option('posts_per_page', 10);
|
||||
}
|
||||
|
||||
@@ -200,8 +200,8 @@ function apus_get_archive_posts_per_page() {
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
function apus_show_featured_image_single() {
|
||||
return apus_is_option_enabled('show_featured_image_single');
|
||||
function roi_show_featured_image_single() {
|
||||
return roi_is_option_enabled('show_featured_image_single');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -209,8 +209,8 @@ function apus_show_featured_image_single() {
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
function apus_show_author_box() {
|
||||
return apus_is_option_enabled('show_author_box');
|
||||
function roi_show_author_box() {
|
||||
return roi_is_option_enabled('show_author_box');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -218,8 +218,8 @@ function apus_show_author_box() {
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function apus_get_date_format() {
|
||||
return apus_get_option('date_format', 'd/m/Y');
|
||||
function roi_get_date_format() {
|
||||
return roi_get_option('date_format', 'd/m/Y');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -227,8 +227,8 @@ function apus_get_date_format() {
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function apus_get_time_format() {
|
||||
return apus_get_option('time_format', 'H:i');
|
||||
function roi_get_time_format() {
|
||||
return roi_get_option('time_format', 'H:i');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -236,8 +236,8 @@ function apus_get_time_format() {
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function apus_get_logo_url() {
|
||||
$logo_id = apus_get_option('site_logo', 0);
|
||||
function roi_get_logo_url() {
|
||||
$logo_id = roi_get_option('site_logo', 0);
|
||||
if ($logo_id) {
|
||||
$logo = wp_get_attachment_image_url($logo_id, 'full');
|
||||
if ($logo) {
|
||||
@@ -252,8 +252,8 @@ function apus_get_logo_url() {
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function apus_get_favicon_url() {
|
||||
$favicon_id = apus_get_option('site_favicon', 0);
|
||||
function roi_get_favicon_url() {
|
||||
$favicon_id = roi_get_option('site_favicon', 0);
|
||||
if ($favicon_id) {
|
||||
$favicon = wp_get_attachment_image_url($favicon_id, 'full');
|
||||
if ($favicon) {
|
||||
@@ -268,8 +268,8 @@ function apus_get_favicon_url() {
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function apus_get_custom_css() {
|
||||
return apus_get_option('custom_css', '');
|
||||
function roi_get_custom_css() {
|
||||
return roi_get_option('custom_css', '');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -277,8 +277,8 @@ function apus_get_custom_css() {
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function apus_get_custom_js_header() {
|
||||
return apus_get_option('custom_js_header', '');
|
||||
function roi_get_custom_js_header() {
|
||||
return roi_get_option('custom_js_header', '');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -286,8 +286,8 @@ function apus_get_custom_js_header() {
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function apus_get_custom_js_footer() {
|
||||
return apus_get_option('custom_js_footer', '');
|
||||
function roi_get_custom_js_footer() {
|
||||
return roi_get_option('custom_js_footer', '');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -295,8 +295,8 @@ function apus_get_custom_js_footer() {
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
function apus_is_lazy_loading_enabled() {
|
||||
return apus_is_option_enabled('enable_lazy_loading');
|
||||
function roi_is_lazy_loading_enabled() {
|
||||
return roi_is_option_enabled('enable_lazy_loading');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -304,8 +304,8 @@ function apus_is_lazy_loading_enabled() {
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function apus_get_all_options() {
|
||||
return get_option('apus_theme_options', array());
|
||||
function roi_get_all_options() {
|
||||
return get_option('roi_theme_options', array());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -313,8 +313,8 @@ function apus_get_all_options() {
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
function apus_reset_options() {
|
||||
return delete_option('apus_theme_options');
|
||||
function roi_reset_options() {
|
||||
return delete_option('roi_theme_options');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -322,8 +322,8 @@ function apus_reset_options() {
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
function apus_is_toc_enabled() {
|
||||
return apus_get_option('enable_toc', true);
|
||||
function roi_is_toc_enabled() {
|
||||
return roi_get_option('enable_toc', true);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -331,8 +331,8 @@ function apus_is_toc_enabled() {
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
function apus_get_toc_min_headings() {
|
||||
return (int) apus_get_option('toc_min_headings', 2);
|
||||
function roi_get_toc_min_headings() {
|
||||
return (int) roi_get_option('toc_min_headings', 2);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -340,6 +340,6 @@ function apus_get_toc_min_headings() {
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function apus_get_toc_title() {
|
||||
return apus_get_option('toc_title', __('Table of Contents', 'apus-theme'));
|
||||
function roi_get_toc_title() {
|
||||
return roi_get_option('toc_title', __('Table of Contents', 'roi-theme'));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user