在写中间件时,发现一个比较重要问题,那就是中间件中获取的controller对象,不是原来的controller对象,这样不严谨,也导致在__construct()中对controller修改的属性不生效控制器中间件代码通常是这样:
```php
if ($request->controller) {
$controller = Container::get($request->查找src/Container.php中的get()方法,调试发现是new了一个新的实例
```php
public function get(string $name)
{
if}
}
return $this->instances[$name];
}
```
刚开始准备改这个get()方法,但这个方法对应接口仅提供一个$name参数,发现make()方法执行是在中间件的Container::get()之后,分析src/App.php的流程,可以对getCallback()方法进行修改,多传递一个request参数,然后稍微调整,就可以让