完整答案:
您可以同时拥有 MVC 前端和 MVC 后端。你也可以有一个 MVC 前端,而没有框架的后端,反之亦然。你并不总是需要一个框架,但它通常是一个好主意。诀窍是找到您正在寻找的框架。
如果你想拥有一个很酷的 ALL JS(没有 PHP)应用程序,你可以使用 Deployd 之类的东西作为你的后端 api / mongodb,并以 MVC 的风格集成 Angular。如果你想 MVC'itize 这类 JS 应用程序的后端框架,你可以这样做https://hackhands.com/mongodb-crud-mvc-way-with-passport-authentication/(往下看Express.jsapp/views
部分)。
我会推荐 Express.js 作为你的后端框架,并使用像http://briantford.com/blog/angular-express这样的 tut 来实现 MVC 风格。然后将所有脚本绑定到前端的 MVC 文件夹中,前端使用这个 express.js 服务器。您对文件夹的视图、对views
文件夹的控制器(路由)controller
以及构成 CRUD 或后端 API 的所有脚本,它们与您的 mongodb 通信以将数据提取到model
文件夹中。这很容易扩大规模。如果您在此设置中需要 Angular,则需要遵循有关如何将 Angular 实现为 express 的教程。
如果你想使用模板化的 php 前端或 Angular MVC 前端来使用 PHP 后端,你可以使用 Symfony2 框架之类的东西,它是全能的,超级强大,有据可查,而且不费吹灰之力。然后,当您使用 Twig(symfonys 默认模板引擎)制作模板(视图)时,您可以在那里编码您的 html,并在该页面上调用您的 php 变量,或者您可以像我提到的那样使用 angular 进行更改,然后调用在你看来就这样称呼它
{% verbatim %}
{ { variabileAngularjs } }
{% endverbatim %}
而且,如果你最初问的是,在后端使用单个 PHP 文件,这听起来像你所谓的“过程”编码,你也可以面向对象,但不确定你的想法,如果你去面向对象,然后很容易将模型放在模型文件夹中,将控制器放在控制器文件夹中,然后将其称为 mvc,但是如果您将所有功能放在相同的 PHP 方法中,例如验证帖子,则转到数据库,从 db 解析数据,然后在 http 响应中将其发送到视图,这听起来像是对 Web 开发技术的错误使用,因为它会导致严重的依赖性问题,因为如果你这样做了,你就不会很好地观察到“解耦”这个。为了解耦它,你删除执行 db 调用的方法,然后返回它,然后你有另一个方法,这也可能在另一个文件上,在控制器文件夹中,它调用此方法,并通过 http 返回,例如 http 响应,您的视图可以调用此控制器操作,引发响应。这就是 MVC 想要做的方式。
我知道这是一个较老的问题,但它给了我需要的答案,但我觉得有义务对此做一个很好的记录,因为它没有太多信息来帮助支持这个问题。