根据Loading custom config file for app in 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致命错误:第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'{“type”:1,“file”:“/ var / www / dev.investmentopportunities.pl / src / AppBundle / DependencyInjection / AppExtension.php ”, “线”:22, “电平”:6143, “堆叠”:[]}
不幸的是我遇到了自己发现错误的问题 . 我试图重命名文件但仍然发生错误 . 你能告诉我我做错了什么吗?
UPDATE 1:
由于@San Thapa的消化,我也尝试删除“使用”命令 . 这导致:
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'{“type”:1,“file”:“/ var / www / dev.investmentopportunities.pl / src / AppBundle / DependencyInjection / AppExtension.php “,”“line”:21,“level”:6143,“stack”:[]} [Symfony \ Component \ Debug \ Exception \ ClassNotFoundException]尝试从命名空间“AppBundle \ Dependenc yInjection”加载类“Configuration” . 您是否忘记了“使用”声明,例如“Symfony \ Bundle \ TwigBundle \ Depend encyInjection \ Configuration”,“Symfony \ Bundle \ DebugBundle \ DependencyInjecti on \ Configuration”,“Symfony \ Bundle \ WebProfilerBundle \ DependencyInjection \ Co nfiguration”,“Symfony \ Bundle \ FrameworkBundle \ Tests \ Functional \ Bundle \ TestB undle \ DependencyInjection \ Configuration“,”Symfony \ Bundle \ FrameworkBundle \ D ependencyInjection \ Configuration“,”Genemu \ Bundle \ FormBundle \ DependencyInje ction \ Configuration“,”Doctrine \ ORM \ Configuration“,”Doctrine \ DBAL \ Configur “,”Doctrine \ Bundle \ DoctrineCacheBundle \ DependencyInjection \ Configurat ion“,”Symfony \ Bundle \ SwiftmailerBundle \ DependencyInjection \ Configuration“,”Symfony \ Bundle \ MonologBundle \ DependencyInjection \ Configuration“,”Symfony \ Bundle \ AsseticBundle \ DependencyInjection \ Configuration“ “,”Sensio \ Bundle \ Fr ameworkExtraBundle \ DependencyInjection \ Configuration“,”PUGX \ AutocompleterB undle \ DependencyInjection \ Configuration“,”Knp \ Bundle \ PaginatorBundle \ Depen dencyInjection \ Configuration“,”FOS \ UserBundle \ Dependen“ cyInjection \ Configur ation“或”Doctrine \ Bundle \ DoctrineBundle \ DependencyInjection \ Configuration“?
从浏览器访问网页似乎有点奇怪不会导致任何错误 .
1 回答
刚刚添加到Configuration.php的第一行:
并删除分号:
我不确定结构...也许你忘了添加一个结束()...