;
}
exit();
}
不要看这个函数没有参数列表,其实它的参数可以是无限的。func_num_args这个方法就可以拿到调用它时传递的参数数组,然后把它打印在web中,随后中断程序。
6. 调用路由方法
\core\core::run();
这个方法先去调用route类,去获取到控制器和方法的名称,然后加载这个类。这里我定义了一个默认的初始化方法,意思是如果有一个名叫init的方法,不管是自己的方法还是继承过来的方法,都要先调用这个方法。这样做的好处是,之后的业务里可以对接口做统一或者单独的初始化或者拦截设置。
core::run()方法,看上边有整个core文件的代码。
调用的route类代码:
namespace core;
class route
{
private static $in = null;
private function __construct()
{
}
public static function Factory()
{
if (!isset(self::$in)) {
self::$in = new route();
}
return self::$in;
}
public function active()
{
$ctrl = 'index';
$action = 'index';
if (isset($_SERVER[REQUEST_URI]) && $_SERVER[REQUEST_URI] != '/') {
$path = strtok($_SERVER['REQUEST_URI'], '?');
$patharr = explode('/', trim($path, '/'));
if (isset($patharr[0])) {
$ctrl = $patharr[0];
}
if (isset($patharr[1])) {
$action = $patharr[1];
}
}
return array('ctrl'=>$ctrl,'action'=>$action);
}
}
所有代码
所有代码都在github上,框架部分在framework分支。
github地址: https://github.com/gaopu1995/hiphp.git