Lumen (Laravel) 包含库并在 Controller 中使用 class
Lumen (Laravel) include library & use class in Controller
我有一个问题!我有一个库,每当我需要调用时,我都会将它包含在 & new Class()
中,就像下面的 link 一样。
现在,我想将它包含在 Lumen 框架中并通常调用控制器,然后如何注册服务,class 在 Lumen 中使其舒适,以便在需要时调用 new FileMaker();
非常感谢!
您要查找的是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
}
我有一个问题!我有一个库,每当我需要调用时,我都会将它包含在 & new Class()
中,就像下面的 link 一样。
现在,我想将它包含在 Lumen 框架中并通常调用控制器,然后如何注册服务,class 在 Lumen 中使其舒适,以便在需要时调用 new FileMaker();
非常感谢!
您要查找的是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
}