Maison > cadre php > Laravel > 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

藏色散人
Libérer: 2021-05-11 08:59:55
avant
1944 Les gens l'ont consulté

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
Copier après la connexion

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
    Copier après la connexion

    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';
    Copier après la connexion
  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';
    Copier après la connexion

    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!
    Copier après la connexion

    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';
    }}
Copier après la connexion

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{
    //}
Copier après la connexion

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
Copier après la connexion

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

C:\www\wwwroot\laravel8>php artisan make:service IndexService
Service created successfully.
Copier après la connexion

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{
    //}
Copier après la connexion

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!

É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