Files
dockerfluxodecaixapro/rules/04_TECNOLOGIAS.md
T
2026-09-01 10:46:29 -03:00

42 lines
2.1 KiB
Markdown
Executable File

# Tecnologias e Stack
## Backend
- **Linguagem**: PHP 8.1+
- **ORM**: Illuminate/Database (Eloquent) - *Apenas para ORM, não usar outros componentes do Laravel desnecessariamente.*
- 🚫 **Paginação**: NÃO use o método `paginate()` do Eloquent nem a classe `Illuminate\Pagination`. O pacote de paginação do Laravel não está instalado. Implemente paginação manual usando `skip()`, `take()` e `count()`.
- **Template Engine**: Twig
- **Container**: PHP-DI
- **Router**: Nikic/Fast-Route
- **HTTP**: Nyholm/PSR-7
- **Logging**: Monolog
- **Imagens**: Intervention/Image
- **Excel**: PhpSpreadsheet
- **PDF**: FPDF
- **QR Code**: Endroid/QrCode
## Frontend
- **Framework CSS**: Bootstrap 5.3
- **JavaScript Padrão**: **Vanilla JS** (JavaScript puro) é o padrão para todas as interações no frontend.
- **Alpine.js** (Micro-framework para interatividade):
- ⚠️ **RESTRITO**: Use Alpine.js APENAS em componentes que exijam alta reatividade ou gerenciamento de estado complexo onde o Vanilla JS resultaria em código excessivamente verboso ou difícil de manter.
- 🚫 **PROIBIDO**: É estritamente proibido o uso de Alpine.js em selects dinâmicos que utilizam o módulo `globallists` (ex: Estado/Cidade). Nestes casos, o uso de Vanilla JS é mandatório.
- **Ícones**: **Bootstrap Icons** (OBRIGATÓRIO).
- 🚫 **PROIBIDO**: Font Awesome, Material Icons.
- **Editor Rico**: Quill (ver regras específicas em `RULES.md` ou `PADROES_CODIGO.md`).
- **Tabelas**: **DataTables.js (Versão COMPLETA)**.
- 🚫 **PROIBIDO**: `simple-datatables`. Use sempre a versão completa baseada em jQuery incluída no `dashboard.twig`.
- **Template Admin**: SBAdmin2
## Ambiente de Desenvolvimento
- **Docker**: Container `dockersyscms`.
- **URL Local**: `http://localhost:16240`
- **Banco de Dados**: MySQL
- Host: `localhost` (ou service name no docker)
- DB: `syscms`
- User: `root`
- Pass: `root`
## Regras de Dependências
1. **Vendor**: Nunca modificar arquivos na pasta `vendor/`.
2. **Composer**: Gerenciar todas as dependências PHP via `composer.json`.