2.5 KiB
Executable File
2.5 KiB
Executable File
Arquitetura do Sistema
O SysCMS é um CMS modular desenvolvido em PHP 8.1+ seguindo a arquitetura MVC.
Estrutura de Diretórios
app/ # Aplicação principal
├── Console/ # Comandos de console
├── Controllers/ # Controladores da aplicação
├── Interfaces/ # Interfaces e contratos
├── Middlewares/ # Middlewares da aplicação
├── Models/ # Modelos de dados
├── Repositories/ # Padrão Repository
└── Services/ # Lógica de negócio
bin/
└── console.php # Console de comandos
bootstrap/
└── app.php # Inicialização da aplicação
kernel/ # Núcleo do sistema
├── Application.php # Classe principal (Orquestrador)
├── ModuleLoader.php # Carregador de módulos
├── View.php # Sistema de renderização Twig
└── [outros componentes]
modules/ # Módulos do sistema (ver 03_MODULOS.md)
public/ # Web Root
├── index.php # Ponto de entrada
├── assets/ # CSS, JS, Imagens
└── .htaccess # Configuração Apache
├── storage/ # Armazenamento (Uploads, Cache, Logs)
├── themes/ # Temas do sistema (Customizer, Overrides)
├── templates/ # Templates globais (Layouts, Componentes)
tests/ # Testes unitários
Componentes Principais
1. Kernel (kernel/)
- Application.php: Coração do sistema. Gerencia rotas, requisições e respostas.
- ModuleLoader.php: Responsável por descobrir, carregar e inicializar módulos.
- View.php: Wrapper para o Twig, injetando globais e funções úteis.
2. Autoloading (PSR-4)
O projeto utiliza o Composer para autoloading:
App\->app/Kernel\->kernel/Modules\->modules/Tests\->tests/
3. Padrões de Design Obrigatórios
- MVC: Model-View-Controller para separação de responsabilidades.
- Repository: Para abstração de acesso a dados.
- Factory: Para criação de objetos complexos.
- Strategy: Para algoritmos intercambiáveis.
- Observer: Para eventos e notificações.
- SOLID: Aplicar princípios SOLID em todo o desenvolvimento.
Dashboard Único
O sistema possui um único dashboard (/dashboard). A personalização é feita via Sidebar dinâmica, baseada nas permissões do usuário logado.