PHP实现的简单路由和类自动加载功能
本篇章节讲解PHP实现的简单路由和类自动加载功能。分享给大家供大家参考,具体如下: 项目目录如下 入口文件index.php 类自动加载文件environment.php 我这里类的加载规则是 比如 app.php入口文件执行的方法开始跑框架流程 1) {
$controller = $params[0];
$method = $params[1];
} elseif ($count == 1) {
$controller = 'index';
$method = $params[0];
} else {
}
$filename = WEBROOT . '/controller/' . $controller . '.php';
$controller = 'controller__'.$controller;
try {
if (!file_exists($filename)) {
throw new Exception('controller ' . $controller . ' is not exists!');
return;
}
include($filename);
if (!class_exists($controller)) {
throw new Exception('class ' . $controller . ' is not exists');
return;
}
$obj = new ReflectionClass($controller);
if (!$obj->hasMethod($method)) {
throw new Exception('method ' . $method . ' is not exists');
return;
}
} catch (Exception $e) {
echo $e; //展示错误结果
return;
}
$newObj = new $controller();
call_user_func_array(array($newObj,$method),$params);
}
}
根据请求uri去找对应的controller,用 根目录/controller/test.php 这里其实调用不一定要调用model里的test方法,可以调model目录下的任意文件,在此之前可以去都读一些config文件等等操作。 根目录/model/test.php 例如hostname/test/write 这个请求就会从入口文件进来,经过 更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《》 希望本文所述对大家PHP程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |