【问题标题】:What are Zend Framework modules?Zend 框架模块是什么?
【发布时间】:2015-05-11 22:55:11
【问题描述】:

我想使用该框架构建一个简单的 CRUD 站点,但我对其文件结构/概念感到困惑。我了解 MVC 的概念,我过去曾使用 CodeIgniter 做过项目。我正在关注他们official site 上的教程,做了很多配置并尝试在他们提供的骨架应用程序中创建一个模块,这样做没有问题。所以这是我的问题,

  1. 每个模块本质上是一个网站吗?每次创建使用该框架的新网站时,是否在该 Zend 应用程序文件夹中创建一个新模块?

  2. 或者,网站的每个页面/子页面是否都是一个模块

【问题讨论】:

    标签: php zend-framework zend-framework2


    【解决方案1】:

    在模块出现之前(也就是说在 Zend 2 之前),您必须手动声明包含属于不同容器(模块)的不同类型控制器的文件夹。这当然不是很方便,而且我很确定他们采用的模块系统更像是面向模块的 Symfony 2。

    模块不一定是网站,但可以是您网站的一部分:例如,您可以将一个模块用于管理员访问,而将另一个模块用于公共访问。

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      来自the ZF2 documenation

      模块系统的设计考虑了灵活性、简单性和可重用性。一个模块可能包含几乎任何东西:PHP 代码,包括 MVC 功能;图书馆代码;查看脚本;和/或公共资产,例如图像、CSS 和 JavaScript。无限可能。

      对 MVC 模式的一般回答。

      模块是网站的一个独立部分。任何你认为可以分解得更小的东西都应该是。一个模块可能是一个出现在一个(或多个)页面上的注册表单。它可能会处理表单的提交并将结果返回以显示在页面上(包括表单)。

      另一个常见模块的例子是菜单栏。组织页面并为菜单生成 HTML 的代码都将构成一个模块。实际的页面本身可能是另一个模块,您的菜单模块与您的页面模块对话以获取需要输出的页面列表。

      任何数据库表通常都是一个模块。处理与该表交互的任何内容都通过该模块。该模块通常被其他模块查询以获取信息,或传递信息以保存在表中/从表中删除。

      您还可以拥有更大的模块,例如 CMS 页面。该模块负责获取 slug 并在数据库中查找页面。然后它可能会要求其他几个模块用内容填充页面,告诉他们它需要输出什么页面。然后他们会开始获取页面的内容,生成页面的特定部分并将其传递回原始模块,后者将所有内容放在一起并返回完整的页面 HTML。

      Frameworks 还将附带各种模块。我知道 Laravel 带有一个用于注册和验证用户的模块。它有一个使用对象关系映射方法访问数据库的模块(Eloquent,这可能是我没有检查过的几个模块)。助手是模块,例如表单生成器助手是一个模块。

      【讨论】:

      • +1 ZF2 和其他类似框架将允许您创建独立模块以帮助共享、代码重用和可维护性。 ZF2 做recommend a module directory structure 但这完全取决于您如何组织代码或创建多少模块。
      猜你喜欢
      • 1970-01-01
      • 2011-01-19
      • 2012-04-09
      • 1970-01-01
      • 1970-01-01
      • 2011-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多