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

时间:2017-05-10 06:51:18

标签: php angular model-view-controller single-page-application vuejs2

我不确定,从概念上认为从php mvc后端向前端提供数据的正确方法是什么。

基本上,我对angularjs中的内容感到满意:将一些控制器放入DOM中,并将一些指令用于点击等事件,如果条件等等。但是,时间已经改变,我们必须继续前进。

所以这是我的问题:我有一个巨大的PHP MVC后端和一个模板引擎。我想保留这些东西,因为只有json服务于前端会完全删除MVC中的View。

也许提供一些内部观点,因为json会好的。但我需要PHP提供和预呈现HTML结构。所以混合语法与php模板引擎和角度。让我们以TypeScript(我喜欢在我的应用程序中使用)的角度或vue2为例。

如何正确地做到这一点以保持未来 - 保存?我的意思是这个组件风格很好,但我需要以顺畅的方式将它与我的后端结合起来。如果我只是给templateUrl,我怎么能确保充分利用缓存技术和前端的东西呢?

1 个答案:

答案 0 :(得分:1)

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

我发现的最好方法是将角度视为小部件库。

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

我不会尝试将角度组件模板与php结合使用,而是将数据传递到角度组件中。通过这种方式,您可以轻松地测试角度分量,并且您将能够推断角度范围内的内容以及混合土地中的内容。 如果你正在调试一个角度组件,你知道它是通过检查进入组件的数据,如果bug是在typescript或php中。

有两种情况。

表格验证

您有一个角度处理验证的表单,但随后使用普通<form action="/submitform" method="post">

提交

高级表格

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

图表

通过图表小部件以图形方式呈现数据。

HOWTO

让您的整个PHP应用程序成为一个有角度的应用程序,但不要使用角度路由。

通过@Input()

将php状态注入组件
<my-component showinfo="<?= $showInfo ?>"></my-component>

通过输入传递所有php变量,您将能够通过jasmine轻松测试角度分量。

角-CLI

我可能会使用angular-cli来创建应用程序。问题在于它默认使用仅在内存中运行的webpack dev服务器。

改为使用

  • - 观察以便在文件更改时进行角度重建
  • - output-hashing = none,以便angular始终输出相同的文件名,以便您可以将它们包含在应用中
  • - output-path =指定构建文件的位置

    ng build --watch --output-hashing = none --output-path = my / php / public / folder