Composer 自动加载全局自定义函数
自定全局函数
composer.json
文件,在autoload
下添加files
字段,添加对应的自动加载文件。
我这里是进行Composer包开发,所以路径是src/
,如果是有特定的路径存放(例如对应的项目文件夹),定义的时候注意修改文件路径就好。
如果自定义的全局自定义函数只是想要在开发环境下使用,那可以在autoload-dev
字段下添加对应的内容。
{
"name": "wenhsing/cgf",
"description": "Auto loading of custom global functions",
"license": "MIT",
"type": "library",
"authors": [
{
"name": "Wenhsing",
"email": "wenhsing@qq.com"
}
],
"require": {
"php": "^7.2"
},
"autoload": {
"files": [
"src/functions.php"
]
},
"autoload-dev": {
"files": [
"src/functions_dev.php"
]
},
"minimum-stability": "stable"
}
- 创建
src/functions.php
函数文件,用以存放自定义全局函数。开发用的全局这里就不列举了,同理的。
<?php
// 测试用
if (!function_exists('custom_func_test')) {
function custom_func_test()
{
var_dump(func_get_args());
}
}
- 运行
composer dump-autoload
命令让Composer重新载入文件。
其他主要注意的内容:
-
发现找不到对应的函数,那可以核查一下
vendor/composer/autoload_files.php
,看看你的文件有没有加载。如果没有加载,那查看一下路径是否正确。 -
如果是本地开发Composer包的情况下,包内已经显示了路径,而其他依赖这个包的项目并没有加载,那可以尝试删除项目中的
vendor
文件夹和composer.lock
文件再重新安装,看看文件有没有加载。 -
一般情况下,使用Composer的项目都会加载autoload.php文件,但是不排除一些奇葩情况,如果项目没有引用那你就引用就好。