如果你是 Laravel 或 PHP 的新手,让我们来看看你如何创建自己的帮助函数,这些函数会自动被 Laravel 加载。
在 Laravel 应用中创建 Helpers 文件
您可以根据需要组织帮助文件的位置,但是,这里有一些建议的位置:
- app/helpers.php
- app/Http/helpers.php
我更喜欢将我的放在 app/helpers.php 中的应用程序命名空间的根目录中。
自动加载
无法自动加载 PHP 函数。但是,我们通过 Composer 提供了比使用 require 或 require_once 更好的解决方案。
因此 composer 有一个 files 键(它是一个文件路径数组),您可以在 autoload 中定义它:
"autoload": {
"files": [
"app/helpers.php"
],
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/"
}
},
向文件数组添加新路径后,您需要转储自动加载器:
composer dump-autoload
(修改composer.json后使用此命令。)
现在在每次请求时都会自动加载 helpers.php 文件,因为 Laravel 在 public/index.php 中需要 Composer 的自动加载器:
require __DIR__.'/../vendor/autoload.php';
定义函数
在你的助手类中定义函数是很容易的部分,尽管有一些注意事项。所有 Laravel 帮助文件都包含在检查中以避免函数定义冲突:
if (! function_exists('env')) {
function env($key, $default = null) {
// ...
}
}
我更喜欢在我的应用程序助手中使用 function_exists 检查,但如果您在应用程序的上下文中定义助手,则可以放弃 function_exists 检查。