Thinkphp 框架基础之入口文件功能、定义与用法分析


Posted in PHP onApril 27, 2020

本文实例讲述了Thinkphp 框架基础之入口文件功能、定义与用法。分享给大家供大家参考,具体如下:

入口文件

ThinkPHP采用单一入口模式进行项目部署和访问,无论完成什么功能,一个应用都有一个统一(但不一定是唯一)的入口。

应该说,所有应用都是从入口文件开始的,并且不同应用的入口文件是类似的。

入口文件定义

入口文件主要完成:

  • 定义框架路径、项目路径(可选)
  • 定义调试模式和应用模式(可选)
  • 定义系统相关常量(可选)
  • 载入框架入口文件(必须)

默认情况下,框架已经自带了一个应用入口文件(以及默认的目录结构),内容如下:

define('APP_PATH','./Application/');
require './ThinkPHP/ThinkPHP.php';

如果你改变了项目目录(例如把Application更改为Apps),只需要在入口文件更改APP_PATH常量定义即可:

define('APP_PATH','./Apps/');
require './ThinkPHP/ThinkPHP.php';

注意:APP_PATH的定义支持相对路径和绝对路径,但必须以“/”结束

如果你调整了框架核心目录的位置或者目录名,只需要这样修改:

define('APP_PATH','./Application/');
require './Think/ThinkPHP.php';

也可以单独定义一个THINK_PATH常量用于引入:

define('APP_PATH','./Application/');
define('THINK_PATH',realpath('../Think').'/');
require THINK_PATH.'ThinkPHP.php';

APP_PATH一样THINK_PATH路径定义也必须以“/”结尾。
THINK_PATHAPP_PATH定义绝对路径会提高系统的加载效率。

入口文件中的其他定义

一般不建议在入口文件中做过多的操作,但可以重新定义一些系统常量,入口文件中支持定义(建议)的一些系统常量包括:

常量 描述
THINK_PATH 框架目录
APP_PATH 应用目录
RUNTIME_PATH 应用运行时目录(可写)
APP_DEBUG 应用调试模式 (默认为false)
STORAGE_TYPE 存储类型(默认为File)
APP_MODE 应用模式(默认为common)

注意:所有路径常量都必须以“/”结尾

例如,我们可以在入口文件中重新定义相关目录并且开启调试模式:

// 定义应用目录
define('APP_PATH','./Apps/');
// 定义运行时目录
define('RUNTIME_PATH','./Runtime/');
// 开启调试模式
define('APP_DEBUG',True);
// 更名框架目录名称,并载入框架入口文件
require './Think/ThinkPHP.php';

这样最终的应用目录结构如下:

www  WEB部署目录(或者子目录)
├─index.php       应用入口文件
├─Apps            应用目录
├─Public          资源文件目录
├─Runtime         运行时目录
└─Think           框架目录

入口文件中还可以定义一些系统变量,用于相关的绑定操作(通常用于多个入口的情况)

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
如何获得PHP相关资料
Oct 09 PHP
PHP+.htaccess实现全站静态HTML文件GZIP压缩传输(一)
Feb 15 PHP
一篇不错的PHP基础学习笔记
Mar 18 PHP
php常用Output和ptions/Info函数集介绍
Jun 19 PHP
php下获取http状态的实现代码
May 09 PHP
ThinkPHP调试模式与日志记录概述
Aug 22 PHP
PHP常用编译参数中文说明
Sep 27 PHP
php基于curl主动推送最新内容给百度收录的方法
Oct 14 PHP
PHP使用curl制作简易百度搜索
Nov 03 PHP
浅析php中array_map和array_walk的使用对比
Nov 20 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 PHP
Laravel中validation验证 返回中文提示 全局设置的方法
Sep 29 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
Apr 27 #PHP
Thinkphp 框架扩展之驱动扩展实例分析
Apr 27 #PHP
Thinkphp 框架扩展之应用模式实现方法分析
Apr 27 #PHP
php让json_encode不自动转义斜杠“/”的方法
Apr 27 #PHP
PHP Pipeline 实现中间件的示例代码
Apr 26 #PHP
PHP设计模式入门之状态模式原理与实现方法分析
Apr 26 #PHP
PHP设计模式入门之迭代器模式原理与实现方法分析
Apr 26 #PHP
You might like
PHP对MongoDB[NoSQL]数据库的操作
2013/03/01 PHP
php中的常用魔术方法总结
2013/08/02 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
2017/07/03 PHP
jquery获得下拉框值的代码
2011/08/13 Javascript
固定背景实现的背景滚动特效示例分享
2013/05/19 Javascript
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
实现图片预加载的三大方法及优缺点分析
2014/11/19 Javascript
深入分析jquery解析json数据
2014/12/09 Javascript
JS递归遍历对象获得Value值方法技巧
2016/06/14 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
2016/12/23 Javascript
AngularJS中run方法的巧妙运用
2017/01/04 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
BootstrapValidator实现注册校验和登录错误提示效果
2017/03/10 Javascript
JavaScript判断对象和数组的两种方法
2019/05/31 Javascript
微信小程序image图片加载完成监听
2019/08/31 Javascript
关于vue属性使用和不使用冒号的区别说明
2020/10/22 Javascript
[52:06]完美世界DOTA2联赛决赛日 Inki vs LBZS 第一场 11.08
2020/11/10 DOTA
Python微信库:itchat的用法详解
2017/08/14 Python
python requests 使用快速入门
2017/08/31 Python
基于Django的python验证码(实例讲解)
2017/10/23 Python
python smtplib发送带附件邮件小程序
2018/05/22 Python
使用Django开发简单接口实现文章增删改查
2019/05/09 Python
python删除列表元素的三种方法(remove,pop,del)
2019/07/22 Python
手把手教你pycharm专业版安装破解教程(linux版)
2019/09/26 Python
Python简单实现区域生长方式
2020/01/16 Python
Dr. Martens马汀博士澳大利亚官网:马丁靴鼻祖
2019/07/02 全球购物
表扬信格式
2014/01/12 职场文书
服装创业计划书范文
2014/02/05 职场文书
岗位廉政承诺书
2014/03/27 职场文书
《冬阳童年骆驼队》教学反思
2014/04/15 职场文书
文员求职信
2014/07/15 职场文书
学习党的群众路线实践活动思想汇报
2014/09/12 职场文书
店长岗位职责
2015/02/11 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书
篮球拉拉队口号
2015/12/25 职场文书
详解MySQL 用户权限管理
2021/04/20 MySQL