码迷,mamicode.com
首页 > Web开发 > 详细

thinkphp 学习_单一入口执行流程

时间:2016-06-09 13:23:08      阅读:292      评论:0      收藏:0      [点我收藏+]

标签:

(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();

 

thinkphp 学习_单一入口执行流程

标签:

原文地址:http://www.cnblogs.com/figting/p/5572213.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!