http://1208.me/zf2-study-note-basic-config/



从http://framework.zend.com/下载最新的版本,解压后文件夹里有个zend framework所有库文件library

<br/>


建立一个源码根目录C:/www/zendtest/,基本的目录结构如下:

/config —————全局配置目录

/library —————zendframework核心类库以及自定义类库目录

/module —————模块目录

/public —————前端入口、p_w_picpaths、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_optionsmoduleManager将根据这里的配置选项增加监听
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进行部署。