标签:
(1)thinkphp 是一个 基于mvc开发和单一入口框架
其中index.php 是是一个web网站访问的入口文件:
//部署单一入口文件 define(‘APP_PATH‘,‘./apps/‘); require ‘./ThinkPHP/ThinkPHP.php‘;
浏览器访问的时候index.php时候,会自动生成apps项目文件;看了下,官方文档不建议在入口文件中做过多的操作,但可以重新定义一些系统常量;也即是修改一些系统配置例如
// 定义应用目录 define(‘APP_PATH‘,‘./Apps/‘); // 定义运行时目录 define(‘RUNTIME_PATH‘,‘./Runtime/‘); // 开启调试模式 define(‘APP_DEBUG‘,True); // 更名框架目录名称,并载入框架入口文件 require ‘./ThinkPHP/ThinkPHP.php‘;
ps 如果想配置多个网站,则可以配置多个累世index.php 文件 ,在其文件 define("app_path",‘./amdin/‘);
那么自动生成的apps的项目结构如下:
Apps ├─Common 应用公共模块 │├─Common 应用公共函数目录 │└─Conf 应用公共配置文件目录 ├─Home 默认生成的Home模块 │ ├─Conf 模块配置文件目录 │ ├─Common 模块函数公共目录 │ ├─Controller 模块控制器目录 │ ├─Model 模块模型目录 │ └─View 模块视图文件目录 ├─Runtime 运行时目录 │ ├─Cache 模版缓存目录 │ ├─Data 数据目录 │ ├─Logs 日志目录 │ └─Temp 缓存目录
runtime 主要是缓存一些数据使用,例如系统配置文件,(会将配置文件缓存起来,如果配置文件时是自定义的话,则不会缓存自定义的文件内容)
加载自定义配置文件user.php,就是在config.php里面引入’LOAD_EXT_CONFIG‘=>’user‘,并且自定义配置文件是不会被项目定义,每次都会加载,建议不要自定义配置文件,因为不被缓存,每次都需要编译;ps 开启dubug配置文件不会被缓存的,define(‘APP_DEBUG‘,TRUE);在项目上线后关闭
(2)thinkPHP简述执行过程
单一入口文件执行过程:1 修正系统配置的常量值 2 加载 thinkPHP.php 3加载 ./thinkphp/lib/core 4 加载 项目文件 ,分析url,调用相关的控制器action
Ps 单一入口:每次浏览器请求文件,都统一请求的是index.php 文件,有index.php 文件进行统一的调度: 一个简单的例子
// 例如 url为 // http://localhost:9096/index.php?c=index&a=index //简单的控制器类 class index{ //执行特殊的控制器构造的时候验证等 function __construct(){} function index(){ echo "我是控制index"; } //...... } //单一入口文件:简单index 内容 $controller = isset(_GET[‘c‘]) ? _GET[‘c‘] : "index"; $action = isset(_GET[‘a‘])? _GET[‘a‘] : ‘index‘; $c = new $controller(); $c->$action();
标签:
原文地址:http://www.cnblogs.com/figting/p/5572213.html