## 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). 在控制器中也可以給視圖傳遞變量,顯示視圖文件。
這樣呢~就完成了一個簡單的框架!