O Cuids Generator é uma ferramenta de linha de comando para Laravel projetada para acelerar a criação de módulos baseados em MongoDB. Ele atua como uma interface interativa sobre o laravel-shift/blueprint, permitindo definir modelos, atributos e relacionamentos de forma guiada.
Antes de começar, verifique se seu ambiente atende aos requisitos mínimos:
- PHP:
^8.1(Recomendado8.3) - Laravel Framework:
10.0ou superior - Driver MongoDB: Configurado e funcional em sua aplicação Laravel.
Adicione o repositório em seu composer.json
"repositories": [
{
"name": "sysvale/cuids-generator",
"type": "git",
"url": "https://github.com/Sysvale/cuids-generator"
}
]
Para executar uma branch específica, execute o seguinte comando:
composer require sysvale/cuids-generator:dev-<nome-branch> -WDesenvolvimento
Executando o comando:
php artisan cuids:generateO que o comando faz:
- Interface Interativa: Pergunta o nome do Model (em inglês) e guia você na criação de campos (tipos, obrigatoriedade, etc...);
- Detecção de Models: Escaneia automaticamente sua pasta app/Models para sugerir relacionamentos com entidades existentes;
- Draft Automation: Gera o arquivo draft.yaml formatado para o Blueprint;
- Build Integrado: Executa comando blueprint:build em modo silencioso, gerando Models, Controllers e Migrations;
- Pós-processamento: Cria arquivos de constantes para o frontend e executa runners de limpeza e ajuste de código para o padrão CUIDS.
Este pacote utiliza o Pest PHP para garantir cobertura do comando de geração de módulos, verificando a cobertura com o coverage.
- Para rodar os testes:
composer test- Cobertura
composer test:coverage- Checar estilo
composer lint- Corrigir estilo
composer fixsrc/:Blueprint/:- Lógica de escrita, Builders de rascunho e Pós-processadores
Console/:Commands/: CuidsGenerateCommand (Orquestrador)Editors/: Editores interativos (FieldEditor e RelationshipEditor)
Providers/: Service Provider do PacoteSupport/: Enums de Tipos e Helpers
tests/: Suíte de testes com Mocks de dependências
Este projeto está licenciado sob a Apache License 2.0.
