标签:
1. 新建Modules
以一个名为Album的module为例,其目录结构如下(可使用zftool自动创建)
1 2 3 4 5 6 7 8 9 10 11 12 |
zf2-tutorial/
/module
/Album
/config
/src
/Album
/Controller
/Form
/Model
/view
/album
/album
|
为了加载和配置module,ZF2自备了一个ModuleManager。它会在指定module的根目录中(本例是module/Album)查找Module.php文件,并期望在此文件中找到名为Album\Module的类。即是以module名为命名空间的Module类。
code in 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 Album;
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‘;
}
}
|
注:若是使用zftool生成的Album目录结构,Module.php已经创建,与上文所示不同的是没有autoload_classmap.php文件的加载,若是使用上文code,则在此目录下再新建文件autoload_classmap.php并使其返回一个空的数组。
The ModuleManager will call getAutoloaderConfig() and getConfig() automatically for us.
module专属配置文件
在module/Album/config目录下创建module.config.php文件,内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 |
return array(
‘controllers‘ => array(
‘invokables‘ => array(
‘Album\Controller\Album‘ => ‘Album\Controller\AlbumController‘,
),
),
‘view_manager‘ => array(
‘template_path_stack‘ => array(
‘album‘ => __DIR__ . ‘/../view‘,
),
),
);
|
上文的code中可以看出返回的是一个数组,其中的每个子配置都会由ServiceMannger根据其键值传递给相应的组件。上文中的两个子配置是初始配置:controllers和view_manager。其中controllers子配置提供了本module所有的controllerde列表,就如已经配置的一样,我们将创建一个AlbumController,命名空间Album\Controller。view_mannger配置的是view文件的存放路径。
标签:
原文地址:http://www.cnblogs.com/flytome/p/4270749.html