ThinkPHP8.0采用单一入口模式进行项目部署和访问,一个应用都有一个统一(但不一定是唯一)的入口。如果采用自动多应用部署的话,一个入口文件还可以自动对应多个应用。
默认的应用入口文件位于:niucloud/public/index.php,默认内容如下:
// [ 应用入口文件 ]
namespace think;
if (PHP_VERSION_ID < 80000)
die('require PHP > 8.0.0 !');
require __DIR__ . '/../vendor/autoload.php';
if (!file_exists(__DIR__ .'/../install.lock')) {
header("location:/install.php");
exit;
}
// 执行HTTP应用并响应
$http = (new App())->http;
$response = $http->run();
$response->send();
$http->end($response);
遵循ThinkPHP的安全部署建议:public目录作为唯一Web可访问目录。
如果你没有特殊的自定义需求,无需对入口文件做任何的更改。
除了Web访问入口外,系统还提供了控制台入口文件,用于执行命令行操作。
控制台入口文件位于项目根目录,文件名为think(无文件后缀):
niucloud/think
控制台入口文件的典型内容如下:
#!/usr/bin/env php
<?php
namespace think;
// 加载基础文件
require __DIR__ . '/vendor/autoload.php';
// 应用初始化
(new App())->console->run();
通过控制台入口文件,可以执行系统内置的各种命令,例如:
php think version # 查看框架版本
php think route # 查看路由列表
php think make:controller # 创建控制器
php think optimize:autoload # 优化自动加载文件
系统内置了一些常用的控制台指令,如果你安装了额外的扩展,也会增加相应的控制台指令,都是通过该入口文件执行的。