Blade вне Laravel. Как зарендерить шаблон в переменную без response-объекта?

Так получилось, что собираю проект на slim framework, но там прикручен blade. Само собой нет хелперов, фасадов и прочих радостей. Наткнулся на задачу - нужно взять шаблон письма, подставить нужные переменные и передать объекту отправки почты в виде строки. Само собой, функций $blade->render() требует первым параметром $response.

Технически, я задачу решил, но криво - просто передал ей new Response(), шаблон мне вернул объект Response и через методы ->getBody()->__toString()
все вполне себе отдалось как надо.

Но такие танцы с бубном идут от одного пробела - я не знаю, как все это решить нативными средствами Blade. Явно же там есть какой-то метод, который позволяет зарендерить шаблон в текстовую переменную? Я искал в интернете, но там все методы идут через фасады и хелперы ларавела, не подходит мне.

Благодарю за помощь!
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ответы на вопрос 2
glaphire
@glaphire
PHP developer
Возможно этот пакет подойдет, тут как раз блейд без ларавеля
https://github.com/jenssegers/blade
Ответ написан
artoodetoo
@artoodetoo
https://gist.github.com/AlexR1712/83e502e25300fcfe...

Суть:
Ты можешь скомпилировать строку как шаблон в Blade::compileString() , затем исполнить полученный код, подставляя значения переменных через extract(), например. Всё, что выведет этот код надо поймать через функции буферизованного вывода ob_*.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы