Maison > cadre php > Laravel > le corps du texte

Créez votre propre package de génération de code laravel-generator

藏色散人
Libérer: 2020-09-28 13:28:27
avant
2134 Les gens l'ont consulté
Ce qui suit est

Laravel La colonne tutoriel présentera le package de génération de code Laravel-Generator, j'espère qu'il sera utile aux amis dans le besoin !

Créez votre propre package de génération de code laravel-generator

Package de génération de code du générateur Laravel

https://github.com/HogenYuan/laravel -generator

Introduction

En raison de mon récent travail en arrière-plan, j'ai besoin d'un package de génération de code similaire à Gii, et il peut y en avoir plus abondant packages en ligne. Mais je n'en savais pas grand-chose, alors j'ai juste écrit un package qui me convenait à utiliser en fonction de mes propres habitudes. Je l'ai écrit à la hâte, donc le code peut être approximatif. Pour le moment, je n'ai écrit que le back-end, et j'écrirai le front-end quand j'aurai le temps.

1. Modifiez *.stub pour générer du code initial personnalisé en fonction du répertoire du framework personnalisé

2. Support

model + filter + request + resource + service + controller + migration + test

3. même nom Et remplissez les champs pour

>

composer require hogen\laravel-generator

php artisan vendor:publish --tag=generator
Copier après la connexion
model + resource + migrationExécuter

Veuillez d'abord modifier le fichier stub du format de code par défaut en fonction de votre propre répertoire de framework et du format de code

'providers' => [

    ···    App\Console\Commands\Generator\GeneratorServiceProvider::class];
Copier après la connexion
    Configuration personnalisée du déploiement

GeneratorMakeResource.php

## 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
Copier après la connexion
  • Sélectionnez les composants à être généré, le filtre et le test ne sont pas activés par défaut

Il y a une priorité, vous devez remplir la commande selon l'image ci-dessus

Règles de répertoire

    protected $types = [
    
        'model', 'request', 'resource', 'service', 'controller', 'test', 'migration'];
    Copier après la connexion
  • Modifiez ici les paramètres des règles de chemin de chaque module, ce qui affectera l'espace de noms et le nom de classe de chaque fichier
  • inBaseDir détermine s'il se trouve dans BaseDir, la valeur par défaut est
  • prefix détermine s'il se trouve dans le préfixe secondaire

    • Filtre de filtre
    • 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' => ''],];
      Copier après la connexion

      Http

      Non activé par défaut
    • Exemple de chemin de la classe de base de filtre générée : App/ Models/Traits/Filter.php

    La génération du chemin suit uniquement La règle inBaseDir du modèle dans $pathFormat ne suit pas le préfixe pour éviter la génération de traits

    • Remplissage des champs de la base de données

    protected $createFilter = false;protected $baseFilterHelperPath = "Models\Traits\Filter";
    Copier après la connexion
  • Format du code Modifier le format du code par défaut

  • Se référer à chaque stub configuration pour personnaliser le format par défaut
  • Les stubs suivants sont des habitudes de code simplifiées, selon les besoins Modifier

    Generatorstubs*.stub

    /**
    
     * 手动配置
    
     * 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',];
    Copier après la connexion
    • TODO

    • Le front-end est généré en fonction des composants

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Étiquettes associées:
    source:learnku.com
    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
    Tutoriels populaires
    Plus>
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal