假设我正在构建一个社交网站。我应该把整个网站放在 SocialNetworking 模块下吗?应该几乎每个页面都有自己的模块,如 ProfileModule、MessagingModule 和 GalleryModule?
还是有些不同,比如 AvatarModule、UserToUserConnectionModule,比如 FriendshipModule、PrivacyModule?
假设我正在构建一个社交网站。我应该把整个网站放在 SocialNetworking 模块下吗?应该几乎每个页面都有自己的模块,如 ProfileModule、MessagingModule 和 GalleryModule?
还是有些不同,比如 AvatarModule、UserToUserConnectionModule,比如 FriendshipModule、PrivacyModule?
模块不是网站不同“页面”的容器。
模块实际上可以是任何东西,但在大多数情况下,它为您的应用程序提供“功能”(服务、侦听器、事件、类,通常是逻辑)。
不要将模块视为 Web 应用程序中的单独 URL:而是将它们视为可重用代码的容器。
根据经验,如果 Zend Framework 2 模块提供了您可能希望在另一个项目中重用的逻辑,则它可以与应用程序上的其他功能分开。
正如您所看到的,这一切都与生成应用程序的可重用和解耦部分有关。
只是为了给@Ocramius 的好答案添加一些东西,你给出的例子都可以是模块。
你可以有一个“博客模块”。该模块将处理 BlogPosts。然后,您可以有一个额外的“CategoriesModule”,它添加了为每个 BlogPost 提供一个类别的选项。然后您可以编写另一个模块“MediaModule”,添加将媒体附加到您的博客帖子的功能