Zend Framework 2 (ZF2)中的模块

3
假设我正在构建一个社交网络网站。我应该将整个网站放在SocialNetworking模块下,还是每个页面都应该有自己的模块,如ProfileModule、MessagingModule和GalleryModule?
或者像AvatarModule、UserToUserConnectionModule这样的不同模块,例如FriendshipModule、PrivacyModule?
2个回答

6
模块并不是网站中不同“页面”的容器。
一个模块可以是任何东西,但在大多数情况下,它为您的应用程序提供“功能”(服务、监听器、事件、类、一般逻辑)。
不要将模块分开,认为它们是 Web 应用程序中不同 URL 的容器:相反,将它们视为可重复使用代码的容器。
作为经验法则,如果 Zend Framework 2 模块提供了您可能想要在另一个项目中重用的逻辑,则可以将其与应用程序中的其他功能分开。
正如您所看到的,这一切都关乎生成应用程序的可重复和解耦部分。

3

补充一下@Ocramius的好回答,你列举的所有示例都可以成为模块。

你可以有一个“BlogModule”。这个模块将处理博客文章。然后您可以有一个额外的“CategoriesModule”,它添加了为每个BlogPost指定类别的选项。然后您可以编写另一个模块“MediaModule”,它增加了将媒体附加到您的BlogPosts的功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接