2-4加载控制器
先加载一个控制器,如果有这个文件的话,会加载这个控制器,如果不存在会抛出一个异常。
static public function run(){
\core\lib\log::init();
$route=new \core\lib\route();
//p($route);die;
$ctrlClass = $route->ctrl;
$action = $route->action;
$ctrlfile = APP.'\\ctrl\\'.$ctrlClass.'Ctrl.php';
//p($ctrlfile);die;
$cltrlClass = '\\'.MODULE.'\ctrl\\'.$ctrlClass.'Ctrl';
//p($cltrlClass);die;
if(is_file($ctrlfile)){
include $ctrlfile;
$ctrl = new $cltrlClass;
//p($ctrl);die;
$ctrl->$action();
}else{
throw new \Exception('找不到控制器'.$ctrlClass);
}
//p($route);
}
2-5模型类
先建立一个model类,让他继承pdo类,这样,他就会有一些pdo的方法,然后配置完参数,这里边我们用的是conf::all方法,这个方法是以后调用的所有配置文件。如果数据库连接成功,继续,否则,返回错误信息
<?php
namespace core\lib;
use core\lib\conf;
class model extends \PDO{
public function __construct(){
$database = conf::all('database');
try{
parent::__construct($database['DSN'],$database['USERNAME'],$database['PASSWD']);
}catch (\PDOException $e){
p($e->getMessage());
}
}
}
2-6视图类
这里我用的是assign的方法来赋值,display的方法来调用试图文件
其中这两个方法在核心文件中会新添加进去,
public function assign($name,$value){
$this->assign[$name]= $value;
}
public function display($file){
$file = APP.'/view/'.$file;
if(is_file($file)){
extract($this->assign);
include $file;
}
}
最后我们新建view文件夹,创建index.html文件
<h1><?php echo $data?></h1>
<h3><?php echo $title?></h3>
传入从控制器中定义好的参数
$data = 'hello word';
$title= '这是试图文件';
$this->assign('data',$data);
$this->assign('title',$title);
$this->display('index.html');
这样,视图层就完成了!