This document lists the design decisions that we have made after extensive discussions. Unless there are very strong reasons, these decisions should be kept for consistency. Any change to these decisions should get agreement among the core developers.
- When to support path aliases we should support path alias for properties that are configurable because using path aliases in configurations are very convenient. In other cases, we should restrict the support for path aliases.
- When to translate messages messages should be translated when these are displayed to non-tech end user and make sense to him. HTTP status messages, exceptions about the code etc. should not be translated. Console messages are always in English because of encoding and codepage handling difficulties.
- 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, #6875)
- Prefer int over unsigned int in database schema. Using int has the benefit that it can be represented in PHP as an integer. If unsigned, for 32 bit system, we would have to use string to represent it. Also although unsigned int doubles the size, if you have a table that needs such big number space, then it's safer to use bigint or mediumint rather than relying on unsigned. https://github.com/yiisoft/yii/pull/1923#issuecomment-11881967