利用PHP简单的实现了一下MVC的设计方法:
M :数据 V:网页 C:控制输出什么网页
开发环境:phpstrom2018 ,php5
测试:使用ide内置的server测试
功能:实现了用户的增删改查
效果图:
代码结构:
Framework mvc框架代码实现:
BaseController.class.php
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2019/6/7
* Time: 14:01
*/
/**
* Class BaseController
* 控制器基础类
*/
class BaseController
{
function __construct()
{
header("content-type=text/html;chaset=utf8");
}
function GotoUrl($msg, $url, $time)
{
echo "<font color=red>$msg</font>";
echo "<a href='$url'>返回</a>";
echo '页面将在' . $time . '秒之后跳转';
header("refresh:$time;url=$url");
}
}
BaseModel.class.php
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2019/6/7
* Time: 14:00
*/
/**
* Class BaseModel
* <br>
* 构建mysql链接
*/
class BaseModel
{
protected $db = null;
function __construct()
{
$config = array('host' => '127.0.0.1',
'port' => 3306,
'user' => 'root',
'pass' => '123456',
'charset' => 'utf8',
'dbname' => 'phpdemo'
);
$this->db = MysqlDB::GetInstance($config);
}
}
ModelFactory.class.php
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2019/6/7
* Time: 14:00
*/
/**
* Class ModelFactory
* <br>
* 单例模型工厂
*/
class ModelFactory
{
static $all_model = array();
static function M($model_name)
{
if (!isset(static::$all_model[$model_name]) || !(static::$all_model[$model_name] instanceof $model_name)) {
static::$all_model[$model_name] = new $model_name();
}
return static::$all_model[$model_name];
}
}
MysqlDB.class.php
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2019/6/7
* Time: 14:00
*/
/**
* Class MysqlDB
* <br>
* MySql工具单例
*/
class MysqlDB
{
private static $instance = null;
private $link = null;
private function __construct($config)
{
$this->link = mysqli_connect("{$config['host']}", "{$config['user']}", "{$config['pass']}", "{$config['dbname']}", "{$config['port']}");
if (!$this->link) {
echo "Error: Unable to connect to MySQL." . PHP_EOL;
echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
die("连接失败");
}
echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL;
echo "Host information: " . mysqli_get_host_info($this->link) . PHP_EOL;
$this->setCharset($co