入口文件

优质
小牛编辑
135浏览
2023-12-01

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文件。