이 글은 주로 PHP 프레임워크 Yaf 라우팅 rewriting_php에 대한 자세한 예제를 소개합니다. 관심 있는 친구들이 참고하면 도움이 될 것입니다.
일반적으로 사이트 URL은 친숙한 URL 형식으로 다시 작성됩니다. 웹서버(Nginx) 구성에서 다시 작성하거나 터미널에서 수행할 수 있습니다.
다음은 Yaf 프레임워크를 사용하여 URL을 다시 작성하는 것입니다. 그리고 나중에 보기 쉽게 정리
YAF의 URL 재작성 방법은 주로 다음과 같으며 포괄적으로 사용할 수 있습니다
방법 1: 구성 파일에서
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | ;a rewrite route match request /product
*
routes.route_name1.type= "regex"
routes.route_name1.match= "#^list/([^/]*)/([^/]*)#"
routes.route_name1.route.controller=Index
routes.route_name1.route.action=action
routes.route_name1.map.1=name
routes.route_name1.map.2=value
;a simple route match /**?c=controller&a=action&m=module
routes.route_name2.type= "simple"
routes.route_name2.controller=c
routes.route_name2.module=m
routes.route_name2.action=a
;a simple router match /**?r=PATH_INFO
routes.route_name3.type= "supervar"
routes.route_name3.varname=r
;a map route match any request to controller
routes.route_name4.type= "map"
routes.route_name4.controllerPrefer=TRUE
routes.route_namer.delimiter= "#!"
|
로그인 후 복사
다음에 초기화 기능을 추가하세요 Bootstrap.php, 함수 이름은 필요에 따라 선택할 수 있습니다. 호출하려면 _로 시작해야 합니다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | <?php
class Bootstrap extends Yaf_Bootstrap_Abstract{
public function _initConfig() {
$config = Yaf_Application::app()->getConfig();
Yaf_Registry::set( "config" , $config );
}
public function _initRoute(Yaf_Dispatcher $dispatcher ) {
$router = $dispatcher ->getRouter();
$router ->addConfig(Yaf_Registry::get( "config" )->routes);
product/list/22/foo
* will be matched by this route, and result:
*
* [module] =>
* [controller] => product
* [action] => info
* [method] => GET
* [params: protected ] => Array
* (
* [id] => 22
* [name] => foo
* )
*
*/
$route = new Yaf_Route_Rewrite(
"/product/list/:id/:name" ,
array (
"controller" => "product" ,
"action" => "info" ,
)
);
$router ->addRoute('dummy', $route );
}
?>
|
로그인 후 복사
방법 2: 배열 모드에서 프로그램에서 직접 구성
다음 함수가 배치됩니다. Bootstrap.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | public function _initRoute(Ap_Dispatcher $dispatcher ) {
$router = Ap_Dispatcher::getInstance()->getRouter();
$routeConfig = array (
$router = Ap_Dispatcher::getInstance()->getRouter();
$routeConfig = array (
"item" => array (
"type" => "regex" ,
"match" => "#^/(software|game)/(.*).html$#" ,
"route" => array ('action' => 'item'),
"map" => array ( 1 => 'data_type', 2 => 'docid' ),
),
"category" => array (
"type" => "regex" ,
"match" => "#^/(software|game|video)/(.*)/(list_(.*).html)?$#" ,
"route" => array ('action' => 'list' ),
"map" => array ( 1 => 'data_type', 2 => 'cid',4 => 'page_num' ),
),
"name" => array (
"type" => "rewrite" ,
"match" => "/user-list/:a/:id" ,
"route" => array (
'controller' => "user" ,
'action' => ":a" ,
),
),
);
$router ->addConfig( new Ap_Config_Simple( $routeConfig ));
}
|
로그인 후 복사
방법 3:
1 2 3 4 5 6 7 8 9 10 11 | Yaf_Dispatcher::getInstance()->getRouter()->addRoute( "name" ,
new Yaf_Route_rewrite(
"/product/:name/:id/*" ,
array (
'controller' => "product" ,
),
)
);
|
로그인 후 복사
관련 권장 사항:
PHP7.1에서 설치 yaf확장 단계 자세한 설명
Yaf 프레임워크 설치 가이드
PHP7.1 설치 yaf확장 방법
위 내용은 PHP 프레임워크 Yaf 경로 rewriting_php 예제 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!