이 기사의 예에서는 Zend Framework 라우터의 사용법을 설명합니다. 참고하실 수 있도록 공유해 드리며, 세부 내용은 다음과 같습니다.
라우팅은 URI의 끝점(기본 URL의 URI 부분을 따라감)을 제거하고 이를 매개변수로 분해하는 프로세스입니다. 요청을 수락해야 하는 모듈, 컨트롤러 및 작업을 결정합니다.
모듈, 컨트롤러, 액션 및 해당 매개변수는 Zend_Controller_Request_Http 개체에 패키지되어 있습니다.
공유기 사용하기
공유기를 올바르게 사용하기 위해서는 초기화가 필요합니다.
프런트엔드 컨트롤러 인스턴스의 getRouter() 메소드를 통해 라우터를 생성할 수 있습니다. 이 메서드에는 매개 변수가 필요하지 않으며 이 메서드를 실행하면 Zend_Controller_Router_Rewrite 개체가 반환될 수 있습니다.
라우터를 생성한 후 일부 사용자 정의 경로를 추가해야 합니다. 이 작업은 Zend_Controller_Router_Rewrite 개체의 addRoute() 메서드를 통해 수행할 수 있습니다.
코드:
<?php /** 演示创建路由器的过程 */ require_once 'Zend/Controller/Front.php'; //引用Zend_Controller_Front.php $ctrl = Zend_Controller_Front::getInstance(); //创建一个前端控制器 $router = $ctrl->getRouter(); //返回一个默认路由,前端控制器功能很强大啊 $router->addRoute('user',new Zend_Controller_Router_Route('user/:username',array('controller'=>'user','action'=>'info')));
기본 경로 4개
1. 기본 경로
정의: 기본 경로는 RewriteRouter에 저장된 'default'라는 간단한 Zend_Controller_Router_Route_Module 개체입니다.
2. 표준 프레임워크 라우팅
정의: Zend_Controller_Router_Route는 표준 프레임워크 라우팅입니다.
예:
<?php //定义标准框架路由 $route = new Zend_Controller_Router_Route('author/:username', array( 'controller'=>'profile', 'action'=>'userinfo' )); //向路由器中添加定义的路由 $router->addRoute('user',$route);
참고: 헷갈린다고 했는데, 로그 코딩이 쉽지 않고, 잘 모르겠다. 잘 이해가 안 가네요.
3. 정적 라우팅
정의: Zend_Controller_Router_Route_Static 형태로 특정 경로가 설정됩니다.
예:
<?php //定义静态路由 $route = new Zend_Controller_Router_Route_Static( 'login', array( 'controller'=>'auth', 'action'=>'login' )); //向路由器中添加定义的路由 $router->addRoute('login',$route);
위 경로는 http://domain.com/login의 URL과 일치하여 다음으로 전달됩니다. AuthController::loginAction() 메소드에서.
4. 정규식 라우팅
Zend_Controller_Router_Route_Regex
사례:
<?php //正则表达式路由 $route = new Zend_Controller_Router_Route_Regex( 'archive/(\d+)', array( 'controller'=>'archive', 'action'=>'show' )); //向路由器中添加定义的路由 $router->addRoute('archive',$route);
분석:
정규식 경로 정의의 첫 번째 매개변수에 있는 동적 부분("/" 뒤의 내용)은 더 이상 변수가 아니라 일반 하위 패턴입니다.
이 예에서는 http://domain.com/archive/2008 일치에 성공한 후 다음과 같은 결과 값 배열이 반환됩니다.
$values = array( 1=>'2008', 'controller'=>'archive', 'action'=>'show' );
후기:
콘셉트가 너무 많아서 너무 어렵다고 하더군요.
이 기사가 Zend Framework 프레임워크를 기반으로 하는 모든 사람의 PHP 프로그래밍에 도움이 되기를 바랍니다.
Zend Framework 라우터 사용법과 관련 기사에 대한 더 자세한 예를 보려면 PHP 중국어 웹사이트를 주목하세요!