ThinkPHP3.1.3源码分析(二) runtime.php
来源:互联网 发布:知乎48个经典问答 编辑:程序博客网 时间:2024/04/29 09:32
一、示例代码
runtime.php 主要 3个部分,
1、定义系统目录和项目目录
// 路径设置 可在入口文件中重新定义 所有路径常量都必须以/ 结尾defined('CORE_PATH') or define('CORE_PATH', THINK_PATH.'Lib/'); // 系统核心类库目录defined('EXTEND_PATH') or define('EXTEND_PATH', THINK_PATH.'Extend/'); // 系统扩展目录defined('MODE_PATH') or define('MODE_PATH', EXTEND_PATH.'Mode/'); // 模式扩展目录//省略defined('TEMP_PATH') or define('TEMP_PATH', RUNTIME_PATH.'Temp/'); // 项目缓存目录defined('DATA_PATH') or define('DATA_PATH', RUNTIME_PATH.'Data/'); // 项目数据目录defined('CACHE_PATH') or define('CACHE_PATH', RUNTIME_PATH.'Cache/'); // 项目模板缓存目录
2、载入核心类和基础函数库(common.php)
// 加载系统基础函数库 require THINK_PATH.'Common/common.php'; // 读取核心文件列表 $list = array( CORE_PATH.'Core/Think.class.php', CORE_PATH.'Core/ThinkException.class.php', // 异常处理类 CORE_PATH.'Core/Behavior.class.php', ); // 加载模式文件列表 foreach ($list as $key=>$file){ if(is_file($file)) require_cache($file); }
3、创建项目目录
if(!is_dir(LIB_PATH)) { // 创建项目目录结构 build_app_dir(); } /*Runtime目录不存在则重新创建Runtime目录*/ elseif(!is_dir(CACHE_PATH)){ // 检查缓存目录 check_runtime(); }elseif(APP_DEBUG){ // 调试模式切换删除编译缓存 if(is_file(RUNTIME_FILE)) unlink(RUNTIME_FILE); }
最后就是调用 Think.class.php 中的
Think::Start();
二、值得说的编程小细节:
// 为了方便导入第三方类库 设置Vendor目录到include_pathset_include_path(get_include_path() . PATH_SEPARATOR . VENDOR_PATH);举例: some.class.php 在 /a/b/c/include 目录下
那么在 引入类文件 include '/a/b/c/include/some.class.php';
如果定义了 set_include_path('/a/b/c/include');
只需 include 'some.class.php'; 即可
0 0
- ThinkPHP3.1.3源码分析(二) runtime.php
- ThinkPHP3.1.3源码分析(三) common.php
- ThinkPHP3.1.3源码分析(四) Think.class.php
- ThinkPHP3.1.3源码分析(五) App.class.php
- thinkphp3.1.3源码分析(1)
- 【thinkphp3.x】ThinkPHP/Common/runtime.php文件分析
- ThinkPHP3.1.3源码分析(一) 入口文件分析
- thinkphp3.1.3源码分析(2)配置项的读取
- thinkphp3.1.3源码分析(3)连贯操作table方法
- thinkphp3.1.3源码分析(4)连贯操作where方法
- Thinkphp3.1.3源码分析(5)模版“常量”配置
- Thinkphp3.1.3源码分析(6)去掉自动创建目录
- thinkphp3.2源码-----Driver.class.php
- 【thinkphp3.x】ThinkPHP.php文件分析
- 【thinkphp3.x】ThinkPHP/ThinkPHP.php文件分析
- 【thinkphp3.x】Model.class.php文件分析
- runtime源码探究(二)strong的实现
- iOS中的runtime源码简要分析(一)
- Android--ProgressBar(进度条)、ProgressDialog(进度条对话框)
- 盘点移动互联网入口争战
- Android学习系列(28)--App集成支付宝
- JAVA分别实现Windows平台和Linux平台下的ip获取
- oracle数据库复制工具exp、imp 乱码问题与解决方法
- ThinkPHP3.1.3源码分析(二) runtime.php
- ubuntu 下 python 导入 LibSVM包
- cobbler_web界面设置
- android ImageView scaleType属性
- Eclipse中提高Android SDK Manager下载速度方法
- 第九周项目六 穷举法解决组合问题 (1.百钱百鸡问题)
- 第九周项目2~分数累加
- Java_JSP2_以页面片段作为属性的标签;
- 使用jQuery实现select级联效果