如何在概念上使用PHP MVC后端为现代SPA前端提供数据服务?

如何在概念上使用PHP MVC后端为现代SPA前端提供数据服务?,php,angular,model-view-controller,single-page-application,vuejs2,Php,Angular,Model View Controller,Single Page Application,Vuejs2,我不确定,从概念上来说,什么是将数据从php mvc后端服务到前端的正确方式 基本上,我对angularjs中的内容感到满意:将一些控制器放入DOM中,并为单击、if条件等事件提供一些指令。。然而,时代变了,我们必须继续前进 所以这里是我的问题:我有一个巨大的PHP MVC后端和一个模板引擎。我想保留这些东西,因为只向前端提供json将完全删除MVC中的视图 也许可以将一些内部视图作为json提供。但是我需要由PHP提供和预呈现HTML结构。所以混合了php模板引擎和angular的语法。让我们

我不确定,从概念上来说,什么是将数据从php mvc后端服务到前端的正确方式

基本上,我对angularjs中的内容感到满意:将一些控制器放入DOM中,并为单击、if条件等事件提供一些指令。。然而,时代变了,我们必须继续前进

所以这里是我的问题:我有一个巨大的PHP MVC后端和一个模板引擎。我想保留这些东西,因为只向前端提供json将完全删除MVC中的视图

也许可以将一些内部视图作为json提供。但是我需要由PHP提供和预呈现HTML结构。所以混合了php模板引擎和angular的语法。让我们以angular或vue2的TypeScript为例(这是我更喜欢在应用程序中使用的)


如何正确地做到这一点以保持未来的节约?我的意思是这个组件风格很好,但我需要让它与我的后端顺利结合。如果我只给出一个
模板URL
,我如何确保充分利用前端的缓存技术和类似技术?

创建混合angular应用程序有点棘手,因为如果angular中处理状态本身很棘手,请尝试将其与php中的状态相结合

我发现最好的方法是将angular看作一个小部件库

通过创建包含繁重UI的小部件(组件),您可以走很长的路

我不会尝试将角度组件模板与php结合,而是将数据传递到角度组件中。这样你就可以很容易地测试角度分量,并且你将能够推断出什么是在角度的土地上,什么是在混合土地上。 如果您正在调试一个angular组件,那么您可以通过检查进入该组件的数据(如果bug是在typescript或php中)来了解它

有几个场景

表单验证 您有一个表单可以处理验证,但随后使用普通的

高级形式 您有一个更复杂的表单,可能有多个视图,您可以通过json api和angulars Http服务处理post数据

图 通过图形小部件以图形方式显示数据

如何 将整个php应用程序设置为angular应用程序,但不要使用angular的路由

通过
@Input()


哇,非常感谢你的回答。你有这样的例子吗?假设我们有一个Symfony 3应用程序或类似的东西。如何将来自控制器动作的变量传递到angular?对不起,没有示例。但只要你能在twig模板中打印变量,你就可以将它们传递给angular组件。好的,你的意思是我构建了一个typescript/angular组件,但我会在
HTML
模板中使用我的php变量。所以整个过程就是包含php的typescript文件,对吗?不,您使用angular cli将angular应用程序编译成一个包含在php应用程序中的.js文件。编译后的angular应用程序需要引导html标记,以便我们可以在应用程序中使用我们的组件。然后我们在php代码中使用角度组件,通过html属性将php变量注入角度组件中。但这可能需要一段时间。我想大概一两个星期。如果你的答案已经解决了,我稍后会回来标记你的答案。
<my-component showinfo="<?= $showInfo ?>"></my-component>