Zend Framework 2 添加模块
2014年02月20日
使用Zend Framework 2 的模块(Module)功能,可以把程序的相关功能集合到一个模块中,既便于管理,又可以重复使用,减少工作量。
并且模块还可以与其他模块相连接起来,构建复杂大型系统。
添加模块可以有多种方法:
方法一:手动添加
步骤1:新建模块文件夹,这里我们将模块命名为:Sample
[root@qiais public_html]# pwd /home/qi/public_html [root@qiais public_html]# ls LICENSE.txt composer.json composer.phar data module vendor README.md composer.lock config init_autoloader.php public [root@qiais public_html]# cd module/ [root@qiais module]# mkdir Sample [root@qiais module]#
步骤2:进入到Sample文件夹,新建模块文件:Module.php
[root@qiais module]# cd Sample/ [root@qiais Sample]# vi Module.php
Module.php中输入以下内容:
namespace Sample; class Module { }
这就是添加模块所需要的最基本要求。当然,模块添加后有很多事情需要做,手动添加暂时到此为止。
方法2: 使用ZendSkeletonModule样板
步骤一:使用git将ZendSkeletonModule拉到module文件夹,并重命名为Sample
[root@qiais module]# pwd /home/qi/public_html/module [root@qiais module]# git clone git://github.com/zendframework/ZendSkeletonModule.git Sample Initialized empty Git repository in /home/qi/public_html/module/Sample/.git/ remote: Reusing existing pack: 203, done. remote: Total 203 (delta 0), reused 0 (delta 0) Receiving objects: 100% (203/203), 29.86 KiB, done. Resolving deltas: 100% (75/75), done. [root@qiais module]#
步骤二:编辑Sample/Module.php,将命名空间由ZendSkeletonModule改为Sample
module/Sample/Module.php <?php namespace ZendSkeletonModule; /*将次行改为:namespace Sample; */ use Zend\ModuleManager\Feature\AutoloaderProviderInterface; use Zend\Mvc\ModuleRouteListener; use Zend\Mvc\MvcEvent; class Module implements AutoloaderProviderInterface { public function getAutoloaderConfig() {
改为如下:
module/Sample/Module.php <?php namespace Sample; use Zend\ModuleManager\Feature\AutoloaderProviderInterface; use Zend\Mvc\ModuleRouteListener; use Zend\Mvc\MvcEvent; class Module implements AutoloaderProviderInterface { public function getAutoloaderConfig() {
步骤三:删除以下文件夹
Sample/src/ZendSkeletonModule
Sample/view/zend-skeleton-module
方法3: zftool命令生成模块
zftool命令也许是最快最便捷的方法,但不怎么推荐,因为它会自动修改配置文件,增加的一些我们可能不知道的文件,不便于管理。而且生成的代码不符合PSR规范。