我在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文件时,第一个文件失败时出现错误:
在...
中的非对象上调用成员函数setParameter()
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
,这可以解析要导入的文件的类型。
致命错误:未捕获的异常&#39; Symfony \ Component \ Config \ Exception \ FileLoaderLoadException&#39;有消息&#39;无法加载资源&#34; /Users/carsten/Workspace/PHP/black-tie/consts.php"。&#39;在/Users/carsten/Workspace/PHP/black-tie/vendor/symfony/config/Symfony/Component/Config/Loader/Loader.php:73
我该如何解决这个问题?
答案 0 :(得分:0)
我猜可能原因在于文件路径。您尝试使用
导入文件<import resource="consts.php"/>
所以FileLoader在根目录中查找它,但可能是位于app / config目录(或其他地方)的文件。检查路径!