Heim >Backend-Entwicklung >PHP-Tutorial >So erstellen Sie einen benutzerdefinierten Handwerker-Make-Befehl, um über Laravel eine neue Klassendatei zu erstellen

So erstellen Sie einen benutzerdefinierten Handwerker-Make-Befehl, um über Laravel eine neue Klassendatei zu erstellen

不言
不言Original
2018-06-13 14:53:211980Durchsuche

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/TestRepository

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn