類似的問題已經在這裏幾次了,但不幸的是,我無法找到在那裏需要的幫助。沒有擴展能夠加載「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