• ZF2系列 – Zend Framework 2 Modules概念 (Part 2)


    在Zend Framework 2當中有一個很重要的觀念,
    而這個觀念就是Modules,
    這也是在整個網站當中最基礎的觀念,
    所以今天我們就來看看Modules在Zend Framework搞什麼東西吧。

    Modules簡單來說就是你的應用程式的集合,
    裡面會包含Views, Controllers, Models等東西,
    (請原諒我不翻譯這三個名詞,翻譯完應該更看不懂)
    你可以稍微看一下下面這個架構:

    在這個例子中我們是用Zend所提供的骨架Template,
    因此你可以看到裡面有一個名為Application的Module,
    (Application在這我們稱它為Module的namespace)
    同時你應該也可以看到在src和view的目錄下也能看到Application的目錄,
    嘿嘿嘿,你看得出Module的概念是怎樣嗎?

    你猜得沒錯,他可以讓你去分開不同的Module在同一個專案中,
    這樣在未來的原始碼管理上來說會變得比較彈性與方便,
    在Zend Framework 2中有Module Manager可以管理Module (一般名稱為Module.php)
    他會被放在Module的根目錄下,負責進行Module的載入與設定,
    接下來我們就來看看這個Module Manager.

    namespace Application;
     
    use Zend\Mvc\ModuleRouteListener;
     
    class Module
    {
        public function onBootstrap($e)
        {
            $e->getApplication()->getServiceManager()->get('translator');
            $eventManager        = $e->getApplication()->getEventManager();
            $moduleRouteListener = new ModuleRouteListener();
            $moduleRouteListener->attach($eventManager);
        }
     
        public function getConfig()
        {
            return include __DIR__ . '/config/module.config.php';
        }
     
        public function getAutoloaderConfig()
        {
            return array(
                'Zend\Loader\StandardAutoloader' => array(
                    'namespaces' => array(
                        __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
                    ),
                ),
            );
        }
    }

    看完這段你應該馬上要緩然大悟才對,
    請注意看 getConfig() 和 getAutoloaderConfig() 這兩個方法,
    再回頭看看他的專案目錄結構,哎呀…原來這麼簡單喔?
    沒錯,他是不是在幫你將自動讀取以及設定給設置好,
    所以依照這個例子,以後我要去動用這個Module的設定,
    那麼是不是去找  module.config.php 的麻煩呢?

    而有關於系統性的設定(例如我要增加新的Module的話),
    記得之後要去找 application.config.php 的麻煩,
    千萬別找錯人囉。

    好,今天的概念就到此結束,
    什麼?沒有寫到程式手很癢?
    那你就回去把從空的Zend Framework建起一個專案吧。

    明後天我們要來加入一個新的 Controller 來將專案搞起來。

  • 相关阅读:
    C++ 用宏实现swap(a,b)
    C++ string类的实现
    博客园代码高亮Html转换小程序,Linux/Mac下可用
    C++STL
    数据结构课程设计(基于二叉排序树的身份证管理系统)
    简单模拟B1011
    简单模拟B1001
    双向链表的双向冒泡排序 c++
    IO流处理文件读取到字节数组,再从字节数组读取到文件,Java实现
    Java多人聊天室第一版
  • 原文地址:https://www.cnblogs.com/xuyaoxiang/p/3039734.html
Copyright © 2020-2023  润新知