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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp 学习_单一入口执行流程相关的知识,希望对你有一定的参考价值。

(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 学习_单一入口执行流程的主要内容,如果未能解决你的问题,请参考以下文章

PHP-系统流程

thinkphp 官方文件执行引入流程

Thinkphp_基础URL模式

Thinkphp相关总结

Thinkphp相关总结

(16.05.17)ThinkPHP框架开发的应用的标准执行流程