튜토리얼 칼럼에서는 코드 생성 패키지인 Laravel-Generator를 소개할 예정인데, 필요한 친구들에게 도움이 되었으면 좋겠습니다!
Laravel-generator 코드 생성 패키지https://github.com/HogenYuan/laravel-generator
소개요즘 배경 작업을 하다가 필요한 게 있어요 Gii와 유사한 코드 생성 패키지가 인터넷에 많이 있을 수 있지만, 아직 이에 대해 자세히 배운 적이 없기 때문에 그냥 내 습관에 따라 사용하기 편리한 패키지를 작성했습니다. 서두르세요. 코드가 거칠어질 수 있습니다. 현재는 백엔드만 작성했는데, 시간이 나면 프론트엔드도 작성해보겠습니다. 1. 사용자 정의 프레임워크 디렉토리에 따라 사용자 정의 초기 코드를 생성하도록 *.stub를 수정합니다.
2. 모델 + 필터 + 요청 + 리소스 + 서비스 + 컨트롤러 + 마이그레이션 + 테스트
3를 지원합니다. 동일한 이름의 데이터 테이블을 자동으로 읽고 모델 + 리소스 + 마이그레이션
model + filter + request + resource + service + controller + migration + test
3. 自动读取同名数据表并填充到 model + resource + migration
的字段
Installation
composer require hogen\laravel-generator php artisan vendor:publish --tag=generator
'providers' => [ ··· App\Console\Commands\Generator\GeneratorServiceProvider::class];
Run
## name : 必填,短横式命名的资源名称}## --module= : 必填,指定三级模块(大小写规范) 如:GasStation/MainCard/Balance## --prefix= : 指定二级前缀(大小写规范) 默认:AdminApi## --baseDir= : 指定一级目录(大小写规范) 默认:Http## --force : 覆盖已存在文件## --filter : 使用filter筛选类## --test : 生成测试文件例子: //有大小写规范 * Path: App\Http\Controller\AdminApi\User\Example php artisan admin:make-resource testExample --force --baseDir=Http --prefix=AdminApi --module=User\Example * Path: App\Admin\Controller\User\Example php artisan admin:make-resource testExample --force --filter --baseDir=Admin --module=User\Example
Deployment自定义配置
GeneratorMakeResource.php
protected $types = [ 'model', 'request', 'resource', 'service', 'controller', 'test', 'migration'];
选择需要生成的组件,filter和test默认不开启
有先后顺序之分,需按照上图顺序填写
目录规则
protected $pathFormat = [ 'model' => ['inBaseDir' => false, 'prefix' => ''], 'service' => ['inBaseDir' => false, 'prefix' => ''], 'test' => ['inBaseDir' => false, 'prefix' => true], 'request' => ['inBaseDir' => true, 'prefix' => true], 'resource' => ['inBaseDir' => true, 'prefix' => true], 'controller' => ['inBaseDir' => true, 'prefix' => true], 'migration' => ['inBaseDir' => false, 'prefix' => ''],];
在此修改各模块的路径规则设置,会影响各文件的命名空间和类名
inBaseDir决定是否在BaseDir内,默认Http
protected $createFilter = false;protected $baseFilterHelperPath = "Models\Traits\Filter";
/** * 手动配置 * resource文件中不需要添加到 $fillable 的字段 * * @var string[] */protected $resourceNoFillableFields = [ 'update_time', 'updated_time', 'delete_time', 'deleted_time',];/** * 手动配置 * model文件中不需要添加到 $fillable 的字段 * * @var string[] */protected $modelNoFillableFields = [ 'id', 'create_time', 'created_time', 'update_time', 'updated_time', 'delete_time', 'deleted_time',];필드를 채웁니다. 실행
먼저 자신의 프레임워크 디렉터리 및 코드 형식에 따라 기본 코드 형식 스텁 파일을 수정하세요.
<?php namespace DummyNamespace; use NamespacedDummyModel; use NamespacedDummyRequest; use NamespacedDummyResource; use NamespacedDummyService; use BaseNamespaceResource\EmptyResource; use BaseNamespaceController\Controller; class DummyClass extends Controller { public function index(DummyRequest $request){ $validated = $request->validated(); $dummyModels = DummyModel::query() ->filter($validated) ->orderByDesc('id') ->paginate(); return DummyResource::collection($dummyModels); } ··· }
배포 사용자 정의 구성
GeneratorMakeResource.php
구성 요소를 선택하고, 필터 및 테스트는 기본적으로 활성화되어 있지 않습니다
순서가 있으므로 위에 표시된 순서대로 작성해야 합니다
디렉터리 규칙
Http
접두사는 보조 접두사
위 내용은 나만의 코드 생성 패키지 laravel-generator 만들기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!