数码资讯
用于处理REST请求的PHP路由类共享
复制代码代码如下所示: < PHP 级路由器{ 路由表 私有$路由器=数组( 阵列(名字=用户列表 阵列(名字=用户信息 阵列(名字=因为 阵列(名字=userupdate 阵列(名字=userdel ); 输入/输入 公共功能分派(){ URL _server美元美元{ =request_uri}
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
复制代码代码如下所示:
< PHP
级路由器{
路由表
私有$路由器=数组(
阵列(名字=用户列表
阵列(名字=用户信息
阵列(名字=因为
阵列(名字=userupdate
阵列(名字=userdel
);
输入/输入
公共功能分派(){
URL _server美元美元{ =request_uri};
方法_server美元美元{ =request_method};
foreach(美元->路由器为路由器){
模式$路由器 模式};
美元=爆炸(
如果(strcasecmp($拍{ 0 },$方法)= = 0){
是否匹配当前的路由
$params =美元-> checkurl($方法,strtolower($url),strtolower($拍{ 1 }));
如果($params!= NULL){
array_shift($params);
操作$路由器 };
找到第一个匹配路由,然后返回
返回这个->调用(合动作,$params);
}
}
}
404错误;
404 错误
}
私有函数调用(合动作,$params){
$行为=爆炸(#
美元美元classname =行为{ 0 }。动作;
美元美元methodename =行为{ 1 };
actiondir美元= dirname(__file__ directory_separator)。动作;
加载操作文件
类文件= actiondir美元美元美元。directory_separator类名。;
如果(!file_exists(合类文件)){
404 错误
404错误,未找到动作;
返回;
{人}
要求$类文件;
使用反射的执行方法
RC =新reflectionclass美元(约合className);
如果(!RC—> hasmethod美元($ methodename)){
404 错误
404错误,没有找到方法;
返回;
{人}
例如美元美元= RC -> newInstance();
$方法= $ RC -> getMethod($调用);
方法:invokeargs美元(合实例,$params);
}
}
}
常规匹配检查,并提取参数
私有函数checkurl($方法,$str,$模式){
检查$ $;
$ =数组();
$模式= LTrim(RTrim(合模式, / ));
($模式= / 。str_replace / / $模式
$模式= str_replace(
模式$;
/ / $str =元结构 / / ;
如果(preg_match(合模式,$str,马元)> 0){
返回$ MA;
}
返回null;
}
}
>
< PHP
级路由器{
路由表
私有$路由器=数组(
阵列(名字=用户列表
阵列(名字=用户信息
阵列(名字=因为
阵列(名字=userupdate
阵列(名字=userdel
);
输入/输入
公共功能分派(){
URL _server美元美元{ =request_uri};
方法_server美元美元{ =request_method};
foreach(美元->路由器为路由器){
模式$路由器 模式};
美元=爆炸(
如果(strcasecmp($拍{ 0 },$方法)= = 0){
是否匹配当前的路由
$params =美元-> checkurl($方法,strtolower($url),strtolower($拍{ 1 }));
如果($params!= NULL){
array_shift($params);
操作$路由器 };
找到第一个匹配路由,然后返回
返回这个->调用(合动作,$params);
}
}
}
404错误;
404 错误
}
私有函数调用(合动作,$params){
$行为=爆炸(#
美元美元classname =行为{ 0 }。动作;
美元美元methodename =行为{ 1 };
actiondir美元= dirname(__file__ directory_separator)。动作;
加载操作文件
类文件= actiondir美元美元美元。directory_separator类名。;
如果(!file_exists(合类文件)){
404 错误
404错误,未找到动作;
返回;
{人}
要求$类文件;
使用反射的执行方法
RC =新reflectionclass美元(约合className);
如果(!RC—> hasmethod美元($ methodename)){
404 错误
404错误,没有找到方法;
返回;
{人}
例如美元美元= RC -> newInstance();
$方法= $ RC -> getMethod($调用);
方法:invokeargs美元(合实例,$params);
}
}
}
常规匹配检查,并提取参数
私有函数checkurl($方法,$str,$模式){
检查$ $;
$ =数组();
$模式= LTrim(RTrim(合模式, / ));
($模式= / 。str_replace / / $模式
$模式= str_replace(
模式$;
/ / $str =元结构 / / ;
如果(preg_match(合模式,$str,马元)> 0){
返回$ MA;
}
返回null;
}
}
>
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。