加载中...

入口文件


ThinkPHP采用单一入口模式进行项目部署和访问,无论完成什么功能,一个应用都有一个统一(但不一定是唯一)的入口。

应该说,所有应用都是从入口文件开始的,并且不同应用的入口文件是类似的。

入口文件定义

5.1默认的应用入口文件位于public/index.php,内容如下:

  1. // [ 应用入口文件 ]
  2. namespace think;
  3. // 加载基础文件
  4. require __DIR__ . '/../thinkphp/base.php';
  5. // 执行应用并响应
  6. Container::get('app')->run()->send();

入口文件位置的设计是为了让应用部署更安全,public目录为web可访问目录,其他的文件都可以放到非WEB访问目录下面。

更改应用目录和入口位置

新版框架默认不再支持改变应用目录(application)和入口文件位置,如果你需要更改,需要自己重新定义入口文件。

下面是一个例子(把入口文件放到应用根目录,并且更改应用目录名称为app):

  1. <?php
  2. namespace think;
  3. // 定义应用目录
  4. define('APP_PATH', __DIR__ . '/app/');
  5. // 加载框架基础引导文件
  6. require __DIR__ . '/thinkphp/base.php';
  7. // 添加额外的代码
  8. // ...
  9. // 执行应用并响应
  10. Container::get('app', [APP_PATH])->run()->send();

如果是V5.1.2+版本,上面的最后一行代码可以使用下面的替代:

  1. Container::get('app')->path(APP_PATH)->run()->send();

更改应用目录名称和位置可能导致默认的命令行操作失效,你需要同步自定义根目录下面的think文件。


还没有评论.