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 相关文章推荐
在PHP3中实现SESSION的功能(一)
Oct 09 PHP
PHP中include()与require()的区别说明
Mar 10 PHP
PHP操作数组相关函数
Feb 03 PHP
php入门学习知识点五 关于php数组的几个基本操作
Jul 14 PHP
php中实现简单的ACL 完结篇
Sep 07 PHP
Php中使用Select 查询语句的实例
Feb 19 PHP
Laravel 4 初级教程之安装及入门
Oct 30 PHP
php实现将任意进制数转换成10进制的方法
Apr 17 PHP
百万级别知乎用户数据抓取与分析之PHP开发
Sep 28 PHP
PHP中子类重载父类的方法【parent::方法名】
May 06 PHP
Laravel中如何增加自定义全局函数详解
May 09 PHP
PHP receiveMail实现收邮件功能
Apr 25 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+JS+rsa数据加密传输实现代码
2011/03/23 PHP
php发送post请求的三种方法
2014/02/11 PHP
PHP函数extension_loaded()用法实例
2015/01/19 PHP
Laravel 5 框架入门(一)
2015/04/09 PHP
PHP基于MySQL数据库实现对象持久层的方法
2015/06/17 PHP
php提取身份证号码中的生日日期以及验证是否为成年人的函数
2015/09/29 PHP
PHP asXML()函数讲解
2019/02/03 PHP
B/S开发中常用javaScript技术与代码
2007/03/09 Javascript
JS实现的一个简单的Autocomplete自动完成例子
2014/04/16 Javascript
js实现select组件的选择输入过滤代码
2014/10/14 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
2015/03/30 Javascript
javascript实现图片上传前台页面
2015/08/18 Javascript
你所未知的3种Node.js代码优化方式
2016/02/25 Javascript
jQuery删除节点用法示例(remove方法)
2016/09/08 Javascript
详解用vue-cli来搭建vue项目和webpack
2017/04/20 Javascript
理解nodejs的stream和pipe机制的原理和实现
2017/08/12 NodeJs
Vue 中的compile操作方法
2018/02/26 Javascript
vue Treeselect下拉树只能选择第N级元素实现代码
2020/08/31 Javascript
Python写的一个简单DNS服务器实例
2014/06/04 Python
详解python如何调用C/C++底层库与互相传值
2016/08/10 Python
django限制匿名用户访问及重定向的方法实例
2018/02/07 Python
sublime python3 输入换行不结束的方法
2018/04/19 Python
python3爬虫之设计签名小程序
2018/06/19 Python
python3实现微型的web服务器
2019/09/03 Python
python爬取王者荣耀全皮肤的简单实现代码
2020/01/31 Python
Python爬虫之Selenium下拉框处理的实现
2020/12/04 Python
Christys’ Hats官网:英国帽子制造商
2018/11/28 全球购物
Bravofly德国:预订廉价航班和酒店
2019/09/22 全球购物
10条PHP编程习惯
2014/05/26 面试题
幼儿园美术教学反思
2014/01/31 职场文书
大学生撤销处分思想汇报
2014/09/12 职场文书
2014县政府领导班子对照检查材料思想汇报
2014/09/25 职场文书
2015年世界无烟日活动方案
2015/05/04 职场文书
执行力心得体会范文
2016/01/11 职场文书
2016年“我们的节日·重阳节”主题活动总结
2016/04/01 职场文书
详解运行Python的神器Jupyter Notebook
2021/06/03 Python