单页应用程序适用于CRM吗?

时间:2016-03-31 15:48:51

标签: php angularjs cakephp crm single-page-application

我希望您对网络架构问题的看法很平均。

上下文:我必须为我的公司构建一个自定义CRM(客户关系管理)Web平台,它几乎只对客户,合同,发票等实体执行CRUD操作。同样,它应该处理用户管理,如注册,身份验证和授权(用户定义允许执行哪种类型的操作的角色)。如果您想要更详细的想法,请data model

限制:我在服务器端有义务使用:

  • CakePHP 2.7( PHP 5.5
  • MySQL 5.5

对于客户端,我可以在HTML,CSS和Javascript中自由使用任何前端Web框架和库组件,而无需任何浏览器限制。

关注:我主要关注客户端 - 服务器之间的分离,这就是我倾向于使用SPA方法的原因。我想通过使用CakePHP模板文件(。ctp)尽可能避免在后端上呈现视图。如果可能的话,我甚至想通过后端几乎完全不知道客户端。

除了提供最初的html,css和js应用程序文件之外,我想使用我的后端作为整个Json REST API,用于客户端通过Ajax消耗的 EVERY CRUD操作调用。我考虑使用AngularJS来处理所有MVVM客户端部分。

问题:单页应用是否适合此方法?你会怎么做?任何链接或文档将不胜感激。

感谢您对此事的见解!

祝你有个美好的一天。

3 个答案:

答案 0 :(得分:2)

我肯定对我的答案有偏见,但到目前为止我已经在前端使用Angular和在后端使用Node了。如果您要为JSON提供REST API,那么无论您为前端选择什么,它都应该是相同的。

Angular允许非常简单地应用MVC模式。因此,使用附加到前端的任何逻辑都非常容易。有许多教程和示例for A&A虽然我已经使用并推荐了JWT,因为你的API将在(几乎)所有内容中提供JSON,并且很容易在每个请求上附加到Auth头(使用服务) )。

Angular有$ http方法,允许基本的POST和GET到你提供的任何URL,轻松处理错误和成功。

除了与服务器的交互之外,它还有几种有用且简洁的方式来显示浏览器上的信息,例如用户信息,角色等,例如使用双花括号{{user.name}}

任何问题都可以随意提问!

答案 1 :(得分:1)

如果你可以用cakePhp进行Api休息,角度是做前端的好选择。

我建议你在你的api休息时使用$ resource。 $ http。

更有效率

https://docs.angularjs.org/api/ngResource/service/$resource

答案 2 :(得分:1)

由一家知名公司雇佣,我们必须这样做。我们使用ui.router构建了一个大型SPA来处理路由。 ui.router声称是事实上的'角度路由解决方案确实是最好的解决方案。

我们有Angular前端和Node后端,但正如你所说,前端和后端完全不可知。

要进一步区分问题,您应该考虑将解决方案,网络文件和网络服务器停靠在一个容器中,与其他容器中的后端通信。

PS如果你不熟悉docker,你想要一个非常快速的概述,请参阅:

Are changes to Docker images automatically transferred to deployed containers?

我感谢您可能会限制使用Docker,但如果没有,那就太棒了!