laravel通过创建自定义artisan make命令来新建类文件详解「建议收藏」

laravel通过创建自定义artisan make命令来新建类文件详解「建议收藏」laravel通过创建自定义artisan make命令来新建类文件详解

大家好,又见面了,我是你们的朋友全栈君。

 make
  make:auth            Scaffold basic login and registration views and routes
  make:command         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:mail            Create a new email class
  make:middleware      Create a new middleware class
  make:migration       Create a new migration file
  make:model           Create a new Eloquent model class
  make:notification    Create a new notification 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

当以上make命令不能满足我需求时,请往下看

Console目录

Console目录包含应用所有自定义的Artisan命令,这些命令类可以使用make:command命令生成。该目录下还有console核心类,在这里可以注册自定义的Artisan命令以及定义调度任务。

创建命令类

1,在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';
 }
}

注意:
1,在app\Console\Commands\stubs下创建模版文件 .stub文件是make命令生成的类文件的模版,用来定义要生成的类文件的通用部分创建repository.stub模版文件:

2, 创建命令类对应的模版文件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!
 }
}

3,注册命令类

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

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

测试命令

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

原文链接

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/105890.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • kong安装与部署

    kong安装与部署Centos7单机部署kong文档步骤 前置步骤:已安装jdk1.8和tomcat部署环境:centos7目标任务:kong:v0.14.x,postgresql:v10.5(注意:psql版本必须与kong版本对应)耗时任务:nodejs的安装(40+分钟) 安装依赖包安装gcc编译环境$yuminstall-ygccgcc-c++pcr…

    2022年6月26日
    23
  • 表单编号和文件编号_php制作一个表单

    表单编号和文件编号_php制作一个表单在实际的编程中,表单的HTML代码和获取表单的PHP程序可以分别写到两个文件中,也可以写到同一个PHP文件中。初学Web交互编程时,为了简便,可以使用后者,因为这样做可以减少网站内网页文件的数量。

    2022年8月11日
    4
  • NetCMS使用BUG记录及解决方法

    NetCMS使用BUG记录及解决方法NetCMS1.7版本使用存在两个BUG1.在上传文件时如果勾选“如果文件存在则重命名(格式:月日时5位随机数-原文件),否则将覆盖原文件.”上传的文件路径将错误。  BUG所在,NetCMS.Content.Common.UpLoad类的120行,postedFile.SaveAs(SavePath+@""+_tmps); 恩,找到了,错误就在这里。  找到了错误所在,那解决…

    2022年9月30日
    0
  • JAVA 正则表达式 (超详细)

    JAVA 正则表达式 (超详细)新网站上线欢迎大家网站交易中心在这里你可以购买或者出售你的网站。网站信息发布中心在这里有各种交易信息的发布。同时提供一些软件的免费使用(附有源码)。网站博客系统这里你可以注册自己的博客。一个账户无限量博客联系方式:support@websiteempire.cnQQ:563828566MSN:zhuhailin123@hotmail.com

    2022年7月19日
    7
  • matlab验证确认和测试,验证和确认快速入门[通俗易懂]

    matlab验证确认和测试,验证和确认快速入门[通俗易懂]请选择其一AlabamaAlaska美属萨摩亚APO/FPOAAAPO/FPOAEAPO/FPOAPArizonaArkansasCaliforniaCarolineIslandsColoradoConnecticutDelawareDistrictofColumbiaFlorida格鲁吉亚关岛HawaiiIdahoIllinoisIndianaIowaKansasKentuckyLo…

    2022年5月5日
    44
  • 云计算、大数据和物联网之间,有什么区别和联系?[通俗易懂]

    云计算、大数据和物联网之间,有什么区别和联系?[通俗易懂]机和对象存储为代表的“按需租用”的商业模式。随着大数据概念的提出,云计算中的分布式计算技术开始更多地被列入大数据技术,而人们提到云计算时,更多指的是底层基础IT资源的整合优化以及以服务的方式提供IT资源的商业模(如Iaas、PaaS、SaaS)。从云计算和大数据概念的诞生到现在,二者之间的关系非常微妙,既密不可分,又千差万别。因此,我们不能把云计算和大数据割裂开来作为截然不同的两类技术来看待。…

    2022年10月6日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号