回顾上一篇文章我们基本上完成了路由类的定义
我们的路由类就可以解析url了找到控制器和方法名
那么接下来就去加载我们的控制器和方法
首先呢在我们网站的更目录下建立app文件夹在其下面再建立ctrl文件夹来放我们的控制器(在上一篇博客中我们可以看到我们的框架目录的基本结构)
在ctrl下建立我们的第一个控制器 indexCtrl (在这里需要注意的是类名和方法名尽量不要一样,如果一样的话我们的方法将会被作为初始化方法被自动执行)
控制器代码如下
<?php
namespace app\ctrl; //这是我们控制器的命名空间
class indexCtrl
{
public function index()
{
echo "it is index"
}
}
接下来到框架核心文件imooc.php文件中加载控制器编码部分
在imooc.php run 方法中加入下面的这部分代码
$route = new \core\lib\route();
$ctrlClass=$route->ctrl; //控制器
$action=$route->action; //方法
$ctrlfile= APP.'/ctrl/'.$ctrlClass.'Ctrl.php';
$ctrlClass= '\\'.MODULE.'\ctrl\\'.$ctrlClass.'Ctrl';
if(is_file($ctrlfile))
{
include $ctrlfile;
$ctrl= new $ctrlClass();
$ctrl->$action();
\core\lib\log::log('ctrl:'.$route->ctrl.PHP_EOL.'action:'.$route->action);
}
else
{
throw new \Exception('找不到服务器'.$ctrlClass);
}
然后接下来去入口文件中定义MODULE为app
define('MODULE','app');