zf2 getting started

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文件的存放路径。

时间: 2024-10-12 16:26:49

zf2 getting started的相关文章

关于ZF2中一点感悟,service_manager

在zf2中,在serviceLoctor中自定义的内容,可以通$serviceLocator->get('config')['key'],如果是在serivce_manger中定义的服务名,其实就是serviceLocator,用$serviceLocator->get('service_manager')会看到他存储的是service_manager的地址,也就是在service_manager中定义的,其实就是$serviceLocator中的服务,所以直接可以用$serviceLocat

zf2 安装

下载实例程序 ZendSkeletonApplication 解压至D:\xampp\htdocs并重命名为ZendSkeletonApplication 下载Zend Framework 2.0最新代码,解压至 D:\xampp\htdocs\ZendSkeletonApplication\vendor\ZF2 确认一下现在我们的文件结构应该是 file://D:\xampp\htdocs | +---ZendSkeletonApplication | | +---config | | +--

扩展 ZF2 Redis Zend Framework 2 Redis Extend - key正则

随着业务的进展,现在需要直接操作Redis 数据! 其中就需要获取指定前缀的key,就好像操作mysql一样,需要获取指定记录段! ZF2强大的支持了redis缓存方式,但是当我运用ZF2 redis缓存工厂模式的时候,竟然发现ZF2不支持redis的keys方法! //感谢博主:http://my.oschina.net/cart/ 接下来给大家详述如何扩展ZF2 Redis: \module\Application\src\Application\Service\RedisExtendSer

Zf2 自定义组件库如何设置

在模块的module.php中的getAutoLoaderConfig的 'Zend\Loader\StandardAutoloader' => array( 'namespaces' => array( __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, 'SLPack' => 'd:\myphp\www\hellow\vendor/'.'SLPack', ), 加入自定义库的命名空间对应的路径,这样SLPack这个命名空间将被

zf2环境设置

一.关于环境 修改apache目录下的httpd.conf 1.SetEnv ZF2_PATH “d:/myphp/www/zf2library” 2.修改 AllowOverride none 为AllowOverride All 二.有关文件描述 layout.phtml 文件在module/application/config/module.config.php中定义 'view_manager' => array( 'display_not_found_reason' => true,

PHPExcel整合到ZF2

下载PHPExcel到vendor下 在public\index.php中加 require './vendor/Classes/PHPExcel.php'; 之后就可以在任何地方按如下使用: use PHPExcel; $objPHPExcel = new PHPExcel(); 如遇到Fatal error: Class 'PHPExcel_Reader_Excel5' not found in... 这样使用new \PHPExcel_Reader_Excel5();   前面加\

ZF2小TIP:使用事件驱动为模块快速设置模板

<?php namespace Admin; use Zend\ModuleManager\ModuleManager; class Module { public function init(ModuleManager $moduleManager) { $sharedEvents = $moduleManager->getEventManager()->getSharedManager(); $sharedEvents->attach(__NAMESPACE__, 'dispa

PHPExcel融入ZF2

下载PHPExcel至vendor下一个 在public\index.php加拿大 require './vendor/Classes/PHPExcel.php'; 之后就能够在不论什么地方按例如以下使用: use PHPExcel; $objPHPExcel = new PHPExcel(); 如遇到Fatal error: Class 'PHPExcel_Reader_Excel5' not found in.. . 这样使用new \PHPExcel_Reader_Excel5();  

zf2 module.php中实现redirect

public function onBootstrap($e) { $e->getApplication()->getEventManager()->getSharedManager()->attach('Zend\Mvc\Controller\AbstractActionController', 'dispatch', function($e) { $controller = $e->getTarget(); if (something.....) { $controlle