tp5—入口文件

ThinkPHP采用单一入口模式进行项目部署和访问,无论完成什么功能一个应用都有一个统一(但不一定是唯一)的入口。
应该说,所有应用都是从入口文件开始的,并且不同应用的入口文件是类似的。

入口文件定义

入口文件主要完成:
定义框架路径、项目路径(可选)
定义系统相关常量(可选)
载入框架入口文件(必须)
5.0认的应用入口文件位于public/index.PHP内容如下:
// 定义应用目录
define(‘APP_PATH’, DIR . ‘/…/application/’);
// 加载框架引导文件
require DIR . ‘/…/thinkPHP/start.PHP’;
入口文件位置的设计是为了让应用部署更安全,public目录为web可访问目录,其他的文件都可以放到非WEB访问目录下面。
修改入口文件位置请查看章节<部署-虚拟主机环境>
入口文件中还可以定义一些系统变量,用于相关的绑定操作(通常用于多个入口的情况),这个会在后面涉及,暂且不提。
给APP_PATH定义绝对路径会提高系统的加载效率。
在有些情况下,你可能需要加载框架的基础引导文件base.PHP,该引导文件和start.PHP的区别是不会主动执行应用,而是需要自己进行应用执行,下面是一个例子:
// 定义应用目录
define(‘APP_PATH’, DIR . ‘/…/application/’);
// 加载框架基础引导文件
require DIR . ‘/…/thinkPHP/base.PHP’;
// 添加额外的代码
// …
// 执行应用
\think\App::run()->send();

隐藏入口文件

在ThinkPHP5.0中,出于优化的URL访问原则,还支持通过URL重写隐藏入口文件,下面以Apache为例说明隐藏应用入口文件index.PHP的设置。
下面是Apache的配置过程,可以参考下:
1、httpd.conf配置文件中加载了mod_rewrite.so模块
2、AllowOverride None 将None改为 All
3、在应用入口文件同级目录添加.htaccess文件内容如下:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.PHP/$1 [QSA,PT,L]

更多其它环境的隐藏入口文件参考后面的 URL重写

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...