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数字格式化
Dec 06 PHP
mysql 性能的检查和优化方法
Jun 21 PHP
php木马webshell扫描器代码
Jan 25 PHP
PHP获取文件后缀名的三个函数
Oct 15 PHP
phpmailer发送gmail邮件实例详解
Jun 24 PHP
PHP 字符串长度判断效率更高的方法
Mar 02 PHP
PHP入门经历和学习过程分享
Apr 11 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
Dec 18 PHP
php利用fsockopen GET/POST提交表单及上传文件
May 22 PHP
PHP简单计算两个时间差的方法示例
Jun 20 PHP
搭建自己的PHP MVC框架详解
Aug 16 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
Jul 22 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公用函数列表[正则]
2007/02/22 PHP
php 静态化实现代码
2009/03/20 PHP
Zend的MVC机制使用分析(二)
2013/05/02 PHP
php实现Session存储到Redis
2015/11/11 PHP
Zend Framework实现多服务器共享SESSION数据的方法
2016/03/22 PHP
PHP预定义超全局数组变量小结
2018/08/20 PHP
laravel接管Dingo-api和默认的错误处理方式
2019/10/25 PHP
关于使用 jBox 对话框的提交不能弹出问题解决方法
2012/11/07 Javascript
jquery果冻抖动效果实现方法
2015/01/15 Javascript
JS实现双击编辑可修改状态的方法
2015/08/14 Javascript
关于vue的npm run dev和npm run build的区别介绍
2019/01/14 Javascript
在Vue中实现随hash改变响应菜单高亮
2020/03/09 Javascript
详解javascript脚本何时会被执行
2021/02/05 Javascript
[00:42]《辉夜杯》—职业组预选赛12月3日15点 正式打响
2015/12/03 DOTA
深入理解python try异常处理机制
2016/06/01 Python
Django自定义认证方式用法示例
2017/06/23 Python
Python入门之三角函数全解【收藏】
2017/11/08 Python
对python中数据集划分函数StratifiedShuffleSplit的使用详解
2018/12/11 Python
Django单元测试工具test client使用详解
2019/08/02 Python
关于django 1.10 CSRF验证失败的解决方法
2019/08/31 Python
Python使用matplotlib绘制Logistic曲线操作示例
2019/11/28 Python
Python读取配置文件(config.ini)以及写入配置文件
2020/04/08 Python
Python将字典转换为XML的方法
2020/08/01 Python
python 逆向爬虫正确调用 JAR 加密逻辑
2021/01/12 Python
UGG雪地靴德国官网:UGG德国
2016/11/19 全球购物
英国礼品和生活方式品牌:Treat Republic
2020/11/21 全球购物
电气工程及其自动化学生实习自我鉴定
2013/09/19 职场文书
美术专业学生个人自我评价
2013/09/19 职场文书
大学生新闻专业个人自我评价
2013/11/12 职场文书
事业单位接收函
2014/01/10 职场文书
三项教育活动实施方案
2014/03/30 职场文书
世界红十字日活动总结
2015/02/10 职场文书
销售区域经理岗位职责
2015/04/10 职场文书
音乐课《小猫钓鱼》教学反思
2016/02/18 职场文书
基于Pygame实现简单的贪吃蛇游戏
2021/12/06 Python
实例详解Python的进程,线程和协程
2022/03/13 Python