DIY 实现 ThinkPHP 核心框架 (十)App 类
在 ThinkPHP 5 和 6 中, App
类的主要功能为初始化 application
目录中的应用程序,以及路由检测等操作。它继承了 Container
类,在其基础上增加了与应用程序相关的功能。
创建 core/src/think/App.php
文件
namespace think;
class App extends Container
{
// 无路由检测、请求、分发方便测试
public function run()
{
// 调用 index()
$controller = $this->make('\\app\\index\\controller\\Index');
//调用 Response 类静态方法创建 Response 实例
return Response::create($controller->test());
}
创建 core/src/think/Response.php
declare (strict_types = 1);
namespace think;
class Response
{
protected $data;
// 构造方法传入相应数据
public function __construct($data = null)
{
$this->data = $data;
}
// 输出数据
public function send(): void
{
echo $this->data;
}
// 创建自身实例
public static function create($data)
{
return new static($data);
}
}
修改 index.php
进行测试
require __DIR__ . '/../core/base.php';
\think\Container::get('app')->run()->send();
成功打印
#################################
#################################
#################################
######CONTROLLER===>Index########
#################################
#################################
#################################
本作品采用《CC 协议》,转载必须注明作者和本文链接