Комментарии 10
Тут нам на помощь приходит Server Side Rendering вместе с движком V8 и PHP-extension V8JS.
Что дальше? Пишем интерпретатор PHP с использованием WebAssembly, собираем V8 и подключаем к нему?
Нужно было сохранить результат рендера в HTML на диск.
Ну это тоже можно же было сделать силами реакта, а из php с помощью какого-нить Guzzle дергать нужный роут реакта, получать полный html в ответ и делать с ним, что угодно.
Кстати, а зачем вообще конструктору сайтов сохранять html в бд? Мне кажется, правильнее было бы хранить именно json. Если завтра юзер захочет заголовки поменять местами — он просто их поменяет. Если нужен на выходе статический сайт — ну у реакта наверняка есть в next.js такая фича, как генератор статики. Никакого смысла не вижу дублировать этот функционал.
Тут, если пойти дальше, то можно вообще дать выбирать фронтенд клиенту, подгружать, скажем, свои компоненты в конструктор. Выбрать, например, Вью вместо Реакта. А базу сохранять дерево из абстракций. Если сохранять html, ничего такого не выйдет уже.
RactDOMServer.renderToString()?
это же стандартный SSR на реакте?
Для легаси проектов на php выглядит как неплохое и интересное решение. Но имя за спиной докер и рэббит, не проще ли было сделать сервис рендера на чистой ноде?
С указанным модулем не было никаких проблем?
SSR: рендеринг ReactJS приложения на бекэнде используя PHP