Php 这些代码部分应该放在哪里?

Php 这些代码部分应该放在哪里?,php,model-view-controller,zend-framework,architecture,frameworks,Php,Model View Controller,Zend Framework,Architecture,Frameworks,我有一个简单的网站,用户可以上传图片,并给他们标题 上传表单应该在没有JavaScript和JavaScript的情况下工作(作为带有XHRs的层上的表单) 我有一个: 表格上传 Model_Post(带网关/映射器) 上传控制器 SuperDuper—处理文件上载、生成缩略图、存储图像等的类/资源 我认为必须在UploadController::uploadAction中完成的事情有: 创建新表单 检查它是POST请求还是GET请求 检查是XHR请求还是常规请求 Vaidate表格 从表单

我有一个简单的网站,用户可以上传图片,并给他们标题

上传表单应该在没有JavaScript和JavaScript的情况下工作(作为带有XHRs的层上的表单)

我有一个:

  • 表格上传
  • Model_Post(带网关/映射器)
  • 上传控制器
  • SuperDuper—处理文件上载、生成缩略图、存储图像等的类/资源
我认为必须在UploadController::uploadAction中完成的事情有:

  • 创建新表单
  • 检查它是POST请求还是GET请求
  • 检查是XHR请求还是常规请求
  • Vaidate表格
  • 从表单下载/接收文件
  • Valide文件的MIME类型
  • 使用SuperDuper转换文件,并返回附件ID
  • 如果一切正常,将带有附件ID的Post数据保存到数据库
  • 在适当的上下文中返回响应
  • 在适当的上下文中返回错误消息/表单错误
  • 而且似乎有很多事情需要在一次行动中完成

    还有很多“如果”,因为这个动作应该处理不同的上下文:GET、XHR POST、POST

    有没有什么好的Zend方法来处理这种情况(我相信这是一种非常流行的方法)。我是否应该在控制器中使用额外的私有函数来处理部分请求,或者根据上下文处理请求


    我的操作现在有140行长,似乎是错误的。

    在我看来,您应该为使用Zend_表单的表单类提供部分代码。在本课程中,应为第1、4、5、6点。你最好在flashmassanger中显示。其余的yur点必须在操作中,因此您也必须在操作中调用表单。

    不确定为什么您甚至会允许GET进行上载。很好的一点是,澄清一下:GET请求的此操作将只返回一个上载表单,而不处理上载本身。foo.bar/upload仅处理POST上载。谢谢,1。Create form=$form=new Application_form_Post();-因此,所有的代码都在Forms/Post.php文件中,当然是9.10。我只在上传成功后重定向到其他操作时才使用flashmessage,但这里不是这样。为什么您认为5和6应该在Forms/Post.php文件中?以及在Forms/Post.php中的确切位置?当您向表单添加文件字段时。