Skip to content

Обработка результата

Третий аргумент View::make() и view() — функция, через которую проходит готовый HTML перед возвратом:

php
view(string $template, array $params = [], callable $callback = null): string

Работает для любого типа шаблона — и для чанка, и для файла, и для @INLINE.

🔹 Удаление HTML

php
view('file:user-card', ['user' => $user], function ($buffer) {
    return strip_tags($buffer);
});

📄 Чистый текст без <div> и <a> — удобно для текстовой части письма.

🔹 Минификация

php
view('file:page', [], function ($buffer) {
    return preg_replace('/\s{2,}|\n/', '', $buffer);
});

📉 Осторожно с <pre> и <textarea>: там пробелы значимы, и такая замена их съест.

🔹 Цензура

php
view('file:comment', ['text' => $comment], function ($buffer) {
    return str_ireplace(['дурак', 'идиот'], '[цензура]', $buffer);
});

🔹 Замена абсолютных путей

php
view('file:page', [], function ($buffer) {
    return str_replace('https://example.com/assets/', '/assets/', $buffer);
});

🔁 Пригождается при переносе сайта между окружениями.

🔹 rel="nofollow" всем ссылкам

php
view('file:page', [], function ($buffer) {
    return preg_replace('/<a (.*?)href="(.*?)"(.*?)>/i', '<a $1href="$2" rel="nofollow"$3>', $buffer);
});

🔍 Против SEO-спама в комментариях и гостевом контенте.

Обработчик обязан вернуть строку

Возвращаемое значение подменяет вывод целиком. Забыли return — на месте шаблона окажется пустота.

Один шаблон, а не вся страница

Колбэк видит результат этого вызова view(), а не итоговый документ. Чтобы обработать страницу целиком, вешайте обработку на ответ, а не на шаблон — см. Middleware.

© PageBlocks 2019-present