按照在symfony2中加载应用程序的自定义配置文件时发布的建议,我陷入了名称空间问题。
在\src\AppBundle\DependencyInjection
中,我有两个文件:
上诉。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致命错误:在/var/www/dev.investmentopportunities中找不到类“AppBundle\DependencyInjection\Configuration”。pl/src/AppBundle/DependencyInjection/AppExtension。php在线22[2015-08-02 10:39:36]php。紧急情况:致命错误:未找到类“AppBundle\DependencyInjection\Configuration”{“类型”:1,“文件”:“/var/www/dev.investmentopportunities.pl/src/AppBundle/DependencyInjection/AppExtension.php”,“行”:22,“级别”:6143,“堆栈”:[]}
不幸的是,我自己找不到错误。我试图重命名文件,但仍然出现错误。你能告诉我我做错了什么吗?
更新1:
正如@San Thapa所建议的,我也尝试删除“use”命令。这导致:
PHP致命错误:在/var/www/dev.investmentopportunities中找不到类“AppBundle\DependencyInjection\Configuration”。pl/src/AppBundle/DependencyInjection/AppExtension。php第21行[2015-08-02 12:05:27]php。紧急情况:致命错误:未找到类“AppBundle\DependencyInjection\Configuration”{“类型”:1,“文件”:“/var/www/dev.investmentopportunities.pl/src/AppBundle/DependencyInjection/AppExtension.php”,“行”:21,“级别”:6143,“堆栈”:[]}
[Symfony\Component\Debug\Exception\ClassNotFoundException]试图从命名空间“AppBundle\Dependenc yInjection”加载类“Configuration”。您是否忘记了“使用”语句,例如“Symfony\Bundle\TwigBundle\DependencyInjection\Configuration”、“Symfony\Bundle\DebugBundle\DependencyInjection\Configuration”、“Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestB undle\DependencyInjection\Configuration”,“Symfony\Bundle\FrameworkBundle\D ependencyInjection\Configuration”、“Genemu\Bundle\FormBundle\DependencyInjection\Configuration”、“条令\ORM\Configuration”、“条令\DBAL\Configuration”、“条令\Bundle\DoctrineCacheBundle\DependencyInjection\Configuration”、“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\DependencyInjection\confFOS\UserBundle\DependencyInjection\Configuration”或“条令\Bundle\DoctrineBundle\DependencyInjection\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();
我不确定结构...也许你忘了再加一个结尾...
本文向大家介绍thinkphp autoload 命名空间自定义 namespace,包括了thinkphp autoload 命名空间自定义 namespace的使用技巧和注意事项,需要的朋友参考一下 使用thinkPHP过程中,一些自定义的类库和第三方类库需要找一个合适的位置放置,放到系统默认的org文件夹感觉不太好,破坏了thinkPHP的原生目录。 就看了一下官方手册,可以在模块或者应用的
thinkphp5 新手, 想写个脚本,类型下面这样的: 执行的时候,提示 Fatal error: Class 'app\stock\service\Toshare' not found 然后 application/stock/service/Toshare.php 这个文件是在的。 且 命名空间 app\stock\service 确认也正常。 要点: application目录下原来有ad
ShardingSphere-5.0.0-beta 数据分片 配置项说明 命名空间:http://shardingsphere.apache.org/schema/shardingsphere/sharding/sharding-5.0.0.xsd <sharding:rule /> 名称 类型 说明 id 属性 Spring Bean Id table-rules (?) 标签 分片表规则配置
简介 ShardingSphere-JDBC 提供官方的 Spring 命名空间配置,使开发者可以非常便捷的整合 ShardingSphere-JDBC 和 Spring 框架。 Spring 命名空间配置项 配置示例 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3
命名空间是设计用来扑捉框架最常见用途和提供一个简化和简介的语法用来在应用程序中打开他们。设计是基于框架中的大规模依赖,并且可以划分为以下几个方面: Web/HTTP 安全- 最复杂的部分,设置过滤器和应用框架验证机制的相关服务bean,渲染登录和错误页面等等。 业务对象(方法)安全 - 业务层安全选项. AuthenticationManager - 处理来自框架其他部分的认证请求 AccessD
在这一章,我们将看看怎么创建一个命名空间配置来使用框架的主要功能。让我们假设你想要快速的使用命名空间配置添加验证支持和访问控制和一些测试的登录到一个已经存在的网站应用程序。然后我们看看如何将验证换刀数据库和其他的安全仓库。在后续章节我们将介绍更多高级的命名空间配置选项。 web.xml 配置 你需要做的第一件事情是添加下面的过滤器定义到你的web.xml 文件: <filter> <filter-