我来自不同的MVC框架(例如Symfony)到Magento.我读了很多关于Magento最佳实践的内容,我可以看到Magento没有使用典型的MVC风格.Alan Storm写道如下:
控制器的责任不是为视图设置变量控制器的工作就是对模型执行某些操作,然后告诉系统它的布局渲染时间.
我想我理解这种方法,因为这可以为块提供一种灵活性.
对.但形式怎么样?
在典型的MVC框架中,您将获得控制器中的请求参数,验证控制器中的表单数据,进行模型操作(保存,加载等)或必要时重定向,当一切都干净整洁时,您将提供新鲜出炉的视图输出件.
在Magento中,这些都应该发生在一个块内,而(瘦)控制器只应该准备布局然后再渲染它.(如果我理解的话.)
我试图找到一篇文章(手册,论坛主题,任何内容),它描述了一个单独模块的创建步骤,该模块具有自己的新模型,可以通过用户在前端的表单进行编辑.我想看看自定义表单应该如何在前端工作.我发现只有关于块,表单,修改或创建adminhtml表单或自定义联系人或简报注册表单的一般文章.
我做到了.它现在有效,但我不满意.那么,我检查了核心模块中Contact表单的源代码,这些对我来说搞乱了整个图片.内置的Contact表单使用IndexController进行上述大多数操作,(几乎)就像标准的MVC一样.
任何人都可以向我建议一个最佳实践,如何管理如下的简单流程?(我在下面有这些解决方案,但我不确定,是"正确的Magento方式"):
我的困惑主要在于: