【问题标题】:ZF2 ZendSkeleton why using '__NAMESPACE__' key in default route?ZF2 ZendSkeleton 为什么在默认路由中使用 '__NAMESPACE__' 键?
【发布时间】:2014-05-07 09:27:05
【问题描述】:

在ZF2骨架中,路由器配置使用一键:

'__NAMESPACE__' 

准确地说:

'__NAMESPACE__' => 'Application\Controller',

cf: https://github.com/zendframework/ZendSkeletonApplication/blob/master/module/Application/config/module.config.php#l32

我们尝试在我们的模块路由器配置中使用不带引号:

__NAMESPACE__ => 'Application\Controller',

但它似乎破坏了配置。

为什么我们用引号代替

 __NAMESPACE__

获得它的价值?

【问题讨论】:

    标签: namespaces routes zend-framework2


    【解决方案1】:

    因为默认情况下,配置文件没有声明命名空间。配置解析器可以读取字符串

    '__NAMESPACE__'

    并正确确定命名空间。

    如果你想不带引号使用它,你可以在你的配置文件中声明:

    namespace Application;
    

    并使用不带引号的__NAMESPACE__

    这就是为什么您有时会在 Doctrine 配置示例的教程中看到:

        'doctrine'        => array(
        'driver' => array(
            'application_entity' => array(
                'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
                'paths' => __DIR__ . '/../src/' . __NAMESPACE__ . '/Entity',
            ),
            'orm_default'  => array(
                'drivers' => array(
                    __NAMESPACE__ . '\Entity' => 'application_entity',
                )
            )
        )
    ),
    

    【讨论】:

    • 我现在明白,我们明确了默认路由使用哪个命名空间。这就是为什么使用:'__NAMESPACE__' 作为键而不是它的值谢谢:-)
    猜你喜欢
    • 2017-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-05
    • 2023-02-02
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    相关资源
    最近更新 更多