在寫中間件時,發(fā)現(xiàn)一個比較重要問題,那就是中間件中獲取的controller對象,不是原來的controller對象,這樣不嚴謹,也導致在__construct()中對controller修改的屬性不生效,所以需要修改幾個地方。 控制器中間件代碼通常是這樣: if ($request->controller) { $controller = Container::get($request...
通常,很多人都是在控制器里直接調(diào)用view()方法渲染視圖文件,因為很多框架都是這么干的,于是大家都這么干了,但這種方式并不好,使得view與controller極度耦合。 webman中的controller沒有傳遞request對象,使得代碼寫起來有些繁瑣,基本每個action要傳遞request,但如果在construct中傳遞request,就可以這么寫: protected $request; ...
webman-framework/src/App.php幾處性能優(yōu)化(建議官方修改) 不是雞蛋里挑骨頭,webman本身就是出于對性能的追求,所以應要該精于求精,改進任何不太合理的地方。 guessControllerAction(...)這個方法,在foreach循環(huán)中用了array_merge,array_merge這個方法性能并不是很好,另一個問題是進行了兩次foreach循環(huán),實際只需要一次,看對比圖。 ...
看了webman框架性能介紹,有點垂涎,于是著手體驗一下,但有些地方與自己的架構(gòu)思維不太符合,還發(fā)現(xiàn)了一些性能問題,在此分享如何修改和優(yōu)化。 如何修改框架源碼? 直接去修改源文件的代碼這種方式不可取,因為官方升級后不好同步,也不好對比文件修改了什么地方,所以最好的方式是利用composer加載方式,重新創(chuàng)建一個目錄,把源碼文件復制到新建目錄里進行修改,最后利用自己創(chuàng)建的autoload加載文件,具體流程如下: 在...