安装应用架构
入门的最简单的方式就是获取示例应用和模块库。可以通过以下几种途径。
使用Composer
简单复制ZendSkelectonApplication库:
1 |
prompt> git clone git://github.com/zendframework/ZendSkeletonApplication.git my-application |
然后运行Composer的install命令来安装ZF库和其他依赖配置:
1 |
prompt> php ./composer.phar install |
使用GIT
简单复制ZendSkeletonApplication库,使用–recursive选项,也将获得ZF库。
1 |
prompt> git clone --recursive git://github.com/zendframework/ZendSkeletonApplication.git my-application |
常规安装
- 下载ZendSkeletonApplication库的安装包
- 解压到指定的目录下,根据项目需要重命名父级目录;这里使用“my-application”。
- 安装Zend 框架,既可以放在include_path目录下,也可直接放在你的应用目录中。
创建新的模块
缺省情况下,ZendSkeletonApplication库提供了一个名为“Application”的模块。它只简单地提供了一个控制应用“主页”页面的控制器,layout模板,404和错误页面的模板。
通常情况下,你不需要改动这些,而是提供备用的入口页面和错误页面。
通过创建新的模块来实现而外的功能。建议使用ZendSkeletonModule作为基础。可以在这里下载:
- Zip:https://github.com/zendframework/ZendSkeletonModule/zipball/master
- Tarball:https://github.com/zendframework/ZendSkeletonModule/tarball/master
解压,并将其重命名为你希望创建的模块。完成后,移动到module/目录下。
接下来该创建一些功能了。
修改模块类
现在,我们来修改模块类。我们得确保初始化过程中的命名空间正确,配置可用可返回。由于我们正使用的模块,类列表在不断变化,我们想要自动加载的方式相当宽松。因此我们通过使用StandarAutoloader来保持它的灵活性。
首先,我们让autoload_classmap.php返回一个空数组:
1 2 3 |
<?php // autoload_classmap.php return array(); |
我们需要编辑config/module.config.php文件,如下:
1 2 3 4 5 6 7 |
return array( 'view_manager' => array( 'template_path_stack' => array( '<module-name>' => __DIR__ . '/../view' ), ), ); |
“module-name”处换成破折号分隔的小写字母的模块名,如“ZendUser”应写为“zend-user”。
接下来,编辑Module.php文件,如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
namespace <your module name here>; use Zend\ModuleManager\Feature\AutoloaderProviderInterface; use Zend\ModuleManager\Feature\ConfigProviderInterface; class Module implements AutoloaderProviderInterface, ConfigProviderInterface { public function getAutoloaderConfig() { return array( 'Zend\Loader\ClassMapAutoloader' => array( __DIR__ . '/autoload_classmap.php', ), 'Zend\Loader\StandardAutoloader' => array( 'namespaces' => array( __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, ), ), ); } public function getConfig() { return include __DIR__ . '/config/module.config.php'; } } |
到这里,你已经正确地配置了你的模块。