Ale*_*exA 13 drupal module web-applications
Drupal模块的最佳应用程序工作流隐喻是什么?在PHP框架中我们认为MVC风格.我们如何思考Drupal?
Asumming我正在编写一些面向用户的模块,如商店,目录或论坛.据我所知,没有或几个基于MVC的模块.我是否应该将Drupal模块(作为子应用程序)视为通过表单和超链接连接的多个屏幕,或者有更好的方法.
我的问题可能有点推测,但我希望有人会分享我思考模型的意图,而不仅仅是"脚本".
Hen*_*pel 14
表示抽象控制(PAC)似乎是描述Drupals一般方法的模式最接近的匹配,但我想这或多或少是偶然的;)
(或多或少)独立PAC三元组的层次结构可以粗略地映射到Drupal模块,它们在一个共同的屋顶下或多或少是独立的代理,在所有三个领域(视图,控制器,模型/抽象)中发挥作用.
Model-view-presenter还定义了Drupal中可以找到的一些方面,特别是与MVC的偏差,因为View不直接从Model中获取其内容,而是从控制器中获取内容,因此信息流是严格的View<>Controller/Presenter<>Model.
但是Drupal中关注点的分离是(非常)非常非正式的,并且很大程度上取决于开发人员的编码规则,因此总是处于完全崩溃的边缘(有很多模块将大量逻辑放入主题层) ,或多或少进入视图).
也就是说,严格执行分离似乎并不是Drupals成功的原因之一,因为它允许各种背景不同的人在不必接受培训的开发人员的情况下做出贡献.例如,一个对PHP有一点了解的HTML/CSS Guy可以在他的模板中实现相当多的调整和添加功能,而无需实现完整的模块.如果他所做的事情具有普遍意义,那么其他人提起它将迟早会演变成更正式的结构/模块.同样适用于崇拜者,爱好者和初学者 - 他们甚至可以在不了解最新情况的情况下实现他们的目标,因此他们对功能的想法会被添加到贡献中,并且如果他们满足一般兴趣,可以进行改进.
到目前为止,这已经运行得很好 - Drupal的核心在每个主要版本都得到了更正式(或更少的脚本),同时仍然保持了添加的灵活性 - 让我们看看这是否会在未来保持...