Челендж на 2026

Александр Воробьев
На сайте с 03.02.2020
Offline
59
#261
ArbNet #:

А это как-то так, будет движком интерпретатором обработчиком %команда% будет?

$response-> по моему более лучший вариант для тебя

Это варианты для разных уровней.

Нужен и оправдан на проекте шаблонизатор. Значит используем шаблонизатор и шаблоны, соответственно html  с тегами шаблонизатора.  Шаблонизатор сам взаимодействует с билдером.

Если шаблонизатор на проекте избыточен, но нужно управление статическими файлами  -используем только билдер.

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

// Уже доступно. Возвращается просто строка, готовый HTML. 
// Преобразуется в HTmlResponse который, при необходимости согласно логике, насыщается, например, заголовками
$router->get(
    '/var1',
    static fn() => <<<'HTML'
        <html><head></head><body><ul>
            <li><a href="/name/Alex">Hi Alex</a> Текстовый ответ. Имя можно менять</li>
            <li><a href="/json/Alex">Hi Alex</a> Json ответ. Имя можно менять</li>
        </ul></body></html>
        HTML,
);
// Уже доступно. Возвращается уже готовый HtmlResponse, если есть у нас такая необходимость
$router->get(
    '/var2',
    static fn() => new HtmlResponse()->setBody(<<<'HTML'
        <html><head></head><body><ul>
            <li><a href="/name/Alex">Hi Alex</a> Текстовый ответ. Имя можно менять</li>
            <li><a href="/json/Alex">Hi Alex</a> Json ответ. Имя можно менять</li>
        </ul></body></html>
        HTML),
);
// Над этим работаю.
$router->get(
    '/var3',
    static fn(HtmlBuilder $builder) => $builder->setBody(<<<'HTML'
        <ul>
            <li><a href="/name/Alex">Hi Alex</a> Текстовый ответ. Имя можно менять</li>
            <li><a href="/json/Alex">Hi Alex</a> Json ответ. Имя можно менять</li>
        </ul>
        HTML)->build(),
);
// Это уже с модулем шаблонизации. HTML где то лежит/формируется согласно правил шаблонизатора
$router->get(
    '/var4',
    static fn(Templator $templator) => $templator->build(),
);

т.е. имеем четыре зарегистрированных url которые будут отдавать одинаковую страницу, но формировать ее разными способами

Александр Воробьев
На сайте с 03.02.2020
Offline
59
#262

--- del

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий