多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 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). 在控制器中也可以给视图传递变量,显示视图文件。 这样呢~就完成了一个简单的框架!