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