6. [Helpers vs separate non-static classes](https://github.com/yiisoft/yii2/pull/12661#issuecomment-251599463)
7. **Setters method chaining** should be avoided if there are methods in the classs returning meaningful values. Chaining could be
supported if a class is a builder where all setters are modifying internal state: https://github.com/yiisoft/yii2/issues/13026
8. **Global exception/error handler** is used instead of local try-catch because it is reliable in terms of catching destructors and everything that happens outside the scope of the `run()` method such as bootstrap. See [#14348](https://github.com/yiisoft/yii2/issues/14348).