我想创建帮助函数,以避免在Laravel视图之间重复代码。例如:
view.blade.php
<p>Foo Formated text: {{ fooFormatText($text) }}</p>
它们基本上是文本格式化函数。我应该如何定义全局可用的帮助函数,如fooFormatText()?
我想创建帮助函数,以避免在Laravel视图之间重复代码。例如:
view.blade.php
<p>Foo Formated text: {{ fooFormatText($text) }}</p>
它们基本上是文本格式化函数。我应该如何定义全局可用的帮助函数,如fooFormatText()?
当前回答
在Laravel 5.3及以上版本中,Laravel团队将所有过程文件(routes.php)移出了app/目录,整个app/文件夹是psr-4自动加载的。接受的答案在这种情况下是可行的,但我感觉不对。
所以我所做的就是在我的项目的根目录下创建了一个helpers/目录,并把helper文件放在里面,放在我的composer中。我这样做:
...
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
},
"files": [
"helpers/ui_helpers.php"
]
},
...
这样我的app/目录仍然是psr-4自动加载的,并且帮助程序组织得更好一些。
其他回答
在Laravel 5.3及以上版本中,Laravel团队将所有过程文件(routes.php)移出了app/目录,整个app/文件夹是psr-4自动加载的。接受的答案在这种情况下是可行的,但我感觉不对。
所以我所做的就是在我的项目的根目录下创建了一个helpers/目录,并把helper文件放在里面,放在我的composer中。我这样做:
...
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
},
"files": [
"helpers/ui_helpers.php"
]
},
...
这样我的app/目录仍然是psr-4自动加载的,并且帮助程序组织得更好一些。
在dir bootstrap\autoload.php中
require __DIR__.'/../vendor/autoload.php';
require __DIR__.'/../app/Helpers/function.php'; //add
添加这个文件
app\Helpers\function.php
在App/Helpers/中创建新文件examplehelper.php 然后加入作曲家。json文件
"autoload": { "classmap": [ "database"], "psr-4": { "App\\": "app/" },
"files": ["helpers/examplehelper.php" ]},
这是我的HelpersProvider.php文件:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class HelperServiceProvider extends ServiceProvider
{
protected $helpers = [
// Add your helpers in here
];
/**
* Bootstrap the application services.
*/
public function boot()
{
//
}
/**
* Register the application services.
*/
public function register()
{
foreach ($this->helpers as $helper) {
$helper_path = app_path().'/Helpers/'.$helper.'.php';
if (\File::isFile($helper_path)) {
require_once $helper_path;
}
}
}
}
你应该在app文件夹下创建一个名为Helpers的文件夹,然后在里面创建一个名为whatever.php的文件,并在$ Helpers数组中添加字符串whatever。
完成了!
Edit
我不再使用这个选项,我目前使用作曲家加载静态文件,如帮助。
你可以直接在:
...
"autoload": {
"files": [
"app/helpers/my_helper.php",
...
]
},
...
首先在App\Helpers\Helper.php中创建你的Helper文件/类 就像:
<?php
namespace App\Helpers;
class Helper {
// Your customer public function
}
然后在Composer.json中定义它 在交通量 然后运行composer dump-autoload