php助手函数自定义,Laravel 添加自定义助手函数
前言
在学习完教程中添加自定义助手函数文件时,还是得记录一下,感觉对composer知道的东西太少了,一些命令到底做了什么还是不知道,总结一下。
添加自定义助手函数文件
在开发项目的时候,有时候会定义一些函数,而这些函数又不能放在Laravel框架的助手函数文件中,如果我们把代码部署到生产环境中,再使用composer install安装扩展,又会覆盖我们之前修改的文件。
可见添加的函数必须要定义在我们的文件中,而且这个文件必须要纳入到git仓库中。这么一来觉得放在app目录还不错,这个目录是应用相关的目录,像中间件、模型、控制器都在这个这个目录。
所以我们在app目录下添加helpers.php文件,添加的函数就可以定义在这个文件中了。
自动加载助手函数
在上面我们创建了助手函数文件,把函数定义在app/helpers.php文件中了,但是这个文件不会被composer自动加载,如果要composer自动加载器加载我们定义的函数文件,必须要告诉composer。
如何告诉composer加载我们定义的助手函数文件呢,很简单,在项目根目录中的composer.json文件添加即可,怎么添加也是有讲究的,我把我添加的结果放在这里。
...
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"files": [
"app/helpers.php" #这行便是添加的助手函数
]
},
.....
通过上面贴出的代码我们可以知道,在autoload参数下的files参数可以定义要添加的文件,这个文件在添加时要注意路径,首先助手函数文件helpers.php在app目录下,而app目录和composer.json是在同一个目录下,所以添加助手函数时应该这么写app/helpers.php,也就是说通过这个相对路径可以找到对对应的文件,不然composer的文件加载会失败。
定义了是不是就完事了呢,还没有,composer在加载助手函数文件时,并不是通过composer.json文件来记载函数文件,而是通过composer加载器定义的几个文件,每次从这些文件中加载文件。
所以我们在定义了函数文件后需要执行composer dumpauotload指令,通过composer程序来生产加载文件。执行后会修改vendor/composer目录下的autoload_static.php和auoload_files.php文件。
到底在文件中修改了什么呢,其实就是把定义的helpers.php添加到这个两个文件中,看下添加后的文件内容。
// autoload_static.php
class ComposerStaticInit49922490dbe4935d5c7b9f60b23ceb32
{
public static $files = array (
// ......
'ed962a97bd972bc82007176b647d4e36' => __DIR__ . '/..' . '/facade/ignition/src/helpers.php',
'b4e3f29b106af37a2bb239f73cdf68c7' => __DIR__ . '/../..' . '/app/helpers.php',
);
// auoload_files.php
return array(
'ed962a97bd972bc82007176b647d4e36' => $vendorDir . '/facade/ignition/src/helpers.php',
'b4e3f29b106af37a2bb239f73cdf68c7' => $baseDir . '/app/helpers.php',
);
可以看到这两个文件中都有helpers.php文件,具体用到哪个文件呢,之后我会一篇文章来说明composer加载文件的原理。
总结
一个小小的助手文件,可以引出这么多知识点,如果对这些知识点不了解,只是知道这么做,而没有去了解为什么这么做,学习就像是囫囵吞枣,下次估计会忘了使用composer dumpautoload来生产加载规则文件,还不知道是哪里出了问题。
这么学习下来感觉一个小节可以学习很多知识点,时间消耗的也挺长了,写这篇文章都已经过去半个小时了,感觉也没有说什么,就是把过程捋了一遍。
就这样吧,如果把精力全部用在写文章,而忘记是学习了解框架的,有点本末倒置了,写文章的目的是加深学习,看看自己到底知道多少。
本作品采用《CC 协议》,转载必须注明作者和本文链接
php助手函数自定义,Laravel 添加自定义助手函数相关推荐
- Laravel 添加自定义全局函数
第一步:在app目录下建立Common文件夹,在文件夹中创建helpers.php 第二步:在artisan中引入require __DIR__.'/app/Common/helpers.php';自 ...
- laravel 系统服务-助手函数
1.应用场景 帮助熟悉laravel内部服务, 清楚快速地进行laravel开发. 2.学习/操作 1.array_except array_except 函数从数组移除指定的键值对 $array = ...
- Python matplotlib可视化:自定义轴标签格式化函数(在轴刻度上添加自定义的数值以及符号形式)、使用自定义函数在Matplotlib中为坐标轴刻度添加自定义符号(例如,货币符号¥$等)
Python matplotlib可视化:自定义轴标签格式化函数(在轴刻度上添加自定义的数值以及符号形式).使用自定义函数在Matplotlib中为坐标轴刻度添加自定义符号(例如,货币符号¥$等) 目 ...
- 函数变量命名翻译助手工具下载及教程
函数变量命名翻译助手教程 下载地址:翻译命名助手 细节: 1.自动翻译 2.选中[上边的文本框]的文字为划词翻译功能,取消选中则恢复 3.选中[下边的文本框]的文字会将选中的英文转化为函数变量名 4. ...
- jstl中添加自定义的函数
转载自 jstl中添加自定义的函数 由于jstl中提供的函数未必能够满足我们的要求,而我们又希望能够像jstl提供的函数那样能够轻松方便使用,那么可以通过自定义函数补充jsltl函数.给jstl添 ...
- Hive SQL操作与函数自定义(二)
9 Operators and UDFs 9.1 内置运算符 9.1.1 关系运算符 操作符 运算对象的类型 描述 A <=> B ALL 都是NULL时,返回TRUE,有一为NULL时, ...
- JMeter函数自定义开发
JMeter之所以强大,就是因为其开源性和可扩展性,大家开发了大量的插件,也开发了不少的函数,这些函数如果能巧妙应用就能减少我们的工作量,实现各种复杂的计算和逻辑应用场景.很多人会觉得开发JMeter ...
- php 二维数组排序函数,php自定义二维数组排序函数array
这次给大家带来php自定义二维数组排序函数array,php自定义二维数组排序函数array的注意事项有哪些,下面就是实战案例,一起来看一下. 这篇文章主要介绍了php自定义二维数组排序函数array ...
- R语言ggplot2可视化时间序列散点图、X轴和Y轴都是时间信息、使用as.POSIXct函数自定义指定Y轴的时间范围(setting time limits in y axis)
R语言ggplot2可视化时间序列散点图.X轴和Y轴都是时间信息.使用as.POSIXct函数自定义指定Y轴的时间范围(setting time limits in y axis) 目录
最新文章
- u8 采购到货单中的 业务类型 没有表字典,是系统预置 存入表也是文字: 普通采购 - 固定资产...
- 微信分享,二次分享(移动web端)
- js+html5双人五子棋(源码下载)
- Linux Lernel Panic 报错解决思路
- 几个支持生成Python代码的UML工具
- [Kafka与Spark集成系列三] Spark编程模型
- sql 注射_令人惊讶的注射
- Java Object类的各个方法
- 中国风冬日节日必备梅花PNG免扣素材
- 【Dubbo篇】--Dubbo框架的使用
- 通过linux访问IPMI端口,Linux通过命令行设置IPMI的解决方法(图)
- 计算机boot进入u盘启动,深度u盘装系统进入boot设置教程
- 月球探测器中的计算机技术,月球探测器自主视觉导航技术的研究
- python 生成nc文件_如何python写nc文件
- 最怕虚拟机连不上网-记一次网卡消失
- 刚刚!蚂蚁全部互联网存款产品下架;阿里辟谣:被中央联合调查纯属谣言!...
- 数据挖掘学习:站在巨人的肩膀上
- 对于工作学习的一些感想
- Java实现求质数(素数)
- 第三篇 IT 技术支持工程师职业发展路径与技能要求