Pull to refresh

Comments 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. Поэтому использовали готовую сборку, в статье как раз она и используется.

Sign up to leave a comment.

Articles