Comments 2
Как и в первой части пример слишком простой, и нет понимания «А зачем делать отдельный класс для 1 html тэга?». Вот если бы пример выглядел как-то так:
Понятно, что в конце репозитории в которые заходишь и непонятно за что схватиться, куда смотреть и чем наслаждаться :)
А вообще кстати вопрос (в первый раз это упустил): допустим у меня есть блок Menu и естестственно у меня есть меню в шапке и в подвале, содержимое и правила отображения (внутренняя логика) у них одинаковое, а вот шаблоны разные. Каким образом можно переиспользовать блок? Наследоваться и создавать новый класс с новым шаблоном?
Что-то похожее на код
$renderer = new Renderer($settings);
// добавить цепочечных вызовов, чтобы можно было строить такии конструкции
$menu = (new Menu)
->setTemplate('header')
->setItems([
'Main' => '/',
'About' => '/about',
// ...
]);
$renderer->append(new Header)
->append($menu)
->append(new LoginForm)
->setViewedFields('login', 'password');
$article = $renderer->append(new Article);
$article->setContent('...');
$article->setOpenGraph([
'author' => 'Mike',
'created' => '2021-05-24',
]);
$renderer->append(new Footer)
->append(new SubscribeForm)
->withCaptcha()
->append(clone $menu)
->setTemplate('footer');
echo $renderer->render();
Понятно, что в конце репозитории в которые заходишь и непонятно за что схватиться, куда смотреть и чем наслаждаться :)
А вообще кстати вопрос (в первый раз это упустил): допустим у меня есть блок Menu и естестственно у меня есть меню в шапке и в подвале, содержимое и правила отображения (внутренняя логика) у них одинаковое, а вот шаблоны разные. Каким образом можно переиспользовать блок? Наследоваться и создавать новый класс с новым шаблоном?
0
Каким образом можно переиспользовать блок? Наследоваться и создавать новый класс с новым шаблоном?
Да, абсолютно верно. Создать класс наследник и далее можно расширить стили и/или переопределить шаблон. Пример расширения стилей. Тоже касается и шаблона. Просто создать twig шаблон. Twig также поддерживает расширение, по-этому можно расширить (extend) родительский шаблон и переопределить только его часть
0
Only those users with full accounts are able to leave comments. Log in, please.
Модульные frond-end блоки — пишем свой пакет. Часть 2