如何在 laravel 5.6 中创建自定义帮助文件?
Posted
技术标签:
【中文标题】如何在 laravel 5.6 中创建自定义帮助文件?【英文标题】:How to create custom helper file in laravel 5.6? 【发布时间】:2018-09-04 12:36:26 【问题描述】:当我使用 composer 创建自动加载帮助文件时,出现以下错误:
致命错误:composerRequireebefe31fc60fbe2897fba8c156ec310c():失败 需要打开 'D:\xampp\htdocs\common_module\vendor\composer/../../app/Http/helpers.php' (include_path='D:\xampp\php\PEAR') 在 D:\xampp\htdocs\common_module\vendor\composer\autoload_real.php 第 66 行
【问题讨论】:
您可以发布您的composer.json
文件吗?你的helpers.php
文件在哪里?
【参考方案1】:
如果你是 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 检查。
【讨论】:
【参考方案2】:在旧版本的 Laravel 中,我执行以下操作:
-
app 文件夹创建一个 Helpers 文件夹
创建类YourHelper类文件
在该类文件中将命名空间设置为 App\Helpers
为类文件命名
在 config/app.php 中的别名中创建一个别名(这样您也可以在视图中调用帮助程序)'YourHelper'=>'App\Helpers\YourHelper::class'
【讨论】:
完美!正是我需要的!谢谢!【参考方案3】:以下是在 Laravel 5.5 中创建自定义助手的步骤
步骤:1 创建 app/helpers.php 文件
首先,在 app/helpers.php 路径中创建一个帮助类文件,在这个文件中,我们将任何自定义帮助类逻辑写入函数中。
步骤:2 在 composer.json 文件中添加 app/helpers.php 文件
现在,我们在 composer.json 文件中添加我们的 app/helpers.php 文件作为自动加载部分。
"autoload":
"classmap": [
...
],
"psr-4":
"App\\": "app/"
,
"files": [
"app/helpers.php" //Add This Line
]
,
完成此操作后,一旦我们运行以下命令。
作曲家转储自动加载
更多请访问以下链接
访问How To Create Custom Helper In Laravel 5.5
希望对你有帮助……
【讨论】:
很高兴听到这个消息:)以上是关于如何在 laravel 5.6 中创建自定义帮助文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Laravel 4.2 中创建自定义 DB Query Builder 方法
Laravel JSON API: 如何从数据库中创建自定义的虚拟资源(用于聚合值)?