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 相关文章推荐
在WIN98下以apache模块方式安装php
Oct 09 PHP
生成静态页面的php函数,php爱好者站推荐
Mar 19 PHP
PHP生成月历代码
Jun 14 PHP
php判断字符以及字符串的包含方法属性
Aug 30 PHP
PHP rawurlencode与urlencode函数的深入分析
Jun 08 PHP
php支付宝接口用法分析
Jan 04 PHP
分享PHP函数实现数字与文字分页代码
Jul 28 PHP
PHP内存使用情况如何获取
Oct 10 PHP
PHP实现的限制IP投票程序IP来源分析
May 04 PHP
详解EventDispatcher事件分发组件
Dec 25 PHP
php设计模式之观察者模式定义与用法经典示例
Sep 19 PHP
PHP数据源架构模式之表入口模式实例分析
Jan 23 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
Discuz7.2版的faq.php SQL注入漏洞分析
2014/08/06 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
php面向对象重点知识分享
2019/09/27 PHP
javascript入门·图片对象(无刷新变换图片)\滚动图像
2007/10/01 Javascript
jquery 图片 上一张 下一张 链接效果(续篇)
2010/04/20 Javascript
jquery中使用ajax获取远程页面信息
2011/11/13 Javascript
在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
2011/12/20 Javascript
json对象转字符串如何实现
2012/12/02 Javascript
jQuery filter函数使用方法
2014/05/19 Javascript
javascript设计模式--策略模式之输入验证
2015/11/27 Javascript
Bootstrap编写一个同时适用于PC、平板、手机的登陆页面
2016/06/30 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
2016/08/01 Javascript
jQuery事件绑定用法详解
2016/09/08 Javascript
使用vue-router完成简单导航功能【推荐】
2018/06/28 Javascript
AngularJS实现的自定义过滤器简单示例
2019/02/02 Javascript
微信小程序HTTP接口请求封装的实现
2019/02/21 Javascript
vue移动端使用canvas签名的实现
2020/01/15 Javascript
Openlayers显示地理位置坐标的方法
2020/09/28 Javascript
Python实现的百度站长自动URL提交小工具
2014/06/27 Python
Python3操作SQL Server数据库(实例讲解)
2017/10/21 Python
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
2018/09/17 Python
Python实现通过解析域名获取ip地址的方法分析
2019/05/17 Python
简单介绍django提供的加密算法
2019/12/18 Python
Python导入数值型Excel数据并生成矩阵操作
2020/06/09 Python
Sentry错误日志监控使用方法解析
2020/11/12 Python
用纯CSS3实现网页中常见的小箭头
2017/10/16 HTML / CSS
html5+css3实现一款注册表单实例
2013/04/17 HTML / CSS
致跳远运动员广播稿
2014/02/11 职场文书
生日主持词
2014/03/20 职场文书
企业消防安全责任书
2014/07/23 职场文书
现场活动策划方案
2014/08/22 职场文书
党的群众路线教育实践活动个人对照检查剖析材料
2014/09/23 职场文书
教师作风整顿个人剖析材料
2014/10/10 职场文书
用Java实现简单计算器功能
2021/07/21 Java/Android
Redis分布式锁Redlock的实现
2021/08/07 Redis
德生BCL3000抢先使用感受和评价
2022/04/07 无线电