Maison  >  Article  >  cadre php  >  Présentation de la commande Make personnalisée de Laravel pour générer la classe Service

Présentation de la commande Make personnalisée de Laravel pour générer la classe Service

藏色散人
藏色散人avant
2021-05-10 11:34:531870parcourir

La colonne de didacticiel suivante de laravel présentera la commande Make personnalisée de Laravel pour générer la classe Service. J'espère qu'elle sera utile aux amis dans le besoin !

Description de l'environnement

L'environnement que j'utilise est : Laravel Framework 8.40.0.

C:\www\wwwroot\laravel8>php artisan --version
Laravel Framework 8.40.0

1. Création de fichiers de commandes

Pour des tutoriels sur la production de connaissances précoces, veuillez vous référer à mon autre blog Laravel custom Make command pour générer des classes cibles.

  1. Exécutez la commande suivante

     php artisan make:command MakeService

    pour générer le fichier de commande Console/Commands/MakeService.php.

  2. Modifier la classe héritée
    Modifiez la classe héritée en GeneratorCommand, et l'espace de noms de cette classe est IlluminateConsoleGeneratorCommand.
    supprime la méthode d'instanciation et la fonction handle
    implémente une méthode getStub.

  3. Définissez l'attribut name.
    Modifiez l'attribut $signature en attribut name et définissez la commande :

     protected $name = 'make:service';
  4. Définissez le paramètre de type type valeur d'attribut
    type, ce que nous générons est service, donc l'attribut que nous définissons est Service.

     protected $type = 'Service';

    Le type de type est défini par vous-même. Il n'a pas de signification particulière et n'a pas besoin d'être défini. La valeur de l'attribut

    type vous donne uniquement un rappel amical lors de la création d'une erreur, comme indiqué ci-dessous :

     C:\www\wwwroot\laravel8>php artisan make:service TestService
     already exists!
    
     C:\www\wwwroot\laravel8>php artisan make:service TestService
     Service already exists!

    Le premier est l'effet de la non définition de l'attribut type. Le second est l'effet de la définition de l'attribut type.

    Les types officiellement utilisés sont : Contrôleur, Middleware, Cast, Channel...

    Modifiez d'autres attributs selon vos propres besoins

  5. Définissez l'emplacement du Stub et l'espace de commande
    L'emplacement du Stub se trouve dans le répertoire racine Stubs/service.stub. L'espace de noms
    se trouve dans le répertoire app Services.

L'exemple de code est le suivant :

<?php
namespace App\Console\Commands;
use Illuminate\Console\GeneratorCommand;
class MakeService extends GeneratorCommand{
    /**
     * The console command name.
     *
     * @var string
     */
    protected $name = &#39;make:service&#39;;

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = &#39;生成service对象类&#39;;

    /**
     * The type of class being generated.
     *
     * @var string
     */
    protected $type = &#39;Service&#39;;

    /**
     * Get the stub file for the generator.
     *
     * @return string
     */
    protected function getStub()
    {
        // Implement getStub() method.
        return $this->laravel->basePath('/stubs/service.stub');
    }

    /**
     * Get the default namespace for the class.
     *
     * @param  string  $rootNamespace
     * @return string
     */
    protected function getDefaultNamespace($rootNamespace)
    {
        return $rootNamespace.'\Services';
    }}

2. Créer des fichiers Stub

Mon fichier de service n'a actuellement pas besoin. hériter ou dépendre de quelle catégorie. Donc c'est relativement simple. Si vous avez des besoins particuliers, vous pouvez prolonger l’opération. L'exemple de code

est le suivant :

<?phpnamespace DummyNamespace;class DummyClass{
    //}

DummyClass et DummyNamespace seront automatiquement remplacés par le nom de classe généré automatiquement et l'espace de noms défini dans la classe GeneratorCommand héritée .

Il est recommandé d'utiliser les invites de syntaxe de l'éditeur pour obtenir un effet d'invite plus convivial.
En outre, vous pouvez également utiliser les méthodes d'écriture Larave et {{ class }} intégrées à {{ namespace }}.

3. Test de génération de service

Exécutez la commande suivante

php artisan make:service IndexService

Il peut être généré normalement et avec succès

C:\www\wwwroot\laravel8>php artisan make:service IndexService
Service created successfully.

Le répertoire du fichier généré est app/Services/IndexService.php, les fichiers générés sont les suivants :

<?php
namespace App\Services;
class IndexService{
    //}

Recommandations associées : Les cinq derniers didacticiels vidéo Laravel

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer