如何通過laravel來建立自訂artisan make的命令建立類檔案

來源:互聯網
上載者:User
下面這篇文章主要給大家介紹了關於laravel如何通過建立自訂artisan make命令來建立類檔案的相關資料,需要的朋友可以參考借鑒,下面來一起看看吧。

Laravel通過Artisan提供了強大的控制台命令來處理非瀏覽器商務邏輯。

前言

本文主要跟大家介紹的是關於laravel通過建立自訂artisan make命令來建立類檔案的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。

我們在laravel開發時經常用到artisan make:controller等命令來建立Controller、Model、Job、Event等類檔案。 在Laravel5.2中artisan make命令支援建立如下檔案:

 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

不過,有時候預設的並不能夠滿足我們的需求, 比方我們在項目中使用的Respository模式來進一步封裝了Model檔案,就需要經常建立Repository類檔案了,時間長了就會想能不能通過artisan make:repository命令自動建立類檔案而不是都每次手動建立。

系統內建的artisan make命令對應的PHP程式放在Illuminate\Foundation\Console目錄下,我們參照Illuminate\Foundation\Console\ProviderMakeCommand類來定義自己的artisan make:repository命令。

一、建立命令類

在app\Console\Commands檔案夾下建立RepositoryMakeCommand.php檔案,具體程式如下:

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'; }}

二、建立命令類對應的模版檔案

在app\Console\Commands\stubs下建立模版檔案 .stub檔案是make命令產生的類檔案的模版,用來定義要產生的類檔案的通用部分建立repository.stub模版檔案:

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

三、註冊命令類

將RepositoryMakeCommand添加到App\Console\Kernel.php中

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

測試命令

好了, 現在就可以通過make:repository命令來建立repository類檔案了

php artisan make:repository TestRepositoryphp artisan make:repository SubDirectory/TestRepository

以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.