如何在ServiceProvider中自动注册helpers类?

may*_*ʎɐɯ 1 php laravel laravel-5

我正在开发一个 Laravel 5.1 项目并开发了很多助手。

有什么方法可以在 ServiceProivder 中自动注册 helpers 类,而不是手动添加它们?

may*_*ʎɐɯ 5

我一直在努力,最终通过将不同的谜题放在一起来解决这个问题,并以这个解决方案结束:

对于 Laravel 5:

步骤1.创建文件夹app/Helpers

步骤 2.在文件夹中,使用以下 artisan 命令app/Providers创建提供程序:HelpersServiceProvider.php

php artisan make:provider HelpersServiceProvider
Run Code Online (Sandbox Code Playgroud)

步骤 3.HelpersServiceProvider.php文件中,我们创建一个foreach loop内部寄存器函数来获取所有帮助器类,如下所示:

public function register()
{
    foreach (glob(app_path() . '/Helpers/*.php') as $helpersfilename)
    {
        require_once($helpersfilename);
    }
}
Run Code Online (Sandbox Code Playgroud)

步骤 4.添加config/app.php以下行

/*
* Application Service Providers added by developer...
*/
App\Providers\HelpersServiceProvider::class,
Run Code Online (Sandbox Code Playgroud)

就是这样,这里的解决方案已经过测试并且适用于 Laravel 5.x 的所有版本。现在您可以在 helpers 文件夹中添加无限的助手,它们将自动添加到系统中。

Laravel 4尚未测试,但如果有人这样做,请为 Laravel 4 添加/编辑此内容。