Laravel加载并初始化自定义助手类

时间:2017-10-23 04:44:24

标签: php laravel class laravel-5

关于在Laravel中加载自定义帮助程序类有很多问题。但是,它们都没有专注于通过适当的初始化加载它们。

从Laravel版本5.3开始,我们可以使用自动加载整个app/目录的psr-4自动加载。但是,类正在加载但从未初始化。

我在app/helpers/support.php内有我的帮助班。这个类有一个构造函数,我想加载一些重要的配置,以使帮助程序可用。

那么如何在Laravel中正确加载我的助手,但是初始化呢?现在,我只是在new \App\Helper\Support();内使用AppServiceProvider.php解决问题。

编辑:我使用以下方法来维护我的助手类:

Best practices for custom helpers on Laravel 5

1 个答案:

答案 0 :(得分:2)

看起来你拥有的是一项服务。您可以在应用服务提供商中声明它,而不是创建实例,并在需要时将其作为依赖项注入。

register方法中:

$this->app->bind(\App\Helper\Support::class);

您现在可以使用依赖注入来获取类的实例。您也可以创建一个这样的实例:

app()->make(\App\Helper\Support::class);

如果您只想在任何给定时间存在一个实例,请使用singleton而不是bind

我建议阅读服务容器文档:

https://laravel.com/docs/5.5/container