Yii2. Основні моменти
Відмінності та поліпшення у Yii2 порівняно з Yii1. З розвитком фреймворку життя стає цікавішим
- Головна
- Блог
- Yii2. Основні моменти

1. У Yii2 все будується наnamespace. Namespace – це простір імен, така штука, введена в PHP з версії 5.3.0. Вивчіть докладніше простір імен. Вони потрібні для зручної організації роботи у фреймворку - дозволяють організовано звертатися до класів, уникнути конфлікту імен нашого коду та коду фреймворку та PHP; покращити читаність коду (один раз оголошуємо namespace і далі використовуємо коротку назву замість повного шляху до потрібного класу).
2. Видалено префікс "C" з імен файлів. Тепер не треба писати CGridView, CListView і т.д., а просто GridView, ListView.
3. Підключення модулів у конфіге використовується параметр 'class'
4. Зручно використовувати задані аліаси для налаштування шляхів до директорій "@app, @www, @wwwroot". Або створити свої аліаси.
5. У моделі введений метод scenarios(), для визначення правил валідації для конкретних сценаріїв
6. Для звернення до моделі не використовувати ->model(), це прибрали, і тепер робота з моделлю відбувається, як і з іншим звичайним класом:
7. В ActiveRecord прибрані scopes(), вони замінені на звичайні методи AR моделі та мають наступний вигляд
8. Змінено relations(). Тепер задаються у вигляді гетерів hasOne(), hasMany()
9. Події. Для того щоб визначити подію, достатньо в потрібному місці викликати «trigger()» функцію, а вже потім у потрібному місці задати для події обробник.
10. View. Тепер простіше називативидами, а неуявленнями. У Yii2 з'явився новий клас, який відповідає за всі види програми, і який безпосередньо виконує виведення інформації. Тепер у view файлах змінна "$this" відноситься вже не до контролера, а саме до нового класу "yii\base\View". Для того, щоб викликати певну функцію контролера або віджету, до якого належить уявлення, потрібно звернутися до методу: "context".
11. Widgets.Віджети були доповнені новими методами, плюс тепер вони повинні бути безпосередньо виведені через echo.
12. Action Filters. Фільтри. У новій версії фільтри контролерів реалізовані як «behaviors».
13. Active Form. Форми тепер створюються ще швидше та зручніше, за рахунок ActiveField класу, який спрощує стиль написання коду.
14.User та Identity. Робота з користувачами. Тепер здійснюється через клас "yii\web\User" та інтерфейс "yii\web\Identity", що більш гнучко у використанні. Через ці зміни атрибути користувача можна отримати через метод «identity» користувача.