动手开发一个简易的 PHP for Git Server 第二章

来源:互联网 发布:nginx是什么服务器 编辑:程序博客网 时间:2024/06/05 16:12

router.php

class Router{    public $patterns = [];    public function get($pattern, $callback)    {        $this->patterns[] = ['GET', $pattern, $callback];    }    public function post($pattern, $callback)    {        $this->patterns[] = ['POST', $pattern, $callback];    }    public function head($pattern, $callback)    {        $this->patterns[] = ['HEAD', $pattern, $callback];    }    public function any($methods = ['get', 'head', 'post'], $pattern, $callback)    {        foreach ($methods as $method) {            call_user_func([$this, $method], $pattern, $callback);        }    }    public function run()    {        $method = $_SERVER['REQUEST_METHOD'];        $uri = $_SERVER['PHP_SELF'];        foreach ($this->patterns as $pattern) {            if($method == $pattern[0] && preg_match("~{$pattern[1]}~ims", $uri, $match)) {                $log = sprintf('%s [%s] %s', date('Y-m-d H:i:s'), $method, $_SERVER['REQUEST_URI']) . PHP_EOL;                file_put_contents('log.data', $log, FILE_APPEND);                call_user_func($pattern[2]);                return false;            }        }    }}

这里 router 做的并不仔细,仅仅是用于展现流程,不建议使用于生产环境,这里仅做学习研究使用

原创粉丝点击