首頁 >後端開發 >php教程 >如何透過laravel來創建自訂artisan make的命令新建類文件

如何透過laravel來創建自訂artisan make的命令新建類文件

不言
不言原創
2018-06-13 14:53:211963瀏覽

下面這篇文章主要給大家介紹了關於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 TestRepository

php artisan make:repository SubDirectory/TestRepository
##########以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網! ######相關推薦:#########關於Laravel中重寫資源路由自訂URL的實作方法###############關於laravel 5.4中實作無限級分類的方法#####################

以上是如何透過laravel來創建自訂artisan make的命令新建類文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn