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 相关文章推荐
dede3.1分页文字采集过滤规则详说(图文教程)续二
Apr 03 PHP
PHP计划任务、定时执行任务的实现代码
Apr 23 PHP
PHP中$_SERVER的详细参数与说明介绍
Oct 26 PHP
PHP中模拟处理HTTP PUT请求的例子
Jul 22 PHP
php匹配字符中链接地址的方法
Dec 22 PHP
php中删除数组的第一个元素和最后一个元素的函数
Mar 07 PHP
PHP正则表达式之捕获组与非捕获组
Nov 06 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
Mar 18 PHP
PHP实现导出excel数据的类库用法示例
Oct 15 PHP
php实现的mysqldb读写分离操作类示例
Feb 07 PHP
利用PHP扩展Xhprof分析项目性能实践教程
Sep 05 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
Nov 14 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
一个多文件上传的例子(原创)
2006/10/09 PHP
PHP中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述
2011/03/23 PHP
jquery ajax提交表单数据的两种实现方法
2010/04/29 Javascript
Javascript 类型转换方法
2010/10/24 Javascript
JS验证邮箱格式是否正确的代码
2013/12/05 Javascript
js获取判断上传文件后缀名的示例代码
2014/02/19 Javascript
使用js显示当前时间示例
2014/03/02 Javascript
Javascript基础教程之数据类型 (布尔型 Boolean)
2015/01/18 Javascript
JS获得选取checkbox整行数据的方法
2015/01/28 Javascript
jQuery无缝轮播图代码
2016/12/22 Javascript
Vuejs 页面的区域化与组件封装的实现
2017/09/11 Javascript
npm 更改默认全局路径以及国内镜像的方法
2018/05/16 Javascript
JavaScript学习笔记之基于定时器实现图片无缝滚动功能详解
2019/01/09 Javascript
解决vue跨域axios异步通信问题
2019/04/17 Javascript
Vue使用localStorage存储数据的方法
2019/05/27 Javascript
jQuery实现轮播图效果
2019/11/26 jQuery
Python实现将数据写入netCDF4中的方法示例
2018/08/30 Python
深入理解Django自定义信号(signals)
2018/10/15 Python
Python 给定的经纬度标注在地图上的实现方法
2019/07/05 Python
python进阶之自定义可迭代的类
2019/08/20 Python
利用Python复制文件的9种方法总结
2019/09/02 Python
mac使用python识别图形验证码功能
2020/01/10 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
2020/01/16 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
2020/02/26 Python
Pyspark获取并处理RDD数据代码实例
2020/03/27 Python
django 利用Q对象与F对象进行查询的实现
2020/05/15 Python
html5指南-2.如何操作document metadata
2013/01/07 HTML / CSS
HTML5新增加标签和功能概述
2016/09/05 HTML / CSS
大学毕业生最详细的自我评价分享
2013/11/18 职场文书
电气工程及自动化专业自荐书范文
2013/12/18 职场文书
艺校音乐专业自我鉴定范文
2014/03/01 职场文书
出纳试用期自我鉴定
2014/04/07 职场文书
献爱心捐款倡议书
2014/05/14 职场文书
介绍信范文大全
2015/05/07 职场文书
联谊会开场白
2015/06/01 职场文书
远程教育培训心得体会
2016/01/09 职场文书