Maison  >  Article  >  développement back-end  >  Comment créer une commande artisan make personnalisée pour créer un nouveau fichier de classe via Laravel

Comment créer une commande artisan make personnalisée pour créer un nouveau fichier de classe via Laravel

不言
不言original
2018-06-13 14:53:211924parcourir

L'article suivant vous présente principalement les informations pertinentes sur la façon dont Laravel crée de nouveaux fichiers de classe en créant une commande artisanale personnalisée. Les amis dans le besoin peuvent s'y référer.

Laravel fournit de puissantes commandes de console via Artisan pour gérer la logique métier non-navigateur.

Préface

Cet article vous présente principalement la création de nouveaux fichiers de classe par Laravel en créant une commande artisanale personnalisée Le contenu. est partagé pour la référence et l'étude de chacun. Je ne dirai pas grand-chose ci-dessous, jetons un coup d'œil à l'introduction détaillée.

Nous utilisons souvent artisan make:controller et d'autres commandes lors du développement de Laravel pour créer de nouveaux fichiers de contrôleur, de modèle, de travail, d'événement et d'autres fichiers de classe. Dans Laravel5.2, la commande artisan make prend en charge la création des fichiers suivants :

 make:auth   Scaffold basic login and registration views and routes
 make:console  Create a new Artisan command
 make:controller  Create a new controller class
 make:event   Create a new event class
 make:job   Create a new job class
 make:listener  Create a new event listener class
 make:middleware  Create a new middleware class
 make:migration  Create a new migration file
 make:model   Create a new Eloquent model class
 make:policy   Create a new policy class
 make:provider  Create a new service provider class
 make:request  Create a new form request class
 make:seeder   Create a new seeder class
 make:test   Create a new test class

Cependant, parfois celui par défaut ne peut pas répondre à nos besoins, par exemple, le mode Repository que nous utilisons dans le projet encapsule davantage le fichier modèle, nous devons donc créer fréquemment des fichiers de classe Repository. Au fil du temps, nous nous demanderons si nous pouvons créer automatiquement des fichiers de classe via la commande artisan make:repository au lieu de les créer manuellement. à chaque fois.

Le programme PHP correspondant à la commande artisan make fournie avec le système est placé dans le répertoire IlluminateFoundationConsole. Nous nous référons à la classe IlluminateFoundationConsoleProviderMakeCommand pour définir notre propre commande artisan make:repository.

1. Créez une classe de commandes

Créez le fichier RepositoryMakeCommand.php dans le dossier appConsoleCommands. :

namespace App\Console\Commands;

use Illuminate\Console\GeneratorCommand;

class RepositoryMakeCommand extends GeneratorCommand
{
 /**
  * The console command name.
  *
  * @var string
  */
 protected $name = 'make:repository';

 /**
  * The console command description.
  *
  * @var string
  */
 protected $description = 'Create a new repository class';

 /**
  * The type of class being generated.
  *
  * @var string
  */
 protected $type = 'Repository';

 /**
  * Get the stub file for the generator.
  *
  * @return string
  */
 protected function getStub()
 {
  return __DIR__.'/stubs/repository.stub';
 }

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

2. Créez le fichier modèle correspondant à la classe de commande

dans appConsoleCommandsstubs Créez un fichier modèle ci-dessous. Le fichier stub est un modèle pour le fichier de classe généré par la commande make Il est utilisé pour définir la partie commune du fichier de classe à générer. fichier :

 namespace DummyNamespace;
 
 use App\Repositories\BaseRepository;
 
 class DummyClass extends BaseRepository
 {
  
  /**
   * Specify Model class name
   * 
   * @return string
   */
  public function model()
  {
   //set model name in here, this is necessary!
  }
 }

3. Enregistrer la classe de commande

Ajouter RepositoryMakeCommand to AppConsoleKernel.php

 protected $commands = [
  Commands\RepositoryMakeCommand::class
 ];

Commande de test

Bien, vous pouvez maintenant créer le fichier de classe du référentiel via la commande make:repository

php artisan make:repository TestRepository

php artisan make:repository SubDirectory/TestRepository

Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

À propos de la méthode d'implémentation de la réécriture de l'URL personnalisée de routage des ressources dans Laravel

À propos des méthodes de Laravel 5.4 pour atteindre une classification de niveau infinie

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:
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