gpt4 book ai didi

php - Laravel 5.4 中的自定义助手类

转载 作者:IT王子 更新时间:2023-10-29 00:00:52 26 4
gpt4 key购买 nike

我在 app/Helpers 中有一些辅助类。我如何使用 service provider 加载这些类以在 blade 模板中使用它们?

例如如果我有一个包含方法 fooBar() 的类 CustomHelper :

<?php

nampespace App\Helpers;

class CustomHelper
{
static function fooBar()
{
return 'it works!';
}
}

我希望能够在我的 Blade 模板中做这样的事情:

{{ fooBar() }}

而不是这样做:

{{ \App\Helpers\CustomHelper::fooBar() }}

附注: @andrew-brown 的 answerBest practices for custom helpers on Laravel 5处理非类文件。最好有一个基于类的解决方案,以便可以在类之间组织辅助函数。

最佳答案

我不认为当你的类中有代码时只使用函数是可能的。好吧,您可以尝试扩展 Blade,但它太多了。

你应该做的是创建一个额外的文件,例如 app\Helpers\helpers.php 并在你的 composer.json 文件中放置:

"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
},
"files": ["app/Helpers/helpers.php"] // <- this line was added
},

创建 app/Helpers/helpers.php 文件并运行

composer dump-autoload

现在,在您的 app/Helpers/helpers.php 文件中,您可以添加这些自定义函数,例如:

if (! function_exists('fooBar')) {
function fooBar()
{
return \App\Helpers\CustomHelper::fooBar();
}
}

因此您定义了全局函数,但实际上它们都可能使用某些类中的特定公共(public)方法。

顺便说一句,这正是 Laravel 为自己的助手所做的,例如:

if (! function_exists('array_add')) {
function array_add($array, $key, $value)
{
return Arr::add($array, $key, $value);
}
}

如您所见,array_add 只是更短(或可能更简洁)的 Arr::add 编写方式

关于php - Laravel 5.4 中的自定义助手类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43168719/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com