内容简介:我们在不过,有时候默认的并不能够满足我们的需求, 比方我们在项目中使用的Respository模式来进一步封装了Model文件,就需要经常创建Repository类文件了,时间长了就会想能不能通过系统自带的artisan make命令对应的PHP程序放在
我们在 laravel
开发时经常用到 artisan make
等命令来新建 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 ];
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 29.Django自定义命令
- Laravel——自定义命令command
- cmdr 03 - 用流式接口定义命令行参数处理选项
- 自定义 Go 包的 import path 的命令行应用
- ruby-on-rails – 如何从命令行重新启动Rails应用程序时定义环境?
- 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
第一本Docker书 修订版
詹姆斯·特恩布尔 (James Turnbull) / 李兆海、刘斌、巨震 / 人民邮电出版社 / 2016-4-1 / CNY 59.00
Docker是一个开源的应用容器引擎,开发者可以利用Docker打包自己的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。 本书由Docker公司前服务与支持副总裁James Turnbull编写,是Docker开发指南。本书专注于Docker 1.9及以上版本,指导读者完成Docker的安装、部署、管理和扩展,带领读者经历从测试到生产的整个开发生......一起来看看 《第一本Docker书 修订版》 这本书的介绍吧!