Я написал часть, которую я хочу использовать в нескольких модулях. Я думал, что лучший способ – поместить его в свою собственную библиотеку.
Но, к сожалению, я не мог понять, как включить это частичное без использования очень уродливого пути, например:
echo $this->partial('/../../../../vendor/myvendor/library/MyVendor/View/Views/FormPartial.phtml' , array(...));
Любые идеи о том, как связать мой каталог с моим представлением?
Проблема заключается в том, что resolver не может разрешить путь к шаблону вида, который вы предоставили. Обычно я добавляю запись конфигурации для всех доступных партикулов в записи template_map в файле module.config.php
например, у меня есть частицы верхнего и нижнего колонтитулов, такие как my view / layout / header.phtml и view / layout / footer.phtml
ниже моя конфигурация
'template_map' => array( 'layout/layout' => __DIR__ . '/../view/layout/layout.phtml', 'header' => __DIR__ . '/../view/layout/header.phtml', 'footer' => __DIR__ . '/../view/layout/footer.phtml', 'error/404' => __DIR__ . '/../view/error/404.phtml', 'error/index' => __DIR__ . '/../view/error/index.phtml', ),
и внутри моего сценария просмотра макета я просто поставил
<?php echo $this->partial('header'); ?>
а также
<?php echo $this->partial('footer'); ?>
Другое, если у вас есть частичные части в разделе / module / controller / action format, вы также можете сделать
<?php echo $this->partial('/module/controller/action'); ?>
вы должны поместить сценарий вида в папку просмотра папки контроллера вашего модуля