参看zend文档 : http://framework.zend.com/manual/2.2/en/user-guide
目录
I 安装ZF2
II 安装一个新应用
I 安装 ZF2
在经过下载无效后,还是老实的从手册开始吧:http://framework.zend.com/manual/2.2/en/user-guide/skeleton-application.html
之前电脑上已经安装了Composer,这里不细谈,如果需要阅读更多请查看 composer安装 一文
php composer.phar create-project --repository-url="https://packages.zendframework.com" zendframework/skeleton-application path/to/install(换成要安装的目录路径) php composer.phar update
安装完成后,就可以查看页面了。
代码结构如下:(注:Album 属于后面加的,马上会说到,现在可以忽略)
至此,ZF2 已经安装好了。如果有难度,那就是composer的安装。类Linux系统都还比较好处理,Windows系统以前不好处理。现在已经有composer的安装软件了。
II 安装一个新的应用Album
参考: http://framework.zend.com/manual/2.2/en/user-guide/modules.html
1) 在module下创建一个Album 的文件夹子目录
2) 需要继续在Album下创建对应的子文件夹,文件暂时可以忽略。如下图:
说明: Album已经将Module分开,Album内的命名空间也将变为 Album,存在于 src/Album文件夹内。在view的子目录下也有一个album的文件夹,那用于模块视图文件。
3) 为了加载模块配置,ZF2 使用了ModuleManager.她将去module/Album下查找Module.php,这应该是类Album\Module 的类文件。在Module.php 文件内实现一下代码
namespace Album; use Zend\ModuleManager\Feature\AutoloaderProviderInterface; use Zend\ModuleManager\Feature\ConfigProviderInterface; class Module implements AutoloaderProviderInterface, ConfigProviderInterface { /** * Return an array for passing to Zend\Loader\AutoloaderFactory. * * @return array */ public function getAutoloaderConfig() { // TODO: Implement getAutoloaderConfig() method. return array( 'Zend\Loader\ClassMapAutoloader' => array( __DIR__ . '/autoload_classmap.php', ), 'Zend\Loader\StandardAutoloader' => array( 'namespaces' => array( __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, ), ), ); } /** * Returns configuration to merge with application configuration * * @return array|\Traversable */ public function getConfig() { // TODO: Implement getConfig() method. return include __DIR__ . '/config/module.config.php'; } }
4)还需要在 module/Album 下添加 autoload_classmap.php 文件。我们不需要使用classmap反悔什么,所以,只需返回一个空的数组即可。如果需要创建映射的化,可以如下创建
return array( 'A\Class\Youre\Looking\For' => ___DIR__.'/xyz.php', );
也可以使用Composer来 处理。可以在composer.phar内添加
"autoload": { "psr-0": { "Album": "module/Album/src/" } },
然后 运行
php composer.phar update
5)自动加载完成后,现在开始配置。了解下Album\Module 内的 getConfig() 方法。其实这个方法只是简单加载config/module.config.php 。
在module/Album/config下,创建一个module.config.php 。添加代码如下
return array( 'controllers' => array( 'invokables' => array( 'Album\Controller\Album' => 'Album\Controller\AlbumController', ), ), 'view_manager' => array( 'template_path_stack' => array( 'album' => __DIR__ . '/../view', ), ), );
该配置文件将通过ServiceManager传递到相关的部件中。需要实例化两个部分:controllers 和 view_manager。controllers可以提供该模块的所有控制器。控制器的键名必需在所有模块唯一。所以可以添加模块名称作为前缀处理。
view_manager 部分是为TemplatePathStack添加的视图字典。这样可以方便TemplatePathStack迅速查找到对应的视图脚本。
6)为新模块添加信息
需要将新模块通知到ModuleManager,所以需要在config/appliction.config.php内修改modules模块信息。修改如下:
至此我们已经完成了基于ZF2的一个模块添加工作。