在Laravel中

时间:2017-10-08 02:53:37

标签: php laravel class laravel-5

我编写了一个简单的帮助器类,将其放在app\Helpers\MyHelper.php中,并在app.php配置文件中为它创建了一个别名:

    'MyHelper' => App\Helpers\MyHelper::class,

问题在于,现在我需要使用类构造函数来初始化其中的一些默认值。但是,__construct函数永远不会被调用。显然,因为它永远不会被初始化。

问题是,我如何(或在何处)正确初始化辅助类,以便初始化它的默认值?

我的第一个想法:AppServiceProvider.php文件和boot()功能。

我在那里放了一条new MyHelper();线并且它正在工作,但是我想知道这是否是一种正确的方式呢?

2 个答案:

答案 0 :(得分:0)

你可以创建helper类有静态类,所以不需要创建类的实例 例如

<?php

namespace App\Helpers;

class HelperFunction {

    public static function createGroup() {

}

因此您可以使用use关键字在控制器中导入类,并访问

HelperFunction::createGroup();

答案 1 :(得分:0)

通常,服务提供商可以自行启动您的应用程序。文档并没有对AppServiceProvider说太多,但似乎一般来说就是引导你的应用程序。

如果您想要走安全路线,可以使用php artisan make:provider MyHelperServiceProvider创建新的服务提供商,并将其添加到providers文件的config/app.php数组中。

它看起来与AppServiceProvider相同,但根据您当前的代码库,将该帮助程序放入其自己的服务提供程序可能更清晰。

我也只是一个初学者,但对我来说似乎都很好。

更新好的,找到了文档中的重要部分:https://laravel.com/docs/5.5/lifecycle

最后一段说:

  

默认情况下,AppServiceProvider相当空。此提供程序是添加应用程序自己的引导和服务容器绑定的好地方。当然,对于大型应用程序,您可能希望创建多个服务提供程序,每个服务提供程序都具有更细粒度的引导类型。