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

Php Symfony自定义配置-命名空间问题,php,symfony,Php,Symfony,按照在上发布的建议,我陷入了名称空间问题 在\src\AppBundle\DependencyInjection中,我有两个文件: AppExtension.php: <?php namespace AppBundle\DependencyInjection; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\Config\FileLocator; use Symfony\C

按照在上发布的建议,我陷入了名称空间问题

\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

    }
}
结果:

PHP致命错误:在第22行的/var/www/dev.investmentopportunities.pl/src/AppBundle/DependencyInjection/AppExtension.PHP中找不到类“AppBundle\DependencyInjection\Configuration” [2015-08-02 10:39:36]php.EMERGENCY:致命错误:未找到类'AppBundle\DependencyInjection\Configuration'{“类型”:1,“文件”:/var/www/dev.investmentopportunities.pl/src/AppBundle/DependencyInjection/AppExtension.php”,“行”:22,“级别”:6143,“堆栈”:[]}

不幸的是,我自己找不到错误。我试图重命名文件,但仍然出现错误。你能告诉我我做错了什么吗

更新1:

<?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

    }
}
正如@San Thapa所建议的,我也尝试删除“use”命令。这导致:

PHP致命错误:在第21行的/var/www/dev.investmentopportunities.pl/src/AppBundle/DependencyInjection/AppExtension.PHP中找不到类“AppBundle\DependencyInjection\Configuration” [2015-08-02 12:05:27]php.EMERGENCY:致命错误:未找到类'AppBundle\DependencyInjection\Configuration'{“类型”:1,“文件”:/var/www/dev.investmentopportunities.pl/src/AppBundle/DependencyInjection/AppExtension.php”,“行”:21,“级别”:6143,“堆栈”:[]}

[Symfony\Component\Debug\Exception\ClassNotFoundException] 试图从命名空间“AppBundle\Dependenc”加载类“Configuration” “注射”。 您是否忘记了“Symfony\Bundle\TwigBundle\Depend”等的“use”语句 encyInjection\Configuration”,“Symfony\Bundle\DebugBundle\DependencyInjecti 在\Configuration上,“Symfony\Bundle\WebProfilerBundle\DependencyInjection\Co” 配置“,”Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestB undle\DependencyInjection\Configuration”,“Symfony\Bundle\FrameworkBundle\D ependencyInjection\Configuration”、“Genemu\Bundle\FormBundle\DependencyInje” Action\Configuration”、“条令\ORM\Configuration”、“条令\DBAL\Configur 定义“,”条令\Bundle\DoctrineCacheBundle\DependencyInjection\Configurat 离子“,”Symfony\Bundle\SwiftmailerBundle\DependencyInjection\Configuration“, “Symfony\Bundle\monogbundle\DependencyInjection\Configuration”、“Symfony” \Bundle\AsseticBundle\DependencyInjection\Configuration”,“Sensio\Bundle\Fr ameworkExtraBundle\DependencyInjection\Configuration”,“PUGX\AutocompleterB undle\DependencyInjection\Configuration”,“Knp\Bundle\PaginatorBundle\Dependen dencyInjection\Configuration”,“FOS\UserBundle\DependencyInjection\Configur “独立”或“条令\Bundle\DoctrineBundle\DependencyInjection\Configuration” “


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

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

<?php

我不确定结构。。。可能您忘了再添加一个end()…

在这种情况下不需要使用名称空间,因为两个文件都位于同一目录中并由同一名称空间封闭,您可以直接使用它,而无需使用
use
语句。您好,谢谢您的提示。我一开始就试过了,但仍然导致了错误。如果您在开发环境中运行项目,请尝试在开发时清除缓存。清除缓存在大多数情况下对我有效
<?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();