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();