> php教程 > PHP开发 > 본문

Zend Framework 라우터 사용 사례에 대한 자세한 설명

高洛峰
풀어 주다: 2017-01-06 09:48:04
원래의
1215명이 탐색했습니다.

이 기사의 예에서는 Zend Framework 라우터의 사용법을 설명합니다. 참고하실 수 있도록 공유해 드리며, 세부 내용은 다음과 같습니다.

라우팅은 URI의 끝점(기본 URL의 URI 부분을 따라감)을 제거하고 이를 매개변수로 분해하는 프로세스입니다. 요청을 수락해야 하는 모듈, 컨트롤러 및 작업을 결정합니다.

모듈, 컨트롤러, 액션 및 해당 매개변수는 Zend_Controller_Request_Http 개체에 패키지되어 있습니다.

공유기 사용하기

공유기를 올바르게 사용하기 위해서는 초기화가 필요합니다.

프런트엔드 컨트롤러 인스턴스의 getRouter() 메소드를 통해 라우터를 생성할 수 있습니다. 이 메서드에는 매개 변수가 필요하지 않으며 이 메서드를 실행하면 Zend_Controller_Router_Rewrite 개체가 반환될 수 있습니다.

라우터를 생성한 후 일부 사용자 정의 경로를 추가해야 합니다. 이 작업은 Zend_Controller_Router_Rewrite 개체의 addRoute() 메서드를 통해 수행할 수 있습니다.

코드:

<?php
/**
演示创建路由器的过程
*/
require_once &#39;Zend/Controller/Front.php&#39;;    //引用Zend_Controller_Front.php
$ctrl = Zend_Controller_Front::getInstance();  //创建一个前端控制器
$router = $ctrl->getRouter();          //返回一个默认路由,前端控制器功能很强大啊
$router->addRoute(&#39;user&#39;,new Zend_Controller_Router_Route(&#39;user/:username&#39;,array(&#39;controller&#39;=>&#39;user&#39;,&#39;action&#39;=>&#39;info&#39;)));
로그인 후 복사

기본 경로 4개

1. 기본 경로

정의: 기본 경로는 RewriteRouter에 저장된 'default'라는 간단한 Zend_Controller_Router_Route_Module 개체입니다.

2. 표준 프레임워크 라우팅

정의: Zend_Controller_Router_Route는 표준 프레임워크 라우팅입니다.

예:

<?php
//定义标准框架路由
$route = new Zend_Controller_Router_Route(&#39;author/:username&#39;,
array(
  &#39;controller&#39;=>&#39;profile&#39;,
  &#39;action&#39;=>&#39;userinfo&#39;
));
//向路由器中添加定义的路由
$router->addRoute(&#39;user&#39;,$route);
로그인 후 복사

참고: 헷갈린다고 했는데, 로그 코딩이 쉽지 않고, 잘 모르겠다. 잘 이해가 안 가네요.

3. 정적 라우팅

정의: Zend_Controller_Router_Route_Static 형태로 특정 경로가 설정됩니다.

예:

<?php
//定义静态路由
$route = new Zend_Controller_Router_Route_Static(
&#39;login&#39;,
array(
  &#39;controller&#39;=>&#39;auth&#39;,
  &#39;action&#39;=>&#39;login&#39;
));
//向路由器中添加定义的路由
$router->addRoute(&#39;login&#39;,$route);
로그인 후 복사

위 경로는 http://domain.com/login의 URL과 일치하여 다음으로 전달됩니다. AuthController::loginAction() 메소드에서.

4. 정규식 라우팅

Zend_Controller_Router_Route_Regex

사례:

<?php
//正则表达式路由
$route = new Zend_Controller_Router_Route_Regex(
  &#39;archive/(\d+)&#39;,
  array(
    &#39;controller&#39;=>&#39;archive&#39;,
    &#39;action&#39;=>&#39;show&#39;
  ));
//向路由器中添加定义的路由
$router->addRoute(&#39;archive&#39;,$route);
로그인 후 복사

분석:

정규식 경로 정의의 첫 번째 매개변수에 있는 동적 부분("/" 뒤의 내용)은 더 이상 변수가 아니라 일반 하위 패턴입니다.

이 예에서는 http://domain.com/archive/2008 일치에 성공한 후 다음과 같은 결과 값 배열이 반환됩니다.

$values = array(
1=>&#39;2008&#39;,
&#39;controller&#39;=>&#39;archive&#39;,
&#39;action&#39;=>&#39;show&#39;
);
로그인 후 복사

후기:

콘셉트가 너무 많아서 너무 어렵다고 하더군요.

이 기사가 Zend Framework 프레임워크를 기반으로 하는 모든 사람의 PHP 프로그래밍에 도움이 되기를 바랍니다.

Zend Framework 라우터 사용법과 관련 기사에 대한 더 자세한 예를 보려면 PHP 중국어 웹사이트를 주목하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!