在自定义目录中生成格林兰iMES的文件

dev-master 2024-08-04 03:01 UTC

This package is auto-updated.

Last update: 2024-09-04 03:11:33 UTC


README

文件夹结构

├── app
│   └── Common
│       ├── Constants
│       ├── Controllers
│       └── Helpers
│       └── Interfaces
│       └── Middleware
│       └── Models
│       └── Repositories
│       └── Services
│       └── Traits
│   └── Modules
│       ├── Auth
│           ├── Controllers
│           ├── DataTransferObjects
│           ├── Exceptions
│           ├── Interfaces
│           ├── Models
│           ├── QueryBuilders
│           ├── Requests
│           ├── Routes
│           ├── Rules
│           ├── Services
│           ├── Exports
│           ├── Imports
│           ├── Jobs
│       ├── ...
├── ...

配置

发布配置文件

mes-cmd.php

php artisan vendor:publish

  Which provider or tag's files would you like to publish?
  All providers and tags ......................................................................................................................... 0
  Provider: DungNguyenTrung\MesCmd\MESServiceProvider ............................................................................................ 1
  Provider: Illuminate\Foundation\Providers\FoundationServiceProvider ............................................................................ 2
  Provider: Illuminate\Mail\MailServiceProvider .................................................................................................. 3
  Provider: Illuminate\Notifications\NotificationServiceProvider ................................................................................. 4
  Provider: Illuminate\Pagination\PaginationServiceProvider ...................................................................................... 5
  Provider: Laravel\Sail\SailServiceProvider ..................................................................................................... 6
  Provider: Laravel\Sanctum\SanctumServiceProvider ............................................................................................... 7
  Provider: Laravel\Tinker\TinkerServiceProvider ................................................................................................. 8
  Tag: config .................................................................................................................................... 9
  Tag: laravel-errors ........................................................................................................................... 10
  Tag: laravel-mail ............................................................................................................................. 11
  Tag: laravel-notifications .................................................................................................................... 12
  Tag: laravel-pagination ....................................................................................................................... 13
  Tag: sail ..................................................................................................................................... 14
  Tag: sail-bin ................................................................................................................................. 15
  Tag: sail-database ............................................................................................................................ 16
  Tag: sail-docker .............................................................................................................................. 17
  Tag: sanctum-config ........................................................................................................................... 18
  Tag: sanctum-migrations ....................................................................................................................... 19
  .....

输入 1 发布此包的配置

配置文件夹设置

<?php

return [

    /*
    |--------------------------------------------------------------------------
    | MES Command Line Config
    |--------------------------------------------------------------------------
    |
    | This value is the name of your application, which will be used when the
    | framework needs to place the application's name in a notification or
    | other UI elements where an application name needs to be displayed.
    |
    */

    'folder' => [
        'root' => 'Modules',
        'controller' => 'Controller',
        'dto' => 'DataTransferObjects',
        'model' => 'Models',
        'query' => 'QueryBuilders',
        'repo' => 'Repositories',
        'service' => 'Services',
        'view' => 'Views',
        'view_model' => 'ViewModels',
    ],
];

描述

此包包含一些自定义收集器

  • 创建一个新的控制器
  • 创建一个新的DTO
  • 创建一个新的模型
  • 创建一个新的查询
  • 创建一个新的存储库
  • 创建一个新的服务
  • 创建一个新的视图
  • 创建一个新的视图模型

安装

使用composer要求此包。建议仅用于开发要求此包。

composer require dung-nguyentrung/mes-cmd:dev-master --dev

用法

创建控制器

php artisan mes:controller ControllerName Folder
控制器已成功创建在 yourPath/app/Modules/{Folder}/Controllers/{ControllerName}.php

创建模型

php artisan mes:model ModelName Folder
模型已成功创建在 yourPath/app/Modules/{Folder}/Models/{ModelName}.php

创建查询构建器

  • 基本
php artisan mes:query QueryBuilderName Folder
  • 添加 --model 标签
php artisan mes:query QueryBuilderName Folder --model=YourModel

YourModel.php

<?php

...
use App\Modules/{Folder}/QueryBuilders/{QueryBuilderName};

class YourModel extends BaseModel
{
    use HasFactory;

    ...

    /**
     * newEloquentBuilder
     *
     * @param  $query
     * @return QueryBuilderName
     */
    public function newEloquentBuilder($query): QueryBuilderName
    {
        return new QueryBuilderName($query);
    }
}
查询构建器已成功创建在 yourPath/app/Modules/{Folder}/QueryBuilders/{QueryBuilderName}.php

创建视图

php artisan mes:view view-name Folder
视图已成功创建在 yourPath/app/Modules/{Folder}/View/{view-name}.blade.php

创建视图模型

php artisan mes:vm ViewModelName Folder
视图模型已成功创建在 yourPath/app/Modules/{Folder}/ViewModels/{ViewModelName}.php

创建服务

php artisan mes:service ServiceName Folder
服务已成功创建在 yourPath/app/Modules/{Folder}/Services/{ServiceName}.php {ServiceName}Interface 已成功创建在 yourPath/app/Modules/{Folder}/Interfaces/{ServiceName}Interface.php

创建存储库

php artisan mes:repo RepositoryName Folder
存储库已成功创建在 yourPath/app/Modules/{Folder}/Repositories/{RepositoryName}.php {RepositoryName}Interface 已成功创建在 yourPath/app/Modules/{Folder}/Interfaces/{RepositoryName}Interface.php