Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我的胖客户端应用程序属于MVC模式吗?_Php_Model View Controller_Saas_Fat Client - Fatal编程技术网

Php 我的胖客户端应用程序属于MVC模式吗?

Php 我的胖客户端应用程序属于MVC模式吗?,php,model-view-controller,saas,fat-client,Php,Model View Controller,Saas,Fat Client,我目前正在开发的基于web的应用程序正在成长!它基本上是一个管理系统,帮助用户跟踪预订、用户帐户、发票等。它也可以通过几个不同的网站使用相当粗糙的API访问 胖客户机设计松散地遵循MVC模式(或者可能是MVP),有php/MySQL后端、前端控制器、几个不同的页面控制器、少量面向对象和过程模型、一堆混乱的视图和模板、一些Java脚本、CSS文件和Flash对象 我的程序员是“关注点分离”原则的忠实粉丝,在这一点上,我目前正试图找出最好的方法来分离,并随着项目的发展和更多人的参与,将各种关注点结合

我目前正在开发的基于web的应用程序正在成长!它基本上是一个管理系统,帮助用户跟踪预订、用户帐户、发票等。它也可以通过几个不同的网站使用相当粗糙的API访问

胖客户机设计松散地遵循MVC模式(或者可能是MVP),有php/MySQL后端、前端控制器、几个不同的页面控制器、少量面向对象和过程模型、一堆混乱的视图和模板、一些Java脚本、CSS文件和Flash对象

我的程序员是“关注点分离”原则的忠实粉丝,在这一点上,我目前正试图找出最好的方法来分离,并随着项目的发展和更多人的参与,将各种关注点结合起来

我们面临的问题是,尽管JavaScript(或带有ActionScript的Flash)通常是使用模板编写的,因此是视图的一部分,并且与控制器和模型分离,但我们发现它实际上包含了整个MVC模式。。。用onmouseover事件交换图像-这就是行为。渲染数据网格-我们正在处理视图。通过AJAX发送重新排序列表的结果-现在我们可以控制了。检查表单字段以查看电子邮件地址的格式是否有效-我们正在咨询模型

让数据库人员用jQuery编写验证模型是否明智?php程序员能用JavaScript编写必要的控制结构吗?web设计师真的能为他们的视图编写一个功能性AJAX表单吗?每个项目都应该有一个JavaScript霸主吗

如果MVC模式可以应用于人而不是代码,我们最终会得到以下结果:

  • 模型-数据库边界-“从
    mind
    中选择*其中
    感兴趣的
    为空”
  • 控制-讨厌的程序员-“类某物不扩展任何对象抽象类{…}”
  • 视图-传统上是图形/web设计器的领域-“”
…和一个新层:

  • 行为-互动和反馈设计师-“CSS3是新的黑色…”
所以,我们正在进行重构,我希望坚持最佳实践设计,但我不确定如何继续。我不想重新发明轮子,那么有没有人能给我一些提示或提示,告诉我应该看什么样的模式,或者从那些已经做过肮脏工作的人那里得到什么样的代码示例?作为程序员,我如何在保持后端和前端分离的同时重写后端和前端的应用程序


在您提问之前,是的,我已经看过Zend、Codeignator、Symfony等,不,它们似乎没有跨越服务器逻辑和客户机逻辑之间的界限

你和其他有头脑的人都在问这个问题,这是个棘手的问题。一个真正优秀的信息架构师会考虑可用性、行为和流程,尽管他/她可能甚至不知道如何使用设计工具,也不会画画或编程。如果他们能把一个界面做成一个草图,设计师就能把它画得漂亮。让设计师做一些看起来像是静态的东西——这是他们擅长的。为IA提供前端行为库,他们可以为屏幕对象指定这些行为。他们没有实现这些东西,他们只使用它。如果您使用JQuery这样的前端工具,这会容易得多,如果您有一位非常了解设计和后端的前端专家,这将非常好。将Java脚本分离到它们自己的目录中,并始终将它们作为外部文件链接。所有PHP框架都有动态执行此操作的方法。我曾经玩弄过一种配置结构的想法,它将文件映射到它们加载的所有前端内容,这样每个单独的视图只加载它需要的内容。但是你绝对正确:客户端有一个完全不同的次MVC,它主要存在于整个MVC的视图中。我认为您可以将Ajax的内容进行分区(当视图需要返回到服务器时),我将Ajax控制器方法作为Ajax方法进行记录,而不以其他方式调用它们。其中很大一部分是让团队中的每个人都接受分工范式。这只会导致他们编写更多解耦的可重用代码,不管您最终选择挂起它的框架是什么。你是对的,你可以用它们来做前端封装,但是没有一个能实现良好的前端封装,我认为这仍然是DYI的领域。祝你好运

你能给出一个具体的例子来说明你的目标吗?我的目标是找到一种最佳实践设计模式,在这种模式中,编写后端php模型、视图和控制器的人可以以某种方式动态地将相同的MVC逻辑写入前端Javascript,而不必混合Javascript和php,复制代码意图或让UI人员弄乱代码——因此,在后端MVC的V中有一种前端MVC。我是新来的-如果我的问题不清楚,我应该编辑吗?+1个有趣的问题。现在我正在使用PHP json_encode将全局设置放入一个JavaScript变量中。但这还不够,有重复的代码。似乎我们不是唯一考虑这个问题的人-我还没有找到任何具体的例子!看看这里:有趣的是,这是一个非常困难的问题,我想说的是,这个问题仍然没有解决,多年来几乎没有引起什么兴趣。我想这可能是因为没有人知道或相信有答案。或者至少在没有一种语言的情况下。