2014-04-05 6 views
1
   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', 
        ), 
       ), 
      ); 

Zend Framework 2를 사용하는 JSON restfull API 프로그램의 일부인 모듈 벽에 대한 구성을보고 있습니다./myprogram/Wall/src/Controller 디렉토리에는 IndexController 파일이 있습니다. .php 그리고 그 안에는 네임 스페이스가 'namespace Wall \ Controller'로 선언됩니다. 내 질문은 'invokables'에 관한 것입니다. '=>'의 오른쪽은 내가 이해한다면 컨트롤러 클래스 이름과 네임 스페이스를 참조한다는 의미입니다. '=>'의 왼쪽에있는 것은 무엇입니까 'Wall \ Controller \ Index'가 무엇인지에 대한 설명을 찾고 있습니다. Zend Framework 2. Invokables

+0

관련 항목 : http://stackoverflow.com/questions/15039144/what-is-the-sense-of-naming-invokables-like-classes – raina77ow

답변

4

실제로는 단지 key입니다. 구성 내의 배열은 key => value 스키마와 함께 저장됩니다. 문자열 Module\Controller\Foo은 그 이름입니다. module-controller-foo라고 적어도 라우트 구성 내에서 이와 같이 사용할 수 있습니다.

+0

더 많은 downvoters가있을 경우, 이 대답을 하향 기울입니다. 콘텐츠가 잘못되었다는 것이 현명하지 않으므로 추론을 설명하여 개선 할 수 있도록하시기 바랍니다. – Sam

5

invokables 당신이 호출 할 수있는 클래스를 정의 ... 게시 주셔서 감사합니다. , 당신이 준 예에서와 같이, 배열을 전달하여 또한 별칭을 정의 할 수 있습니다

'invokables' => array(
    'Some\Namespace\Class', 
    'Some\Namespace\OtherClass', 
), 

:

'invokables' => array(
    'Wall\Controller\Index' => 'Wall\Controller\IndexController', 
), 

그것은이로 호출 가능한 Wall\Controller\Index을 정의 당신은 일반적으로 다음과 같이 호출 할 수있는 클래스를 정의 할 별칭은 Wall\Controller\IndexController입니다.