概述
前言
在学习完教程中添加自定义助手函数文件时,还是得记录一下,感觉对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 添加自定义助手函数的全部内容,希望文章能够帮你解决php助手函数自定义,Laravel 添加自定义助手函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复