在写中间件时,发现一个比较重要问题,那就是中间件中获取的controller对象,不是原来的controller对象,这样不严谨,也导致在__construct()中对controller修改的属性不生效,所以需要修改几个地方。 控制器中间件代码通常是这样: if ($request->controller) { $controller = Container::get($request...
通常,很多人都是在控制器里直接调用view()方法渲染视图文件,因为很多框架都是这么干的,于是大家都这么干了,但这种方式并不好,使得view与controller极度耦合。 webman中的controller没有传递request对象,使得代码写起来有些繁琐,基本每个action要传递request,但如果在construct中传递request,就可以这么写: protected $request; ...
webman-framework/src/App.php几处性能优化(建议官方修改) 不是鸡蛋里挑骨头,webman本身就是出于对性能的追求,所以应要该精于求精,改进任何不太合理的地方。 guessControllerAction(...)这个方法,在foreach循环中用了array_merge,array_merge这个方法性能并不是很好,另一个问题是进行了两次foreach循环,实际只需要一次,看对比图。 ...
看了webman框架性能介绍,有点垂涎,于是着手体验一下,但有些地方与自己的架构思维不太符合,还发现了一些性能问题,在此分享如何修改和优化。 如何修改框架源码? 直接去修改源文件的代码这种方式不可取,因为官方升级后不好同步,也不好对比文件修改了什么地方,所以最好的方式是利用composer加载方式,重新创建一个目录,把源码文件复制到新建目录里进行修改,最后利用自己创建的autoload加载文件,具体流程如下: 在...