我有个问题!我有一个图书馆,每当我需要打电话时,我都会把它包含new Class()
在下面的链接中。
现在,我想将它与 Lumen 框架一起使用并通常在控制器中调用,然后如何在 Lumen 中注册服务、类以使其舒适,以便在需要时只需调用new FileMaker();
非常感谢!
我有个问题!我有一个图书馆,每当我需要打电话时,我都会把它包含new Class()
在下面的链接中。
现在,我想将它与 Lumen 框架一起使用并通常在控制器中调用,然后如何在 Lumen 中注册服务、类以使其舒适,以便在需要时只需调用new FileMaker();
非常感谢!
您正在寻找的是Service Provider。与其在控制器中包含文件,然后新建一个类的实例,不如在服务提供者中注册该类,然后将对象从IoC 容器中解析出来。
如何注册提供者的示例:
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
}