4.**When using closures** it is recommended to **include all passed parameters** in the signature even if not all of them are
used. This way modifying or copying code is easier because all information is directly visible and it is not necessary to
look up which params are actually available in the documentation. ([#6584](https://github.com/yiisoft/yii2/pull/6584), [#6875](https://github.com/yiisoft/yii2/issues/6875))
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).