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>
1.4 KiB
1.4 KiB
Capa de Aplicación
Propósito
La capa de Aplicación orquesta la lógica de negocio del dominio. Contiene los Use Cases (casos de uso) que coordinan las operaciones entre el dominio y la infraestructura.
Principios
- Orquestación: Coordina flujos de trabajo usando entidades de dominio
- DTOs: Usa Data Transfer Objects para comunicación entre capas
- Contratos: Define interfaces que la infraestructura implementará
- Sin lógica de negocio: Delega al dominio
Estructura
Application/
├── UseCases/ # Casos de uso
│ ├── SaveComponent/
│ │ ├── SaveComponentUseCase.php
│ │ ├── SaveComponentRequest.php
│ │ └── SaveComponentResponse.php
│ ├── GetComponent/
│ │ └── GetComponentUseCase.php
│ └── DeleteComponent/
│ └── DeleteComponentUseCase.php
├── DTO/ # Data Transfer Objects
│ ├── ComponentDTO.php
│ └── ...
└── Contracts/ # Interfaces de servicios
├── ValidationServiceInterface.php
├── CacheServiceInterface.php
└── ...
Reglas
- SÍ usar dependencias via constructor injection
- SÍ usar interfaces del dominio
- SÍ usar DTOs para entrada/salida
- NO contener lógica de negocio (eso va en Dominio)
- NO depender de frameworks (solo via interfaces)