如何在Laravel上创建Helper方法而不是Facade

时间:2016-05-20 06:31:35

标签: php laravel laravel-5.1 helper

我已经阅读了很多关于如何在Laravel 5.1中制作辅助方法的问题。但我不想通过Facade实现这一目标。

HelperClass::methodName();

我想像这些方法一样制作辅助方法Laravel Helper Methods,如:

myCustomMethod();

我不想把它变成门面。这可能吗?怎么样?

2 个答案:

答案 0 :(得分:4)

首先,我在我的app目录中创建了一个名为.css.erb的文件夹。然后在Helpers文件夹中我添加了我想要添加的函数的文件。拥有一个包含多个文件的文件夹可以让我们避免使用一个太长且无法管理的大文件。

接下来,我通过运行artisan命令创建了var data; $http.get('items.json').success(function(response){ data = response; //data can't be used outside this function });

Helpers 在注册方法中,我添加了这个片段

HelperServiceProvider.php

最后在提供商数组

中的artisan make:provider HelperServiceProvider中注册服务提供商
public function register()
{
    foreach (glob(app_path().'/Helpers/*.php') as $filename){
        require_once($filename);
    }
}

之后,您需要运行config/app.php,您的更改将在Laravel中显示。

现在'providers' => [ 'App\Providers\HelperServiceProvider', ] 目录中的任何文件都已加载,可供使用。

希望这有效!

答案 1 :(得分:3)

如果您想使用“Laravel方式”,可以使用自定义助手创建helpers.php文件:

if (! function_exists('myCustomHelper')) {
    function myCustomHelper()
    {
        return 'Hey, it\'s working!';
    }
}

然后将此文件放在某个目录中,将此目录添加到应用程序composer.json的自动加载部分:

"autoload": {
    ....
    "files": [
        "app/someFolder/helpers.php"
    ]
},

运行composer dumpauto命令,您的助手将完成所有应用程序,例如Laravel。

如果您想了解更多示例,请查看/vendor/laravel/framework/Illuminate/Support/helpers.php

处的原始Laravel助手