Zend框架提供了功能强大的模块系统。模块系统具有三个组件。它们如下-
- 模块自动加载器-模块自动加载器负责从各种来源定位和加载模块。它也可以加载打包为Phar归档文件的模块。模块自动加载器的实现位于myapp / vendor / zendframework / zend-loader / src / ModuleAutoloader.php。
- 模块管理器-模块自动加载器找到模块后,模块管理器将为每个模块触发一系列事件。模块管理器的实现位于myapp / vendor / zendframework / zendmodulemanager / src / ModuleManager.php中。
- 模块管理器监听器-它们可以附加到模块管理器触发的事件。通过附加模块管理器的事件,他们可以完成从解析和加载模块到为每个模块执行复杂工作的所有工作。
MVC Web模块系统
Zend框架中的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_ files。
模块类别
Module类应命名为Module,模块类的命名空间应为Module name。这将有助于Zend Framework轻松解析和加载模块。骨架(myapp)应用程序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()函数,并执行必要的步骤。
作者:terry,如若转载,请注明出处:https://www.web176.com/zendframework/304.html