Zend Framework 2. Invokables

Eae*_*Eae 1 controller zend-framework2

                return array(
                'router' => array(
                    'routes' => array(
                        'wall' => array(
                            'type' => 'Zend\Mvc\Router\Http\Segment',
                            'options' => array(
                                'route' => '/api/wall[/:id]',
                                'constraints' => array(
                                    'id' => '\w+'
                                ),
                                'defaults' => array(
                                    'controller' => 'Wall\Controller\Index'
                                ),
                            ),
                        ),
                    ),
                ),
                'controllers' => array(
                    'invokables' => array(
                        'Wall\Controller\Index' => 'Wall\Controller\IndexController',
                    ),
                ),
            );
Run Code Online (Sandbox Code Playgroud)

我正在查看模块Wall的配置,它是Zend Framework 2的JSON restfull API程序的一部分.在/ myprogram/Wall/src/Controller目录中有一个文件IndexController.php,其中名称空间被声明为'namespace长城\控制器".我的问题是关于'invokables'.'=>'的右侧对我有意义,如果我理解正确,它会引用控制器类名和命名空间.在'=>的左侧是什么'我仍在寻找'Wall\Controller\Index'的解释.

感谢您的发表...

pho*_*ops 5

invokables定义您可以调用的类.您通常会定义可以像这样调用的类:

'invokables' => array(
    'Some\Namespace\Class',
    'Some\Namespace\OtherClass',
),
Run Code Online (Sandbox Code Playgroud)

您也可以通过传递数组来定义别名,就像您给出的示例一样:

'invokables' => array(
    'Wall\Controller\Index' => 'Wall\Controller\IndexController',
),
Run Code Online (Sandbox Code Playgroud)

它将Wall\Controller\Indexinvokable 定义为别名Wall\Controller\IndexController.