Yii2 віджети

Отже, віджети - це деякі компоненти, які призначені в першу чергу для реалізації елементів інтерфейсу і які можна використовувати багаторазово. Класичним прикладом такого елемента може бути меню. Меню використовується практично на кожній сторінці вашого сайту і від сторінки до сторінки залишається незмінним. Тобто, від сторінки до сторінки ми повинні повторювати один і той же код для отримання меню і його виведення. Але завдяки віджетів ми можемо уникнути цієї стомлюючої процедури і створити меню тільки один раз, а потім просто викликати його.

У Yii2 вже є велика кількість різних віджетів: для створення форм, меню, jQuery UI і інші. Крім того, фреймворк дозволяє нам створювати власні віджети. Давайте на простому прикладі розберемо створення найпростішого віджета.

Створюються вони в папці components, яку ми можемо створити в корені додатки. Для створення віджета ми повинні успадкувати клас yii \ base \ Widget. Усередині класу віджета ми можемо перевизначити методи init і run. Також можемо створювати і власні методи. Метод init, як правило, використовується для нормалізації властивостей віджета (установка значень), а метод run повертає результат рендеринга. Результат можна вивести за допомогою echo або повернути через return.

Давайте створимо простий приклад віджета, який вітатиме відвідувачів сайту.

Yii2 віджети

Тепер спробуємо викликати створений віджет в поданні. Для цього необхідно звернутися до створеного класу і викликати статичний метод widget.

Yii2 віджети

В результаті на сторінці ми побачимо виведену вітальну рядок. Що тут може бентежити? Поки що у нас всього один рядок і ми просто помістили її в метод run. А що якщо ми формуємо велике меню - наприклад mega menu? В цьому випадку у нас буде багато коду HTML. Але це не проблема. Yii пропонує нам створити поруч з класом віджета папку views, в яку і помістити уявлення для віджета. Саме уявлення можна викликати методом render. Давайте спробуєм.

Створимо вид hi.php:

А в методі run повернемо його:

Yii2 віджети

На виході ми отримаємо той самий варіант. У підсумку ми з вами створили найпростіший варіант віджета, який можна використовувати як завгодно багато разів. Насправді дана тема далеко не обмежується цими знаннями. Віджети можуть бути куди як складніше, вони можуть бути налаштованим, тобто в них можна передавати параметри. Але це тема вже окремої статті. Ми ж на цьому поки що зупинимося. Більше про фреймворку ви можете дізнатися з наших безкоштовних або платних уроків. Також створення найпростішого блогу на Yii2 можна подивитися в цьому циклі уроків.

Найсвіжіші новини IT і веб-розробки на нашому Telegram-каналі

Схожі статті