Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.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 您如何确定视图或控制器中是否出现了某些内容?(Zend框架)_Php_Model View Controller_Zend Framework_Separation Of Concerns - Fatal编程技术网

Php 您如何确定视图或控制器中是否出现了某些内容?(Zend框架)

Php 您如何确定视图或控制器中是否出现了某些内容?(Zend框架),php,model-view-controller,zend-framework,separation-of-concerns,Php,Model View Controller,Zend Framework,Separation Of Concerns,您如何确定视图或控制器中是否出现了某些内容 以下是一些具体的例子: Zend_验证码:控制器是生成验证码并将其传递给视图还是视图生成验证码 Zend_Alc:视图决定是否向用户显示视图的某个部分,还是根据可用的操作有多个视图,并且控制器选择正确的视图进行显示 Zend_Session:视图是否根据会话数据跟踪查看它的用户,还是由控制器解析并作为某种参数呈现给视图 关于哪些组件(模型、视图或控制器)应该执行哪些操作的规则或指导方针是否写在我可以查看它们的地方?我在Zend Framework站

您如何确定视图或控制器中是否出现了某些内容

以下是一些具体的例子:

  • Zend_验证码:控制器是生成验证码并将其传递给视图还是视图生成验证码
  • Zend_Alc:视图决定是否向用户显示视图的某个部分,还是根据可用的操作有多个视图,并且控制器选择正确的视图进行显示
  • Zend_Session:视图是否根据会话数据跟踪查看它的用户,还是由控制器解析并作为某种参数呈现给视图

关于哪些组件(模型、视图或控制器)应该执行哪些操作的规则或指导方针是否写在我可以查看它们的地方?我在Zend Framework站点的文档中没有看到这一点。

对于Capcha,您可以在视图中生成。对于Acl,请使用视图。Zend_会话可由控制器和视图访问,您可以在视图中生成Capcha。对于Acl,请使用视图。Zend_会话可由控制器和视图访问。一般来说,这个问题适用于任何MVC框架。以下是我使用的准则:

  • 瘦控制器。如果可能的话,让您的控制器只需在模型上调用业务逻辑并将结果传递给视图

  • 视图只做视图逻辑。执行与用户可视化交互相关的任何操作,例如生成CAPTCHA、隐藏和显示基于ACL的链接。不要计算总数。不要在模型上调用逻辑。不要做商业逻辑。通常可以从视图中读取会话以隐藏和显示数据/链接。但不要依赖它来保证安全:让你的控制器也安全

  • 胖模特。将尽可能多的业务逻辑放入模型中。这样,您就可以在控制器之间共享它们。如果您发现自己处于一个控制器中,在模型元素上迭代,根据某些规则重置值,或者执行复杂的业务逻辑,那么您应该尝试找到一种方法将该逻辑引入模型层


  • 希望这有帮助

    一般来说,这个问题适用于任何MVC框架。以下是我使用的准则:

  • 瘦控制器。如果可能的话,让您的控制器只需在模型上调用业务逻辑并将结果传递给视图

  • 视图只做视图逻辑。执行与用户可视化交互相关的任何操作,例如生成CAPTCHA、隐藏和显示基于ACL的链接。不要计算总数。不要在模型上调用逻辑。不要做商业逻辑。通常可以从视图中读取会话以隐藏和显示数据/链接。但不要依赖它来保证安全:让你的控制器也安全

  • 胖模特。将尽可能多的业务逻辑放入模型中。这样,您就可以在控制器之间共享它们。如果您发现自己处于一个控制器中,在模型元素上迭代,根据某些规则重置值,或者执行复杂的业务逻辑,那么您应该尝试找到一种方法将该逻辑引入模型层


  • 希望这有帮助

    我很好奇,既然你说“可以”和“可以访问”,听起来好像这是写在什么地方的。但我没有在指南页上看到。我错过了吗?是在别的地方吗?我很好奇,既然你说“可以”和“可以访问”,听起来好像这是写在什么地方的。但我没有在指南页上看到。我错过了吗?是别的地方吗?我同意皮特的话。视图应该只显示交给它的内容。最多,你可以在视图中运行循环,但这就是逻辑。我支持Pete所说的。视图应该只显示交给它的内容。最多,您可以在视图中运行循环,但这就是re:logic。