Lumen (Laravel) 包含库并在 Controller 中使用 class

Lumen (Laravel) include library & use class in Controller

我有一个问题!我有一个库,每当我需要调用时,我都会将它包含在 & new Class() 中,就像下面的 link 一样。

现在,我想将它包含在 Lumen 框架中并通常调用控制器,然后如何注册服务,class 在 Lumen 中使其舒适,以便在需要时调用 new FileMaker();

http://laravel.io/bin/E3d9x

非常感谢!

您要查找的是Service Provider. Instead of including files in your Controllers, and then new'ing up instances of a class it is better to register the class within a service provider and then resolve the object out of the IoC container

如何注册提供商的示例:

public function register()
{
    $this->app->singleton('Full\Vendor\Namespace\FileMaker', function($app)     {
        return new FileMaker('someparameters');
    });
}

这样做意味着您可以将依赖项注入控制器和 Laravel,或者在这种情况下,Lumen 将自动解析对象,而无需实例化对象。

例如,在您的控制器中:

public function someControllerMethod(FileMaker $filemaker)
{
    // The $filemaker instance is available to use
}