Виджет

Материал из Micro PHP Framework
Перейти к: навигация, поиск

Виджет - частный случай контроллера, применяемый для упрощения написания Представлений.

Widget API

Создание виджета

<?php
class MenuWidget extends \Micro\mvc\Widget
{
  public 
$links// автоматически получаем параметр с именем links

  
public function init()
  {
     
// инициализатор виджета, может возвращать результат, например объект формы
  
}
  public function 
run()
  {
     
// реализатор виджета, тут основная логика (аналог Контроллера)

     
$view = new \Micro\mvc\views\PhpView;
     
$view->addParameter('menu', \Micro\wrappers\Html::lists($this->links);
     return 
$view;
  }
}
?>

Использование виджета

В зависимости от реализации, виджеты в представлениях можно запускать одним из двух способов. рассмотрим их по очереди:

<?php
$this
->widget('\App\widgets\MenuWidget', ['links' => $this->links]);
?>

Пробросили меню представления в виджет для отрисовки.

<?php
$form 
$this->beginWidget('\Micro\widgets\FormWidget', ['method'=>'post']);

echo 
$form->textFieldRow($model'login');
echo 
$form->passwordFieldRow($model'password');
echo \
Micro\wrappers\Html::submitButton('Войти');

$this->endWidget('\Micro\widgets\FormWidget');
?>

Отрисовали форму входа на сайт