Усередині поведінки можна звертатися до компонента, до якого воно прикріплене, використовуючи властивість yii \ base \ Behavior :: $ owner:
Є такі способи задати потрібну поведінку класу:- Прив'язка на уровнеоб'екта (контролер, модель, компонент ...) - перевизначення методу behaviors ();
- Динамічна прив'язка (з методів / дії) не перевизначаючи метод behaviors ();
- Прив'язка через конфігурацію.
Прив'язка на рівні об'єкта
Якщо ви робите окремий клас, то він розширює модель, ті публічні методи цього класу стають доступними з моделі. Так само в класі можна прописати спрацьовування поводжень на подію.
Приклад.
в контролері створюється поведінку яке викликається до виконання дій.
'Slug' - назва масиву даних, може бути будь-яким, в т.ч. не збігатися з назвою класу або взагалі бути відсутнім. В даному випадку, поведінка називається іменованих.
'Class' - вказується викликається клас.
'Iniciali' - публічна змінна яка передає дані в клас. Оскільки даний клас Slug може викликатися для різних контролерів, моделей ... можуть передаватися різні значення змінних.
Якщо не потрібно передавати дані в клас, то можна написати більш стисло і без назви (анонімне поведінку):
Клас поведінки може виглядати так:
В даному випадку поведінка використовується для прив'язки події до дії контролера. А саме - перед виконанням будь-якої дії даного контролера виконається метод getMyMetod () з класу поведінки.
yii \ web \ Controller - вказується до чого прив'язуємо
EVENT_BEFORE_ACTION - подія яка повинна спрацювати (см.спісок стандартних подій тут)
getMyMetod - назва методу класу, який зголоситься при настанні події.
У нашій поведінці створюється глобальний параметр додатки 'fio' зі значенням post_ksl перед викликом будь-якої дії. Отримати значення можна так:
Крім використання подій, методи класу зазначеного в поведінці розширюють об'єкт в якому ця поведінка визначено (контролер, модель ...)
Тобто якщо додати в class Slug метод
Його можна буде викликати в діях контролера:
Динамічна прив'язка (з методів / дії) не перевизначаючи метод behaviors ().
Для того, щоб прикріпити поведінку динамічно, необхідно викликати метод yii \ base \ Component :: attachBehavior () необхідного компонента.
Першим параметром вказується довільну назву поведінки.
Приклад прив'язки класу Slug до Controller Так само можна підключити відразу декілька поводжень:
Прив'язка через конфігурацію
Якщо ви підключаєте свої компоненти в файлі \ config \ main.php. то прив'язати поведінку можна відразу при підключенні.
Робиться це за допомогою приставки «as», після чого слід назва поведінки.
Після цього при виклику компонента - класу Comp будуть доступні методи і з поведінки (клас Slug).
наприклад:
Можна прив'язати поведінки для самого об'єкта додатка ($ app):
У config \ main.php одним з елементів масиву в return:
Після цього в додаток додадуться властивості і методи із зазначеного класу. Наприклад метод name (). який можна тепер викликати так:
Якщо не потрібно передавати параметри, то можна прописати одним рядком:
або (одне і теж)
OpenCart 2+ опис процесу завантаження програми.
Етапи завантаження конфігурації OpenCart версії 2+ Від точки входу до підключення потрібних бібліотек.
Використання подій в PHP.
Наведені приклади створення і використання подій в php.
Створення розширення (пакета) для Yii2.
У даній статті розповім як створити розширення для програми на php-фреймворку Yii2 для його використання в інших своїх проектах і для використання іншими розробниками.
Rahmat! Men o'zbek yigitman. Shunga o'zbekcha gapiraman. Tushunmagan bo'lsangiz uzur.
Дякуємо. Думав просто може в цьому коді можна що то прибрати і буде працювати.
А якщо в URL не потрібно відображення мовної мітки, то як це можна зробити?
Для показу цього елементу вам необхідно встановити FlashPlayer та включити в броузері Java Script.