Pull to refresh

Comments 2

Как и в первой части пример слишком простой, и нет понимания «А зачем делать отдельный класс для 1 html тэга?». Вот если бы пример выглядел как-то так:

Что-то похожее на код
$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 и естестственно у меня есть меню в шапке и в подвале, содержимое и правила отображения (внутренняя логика) у них одинаковое, а вот шаблоны разные. Каким образом можно переиспользовать блок? Наследоваться и создавать новый класс с новым шаблоном?
Каким образом можно переиспользовать блок? Наследоваться и создавать новый класс с новым шаблоном?

Да, абсолютно верно. Создать класс наследник и далее можно расширить стили и/или переопределить шаблон. Пример расширения стилей. Тоже касается и шаблона. Просто создать twig шаблон. Twig также поддерживает расширение, по-этому можно расширить (extend) родительский шаблон и переопределить только его часть
Sign up to leave a comment.

Articles