Yii виджеты. Создание простого виджета.

  • 8 811
  • Комментарии: 3
Виджеты в Yii

В этой статье я хочу рассказать о виджетах в Yii. Мы поймём для чего он нужен и научимся создавать свои виджеты для Yii.

Что такое виджет в Yii и для чего он нужен?

Виджет в Yii — это наследник класса CWidget, который содержит некую внутреннюю логику и представление. Он очень похож на view-файл, только помимо представления он содержит логику отображения этого самого представления. Какая логика — зависит в каждом конкретном случае.

С помощью виджетов можно отображать курсы валют, погоду, свежие записи, и многое другое!

Как написать свой виджет для Yii?

Давайте попробуем создать простейший виджет, который будет выводить "Привет <username>!".

Сделайте следующее:

  1. Создайте папку в директории protected/extensions/hello. Это будет папка, в которой мы будем создавать виджет.
  2. Создайте файл protected/extensions/hello/HelloWidget.php
  3. Создайте папку protected/extensions/hello/views
  4. Создайте файл protected/extensions/hello/views/index.php

Так, каркас виджета готов, у вас должна получиться следующая структура файлов и папок:

Структура файлов и папок для виджета Yii

Теперь в файле HelloWidget.php напишите следующее:

<?php

class HelloWidget extends CWidget
{
    /**
     * @var string имя пользователя
     */
    public $username = '';

    /**
     * Запуск виджета
     */
    public function run()
    {
        $this->render('index', array(
            'username' => $this->username,
        ));
    }
}

В файле index.php пишем следующее:

<h1>Привет <?php echo $username; ?>!</h1>

Теперь в любом файле представления мы можем вызвать наш только что созданный виджет следующим образом:

<?php $this->widget('application.extensions.hello.HelloWidget', array(
    'username' => 'Борис'
)); ?>

В результате мы увидим:

Результат работы виджета Yii HelloWidget

Вот и всё, поставленная задача выполнена, дополнительную информацию о виджетах в Yii можно найти в официальной документации.

Понравилась статья? Оцени её!
3 комментария
  • Николай пишет:

    Приветствую, не в курсе как правильно в виджете подключить php файл со сторонним классом?

    • Борис Заболотских пишет:

      Здравствуйте Николай!
      Если речь идёт о первом Yii, то для этого необходимо воспользоваться методом Yii::import();. Этот метод подгрузит нужный класс в вашем файле.
      Если вы используете Yii2, то всё гораздо проще — используйте namespace.

  • А пишет:

    Отличные мануалы на сайте !!
    Зря блог забросили

    Спасибо

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *