First Commit
This commit is contained in:
Executable
+64
@@ -0,0 +1,64 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user