PHP更改自动加载的顺序

时间:2023-03-09 08:55:52
PHP更改自动加载的顺序

composer的锅

自从PHPer们用上了composer后,对于传统的加载方式倒是不会用了,可谓是“收之东隅,失之桑榆”。

下面说一下怎么改变加载顺序来覆写Laravel中的helper函数。

1. 直接require

打开Laravel的入口文件 index.php,可以看到require __DIR__.'/../vendor/autoload.php';,比如我们覆写today函数

可以app目录下增加一个helper.php,然后覆写,


<?php
use Carbon\Carbon; function today()
{
return Carbon::today("PRC")->toDateTimeString();
}

改为字符串,新建一个路由,测试一下,发现如愿返回了字符串。

2. 使用composer-include-files

先安装composer require funkjedi/composer-include-files

然后编辑composer.json,在extra项里添加include_files


{
"extra": {
"include_files": [
"app/helpers.php"
]
},
}

注意在此之前,得先把helper.php放到自动加载项里

"autoload": {
"files": [
"app/helpers.php"
]
}

运行composer dump,可以看到在vendor/composer/autoload_files.php里,我们的helper.php被放到了最前面