- Zend Framework 教程
- Zend Framework - 首页
- Zend Framework - 简介
- Zend Framework - 安装
- 框架应用程序
- Zend Framework - MVC 架构
- Zend Framework - 概念
- Zend Framework - 服务管理器
- Zend Framework - 事件管理器
- Zend Framework - 模块系统
- 应用程序结构
- Zend Framework - 创建模块
- Zend Framework - 控制器
- Zend Framework - 路由
- Zend Framework - 视图层
- Zend Framework - 布局
- 模型与数据库
- 不同的数据库
- 表单与验证
- Zend Framework - 文件上传
- Zend Framework - Ajax
- Cookie 管理
- 会话管理
- Zend Framework - 身份验证
- 邮件管理
- Zend Framework - 单元测试
- Zend Framework - 错误处理
- Zend Framework - 工作示例
- Zend Framework 有用资源
- Zend Framework - 快速指南
- Zend Framework - 有用资源
- Zend Framework - 讨论
Zend Framework - 模块系统
Zend Framework 提供了一个强大的模块系统。该模块系统包含三个组件,如下所示:
模块自动加载器 - 模块自动加载器负责从各种来源定位和加载模块。它也可以加载打包为Phar 归档文件的模块。模块自动加载器的实现位于 myapp/vendor/zendframework/zend-loader/src/ModuleAutoloader.php。
模块管理器 - 模块自动加载器找到模块后,模块管理器会为每个模块触发一系列事件。模块管理器的实现位于 myapp/vendor/zendframework/zendmodulemanager/src/ModuleManager.php。
模块管理器监听器 - 它们可以附加到模块管理器触发的事件。通过附加到模块管理器的事件,它们可以执行从解析和加载模块到为每个模块执行复杂工作的任何操作。
MVC Web 模块系统
Zend Framework 中的 MVC Web 应用程序通常编写为模块。单个网站可以包含一个或多个按功能分组的模块。面向 MVC 的模块的推荐结构如下:
module_root/ Module.php autoload_classmap.php autoload_function.php autoload_register.php config/ module.config.php public/ images/ css/ js/ src/ <module_namespace>/ <code files> test/ phpunit.xml bootstrap.php <module_namespace>/ <test code files> view/ <dir-named-after-module-namespace>/ <dir-named-after-a-controller>/ <.phtml files>
该结构与上一章中讨论的相同,但这里它是通用的。autoload_ 文件可以用作自动加载模块中可用类的默认机制,而无需使用zend-modulemanager中提供的更高级的模块管理器。
autoload_classmap.php - 返回一个类名及其对应文件名数组。
autoload_function.php - 返回一个 PHP 回调函数。这可以使用 autoload_classmap.php 返回的类。
autoload_register.php - 注册 autoload_function.php 返回的 PHP 回调函数。
这些自动加载文件不是必需的,但建议使用。在框架应用程序中,我们没有使用autoload_ 文件。
模块类
模块类应命名为Module,模块类的命名空间应为模块名。这将帮助 Zend Framework 更轻松地解析和加载模块。框架应用程序 (myapp) 应用程序中的Application 模块代码,myapp/module/Application/src/Module.php 如下所示:
namespace Application; class Module { const VERSION = '3.0.2dev'; public function getConfig() { return include __DIR__ . '/../config/module.config.php'; } }
Zend Framework 模块管理器将自动调用getConfig()函数,并执行必要的步骤。