在React / Vue.js和PHP + HAML之间共享模板

我正在为我的下一个项目选择框架并陷入一个棘手的问题:如何在服务器之间共享模板 - 支持PHP和客户端Javascript?</ p>

在服务器上,我的应用程序将使用Symfony,Twig和MtHAML以PHP编写。 我有很少的模板作为早期的GUI原型,我真的很喜欢HAML,因为它将我的模板减少了一半。</ p>

在客户端上,我想使用Vue.js或React或类似的东西 (并告诉jQuery意大利面条怪物)。 我还没决定在这里使用什么。 我喜欢ES6类语法。 客户端将是一组相对简单的SPA - 老式独立页面,其中包含一些JS,以使它们更具交互性。 因此,客户端上没有路由也不会操纵浏览器历史记录,但我仍然想在这里和那里更新已经加载的页面。</ p>

因此,我需要在两个地方使用模板 :PHP中的服务器端和Javascript中的客户端。 问题是,如何在双方共享一个模板?</ p>

我正在考虑用Dust.js / php(Mustache太笨)将HAML模板编译成Javascript或类似的东西 的形式给出。 另一种方法是从HAML渲染Vue模板(Gitlab这样做)并以某种方式将它们预处理/后处理到PHP模板中。 但我确信有很多人也在处理这个问题。 不幸的是,Web上的大多数资源都已过时或非常混乱。 有一些现成的溶剂吗?</ p>
</ div>

展开原文

原文

I'm choosing frameworks for my next project and got stuck on a tricky problem: How to share templates between server-side PHP and client-side Javascript?

On server, my application is going to be written in PHP, using Symfony, Twig, and MtHAML. I have few templates as an early GUI prototype and I really like HAML as it cuts my templates in half.

On client, I would like to use Vue.js or React or something like that (and say bye to jQuery spaghetti monsters). I haven't decided what to use here yet. I like ES6 class syntax. The client side is going to be a set of relatively simple SPAs — old-school standalone pages with some JS to make them more interactive. Therefore, there will be no routing nor manipulating browser history on client, but still, I want to update already loaded page here and there.

So, I will need to use templates at two places: server-side in PHP and client-side in Javascript. The question is, how to share one template on both sides?

I'm thinking about compiling the HAML templates with Dust.js/php (Mustache is too dumb) into Javascript or some similar aproach. Another way could be to render Vue templates from HAML (Gitlab does that) and somehow pre/post-process them into PHP templates. But I'm sure there were many people dealing with this problem too. Unfortunately, most resources on the Web are outdated or very messy. Is there some ready-to-use sollution?

1个回答



之前我正在解决类似的问题,对我来说最好的解决方案是使用Symfony构建一个不错的API,然后为前端构建一些js框架 。 在两个环境之间玩弄模板真的很痛苦。 也许你会选择不同的方法,只是我的建议...... </ p>
</ div>

展开原文

原文

I was solving similar problem before and the best solution for me became to use Symfony to build a decent API and then some js framework for frontend. Juggling with templates between two environments was a real pain. Maybe you'll choose different approach, just a suggestion from me...

doumu6941
doumu6941 当然,我有一个很好的JSON REST API。 问题是,一旦我获取/更新某个实体,我需要将它呈现给用户 - 最有可能以与服务器端模板之前相同的方式呈现它,但使用新数据。 除非你的意思是获取已经呈现的页面的HTML片段。
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐