导入的依赖注入配置没有容器

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 目录(或其他位置)。检查路径!