前言
本文会更详细的讲解 TinyPHP 源码
首先我们先了解一下整个框架的运行流程:
- 入口文件
- 定义常量
- 自动加载
- 自定义错误处理
- 自定义异常处理
- 检测是否需要安装
- 路由解析
- 加载控制器
- 渲染结果
入口文件
接下来我们一步步看,首先是入口文件 index.php
<?php
/*********************
入口文件
**********************/
// 载入配置
require_once('config.inc.php');
// 载入框架
require_once(CORE_PATH . 'App.php');
// 初始化
(new App())->init();
入口文件只做了3件事,首先是载入配置文件 config.inc.php
<?php
/*********************
配置文件
**********************/
// 调试模式
define('APP_DEBUG', true);
// 伪静态
define('URL_REWRITE', false);
// 路径配置
define('APP_PATH' , __DIR__ . '/'); // 主目录
define('PAGES_PATH' , APP_PATH . 'pages/'); // 视图目录
define('CORE_PATH' , APP_PATH . 'core/'); // 核心目录
define('CONTROLLERS_PATH', CORE_PATH . 'controllers/'); // 控制器目录
define('MODELS_PATH' , CORE_PATH . 'models/'); // 模型目录
// 数据库配置
define('DB_HOST' , '%1%');
define('DB_PORT' , '%2%');
define('DB_USER' , '%3%');
define('DB_PASS' , '%4%');
define('DB_NAME' , '%5%');
define('DB_PREFIX' , '%6%');
define('DB_CHARSET', '%7%');
配置文件定义了一些供框架用到的 常量 ,很好理解,可能有细心的朋友会注意到为什么数据库配置的值是 %1%
呢?这个主要用于 安装程序 去查找字符串替换,后面会说到...
我们在回来看入口文件做的第二件事:载入框架
这个很好理解,就是载入 core/App.php
文件,这个文件是框架核心,什么自动加载啦,自定义错误处理啦,自定义异常处理啦,路由啦,都在这里面。源码较长就不贴出来了,自行查阅。
第三件事就是实例化框架核心文件并执行init方法
自此,入口文件的任务就结束啦。