2012-05-17 3 views
1

내가 해결할 수없는 문제는 젠드 프레임 워크 2의 경로입니다.zf2에서 di/instance/alias없이 라우트를 설정하는 방법은 무엇입니까?

나는 zend skeleton application을 사용합니다. zf1과 같은 컨트롤러와 적절한 뷰 파일을 만들었습니다. 그리고 만약 내가 별칭을 추가하기 전까지 브라우저 응용 프로그램에서 제어 된 생성 된 404 반환 코드를 반환합니다.

<?php 
return array(
    'di' => array(
     'instance' => array(
      'alias' => array (
       'login' => 'Application\Controller\LoginController', 
       'logout' => 'Application\Controller\LogoutController', 
       'user' => 'Application\Controller\UserController', 
      ), 

그리고 모든 컨트롤러 파일을 별칭 배열에 추가해야합니다.

별칭을 추가하지 않고 기본 경로를 만드는 방법은 무엇입니까?

답변

2

인스턴스 별칭은 경로에서 사용하기위한 것이 아니며 DI에 유용한 "바로 가기"입니다. 내가 당신에게 제안

// Setup for router and routes 
return array(
    'di' => array(
     'instance' => array(

     .... 

      // Setup for router and routes 
     'Zend\Mvc\Router\RouteStack' => array(
      'parameters' => array(
       'routes' => array(
        'default' => array(
         'type' => 'Zend\Mvc\Router\Http\Segment', 
         'options' => array(
          'route' => '/[:controller[/:action]]', 
          'constraints' => array(
           'controller' => '[a-zA-Z][a-zA-Z0-9_-]*', 
           'action'  => '[a-zA-Z][a-zA-Z0-9_-]*', 
          ), 
          'defaults' => array(
           'controller' => 'Application\Controller\IndexController', 
           'action'  => 'index', 
          ), 
         ), 
        ), 
        'home' => array(
         'type' => 'Zend\Mvc\Router\Http\Literal', 
         'options' => array(
          'route' => '/', 
          'defaults' => array(
           'controller' => 'Application\Controller\IndexController', 
           'action'  => 'index', 
          ), 
         ), 
        ), 
       ), 
      ), 
     ), 

: 당신이 당신의 config 파일에서이 작업을 수행 할 수있는 규칙 설정 노선에,

// get the di locator 
$di = $e->getTarget()->getLocator(); 
// get instance by alias 
$loginController = $di->get('login'); 

대신 : 예를 들어 , 당신은 모듈의 이벤트를 호출하는 방법 내부에있어 가정 Akrabat's Getting started tutorial

+0

구성 파일에이 (Zend \ Mvc \ Router \ RouteStack) 섹션이 있지만 작동하지 않는 것 같습니다. 해골 응용 프로그램을 다시 복제해야합니까? – rdo

+0

application.config.php에서 응용 프로그램 모듈을 구성 했습니까? 한번보세요 [링크] (http://packages.zendframework.com/docs/latest/manual/en/zend.mvc.quick-start.html) – seltzlab

관련 문제