这段时间实习的时候,我一直在使用一个PHP的MVC框架,想着有时间自己也写一个简单的MVC框架,以加深理解。
MVC构架中,M是Model层,功能是从数据库中读取数据库,以及向数据库中写入数据库;V是View层,功能是展示从数据库中读取到的数据,以及收集数据库写入数据库;C是Controller,功能是进行数据处理,因为一般情况下,从数据库中读取的数据是不能直接展示的,从view层得到的数据也不能直接写入数据库,或者说不一定要写入数据库,都是由Controller控制的。
我们可以使用smarty模板来增强Controller和View层的交互,定义Controller继承自smarty模板类,然后所有的控制器继承Controller就可以轻松的完成smarty模板的使用。具体细节可以参考文章《MVC中使用smarty模板》。
Model层的任务是和数据库进行交互,PHP调用数据库的方法一般有PDO和mysqli两种。我们可以使用开源的medoo类,方便的实现数据库的各种操作。
medoo项目网址:http://medoo.lvtao.net/index.php
使用medoo与上文使用smarty模板的方式类似,Model类继承自medoo类,然后所有的Model都继承Model类,这样就可以在所有的Model里面方便的实现数据库的相关操作了。
核心代码:Model.php
<?php
/**
* Created by PhpStorm.
* User: koastal
* Date: 2016/5/15
* Time: 10:55
*/
require_once 'medoo.php';
require_once 'config.php';
class Model extends medoo
{
private $default_db = array(
// 必须配置项
'database_type' => 'mysql',
'database_name' => 'test',
'server' => 'localhost',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
);
public function __construct($options=array())
{
$options = empty($options)? $this->default_db:$options;
parent::__construct($options);
}
}