gilsonreis/laravel-crud-generator 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

gilsonreis/laravel-crud-generator

Composer 安装命令:

composer require gilsonreis/laravel-crud-generator

包简介

Gerador de CRUD para Laravel

README 文档

README

O Laravel CRUD Generator é uma biblioteca projetada para automatizar a criação de componentes essenciais de um CRUD, como Models, Repositories, UseCases, Actions e Rotas. Esta documentação fornece um guia passo a passo para usar a biblioteca de forma eficiente.

Instalação

Certifique-se de ter o PHP 8.1 ou superior instalado e um projeto Laravel configurado.

  1. Instale a biblioteca via Composer:
composer require gilsonreis/laravel-crud-generator
  1. Publique a configuração (se aplicável):
php artisan vendor:publish --provider="Gilsonreis\LaravelCrudGenerator\LaravelCrudGeneratorServiceProvider"
  1. Atualize o autoload do Composer:
composer dump-autoload
  1. Certifique-se de que o namespace das classes está registrado corretamente no arquivo app/Console/Kernel.php ou no ServiceProvider do pacote.

Menu Interativo

A biblioteca oferece um menu interativo para facilitar o uso. Para acessá-lo, execute:

php artisan crud:menu

Opções Disponíveis

  1. Gerar CRUD completo
  2. Gerar Action
  3. Gerar UseCase
  4. Gerar Repository
  5. Gerar Model
  6. Gerar Rotas
  7. Gerar Login (Utiliza Sanctum)
  8. Gerar Login (Utiliza JWT)
  9. Sobre
  10. Sair

Cada opção solicita os parâmetros necessários e executa os comandos correspondentes.

Gerar Partes Individualmente

Você também pode usar comandos específicos para criar componentes individuais.

1. Gerar um Model

Gera um model com fillables automáticos, casts de data e json, relacionamentos e trait SoftDeletes (se aplicável):

php artisan make:crud-model --table=products --label=Produto --plural-label=Produtos --observer

2. Gerar um Repository

Gera um repository baseado em um model especificado:

php artisan make:crud-repository RepositoryName --model=Product

3. Gerar UseCases

Gera os UseCases de um CRUD completo ou um UseCase em branco:

php artisan make:crud-use-case --model=Product

4. Gerar Actions

Gera as actions de um CRUD ou uma action em branco:

php artisan make:crud-actions --model=Product

5. Gerar Rotas

Gera um arquivo de rotas para um CRUD completo ou cria um arquivo de rota em branco:

php artisan make:crud-routes --model=Product

Gerar o Login

O sistema de autenticação utiliza o Laravel Sanctum e pode ser gerado com o comando:

php artisan make:crud-auth

Gerar o Login (JWT)

O sistema de autenticação para uisar JWT, pode ser egrado com o seguinte comando:

php artisan make:crud-auth-jwt

Componentes Gerados

  1. Rotas: Um arquivo de rotas em app/Routes/AuthRoutes.php, contendo rotas para login e logout.
  2. Actions: Classes para LoginAction e LogoutAction.
  3. UseCases: Classes para LoginUseCase e LogoutUseCase.
  4. FormRequest: Validação para login em LoginRequest.
  5. Services: Serviço de autenticação usando SanctumAuthService.
  6. Repositories: Classes LoginRepository e AuthRepository.

Exemplo de Rotas Geradas

Route::prefix('auth')
    ->name('auth.')
    ->group(function () {
        Route::post('/login', LoginAction::class)->name('login');
        Route::delete('/logout', LogoutAction::class)
            ->name('logout')
            ->middleware('auth:sanctum');
    });

Caso tenha escolhido JWT

Route::prefix('auth')
    ->name('auth.')
    ->group(function () {
        Route::post('/login', LoginAction::class)->name('login');
    });

Testando o Login

Login

Endpoint:

  • URL: /api/auth/login
  • Método: POST
  • Corpo:
    {
      "email": "usuario@example.com",
      "password": "senha"
    }

Logout (somente SANCTUM)

Endpoint:

  • URL: /api/auth/logout
  • Método: DELETE
  • Headers:
    • Authorization: Bearer {token}

Gerar o CRUD Completo

Para gerar todas as partes de um CRUD (Model, Repository, UseCases, Actions e Rotas):

php artisan crud:menu

Selecione a opção Gerar CRUD completo e preencha os parâmetros solicitados.

Utilizando o Filtro Genérico

A biblioteca inclui um sistema de filtros dinâmicos inspirado no Strapi. Você pode utilizar filtros na query string para manipular os resultados das consultas.

Exemplo de Query String

Product[name]=Laptop&Product[price_between]=1000,2000&page=2&perPage=15

Tipos de Filtros Suportados

  • campo=value: Filtra pelo valor exato.
  • campo_like=value: Filtra usando LIKE.
  • campo_between=value1,value2: Filtra por intervalo.
  • campo_in=value1,value2: Filtra pelos valores especificados.
  • campo_not_in=value1,value2: Exclui os valores especificados.
  • campo_greater_than=value: Filtra valores maiores que o especificado.
  • campo_less_than=value: Filtra valores menores que o especificado.
  • campo_is_null: Filtra valores nulos.
  • campo_not_null: Filtra valores não nulos.

Contribuições

Contribuições são bem-vindas! Por favor, envie um pull request ou abra uma issue no repositório oficial no GitHub.

Licença

Este projeto está licenciado sob a Licença MIT.

gilsonreis/laravel-crud-generator 适用场景与选型建议

gilsonreis/laravel-crud-generator 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 140 次下载、GitHub Stars 达 2, 最近一次更新时间为 2024 年 11 月 13 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 gilsonreis/laravel-crud-generator 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 gilsonreis/laravel-crud-generator 我们能提供哪些服务?
定制开发 / 二次开发

基于 gilsonreis/laravel-crud-generator 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 140
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 7
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-11-13