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 相关文章推荐
FleaPHP的安全设置方法
Sep 15 PHP
PHP下通过系统信号量加锁方式获取递增序列ID
Sep 25 PHP
PHP与MongoDB简介|安全|M+PHP应用实例详解
Jun 17 PHP
php权重计算方法代码分享
Jan 09 PHP
PHP程序员常见的40个陋习,你中了几个?
Nov 20 PHP
PHP贪婪算法解决0-1背包问题实例分析
Mar 23 PHP
PHP连接access数据库
Mar 27 PHP
PHP中如何防止外部恶意提交调用ajax接口
Apr 11 PHP
php连接sftp的作用以及实例代码
Sep 23 PHP
php+laravel依赖注入知识点总结
Nov 04 PHP
PHP var关键字相关原理及使用实例解析
Jul 11 PHP
PHP实现简易图形计算器
Aug 28 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类
2008/04/09 PHP
PHP __autoload()方法真的影响性能吗?
2012/03/30 PHP
php使用array_search函数实现数组查找的方法
2015/06/12 PHP
使用图灵api创建微信聊天机器人
2015/07/23 PHP
PHP文件打开关闭及读写操作示例解析
2020/08/06 PHP
JavaScript中的私有成员
2006/09/18 Javascript
javascript 特性检测并非浏览器检测
2010/01/15 Javascript
Uglifyjs(JS代码优化工具)入门 安装使用
2020/04/13 Javascript
Three.js源码阅读笔记(Object3D类)
2012/12/27 Javascript
Jquery模仿Baidu、Google搜索时自动补充搜索结果提示
2013/12/26 Javascript
extjs 时间范围选择自动判断的实现代码
2014/06/24 Javascript
javascript的tab切换原理与效果实现方法
2015/01/10 Javascript
详解JavaScript逻辑And运算符
2015/12/04 Javascript
利用JQuery写一个简单的异步分页插件
2016/03/07 Javascript
nodejs批量下载图片的实现方法
2017/05/19 NodeJs
关于Vue实现组件信息的缓存问题
2017/08/23 Javascript
JavaScript判断日期时间差的实例代码
2018/03/01 Javascript
Vue 中使用vue2-highcharts实现曲线数据展示的方法
2018/03/05 Javascript
用Electron写个带界面的nodejs爬虫的实现方法
2019/01/29 NodeJs
VUE搭建手机商城心得和遇到的坑
2019/02/21 Javascript
js中实现继承的五种方法
2021/01/25 Javascript
Python切换pip安装源的方法详解
2016/11/18 Python
Tensorflow 合并通道及加载子模型的方法
2018/07/26 Python
对Python捕获控制台输出流的方法详解
2019/01/07 Python
Python3.5装饰器原理及应用实例详解
2019/04/30 Python
基于Python爬取爱奇艺资源过程解析
2020/03/02 Python
乡下人家教学反思
2014/02/01 职场文书
教师节活动主持词
2014/04/02 职场文书
管理岗位竞聘演讲稿
2014/08/18 职场文书
励志演讲稿3分钟
2014/08/21 职场文书
四风自我剖析材料
2014/09/30 职场文书
人事文员岗位职责
2015/02/04 职场文书
法务专员岗位职责
2015/02/14 职场文书
大学生自我评价范文
2015/03/03 职场文书
win10安装配置nginx的过程
2021/03/31 Servers
Mysql数据库按时间点恢复实战记录
2021/06/30 MySQL