Как стать автором
Обновить

Комментарии 10

Тут нам на помощь приходит Server Side Rendering вместе с движком V8 и PHP-extension V8JS.

Что дальше? Пишем интерпретатор PHP с использованием WebAssembly, собираем V8 и подключаем к нему?
спасибо за ссылку на исходник
Хм, зачем это на PHP делать? Чем ReactJS слаб для данных целей. Мы вот IDE делаем на ReactJS, визуальная, приложение прям тут же работает.

Нужно было сохранить результат рендера в HTML на диск.

Ну это тоже можно же было сделать силами реакта, а из php с помощью какого-нить Guzzle дергать нужный роут реакта, получать полный html в ответ и делать с ним, что угодно.
Кстати, а зачем вообще конструктору сайтов сохранять html в бд? Мне кажется, правильнее было бы хранить именно json. Если завтра юзер захочет заголовки поменять местами — он просто их поменяет. Если нужен на выходе статический сайт — ну у реакта наверняка есть в next.js такая фича, как генератор статики. Никакого смысла не вижу дублировать этот функционал.
Тут, если пойти дальше, то можно вообще дать выбирать фронтенд клиенту, подгружать, скажем, свои компоненты в конструктор. Выбрать, например, Вью вместо Реакта. А базу сохранять дерево из абстракций. Если сохранять html, ничего такого не выйдет уже.

RactDOMServer.renderToString()?
это же стандартный SSR на реакте?

Какой-то странный путь почесать за ухом)

Для легаси проектов на php выглядит как неплохое и интересное решение. Но имя за спиной докер и рэббит, не проще ли было сделать сервис рендера на чистой ноде?
С указанным модулем не было никаких проблем?

Хороший комментарий!


На ноде сделать — это идеальный вариант. Не использовали её в связи с особенностями работы над проектом. Насчет проблем — проблема была когда пытались сами собрать V8. Поэтому использовали готовую сборку, в статье как раз она и используется.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории