http://1208.me/zf2-study-note-basic-config/
从http://framework.zend.com/下载最新的版本,解压后文件夹里有个zend framework所有库文件library
<br/>
建立一个源码根目录C:/www/zendtest/,基本的目录结构如下:
/config ―――――全局配置目录
/library ―――――zendframework核心类库以及自定义类库目录
/module ―――――模块目录
/public ―――――前端入口、images、js、styles等
首先看看config,新建立/config/autoload 目录,里边主要是写全局配置
在/config下建立文件application.config.php
<?php return array( 'modules' => array( //'Application', 'BackEnd', ), 'module_listener_options' => array( 'config_glob_paths' => array( 'config/autoload/{,*.}{global,beta,local}.php', ), 'module_paths' => array( './module', ) ), );
说明:
modules:模块名称,也就是在/module下的模块,在这里需要写明,不然zf不知道。
module_listener_options:moduleManager将根据这里的配置选项增加监听。
config_glob_paths:全局配置(按照global,beta,local.php为后缀的顺序进行merge)
module_paths:模块的目录
新建/config/init_autoloader.php文件
<?php include dirname(__DIR__) . '/library/Zend/Loader/AutoloaderFactory.php'; Zend\Loader\AutoloaderFactory::factory(array( 'Zend\Loader\StandardAutoloader' => array( 'autoregister_zf' => true,//自动注册zf类库 ) ));
新建/module/BackEnd/Module.php:模块配置文件
<?php namespace BackEnd; class Module { public function getAutoloaderConfig() { return array( 'Zend\Loader\ClassMapAutoloader' => array( __DIR__.'/autoload_classmap.php', ), 'Zend\Loader\StandardAutoloader' => array( 'namespaces' => array( __NAMESPACE__ => __DIR__.'/', ), ) ); } public function getConfig() { return include __DIR__.'/config/module.config.php'; } }
新建/module/BackEnd/autoload_classmap.php:BackEnd模块自动加载类文件
<?php return array();
新建/module/BackEnd/config/module.config.php
<?php return array( 'controllers' => array( 'invokables' => array(//可调用的控制器 'index' => 'BackEnd\Controller\IndexController', ), ), 'router' => array(//路由配置 'routes' => array( 'home' => array( 'type' => 'Literal', 'options' => array( 'route' => '/', 'defaults' => array( '__NAMESPACE__' => 'BackEnd\Controller', 'controller' => 'Index', 'action' => 'index', ), ), ) ), ), 'view_manager' => array(//视图管理 'template_path_stack' => array(//视图路径 'BackEnd' => __DIR__.'/../View', ) ), );
新建/module/BackEnd/Controller/IndexController.php
<?php namespace BackEnd\Controller; use Zend\Mvc\Controller\AbstractActionController; use Zend\View\Model\ViewModel; class IndexController extends AbstractActionController { public function indexAction() { return new ViewModel(array('assign' => "It works!")); } }
新建/module/BackEnd/View/layout 目录,这是个布局文件夹,在这个目录中可以新建一个默认的布局模板layout.phtml
<html> <head> <title>title</title> </head> <body> <?php echo $this->content; //模板内容 ?> </body> </html>
新建/module/BackEnd/View/back-end目录 这里要将module名称转用小写,并且两个单词之间用-连接,模板文件名规则同样。
在/module/BackEnd/View/back-end/下建立index/index.phtml模板文件
<p> <?php echo $this->assign;?> </p>
新建/public/index.php
<?php /** * Display all errors when APPLICATION_ENV is development. */ if($_SERVER['APPLICATION_ENV'] == 'development') { error_reporting(E_ALL); ini_set("display_errors", 1); } /** * This makes our life easier when dealing with paths. Everything is relative * to the application root now. */ chdir(dirname(__DIR__)); // Setup autoloading require'config/init_autoloader.php'; // Run the application! Zend\Mvc\Application::init(require'config/application.config.php')->run();
在浏览器中输入http://localhost:8090
将会显示“It works!”,说明基本的流程走通。
注:也可以尝试官方推出的ZFTool以及User Guide进行部署。