如何在 Laravel 中创建自定义帮助程序函数
2022-08-30 05:50:38
我想创建帮助器函数,以避免在Laravel中的视图之间重复代码。例如:
视图.blade.php
<p>Foo Formated text: {{ fooFormatText($text) }}</p>
它们基本上是文本格式化函数。我应该如何定义全局可用的帮助程序函数,例如 ?fooFormatText()
我想创建帮助器函数,以避免在Laravel中的视图之间重复代码。例如:
视图.blade.php
<p>Foo Formated text: {{ fooFormatText($text) }}</p>
它们基本上是文本格式化函数。我应该如何定义全局可用的帮助程序函数,例如 ?fooFormatText()
在应用文件夹中创建一个文件,然后使用 composer 加载该文件:helpers.php
"autoload": {
"classmap": [
...
],
"psr-4": {
"App\\": "app/"
},
"files": [
"app/helpers.php" // <---- ADD THIS
]
},
将其添加到文件后,运行以下命令:composer.json
composer dump-autoload
如果您不喜欢将文件保存在目录中(因为它不是PSR-4命名空间类文件),则可以执行网站所做的操作:将 存储在引导目录中。请记住在文件中设置它:helpers.php
app
laravel.com
helpers.php
composer.json
"files": [
"bootstrap/helpers.php"
]
这个答案适用于Laravel中的一般自定义类。有关更多特定于刀片的答案,请参阅 Laravel 5 中的自定义刀片指令。
第 1 步:创建帮助程序(或其他自定义类)文件,并为其提供匹配的命名空间。编写你的类和方法:
<?php // Code within app\Helpers\Helper.php
namespace App\Helpers;
class Helper
{
public static function shout(string $string)
{
return strtoupper($string);
}
}
第 2 步:创建别名:
<?php // Code within config/app.php
'aliases' => [
...
'Helper' => App\Helpers\Helper::class,
...
第 3 步:在项目根目录中运行composer dump-autoload
第 4 步:在边栏选项卡模板中使用它:
<!-- Code within resources/views/template.blade.php -->
{!! Helper::shout('this is how to use autoloading correctly!!') !!}
额外积分:在 Laravel 应用中的任意位置使用此类:
<?php // Code within app/Http/Controllers/SomeController.php
namespace App\Http\Controllers;
use Helper;
class SomeController extends Controller
{
public function __construct()
{
Helper::shout('now i\'m using my helper class in a controller!!');
}
...
资料来源:http://www.php-fig.org/psr/psr-4/
为什么有效:https://github.com/laravel/framework/blob/master/src/Illuminate/Support/ClassLoader.php