一个简单的php路由类

开发技术 作者: 2024-07-21 09:40:01
介绍《PHP实战:一个简单的php路由类》开发教程,希望对您有用。

《PHP实战:一个简单的PHP路由类》要点:
本文介绍了PHP实战:一个简单的PHP路由类,希望对您有用。如果有疑问,可以联系我们。

PHP实战本文实例为大家分享了PHP编写一个简单的路由类,供大家参考,具体内容如下

@H_403_11@PHP实战 <?PHP namespace cmhc\Hcrail; class Hcrail { /** * callback function * @var callable */ protected static $callback; /** * match string or match regexp * @var string */ protected static $match; protected static $routeFound = false; /** * deal with get,post,head,put,delete,options,head * @param $method * @param $arguments * @return */ public static function __callstatic($method,$arguments) { self::$match = str_replace("//","/",dirname($_SERVER['PHP_SELF']) . '/' . $arguments[0]); self::$callback = $arguments[1]; self::dispatch(); return; } /** * processing ordinary route matches * @param string $requestUri * @return */ public static function normalMatch($requestUri) { if (self::$match == $requestUri) { self::$routeFound = true; call_user_func(self::$callback); } return; } /** * processing regular route matches * @param string $requestUri * @return */ public static function regexpMatch($requestUri) { //处理正则表达式 $regexp = self::$match; preg_match("#$regexp#",$requestUri,$matches); if (!empty($matches)) { self::$routeFound = true; call_user_func(self::$callback,$matches); } return; } /** * dispatch route * @return */ public static function dispatch() { if (self::$routeFound) { return ; } $requestUri = parse_url($_SERVER['REQUEST_URI'],PHP_URL_PATH); $requestMethod = $_SERVER['REQUEST_METHOD']; if (strpos(self::$match,'(') === false) { self::normalMatch($requestUri); } else { self::regexpMatch($requestUri); } } /** * Determining whether the route is found * @return boolean */ public static function isNotFound() { return !self::$routeFound; } }

PHP实战下载地址:https://github.com/cmhc/Hcrail

PHP实战希望本文所述对大家学习PHP程序设计有所帮助.

原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_48164.html