# SysCMS - Guia Rápido para Desenvolvedores Este documento fornece uma visão geral rápida do SysCMS. Para documentação detalhada, consulte os arquivos específicos listados em cada seção. ## 🏗️ Visão Geral O **SysCMS** é um Sistema de Gerenciamento de Conteúdo (CMS) modular desenvolvido em PHP 8.1+. Ele utiliza uma arquitetura moderna baseada em componentes, integrando tecnologias robustas como: - **Router**: FastRoute para roteamento rápido e flexível. - **Database**: Illuminate Database (Eloquent ORM) para interação com o banco. - **View Engine**: Twig para templates seguros e poderosos. - **Dependency Injection**: PHP-DI para gerenciamento de dependências. - **Frontend**: Bootstrap 5.3 + Vanilla JS (com Alpine.js restrito para casos de alta reatividade). O sistema foi projetado sob o princípio **SOLID** e adota uma arquitetura modular, permitindo que novas funcionalidades sejam acopladas sem alterar o núcleo. ## 📚 Documentação Detalhada ### Arquitetura e Estrutura - 📄 **[02_ARQUITETURA.md](02_ARQUITETURA.md)** - Estrutura de diretórios, componentes do kernel, autoloading PSR-4 e padrões de design. ### Sistema de Módulos - 📄 **[03_MODULOS.md](03_MODULOS.md)** - Visão geral do sistema de módulos, estrutura básica, roteamento, internacionalização e migrações. - 📄 **[12_MANUAL_COMO_CRIAR_MODULOS_PARA_INSTALAR.md](12_MANUAL_COMO_CRIAR_MODULOS_PARA_INSTALAR.md)** - Guia passo a passo para criar módulos instaláveis. - 📄 **[17_MODULE_TEMPLATE.md](17_MODULE_TEMPLATE.md)** - Template padrão para novos módulos. - 📄 **[20_CRIACAO_DE_NOVOS_MODULOS.md](20_CRIACAO_DE_NOVOS_MODULOS.md)** - Guia baseado no sucesso do PhotoEssay para criar novos módulos. ### Tecnologias e Padrões - 📄 **[04_TECNOLOGIAS.md](04_TECNOLOGIAS.md)** - Stack tecnológica completa (backend, frontend, ambiente de desenvolvimento). - 📄 **[05_PADROES_CODIGO.md](05_PADROES_CODIGO.md)** - Padrões de código, nomenclatura, banco de dados, frontend, segurança, uploads, logs e comentários. ### Hooks e Extensibilidade - 📄 **[14_COMO_USAR_HOOK.md](14_COMO_USAR_HOOK.md)** - Sistema de Hooks (Actions & Filters) para modificar o comportamento do sistema. ### Funcionalidades Específicas - 📄 **[15_QUILL_IMPLEMENTATION_COMPLETE.md](15_QUILL_IMPLEMENTATION_COMPLETE.md)** - Implementação do editor Quill. - 📄 **[16_REGRAS_QUILL_IA.md](16_REGRAS_QUILL_IA.md)** - Regras específicas para IA trabalhar com Quill. - 📄 **[18_THEMES_CUSTOMIZER.md](18_THEMES_CUSTOMIZER.md)** - Sistema de customização de temas. - 📄 **[19_INTEGRACAO_GLOBALLISTS.md](19_INTEGRACAO_GLOBALLISTS.md)** - Integração com o módulo de listas globais (País/Estado/Cidade). ### Ambiente e Execução - 📄 **[07_ENVIRONMENT_USAGE.md](07_ENVIRONMENT_USAGE.md)** - Uso do Symfony Dotenv para variáveis de ambiente. - 📄 **[08_IA_COMMAND_EXECUTION_GUIDE.md](08_IA_COMMAND_EXECUTION_GUIDE.md)** - Guia de execução de comandos PHP para a IA. - 📄 **[09_LANGUAGE_CONFIG_README.md](09_LANGUAGE_CONFIG_README.md)** - Configuração de idiomas suportados. ### Comportamento da IA - 📄 **[01_COMPORTAMENTO_IA.md](01_COMPORTAMENTO_IA.md)** - Regras estritas de como a IA deve interagir com o ambiente e o usuário. ### Uploads e Storage - 📄 **[51_UPLOADS_STORAGE.md](51_UPLOADS_STORAGE.md)** - Regras para uploads e gerenciamento de arquivos. ## 🚀 Início Rápido ### 1. Estrutura de Diretórios ``` app/ ├── app/ # Núcleo da aplicação │ ├── Controllers/ # Controladores Base e Admin │ ├── Console/ # Comandos CLI (Symfony Console) │ ├── Helpers/ # Funções auxiliares globais │ ├── Middlewares/ # Middlewares de rota e aplicação │ └── Models/ # Modelos Eloquent do Core ├── cache/ # Cache de templates e configurações ├── config/ # Arquivos de configuração (banco, mail, etc.) ├── database/ # Migrações do Core ├── kernel/ # Classes fundamentais (App, Router, ModuleLoader) ├── modules/ # Módulos instalados (Plugins/Extensões) ├── public/ # Document Root (index.php, assets) ├── storage/ # Uploads e logs ├── templates/ # Templates Twig globais e layouts └── vendor/ # Dependências (Composer) ``` ### 2. Criar um Novo Módulo Use o comando CLI para gerar a estrutura base: ```bash docker exec -w /app dockersyscms php syscli make:module [nome] ``` Ou siga o guia detalhado em [12_MANUAL_COMO_CRIAR_MODULOS_PARA_INSTALAR.md](12_MANUAL_COMO_CRIAR_MODULOS_PARA_INSTALAR.md). ### 3. Estrutura Básica de um Módulo ``` modules/meu_modulo/ ├── classes/Controllers/ # Lógica ├── classes/Models/ # Dados ├── database/migrations/ # Schema ├── locales/ # Traduções (pt_BR, en_US, es_ES, de_DE, fr_FR) ├── routes/web.php # Rotas ├── views/ # Templates └── module.json # Manifesto ``` ### 4. Comandos CLI Principais | Comando | Descrição | | :--- | :--- | | `migrate` | Executa as migrações pendentes | | `make:migration` | Cria arquivo de migração | | `cache:clear` | Limpa cache de templates e rotas | | `user:create-super-admin` | Cria usuário administrador via terminal | | `module:list` | Lista módulos instalados | Exemplo de uso via Docker: ```bash docker exec -w /app dockersyscms php syscli cache:clear ``` ### 5. Banco de Dados (Eloquent) O SysCMS usa o Eloquent ORM. #### Models ```php namespace Modules\MeuModulo\Models; use Illuminate\Database\Eloquent\Model; class Produto extends Model { protected $table = 'produtos'; protected $fillable = ['nome', 'preco']; } ``` #### Migrations ```bash # Criar migração docker exec -w /app dockersyscms php syscli make:migration CreateProdutosTable # Rodar migrações docker exec -w /app dockersyscms php syscli migrate ``` ⚠️ **IMPORTANTE**: NÃO use o método `paginate()` do Eloquent. A paginação deve ser implementada manualmente usando `skip()`, `take()` e `count()`. ### 6. Templates (Twig) Os templates ficam em `templates/` (Core) ou `modules/.../views/`. ```twig {% extends 'layouts/dashboard.twig' %} {% block title %}Meus Produtos{% endblock %} {% block content %}