ThinkPHP采用单一入口模式进行项目部署和访问,无论完成什么功能,一个应用都有一个统一(但不一定是唯一)的入口。
应该说,所有应用都是从入口文件开始的,并且不同应用的入口文件是类似的。
5.1
默认的应用入口文件位于public/index.php
,内容如下:
// [ 应用入口文件 ]
namespace think;
// 加载基础文件
require __DIR__ . '/../thinkphp/base.php';
// 执行应用并响应
Container::get('app')->run()->send();
入口文件位置的设计是为了让应用部署更安全,
public
目录为web可访问目录,其他的文件都可以放到非WEB访问目录下面。
新版框架默认不再支持改变应用目录(
application
)和入口文件位置,如果你需要更改,需要自己重新定义入口文件。
下面是一个例子(把入口文件放到应用根目录,并且更改应用目录名称为app
):
<?php
namespace think;
// 定义应用目录
define('APP_PATH', __DIR__ . '/app/');
// 加载框架基础引导文件
require __DIR__ . '/thinkphp/base.php';
// 添加额外的代码
// ...
// 执行应用并响应
Container::get('app', [APP_PATH])->run()->send();
如果是V5.1.2+
版本,上面的最后一行代码可以使用下面的替代:
Container::get('app')->path(APP_PATH)->run()->send();
更改应用目录名称和位置可能导致默认的命令行操作失效,你需要同步自定义根目录下面的
think
文件。