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 21 PHP
php实现首页链接查询 友情链接检查的代码
Jan 05 PHP
克隆一个新项目的快捷方式
Apr 10 PHP
奉献出一个封装的curl函数 便于调用(抓数据专用)
Jul 22 PHP
二进制交叉权限微型php类分享
Feb 07 PHP
php把session写入数据库示例
Feb 26 PHP
修改ThinkPHP缓存为Memcache的方法
Jun 25 PHP
30个php操作redis常用方法代码例子
Jul 05 PHP
php实现在服务器上创建目录的方法
Mar 16 PHP
PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能
Apr 27 PHP
CodeIgniter与PHP5.6的兼容问题
Jul 16 PHP
PHP中number_format()函数的用法讲解
Apr 08 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
Zend framework处理一个http请求的流程分析
2010/02/08 PHP
PHP开发环境配置(MySQL数据库安装图文教程)
2010/04/28 PHP
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
2013/05/10 PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
2015/06/03 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
2017/10/07 PHP
PHP7 windows支持
2021/03/09 PHP
JS 创建对象(常见的几种方法)
2008/11/03 Javascript
了解jQuery技巧来提高你的代码
2010/01/08 Javascript
Jquery实现视频播放页面的关灯开灯效果
2013/05/27 Javascript
js 固定悬浮效果实现思路代码
2013/08/02 Javascript
JavaScript字符串对象split方法入门实例(用于把字符串分割成数组)
2014/10/16 Javascript
浅谈关于JavaScript API设计的一些建议和准则
2015/06/24 Javascript
jquery利用拖拽方式在图片上添加热链接
2015/11/24 Javascript
Javascript实现倒计时(防页面刷新)实例
2016/12/13 Javascript
jQuery基于Ajax方式提交表单功能示例
2017/02/10 Javascript
angularjs实现搜索的关键字在正文中高亮出来
2017/06/13 Javascript
NodeJs实现简易WEB上传下载服务器
2019/08/10 NodeJs
JavaScript 浏览器对象模型BOM原理与常见用法实例分析
2019/12/16 Javascript
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
[01:23]2014DOTA2国际邀请赛 球迷无处不在Ti现场世界杯受关注
2014/07/10 DOTA
windows下安装python paramiko模块的代码
2013/02/10 Python
Python创建文件和追加文件内容实例
2014/10/21 Python
Python中的浮点数原理与运算分析
2017/10/12 Python
Python通过for循环理解迭代器和生成器实例详解
2019/02/16 Python
python利用Opencv实现人脸识别功能
2019/04/25 Python
Python中six模块基础用法
2019/12/08 Python
在tensorflow中实现去除不足一个batch的数据
2020/01/20 Python
python smtplib发送多个email联系人的实现
2020/10/09 Python
pyqt5实现井字棋的示例代码
2020/12/07 Python
欧洲领先的电子和电信零售商和服务提供商:Currys PC World Business
2017/12/05 全球购物
Wiggle新西兰:自行车、跑步、游泳
2020/05/06 全球购物
职业生涯规划设计步骤
2014/01/12 职场文书
完美主义个人的自我评价
2014/02/17 职场文书
销售总经理岗位职责
2014/03/15 职场文书
师德自我剖析材料范文
2014/10/06 职场文书
师德师风事迹材料
2014/12/20 职场文书