laravel 进阶之 自动创建 自定义的artisan make命令来新建类文件

我们在laravel开发时经常用到artisan make:controller等命令来新建Controller、Model、Job、Event等类文件。 在Laravel5.2中artisan make命令支持创建如下文件:


不过,有时候默认的并不能够满足我们的需求, 比方我们在项目中使用的Respository模式来进一步封装了Model文件,就需要经常创建Repository类文件了,时间长了就会想能不能通过artisan make:repository命令自动创建类文件而不是都每次手动创建。

系统自带的artisan make命令对应的PHP程序放在Illuminate\Foundation\Console目录下,我们参照Illuminate\Foundation\Console\ProviderMakeCommand类来定义自己的artisan make:repository命令。


我们首先通过自动创建一个类,然后改造它:


php artisan make:Command RepositoryMakeCommand


我们将其改正成:

注意所有的更改 尤其是红色和绿色的替代


二、创建命令类对应的模版文件

在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

你可能感兴趣的:(laravel 进阶之 自动创建 自定义的artisan make命令来新建类文件)