Symfony自定义配置-命名空间问题


Symfony custom configuration - namespace issue

按照在symfony2中加载自定义配置文件中发布的建议,我陷入了命名空间问题。

'src'AppBundle'DependencyInjection我有两个文件:

AppExtension.php:

<?php
namespace AppBundle'DependencyInjection;
use Symfony'Component'DependencyInjection'ContainerBuilder;
use Symfony'Component'Config'FileLocator;
use Symfony'Component'DependencyInjection'Extension'PrependExtensionInterface;
use Symfony'Component'HttpKernel'DependencyInjection'Extension;
use Symfony'Component'DependencyInjection'Loader;
use Symfony'Component'Validator'Tests'Fixtures'Entity;
use AppBundle'DependencyInjection'Configuration;
/**
 * This is the class that loads and manages your bundle configuration
 */
class AppExtension extends Extension
{
    /**
     * {@inheritdoc}
     */
    public function load(array $configs, ContainerBuilder $container)
    {
        $configuration = new Configuration();
        $config = $this->processConfiguration($configuration, $configs);
        $container->setParameter('kh', $config['kh']);
        $loader = new Loader'YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
        $loader->load('general.yml'); # another file of yours
    }
}

Configuration.php :

<?
namespace AppBundle'DependencyInjection;
use Symfony'Component'Config'Definition'Builder'TreeBuilder;
use Symfony'Component'Config'Definition'ConfigurationInterface;
class Configuration implements ConfigurationInterface
{
    public function getConfigTreeBuilder()
    {
         $treeBuilder = new TreeBuilder();
        $rootNode = $treeBuilder->root('kh');
         $rootNode
            ->children()
            ->arrayNode('tags')
            ->prototype('array')
                ->children()
                    ->scalarNode('name')->isRequired()->end();
                    ->scalarNode('role')->isRequired()->end();
                    ->scalarNode('priority')->isRequired()->end();
                    ->scalarNode('label')->isRequired()->end();
                ->end();
            ->end();
        ->end();
        return $treeBuilder;
    }
}

似乎我把文件命名为执行文件时犯了一些错误:

php app/console cache:clear --env=prod

结果:

PHP致命错误:类'AppBundle'DependencyInjection'Configuration'未在/var/www/dev.investmentopportunities.pl/src/AppBundle/DependencyInjection/AppExtension.php第22行找到[2015-08-02 10:39:36] php。紧急:致命错误:类'AppBundle'DependencyInjection'Configuration'未找到{"type":1,"file":"/var/www/dev. investmentinvestments .pl/src/AppBundle/DependencyInjection/AppExtension.php","line":22,"level":6143,"stack":[]}

不幸的是,我有一个问题,找到自己的错误。我已经尝试重命名文件,但仍然发生错误。你能告诉我我做错了什么吗?

更新1:

正如@San Thapa所建议的,我也试图删除"use"命令。结果是:

PHP致命错误:类'AppBundle'DependencyInjection'Configuration'未在/var/www/dev.investmentopportunities.pl/src/AppBundle/DependencyInjection/AppExtension.php第21行找到[2015-08-02 12:05:27] php。紧急:致命错误:类'AppBundle'DependencyInjection'Configuration'未找到{"type":1,"file":"/var/www/dev. investment机会.pl/src/AppBundle/DependencyInjection/AppExtension.php","line":21,"level":6143,"stack":[]}

组件[Symfony ' '调试' ' ClassNotFoundException异常)试图从命名空间"AppBundle' dependencies"加载类"Configuration"yInjection"。你是不是忘记用use了?"Symfony '包' TwigBundle '依赖encyInjection '配置"、"Symfony '包' DebugBundle ' DependencyInjecti在配置"、"Symfony ' '包' WebProfilerBundle ' DependencyInjection '有限公司nfiguration"、"Symfony '捆捆' FrameworkBundle '测试功能' ' '的undle ' DependencyInjection '配置"、"Symfony '包' FrameworkBundle ' DependencyInjection '配置"、"包Genemu ' ' FormBundle ' DependencyInje"Doctrine'ORM'Configuration"、"Doctrine'DBAL' Configuration"、"Doctrine'ORM'Configuration"、"信息主义'包' DoctrineCacheBundle ' DependencyInjection ' Configurat离子"、"Symfony '包' SwiftmailerBundle ' DependencyInjection '配置","Symfony '包' MonologBundle ' DependencyInjection '配置","Symfony包' ' AsseticBundle ' DependencyInjection '配置"、"Sensio赞助'包' FrameworkExtraBundle ' DependencyInjection '配置"、"PUGX ' AutocompleterBundle ' DependencyInjection '配置"、"Knp '包' PaginatorBundle '开掘dencyInjection '配置"、"安全系数' UserBundle ' DependencyInjection ' Configur或"Doctrine'Bundle'DoctrineBundle'DependencyInjection'Configuration"?

从浏览器访问网页似乎有点奇怪,但没有导致任何错误。

刚刚添加到Configuration.php的第一行:

<?php

并删除分号:

$rootNode
        ->children()
        ->arrayNode('tags')
        ->prototype('array')
            ->children()
                ->scalarNode('name')->isRequired()->end()
                ->scalarNode('role')->isRequired()->end()
                ->scalarNode('priority')->isRequired()->end()
                ->scalarNode('label')->isRequired()->end()
            ->end()
        ->end()
    ->end();

我不确定结构…