Я выбираю фреймворки для моего следующего проекта и застрял на хитрой проблеме: как делиться шаблонами между серверной PHP и клиентской Javascript?
На сервере мое приложение будет написано на PHP с использованием Symfony, Twig и MtHAML. У меня есть несколько шаблонов в качестве раннего прототипа GUI, и мне действительно нравится HAML, так как он разрезает мои шаблоны пополам.
На клиенте я хотел бы использовать Vue.js или React или что-то в этом роде (и сказать «пока» спагетти-монстрам jQuery). Я еще не решил, что использовать здесь. Мне нравится синтаксис класса ES6. Клиентская сторона будет представлять собой набор относительно простых SPA — старых страниц старой школы с некоторыми JS, чтобы сделать их более интерактивными. Поэтому на клиенте не будет ни маршрутизации, ни манипулирования историей браузера, но все же, я хочу обновить уже загруженную страницу здесь и там.
Поэтому мне нужно будет использовать шаблоны в двух местах: на стороне сервера в PHP и на стороне клиента в Javascript. Вопрос в том, как поделиться одним шаблоном с обеих сторон?
Я думаю о компиляции шаблонов HAML с помощью Dust.js / php (усы слишком тупые) в Javascript или какой-то подобный подход. Другим способом может быть рендеринг шаблонов Vue из HAML (это делает Gitlab) и каким-то образом предварительно / постобработка их в шаблоны PHP. Но я уверен, что многие люди тоже занимались этой проблемой. К сожалению, большинство ресурсов в Интернете устарели или очень грязные. Есть ли готовое растворение?
Ранее я решал подобную проблему, и лучшим решением для меня стало использование Symfony для создания достойного API, а затем немного js-фреймворка для внешнего интерфейса. Жонглирование шаблонами между двумя средами было настоящей болью. Может быть, вы выберете другой подход, просто предложение от меня …
Других решений пока нет …