我有这样的课程,
use Doctrine\ORM\EntityManagerInterface;
class LoginTools {
private $em;
public function __construct(EntityManagerInterface $em)
{
$this->em = $em;
}
并在控制器中
$logTool = new LoginTools();
问题
自动接线是否应自动将EntityManagerInterface
传递到LoginTools
?
因为当我在不传递参数的情况下调用LoginTools
类时会出错
Too few arguments to function App\Utils\LoginTools::__construct(), 0 passed exactly 1 expected
谨此问候
维克多。
答案 0 :(得分:0)
如您所说,LoginTools
是一项服务。这意味着,您不必像在代码中那样创建代码,Symfony会为您创建它,而您只需将此服务注入控制器即可,而不是EntityManagerInterface
。
问题是Symfony具有DI容器,目的是根据config/services.yaml
中的配置创建服务,然后将其注入其他服务的构造函数/函数/属性中。毫无疑问,所有创建您的服务并将其注入其他服务的代码都是自动生成的,并由Symfony保存到var/cache
目录中,您可以自行检查。