承接 gsferro/resource-crud-easy 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

gsferro/resource-crud-easy

Composer 安装命令:

composer require gsferro/resource-crud-easy

包简介

Generic resource method for crud using SPA

README 文档

README

Logo

Um pacote Laravel para geração de scaffolding CRUD completo baseado em estruturas de banco de dados, com suporte a SPA (Single Page Application).

Descrição

Resource CRUD Easy é um pacote que facilita a criação de operações CRUD (Create, Read, Update, Delete) em aplicações Laravel. Ele gera automaticamente modelos, controladores, visualizações, testes e outros arquivos necessários com base na estrutura do banco de dados.

Requisitos

Package Versão
PHP ^8.0
Laravel ^8.0
owen-it/laravel-auditing ^12.0
spatie/laravel-permission ^5.8
your-app-rocks/eloquent-uuid ^2.5
genealabs/laravel-model-caching 0.*
freshbitsweb/laratables ^2.5
gsferro/database-schema-easy ^1
gsferro/filtereasy ^1.1
gsferro/responseview ^1.2
gsferro/powermodel ^1.3
gsferro/select2easy ^1.2.1

Instalação

composer require gsferro/resource-crud-easy -W

Configuração

1. Publicar arquivos

# Publicar arquivos do Resource CRUD Easy
php artisan vendor:publish --provider="Gsferro\ResourceCrudEasy\Providers\ResourceCrudEasyServiceProvider" --tag=config

# Publicar assets (opcional)
php artisan vendor:publish --provider="Gsferro\ResourceCrudEasy\Providers\ResourceCrudEasyServiceProvider" --tag=plugins
php artisan vendor:publish --provider="Gsferro\ResourceCrudEasy\Providers\ResourceCrudEasyServiceProvider" --tag=styles
php artisan vendor:publish --provider="Gsferro\ResourceCrudEasy\Providers\ResourceCrudEasyServiceProvider" --tag=views

# Publicar arquivos de pacotes dependentes
php artisan vendor:publish --provider="OwenIt\Auditing\AuditingServiceProvider"
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
php artisan vendor:publish --provider="Gsferro\Select2Easy\Providers\Select2EasyServiceProvider" --force

2. Configuração do arquivo config/resource-crud-easy.php

return [
    // Quando true, o pacote implementará automaticamente permissões para todas as operações CRUD
    'use_permissions' => true,
];

3. Configuração do Frontend

Adicione os seguintes diretivas Blade no seu layout principal:

No cabeçalho (dentro da tag <head>):

{{-- jQuery v3.6.4 --}}
@ResourceCrudEasyJquery()

{{-- FontAwesome v4 (opcional) --}}
@FontAwesomeV4()

{{-- Estilos CSS para DataTables --}}
@ResourceCrudEasyDatatablesExtraCss() 

{{-- Estilos CSS gerais --}}
@ResourceCrudEasyStylesCss() 

{{-- Select2Easy CSS --}}
@select2easyCss()

No final do corpo (antes de fechar a tag </body>):

{{-- Plugin DataTables JS --}}
@ResourceCrudEasyDatatablesPlugin()

{{-- Plugins JS gerais --}}
@ResourceCrudEasyPlugins()

{{-- Select2Easy JS --}}
@select2easyJs()

{{-- Configuração para DataTables usar POST --}}
<script type="text/javascript">
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        },
        async: true
    });
    $(function(){
        {{-- Inicialização do Select2Easy --}}
        $('.select2easy:not(".select2-hidden-accessible")').select2easy();
    });
</script>

{{-- Para scripts específicos de cada página --}}
@yield('js')

Comandos Disponíveis

Gerar CRUD Completo

php artisan gsferro:resource-crud <Nome-Entidade> [opções]

Opções disponíveis:

  • --table=: Nome da tabela no banco de dados (opcional)
  • --connection=: Nome da conexão do banco de dados (opcional)
  • --model-aux: Indica se é um modelo auxiliar
  • --datatable: Gera suporte para DataTables
  • --factory: Gera factory para o modelo
  • --seeder: Gera seeder para o modelo
  • --migrate: Gera migração para o modelo
  • --controller: Gera controller para o modelo

Este comando irá gerar:

  • Modelo
  • Controlador (opcional)
  • Visualizações (opcional)
  • Factory (opcional)
  • Seeder (opcional)
  • Migração (opcional)
  • Testes unitários e de feature
  • Rotas

Gerar Testes Automatizados

php artisan gsferro:resource-test [opções]

Opções disponíveis:

  • --model=: Nome do modelo para gerar testes
  • --controller=: Nome do controlador para gerar testes
  • --all: Gera testes para todos os modelos e controladores
  • --force: Força a sobrescrita de testes existentes

Este comando analisa a estrutura de código existente e gera testes abrangentes para modelos e controladores, incluindo:

  • Testes de relacionamentos
  • Testes de escopos
  • Testes de validação
  • Testes de API
  • Testes de banco de dados

Para mais detalhes, consulte a documentação de geração de testes.

Gerar Componentes React para Tabelas Existentes

php artisan gsferro:resource-choice-table [opções]

Opções disponíveis:

  • --connection=: Nome da conexão do banco de dados (opcional)
  • --table=: Nome da tabela específica (opcional)
  • --modulo=: Nome do módulo para agrupar os componentes

Funcionalidades Principais

Traits para Controladores

ResourceCrudEasy

Fornece métodos básicos para operações CRUD:

  • index(): Exibe a listagem de registros
  • create(): Exibe o formulário de criação
  • edit($id): Exibe o formulário de edição

ResourceCrudEasyApi

Fornece métodos para manipulação de dados:

  • store(Request $request): Cria um novo registro
  • update(Request $request, $id): Atualiza um registro existente
  • show($id): Exibe um registro específico
  • destroy($id): Remove um registro (não implementado)

Modelos Base

BaseModel

Modelo base que estende o Eloquent Model e implementa:

  • Auditoria (via owen-it/laravel-auditing)
  • Filtragem (via gsferro/filtereasy)
  • Funcionalidades avançadas (via gsferro/powermodel)

AuxModel

Modelo para tabelas auxiliares (lookup tables) que estende BaseModel e implementa:

  • Cache (via genealabs/laravel-model-caching)
  • Integração com Select2 (via gsferro/select2easy)
  • Configurações padrão para tabelas simples (id, name)

Componentes Blade

  • <x-datatables-process>: Processamento de DataTables
  • <x-side-right-filters>: Filtros laterais para DataTables
  • <x-form-filter>: Formulário de filtro
  • <x-btn-edit>: Botão de edição
  • <x-btn-register>: Botão de registro
  • <x-link-cancel>: Link de cancelamento

Exemplo de Uso

1. Gerar um CRUD completo para uma entidade

php artisan gsferro:resource-crud Usuario --table=usuarios

2. Criar um controlador que utiliza as traits do pacote

namespace App\Http\Controllers;

use App\Models\Usuario;
use Gsferro\ResourceCrudEasy\Traits\ResourceCrudEasy;
use Illuminate\Http\Request;

class UsuarioController extends Controller
{
    use ResourceCrudEasy;

    public function __construct(Usuario $model)
    {
        $this->model = $model;
    }

    // Os métodos index(), create(), edit(), store(), update() já estão implementados pela trait
}

3. Criar um modelo que estende o BaseModel

namespace App\Models;

use Gsferro\ResourceCrudEasy\Models\BaseModel;

class Usuario extends BaseModel
{
    protected $fillable = ['nome', 'email', 'telefone'];

    // Regras de validação
    public static $rules = [
        'store' => [
            'nome' => 'required|string|max:255',
            'email' => 'required|email|unique:usuarios,email',
            'telefone' => 'nullable|string|max:20',
        ],
        'update' => [
            'nome' => 'required|string|max:255',
            'email' => 'required|email|unique:usuarios,email,{id}',
            'telefone' => 'nullable|string|max:20',
        ],
    ];
}

Notas

  • O pacote utiliza convenções para nomes de views baseados no nome da entidade (snake_case)
  • As permissões são geradas automaticamente se a configuração use_permissions estiver ativada
  • O pacote suporta tanto aplicações tradicionais quanto SPAs

gsferro/resource-crud-easy 适用场景与选型建议

gsferro/resource-crud-easy 是一款 基于 HTML 开发的 Composer 扩展包,目前已累计 539 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 03 月 07 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「template」 「crud」 「laravel」 「generate」 「easy」 「SPA」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

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

围绕 gsferro/resource-crud-easy 我们能提供哪些服务?
定制开发 / 二次开发

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

BUG 修复 & 性能优化

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

项目外包 & 长期维护

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

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

统计信息

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

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: HTML

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-03-07