\Router

REST api handler

这个路由器模块的功能主要是解析所请求的url字符串,然后转换为对Controller的反射调用

Summary

Methods
Properties
Constants
HandleRequest()
getApp()
AssignController()
mb_parse_url()
No public properties found
fileNamePattern
identifierPattern
No protected methods found
No protected properties found
N/A
assignImpl()
No private properties found
N/A

Constants

fileNamePattern

fileNamePattern = '[a-zA-Z0-9\_\.]+'

设置简写字符串的匹配的规则 文件名除了一些在文件系统上的非法字符串之外,其他的字符串都是能够被匹配上的 但是在这里规定文件名只能够使用数字字母以及小数点下划线

identifierPattern

identifierPattern = "[a-zA-Z0-9\_]+"

php之中的标识符则只允许字母,数字和下划线

Methods

HandleRequest()

HandleRequest(object  $app) 

进行自动处理请求主要是用户通过实例化一个class之后 这个函数会对url的解析结果从class实例对象之中匹配出 相同的函数名然后进行调用

Parameters

object $app

控制器对象实例

getApp()

getApp() : string

获取当前所访问的应用程序的名称

Returns

string —

Web app name.

AssignController()

AssignController(string  $html) 

为了方便,在html里面的控制器的链接可能为简写形式,例如:``{index/upload}`` 则根据控制器的解析规则,应该在这个函数之中被拓展为结果url字符串:

/index.php?app=upload

在上面的例子之中index为php文件名,upload则是控制器之中的一个控制器api函数

如果控制器的php文件不位于根目录下,则可以通过添加前缀的tag的方式进行区分标识:

例如,控制器php文件在api文件夹下面的user.php文件之中,则可以简写为: {<api>user/modify_password} 表示在api/user.php文件之中

如果在更深一层文件夹之中,则可以简写为{<api/user>security/modify_password} 表示在api/user/security.php文件之中

不过并不建议将php控制器文件放在很深的文件夹之中,添加这个前缀只是为了方便对控制器 按照功能进行分组,便于组织项目代码

Parameters

string $html

包含有路由器规则占位符的HTML文档

mb_parse_url()

mb_parse_url(  $url) : array

UTF-8 aware parse_url() replacement.

Parameters

$url

Returns

array

assignImpl()

assignImpl(  $html,   $matches) 

Parameters

$html
$matches