我想做一个帮助函数,我在我的项目中广泛使用它,几乎在任何地方或其他一些帮助函数,现在可能用作一个例子,我想到了,如下所示:
request()->get('name);现在我知道了,任何在刀片或控制器或其他地方,如果我使用它的工作。现在我有两个问题。1.如何使这样的帮手能做一些事情,并能被广泛使用2--让这样的帮手成为这样的人是明智的吗?
发布于 2020-11-24 10:44:32
要成为全球帮手,你可以这样做。
向以下路径app/Helpers/helper.php添加一个php文件(而不是类)。
if (! function_exists('helper')) {
function helper() {
return new Helper();
}
}为了使其类似于Laravels,方法是使您可以在初始助手调用返回的方法上调用一个对象。
class Helper {
public function getHelp() {
return 'did this help?';
}
}现在让composer用helper函数自动加载您的文件。
"autoload": {
"files": [
"app/Helpers/helper.php"
]
}这将使您能够调用以下内容。
helper()->getHelp(); // returns: did this help?最后一个问题。
是明智的,让一些助手这样吗?
在面向对象的设计中,这是一个反模式,因为它处理全局函数,并且应该是静态名称空间调用或对象。然而,在Laravel的上下文中,我真的很喜欢使用这些帮助程序所能做的事情。现在,在我当前的项目中,我们有处理格式化浮点数的全局函数,这些函数处理的是我们的地区货币字符串表示格式,这些函数对我们的货币字符串表示有很大帮助,而且使用起来非常愉快。
发布于 2020-11-24 10:41:16
在app\Helpers\GlobalHelper.php中创建一个助手类
<?php
namespace App\Helpers;
class GlobalHelper
{
public static function helloWorld()
{
return "Hello World"
}
}然后在您的config\app.php中的别名数组中添加
'Helper' => App\Helpers\GlobalHelper::class,
然后,在刀片文件中可以使用{{ Helper::helloWorld() }},在控制器中可以使用\Helper::helloWorld();。
https://stackoverflow.com/questions/64983523
复制相似问题