如何从di依赖注入容器上下文中自动连接(自动连接)/获取nette中的服务
如何从容器自动部署Nette服务,以便在演示者(控制器)或模型等内部使用?
解决方案
若要自动布线Nette中的服务以便于检索和使用,它们必须在配置.neon配置中注册,或者必须是框架以多种方式默认设置的服务:
- 在构造函数中指定和传递接口、类类型
use AppModel; // or use AppModelArticleRepository;
public function __construct(
ModelArticlesRepository $articlesRepository,
...
)
{
$this->articlesRepository = $articlesRepository;
- 通过@Inject标记属性注释进行自动装配
/** @var NetteHttpRequest @inject */ // however , this one is just example, the request service is already available in the presenters via $this->request attribute
public $request;
所有可用服务的列表,包括那些在配置中配置的服务,以及那些默认预定义的服务,都可以在Nette Tracy Debugger栏的同一位置看到-&>DIC(依赖项注入容器)按钮
相关文章