Создание помошника (View Helper) для Zend Framework 3
Задача: естественным для Zend Framework способом выводить в шаблоне phtml некий HTML текст генерируемый на сервере.
Решение: создадим helper (помошник вида), на примере вывода каких то сообщений пользователю.
1) В настройках модуля анонсируем помошника:
1 2 3 4 |
'view_helpers' => [ 'factories' => [View\Helper\Messages::class => InvokableFactory::class], 'aliases' => ['mess' => View\Helper\Messages::class], ], |
2) Создаем класс /module/Application/src/View/Helper/Messages
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php namespace Application\View\Helper; use Zend\View\Helper\AbstractHelper; use Application\Common\CommonFunctions; // Этот класс помощника отображения разных сообщений пользователю (статичных) class Messages extends AbstractHelper { public function __construct() { } public function renderErrorMessages() { foreach (CommonFunctions::$err as $msg) { echo '<div class="alert alert-warning alert-dismissible fade show" role="alert">'; echo "<strong>$msg</strong>"; echo '<button type="button" class="close" data-dismiss="alert" aria-label="Close">'; echo '<span aria-hidden="true">×</span>'; echo '</button>'; echo '</div>'; }; } } |
3) В нутри шаблона layout.phtml теперь можно написать чтото вроде:
1 2 3 4 5 6 7 8 |
<div class="container-fluid"> <?php echo $this->mess()->renderErrorMessages(); ?> <?= $this->content ?> <hr> <footer> <p>© 2011 - <?= date('Y') ?> by <a href="https://грибовы.рф">Pavel Gribov</a></p> </footer> </div> |