Yii framework

Yii framework

Повторне використання коду завжди вважалося (і вважається) хорошим тоном і сучасні ЯП пропонують нам досить широкий набір можливостей це здійснити. Сьогодні поговоримо про особливості використання поводжень і трейтов в Yii2.

Ще в першій версії Yii framework мені дуже сподобалися концепція з поведінками. Я вважаю, що в той час це було прекрасним рішенням. Але з виходом PHP 5.4.0 їх почали витісняти трейти. Зараз в більшій кількості випадків я використовую саме їх. Зараз розповім що і в яких випадках використовую я.

  • Вони швидше. Це ж конструкція мови.
  • При їх використанні витрачається менше пам'яті.
  • Можна описати статичні методи і поля.
  • Прямо не можна навісити на події свій обробник. Але це, як правило, вирішується аттачем на події в методі init (). Це спрацює якщо даний метод не описаний в "класі-батьку".
  • У PhpStorm 8 неправильно підсвічується синтаксис
  • Події yii навішуються без праці.
  • PhpStorm 8 коректно підсвічує синтаксис.
  • Не можна описати статичні методи і поля.
  • Повільніше, "жирніше" по пам'яті.

Приклад додавання обробників подій в trait

Зазвичай я створюю метод attachEventHandlers () в якому навішують на модель необхідні обробники.

А в методі init () просто його викликаю.

Це працює, якщо в батьківському класі не переопределяется init (). В іншому випадку, просто додаю в нього виклик $ this-> attachEventHandlers ().