类似的问题已经在这里几次了,但不幸的是,我无法找到在那里需要的帮助。没有扩展能够加载“my_namespace”的配置
我想在Symfony(3.1)中创建一个自定义扩展类。我下面的食谱[1,2]但无论我怎么努力,我得到的错误在YamlFileLoader.php线404
InvalidArgumentException:没有扩展能够加载配置“czechnology_tools”(以[path_to_project] \ SRC \ Czechnology \ ToolsBundle \ DependencyInjection /../资源/配置\ holidays.yml)。看着命名空间 “czechnology_tools”,结果一无所获
类CzechnologyToolsExtension
:
<?php
namespace Czechnology\ToolsBundle\DependencyInjection;
// use ...
class CzechnologyToolsExtension extends Extension
{
public function load(array $configs, ContainerBuilder $container)
{
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('holidays.yml');
}
}
,并在同一目录下相应的Configuration.php
:
<?php
namespace Czechnology\ToolsBundle\DependencyInjection;
// use ...
class Configuration implements ConfigurationInterface
{
public function getConfigTreeBuilder()
{
$treeBuilder = new TreeBuilder();
$rootNode = $treeBuilder->root('czechnology_tools');
$rootNode
->children()
->scalarNode('calendar')->defaultValue('default')->end()
->end()
;
return $treeBuilder;
}
}
在YAML文件,我现在只是有虚拟内容,试图让它工作。 holidays.yml
:
czechnology_tools:
calendar: foo
如果我尝试在控制台中进行调试,我得到这个:
$ bin/console config:dump-reference czechnology_tools
# Default configuration for extension with alias: "czechnology_tools"
czechnology_tools:
calendar: default
所以这似乎是扩展设置正确,用正确的别名。但是,我仍然无法克服这个例外。任何提示?
是您在AppKernel中启用的包。 ? ... – Drmjo
@Dmm是的,该软件包在Kernel中注册,并且其中的所有服务都正常工作。 – Czechnology
您可以尝试找出配置名称。我遇到过很多次了,大部分时间symfony都期待着一个不同的名字。尝试在app/config.yml中设置配置'czechnology_tools'。暂时加载'holidays.yml'的行注释。现在你会得到类似''查找命名空间“czechnology_tools”的错误,找到<注册命名空间列表>'。在注册的命名空间中查找您的配置名称。 – Broncha