## 2.7 回顾
(1). 首先定义了全局常量:
~~~
define('THINKPHP', $_SERVER['DOCUMENT_ROOT']); // Windows下获取根目录地址
// 项目核心文件夹
define('CORE', THINKPHP.'/core');
define('APP', THINKPHP.'/app');
define('MODULE', 'app');
// 是否开启调试模式
define('DEBUG', true);
~~~
(2). 然后加载了函数库:
~~~
// 加载函数库
include CORE . '/common/function.php';
~~~
(3). 通过`spl_autoload_register`自动加载类:
~~~
// 实现自动加载
spl_autoload_register('\core\thinkphp::load');
~~~
(4). 调用基础类的run方法:
~~~
// 调用基础类的run方法
try {
\core\thinkphp::run();
} catch (\Exception $e) {
echo $e->getMessage();
}
~~~
(5). 在run方法中,调用了route类:
~~~
$route = new \core\lib\route();
~~~
在路由类中解析了url的地址,找到对应的控制器和方法。
(6). 接着我们又创建了model类:
~~~
<?php
namespace core\lib;
class model extends \PDO
{
public function __construct()
{
$dsn = 'mysql:host=localhost;dbname=demo;charset=UTF8;';
$username = 'root';
$password = 'root';
try {
parent::__construct($dsn, $username, $password);
} catch (\Exception $e) {
p($e->getMessage());
die;
}
}
}
~~~
在模型类中,连接数据库。
(7). 在控制器中,我们可以调用模型类,访问模型的方法:
~~~
public function index()
{
$model = new \core\lib\model();
$sql = "SELECT * FROM `cat`";
p($model->query($sql));
}
~~~
(8). 在控制器中也可以给视图传递变量,显示视图文件。
这样呢~就完成了一个简单的框架!