我正在尝试在纯 OOP 应用程序中实现一个简单的 DI。我想使用依赖注入来管理许多服务(数据库、请求验证器、缓存等)。我读过很多博客,喜欢tech-tajawal 的这篇博客,但我真的不明白应该在哪里包含 tech-tajawal 写的容器。有人可以告诉我怎么做吗?
我想要它干净,因此想要使用基于构造函数的注入。所以如果我有一个类,让我们说AbstractBaseController哪个将注入一个名为 的依赖项Request,所以我会写:
php:
<?php
namespace src\controllers;
use system\middlewares\Request as Request;
abstract class AbstractBaseController {
private $request;
public function __construct(Request $request) {
$this->request = $request;
return $this;
}
}
但这只是抛出
致命错误:未捕获的类型错误:传递给 src\controllers\AbstractBaseController::__construct() 的参数 1 必须是 system\middlewares\Request 的实例,没有给出`
我认为来自 tech-tajawal 的容器必须以某种方式包含在我的项目根目录中,但我不知道如何。
请原谅我的幼稚,因为我总是依赖于框架。
芜湖不芜