写完入口文件和初始化类文件之后,我们继续完成公共控制器的部分。
我们每个平台信息都有自己的controller类,但这些controller会有一些代码重复的地方,造成资源浪费,这时候我们创建一个公共控制器的类,然后让其他控制器去继承它,就可以很好的解决这个问题。
<?php
namespace core;
class controller{
//增加属性,方便子类继承和跨方法使用
protected $smarty;
//构造方法
public function __construct(){
//引入smarty
include VENDOR_PATH . 'smarty/Smarty.class.php';
//实例化
$this->smarty = new \smarty();
//增加配置
$this->smarty->template_dir = APP_PATH . p . '/view' . c . '/';
$this->smarty->caching = false;
$this->smarty->cache_dir = APP_PATH . p . '/cache';
$this->smarty->cache_lifetime = 120;
$this->smarty->compile_dir = APP_PATH . p . '/template_c';
}
//smarty的二次封装
protected function assgin($key,$value){
return $this->smarty->assgin($key,$value);
}
protected function display($filename){
return $this->smarty->display($filename);
}
//成功提示 $time是等待时间
protected function success($msg,$a=a,$c=c,$p=p,$time=5){
$refresh = 'Refresh:' . $time . ';url=' . URL . 'index.php?a=' . $a .'&c=' . $c . '&p=' . $p;
//echo $refresh;
header($refresh);
echo $msg;
exit;
}
//错误提示 $time是等待时间
protected function error($msg,$a=a,$c=c,$p=p,$time=5){
$refresh = 'Refresh:' . $time . ';url=' . URL . 'index.php?c=' . $c .'&a=' . $a . '&p=' . $p;
//echo $refresh;
header($refresh);
echo $msg;
exit;
}
}
?>
然后默认访问\home\controller\IndexController.php\Index。
<?php
//定义命名空间
namespace home\controller;
use \core\controller;
class IndexController extends controller {
//默认方法
public function index(){
//var_dump($this->smarty);
echo '欢迎使用MVC<br />';
$this->success('Welcome to our system,please to login in first','login');
}
//登陆方法
public function login(){
echo 'Login in successfully';
}
}
?>
输出结果为:
5s后跳转:
这就简单实现了公共控制器,接下来我们将完成公共模型和数据库操作类DAO。