Heim >Backend-Entwicklung >PHP-Tutorial >So erstellen Sie einen benutzerdefinierten Handwerker-Make-Befehl, um über Laravel eine neue Klassendatei zu erstellen
Der folgende Artikel führt Sie hauptsächlich in die relevanten Informationen ein, wie Laravel durch die Erstellung eines benutzerdefinierten Handwerker-Make-Befehls einen Blick darauf werfen kann.
Laravel bietet über Artisan leistungsstarke Konsolenbefehle für die Verarbeitung von Nicht-Browser-Geschäftslogik.
Vorwort
Dieser Artikel stellt Ihnen hauptsächlich die Erstellung neuer Klassendateien durch die Erstellung eines benutzerdefinierten Handwerker-Make-Befehls vor Ich werde im Folgenden nicht viel sagen, aber schauen wir uns die ausführliche Einführung an.
Bei der Entwicklung von Laravel verwenden wir häufig artisan make:controller
und andere Befehle, um neue Controller-, Modell-, Job-, Ereignis- und andere Klassendateien zu erstellen. In Laravel5.2 unterstützt der Befehl artisan make
die Erstellung der folgenden Dateien:
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
Manchmal kann die Standarddatei jedoch beispielsweise unsere Anforderungen nicht erfüllen , wir befinden uns im Repository-Modus, der im Projekt verwendet wird, um die Modelldatei weiter zu kapseln, sodass Sie häufig Repository-Klassendateien erstellen müssen. Mit der Zeit werden Sie sich fragen, ob Sie Klassendateien automatisch über den Befehl artisan make:repository
erstellen können, anstatt sie manuell zu erstellen sie jedes Mal.
Das PHP-Programm, das dem mit dem System gelieferten artisan make
-Befehl entspricht, wird im IlluminateFoundationConsole-Verzeichnis abgelegt. Wir beziehen uns auf die IlluminateFoundationConsoleProviderMakeCommand-Klasse, um unseren eigenen artisan make:repository
-Befehl zu definieren.
1. Erstellen Sie eine Befehlsklasse
Erstellen Sie die Datei RepositoryMakeCommand.php im Ordner „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. Erstellen Sie die Vorlagendatei entsprechend der Befehlsklasse
Erstellen Sie es unter appConsoleCommandsstubs. Die .stub-Vorlagendatei ist die Vorlage der vom make-Befehl generierten Klassendatei. Sie wird verwendet, um den gemeinsamen Teil der zu generierenden Klassendatei zu definieren:
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. Befehlsklasse registrieren
RepositoryMakeCommand zu AppConsoleKernel.php hinzufügen
protected $commands = [ Commands\RepositoryMakeCommand::class ];
Testbefehl
Okay, jetzt können Sie die Repository-Klassendatei über Befehlmake:repository
php artisan make:repository TestRepository php artisan make:repository SubDirectory/TestRepositoryDas Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich ist die chinesische PHP-Website! Verwandte Empfehlungen:
Über die Implementierungsmethode zum Umschreiben einer benutzerdefinierten Ressourcenrouting-URL in Laravel
Über Laravel 5.4 Methoden zu Erreichen Sie eine unendliche Levelklassifizierung
Das obige ist der detaillierte Inhalt vonSo erstellen Sie einen benutzerdefinierten Handwerker-Make-Befehl, um über Laravel eine neue Klassendatei zu erstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!