导入的依赖注入配置没有容器
Imported dependency injection configuration has no container
我在 Symfonys 依赖注入配置之一中访问 $container
对象时遇到问题。我只是在使用 di-component,而不是框架。有一个主配置文件驻留在我的项目的根目录中,并导入一些基本配置以及一些参数:
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<imports>
<import resource="consts.php"/>
<import resource="src/Base/dependencies.xml"/>
</imports>
</container>
虽然导入第二个 xml 文件有效,但第一个文件失败错误:
Call to a member function setParameter( ) on a non-object in ...
consts.php
文件只有两行:
<?php
$container->setParameter('dir.root', __DIR__);
$container->setParameter('dir.data', __DIR__.'/data');
根据 documentation on setting external Parameters 一切正常,还是我遗漏了什么?
在此先感谢您的帮助!
编辑:
在加载 DI-Container 的脚本中,我不小心手动导入了 consts.php
。这导致了上述错误。无论如何,删除这个导入导致 Symfonys FileLoaderLoadException
,当找不到 class 时抛出它,可以解析要导入的文件的类型。
Fatal error: Uncaught exception 'Symfony\Component\Config\Exception\FileLoaderLoadException' with message 'Cannot load resource "/Users/carsten/Workspace/PHP/black-tie/consts.php".' in /Users/carsten/Workspace/PHP/black-tie/vendor/symfony/config/Symfony/Component/Config/Loader/Loader.php:73
我该如何解决这个问题?
我可以猜到原因在文件路径中。您尝试使用
导入文件
<import resource="consts.php"/>
所以 FileLoader 在根目录中寻找它,但可能文件位于 app/config 目录(或其他位置)。检查路径!
我在 Symfonys 依赖注入配置之一中访问 $container
对象时遇到问题。我只是在使用 di-component,而不是框架。有一个主配置文件驻留在我的项目的根目录中,并导入一些基本配置以及一些参数:
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<imports>
<import resource="consts.php"/>
<import resource="src/Base/dependencies.xml"/>
</imports>
</container>
虽然导入第二个 xml 文件有效,但第一个文件失败错误:
Call to a member function setParameter( ) on a non-object in ...
consts.php
文件只有两行:
<?php
$container->setParameter('dir.root', __DIR__);
$container->setParameter('dir.data', __DIR__.'/data');
根据 documentation on setting external Parameters 一切正常,还是我遗漏了什么?
在此先感谢您的帮助!
编辑:
在加载 DI-Container 的脚本中,我不小心手动导入了 consts.php
。这导致了上述错误。无论如何,删除这个导入导致 Symfonys FileLoaderLoadException
,当找不到 class 时抛出它,可以解析要导入的文件的类型。
Fatal error: Uncaught exception 'Symfony\Component\Config\Exception\FileLoaderLoadException' with message 'Cannot load resource "/Users/carsten/Workspace/PHP/black-tie/consts.php".' in /Users/carsten/Workspace/PHP/black-tie/vendor/symfony/config/Symfony/Component/Config/Loader/Loader.php:73
我该如何解决这个问题?
我可以猜到原因在文件路径中。您尝试使用
导入文件<import resource="consts.php"/>
所以 FileLoader 在根目录中寻找它,但可能文件位于 app/config 目录(或其他位置)。检查路径!