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 相关文章推荐
自己动手做一个SQL解释器
Oct 09 PHP
PHP 图片文件上传实现代码
Dec 29 PHP
php 面向对象的一个例子
Apr 12 PHP
基于PHP magic_quotes_gpc的使用方法详解
Jun 24 PHP
PHP中使用glob函数实现一句话删除某个目录下的所有文件
Jul 22 PHP
php中Y2K38的漏洞解决方法实例分析
Sep 22 PHP
php中addslashes函数与sql防注入
Nov 17 PHP
phpcms的分类名称和类别名称的调用
Jan 05 PHP
PHP实现中国公民身份证号码有效性验证示例代码
May 03 PHP
Kindeditor编辑器添加图片上传水印功能(php代码)
Aug 03 PHP
Thinkphp5框架使用validate实现验证功能的方法
Aug 27 PHP
ThinkPHP5分页paginate代码实例解析
Nov 10 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实现获取文章内容第一张图片的方法
2014/11/04 PHP
yii使用activeFileField控件实现上传文件与图片的方法
2015/12/28 PHP
ThinkPHP 模板substr的截取字符串函数详解
2017/01/09 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
thinkphp5.1 框架钩子和行为用法实例分析
2020/05/25 PHP
js刷新框架子页面的七种方法代码
2008/11/20 Javascript
JavaScript在网页中画圆的函数arc使用方法
2015/11/13 Javascript
JS运动相关知识点小结(附弹性运动示例)
2016/01/08 Javascript
JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
2016/01/26 Javascript
Node.js实现mysql连接池使用事务自动回收连接的方法示例
2018/02/03 Javascript
原生JS实现瀑布流插件
2018/02/06 Javascript
jquery实现搜索框功能实例详解
2018/07/23 jQuery
微信小程序实现即时通信聊天功能的实例代码
2018/08/17 Javascript
Vue+Element实现表格编辑、删除、以及新增行的最优方法
2019/05/28 Javascript
在React中写一个Animation组件为组件进入和离开加上动画/过度效果
2019/06/24 Javascript
通过js示例讲解时间复杂度与空间复杂度
2019/08/06 Javascript
React中使用Vditor自定义图片详解
2020/12/25 Javascript
[00:35]可解锁地面特效
2018/12/20 DOTA
python检测是文件还是目录的方法
2015/07/03 Python
python实现class对象转换成json/字典的方法
2016/03/11 Python
Python原始字符串与Unicode字符串操作符用法实例分析
2017/07/22 Python
numpy中索引和切片详解
2017/12/15 Python
pytorch 转换矩阵的维数位置方法
2018/12/08 Python
Python中py文件转换成exe可执行文件的方法
2019/06/14 Python
如何在python中写hive脚本
2019/11/08 Python
如何使用python记录室友的抖音在线时间
2020/06/29 Python
HTML5 拖放(Drag 和 Drop)详解与实例代码
2017/09/14 HTML / CSS
龟牌英国商店:Turtle Wax Brand Store UK
2019/07/02 全球购物
武汉某公司的C#笔试题面试题
2015/12/25 面试题
优秀村官事迹材料
2014/01/10 职场文书
校庆接待方案
2014/03/18 职场文书
优秀大专毕业生求职信
2014/08/04 职场文书
酒店餐厅2014重阳节活动策划方案
2014/09/16 职场文书
2014年班长个人工作总结
2014/11/14 职场文书
小学思想品德教学反思
2016/02/24 职场文书
Nginx配置并兼容HTTP实现代码解析
2021/03/31 Servers