laravel通过创建自定义artisan make命令来新建类文件详解
发布时间 - 2026-01-11 02:50:15 点击率:次前言

本文主要跟大家介绍的是关于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
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# laravel
# artisan
# make
# 自定义命令
# artisan自定义命令
# laravel+vue组合的项目中引入ueditor方式(打包成组件形式)
# 在laravel中使用Symfony的Crawler组件分析HTML
# Laravel框架中扩展函数、扩展自定义类的方法
# PHP框架Laravel插件Pagination实现自定义分页
# Laravel中重写资源路由自定义URL的实现方法
# Laravel Validator自定义错误返回提示消息并在前端展示
# Laravel认证原理以及完全自定义认证详解
# 关于Laravel-admin的基础用法总结和自定义model详解
# Laravel5.5以下版本中如何自定义日志行为详解
# laravel框架学习笔记之组件化开发实现方法
# 自己的
# 的是
# 就会
# 好了
# 放在
# 相关内容
# 说了
# 不多
# 自定义
# 这篇文章
# 谢谢大家
# 装了
# 长了
# 就可以
# 而不是
# 系统自带
# 目录下
# 有疑问
# routes
# event
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel怎么实现验证码(Captcha)功能
Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
香港服务器网站推广:SEO优化与外贸独立站搭建策略
怎么用AI帮你设计一套个性化的手机App图标?
Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置
Python图片处理进阶教程_Pillow滤镜与图像增强
软银砸40亿美元收购DigitalBridge 强化AI资料中心布局
LinuxShell函数封装方法_脚本复用设计思路【教程】
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
如何在VPS电脑上快速搭建网站?
Laravel如何使用Eloquent进行子查询
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
如何在建站主机中优化服务器配置?
如何在建站之星绑定自定义域名?
CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
Laravel如何创建自定义中间件?(Middleware代码示例)
如何获取PHP WAP自助建站系统源码?
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
Laravel如何使用查询构建器?(Query Builder高级用法)
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
如何在云指建站中生成FTP站点?
Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中
如何用好域名打造高点击率的自主建站?
Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比
百度输入法ai组件怎么删除 百度输入法ai组件移除工具
Laravel API资源类怎么用_Laravel API Resource数据转换
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
图册素材网站设计制作软件,图册的导出方式有几种?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
如何在IIS中新建站点并配置端口与物理路径?
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
Laravel如何实现API版本控制_Laravel版本化API设计方案
Laravel如何实现文件上传和存储?(本地与S3配置)
如何为不同团队 ID 动态生成多个“认领值班”按钮
Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程
网站制作免费,什么网站能看正片电影?

