🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
ThinkPHP采用**单一入口模式**进行项目部署和访问,无论完成什么功能,一个应用都有一个统一(但不一定是唯一)的入口。 应该说,所有应用都是从入口文件开始的,并且不同应用的入口文件是类似的。 ## 入口文件定义 `5.1`默认的应用入口文件位于`public/index.php`,内容如下: ~~~ // [ 应用入口文件 ] namespace think; // 加载基础文件 require __DIR__ . '/../thinkphp/base.php'; // 执行应用并响应 Container::get('app')->run()->send(); ~~~ >[info] 入口文件位置的设计是为了让应用部署更安全,`public`目录为web可访问目录,其他的文件都可以放到非WEB访问目录下面。 ## 更改应用目录和入口位置 >[danger] 新版框架默认不再支持改变应用目录(`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(); ~~~ >[danger] 更改应用目录名称和位置可能导致默认的命令行操作失效,你需要同步自定义根目录下面的`think`文件。