首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Yaf_Route_Regex::__construct

(Yaf >=1.0.0)

Yaf_Route_Regex::__construct - Yaf_Route_Regex构造函数

描述

代码语言:javascript
复制
public Yaf_Route_Regex::__construct ( string $match , array $route [, array $map [, array $verify [, string $reverse ]]] )

参数

match

完整的正则表达式模式将用于匹配请求的URI,如果不匹配,Yaf_Route_Regex将返回FALSE

route

当匹配模式匹配请求uri时,Yaf_Route_Regex将使用它来决定要发送哪个m/c/a。

这个数组中的m/c/a中的任何一个都是optianl,如果你没有指定一个特定的值,它将被路由到默认值。

map

一个数组,用于为匹配结果中的captrues分配名称。

verify reverse

一个字符串,用于组装url,请参阅Yaf_Route_Regex::assemble()。

注意:该参数在2.3.0中介绍

返回值

示例

示例#1 Yaf_Route_Regex()示例

代码语言:javascript
复制
<?php
   /**
    * Add a regex route to Yaf_Router route stack
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Regex(
           "#^/product/([^/]+)/([^/])+#", //match request uri leading "/product"
           array(
               'controller' => "product",  //route to product controller,
           ),
           array(
              1 => "name",   // now you can call $request->getParam("name")
              2 => "id",     // to get the first captrue in the match pattern.
           )
        )
    );
?>

示例#2 Yaf_Route_Regex(从2.3.0开始)()示例

代码语言:javascript
复制
<?php
   /**
    * Use match result as MVC name
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Regex(
           "#^/product/([^/]+)/([^/])+#i", //match request uri leading "/product"
           array(
              'controller' => ":name", // route to :name, which is $1 in the match result as controller name
           ),
           array(
              1 => "name",   // now you can call $request->getParam("name")
              2 => "id",     // to get the first captrue in the match pattern.
           )
        )
    );
?>

示例#3 Yaf_Route_Regex和命名捕获地(从2.3.0开始)()示例

代码语言:javascript
复制
<?php
   /**
    * Use match result as MVC name
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Regex(
           "#^/product/(?<name>[^/]+)/([^/])+#i", //match request uri leading "/product"
           array(
           'controller' => ":name", // route to :name,
                                    // which is named capture group 'name' in the match result as controller name
           ),
           array(
              2 => "id",     // to get the first captrue in the match pattern.
           )
        )
    );
?>

示例#4 Yaf_Route_Regex()示例

代码语言:javascript
复制
<?php
   /**
    * Add a regex route to Yaf_Router route stack by calling addconfig
    */
    $config = array(
        "name" => array(
           "type"  => "regex",          //Yaf_Route_Regex route
           "match" => "#(.*)#",         //match arbitrary request uri
           "route" => array(
               'controller' => "product",  //route to product controller,
               'action'     => "dummy",    //route to dummy action
           ),
           "map" => array(
              1 => "uri",   // now you can call $request->getParam("uri")
           ),
        ),
    );
    Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
        new Yaf_Config_Simple($config));
?>

另请参阅

  • Yaf_Router::addRoute() - 将新路由添加到路由器中
  • Yaf_Router::addConfig() - 将配置定义的路由添加到路由器中
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Rewrite
  • Yaf_Route_Map

← Yaf_Route_Regex::assemble

Yaf_Route_Regex::route →

扫码关注腾讯云开发者

领取腾讯云代金券