Проектні рішення
Цей документ перелічує проектні рішення, які були прийняті командою розробників після широких дискусій. Допоки немає дуже вагомих причин, ці рішення повинні дотримуватись для узгодженості. Для будь-якої зміни у цих рішеннях необхідно отримати згоду команди головних розробників.
- Коли підтримувати псевдоніми шляху? Псевдоніми шляху повинні підтримуватися для властивостей, які можна сконфігурувати, тому-що використання псевдонімів шляху у конфігураціях дуже зручно. В інших випадках, потрібно обмежувати підтримку псевдонімів шляху.
- Коли перекладати повідомлення? Повідомлення повинні перекладатись, якщо вони показуються кінцевому користувачу та мають для нього значення. Повідомлення статусу HTTP, виключення і т.п. не повинні перекладатись. Повідомлення консолі завжди англійською мовою, через труднощі обробки кодування та кодової сторінки.
- Додавання підтримки нового клієнту аутентифікації Для кращого супроводу, ніякі додаткові клієнти аутентифікації не будуть додаватись до базового розширення. Вони повинні бути виконані у вигляді користувацьких розширень.
- При використанні замикань, рекомендується вказувати всі параметри, які передаються, у сигнатурі, навіть, якщо не всі з них використовуються. Таким чином змінювати чи копіювати код легше, тому-що вся інформація перед очима та нема потреби переглядати документацію для пошуку доступних параметрів. (#6584, #6875)
- Надавайте перевагу int замість unsigned int у схемі бази даних. Використання int має перевагу, бо може бути представлене в PHP як число. Щоб представити unsigned, для 32-розрядної системи необхідно використовувати текстовий рядок. Але також unsigned int подвоює діапазон позитивних чисел. Якщо у вас є таблиця, яка потребує такий великий числовий простір, то безпечніше використовувати bigint або mediumint, а не покладатися на unsigned. https://github.com/yiisoft/yii/pull/1923#issuecomment-11881967