2014-06-23 35 views

回答

1

zf2中的模塊與wordpress中的插件是類似的!它們是可以加載到項目中的不同類的集合,並允許在其他項目中重用通用代碼(這可以使用zf2中的composer),也可以將模塊簡單地用作項目中類似代碼的分組。

ZF2本身是模塊化的(我可以只加載一些我的項目中的模塊,它們被設計成獨立工作),但讓我們不要在這裏這樣做

composer.json

{ 
"name": "myApp", 

"require": { 
    "php": ">=5.3.3", 

    "zendframework/zendframework": "~2.3.0", 
    "zf-commons/zfc-twig": "dev-1.2rc1" 
}, 
"autoload": { 
    "psr-0": { 
     "Application": "module/Application/src/" 
    } 
} 
} 

提供作曲家安裝我可以運行:

composer update 

從命令行。如果你還沒有很多作曲家的經驗,那麼這個文檔還不錯https://getcomposer.org/doc/,但它是zf2開發必備的!

然後在你的應用程序的根目錄,你可以再添加到您的config.application.config.php模塊

return array(
'modules' => array(
    'zfTwig', 
    'MyCustomModule', 
), 
} 

現在,這些模塊都在你的項目中可用。欲瞭解更多信息,請參閱

http://www.michaelgallego.fr/blog/2013/01/21/some-tips-to-write-better-zend-framework-2-modules/

http://mwop.net/blog/267-Getting-started-writing-ZF2-modules.html

你也可以自己在應用程序級別添加模塊(正如我前面說的這些是多爲分組功能或任何你喜歡在一起) 。

你可以用它來幫助你建立個人模塊

https://github.com/zendframework/ZendSkeletonModule

剛剛發生的ZendSkeletonModule在ZF2應用程序的模塊文件夾,並更新所有的命名空間和模塊的根文件夾相匹配。在上面的application.config.php的情況下,你會將它重命名爲「MyCustomModule」。

控制器插件是完全不同的東西,他們只是被登記被注入到一個控制器基本上

他們可以在你的控制器被調用來執行某些任務的類。

例如,FlashMessenger插件允許您在控制器中的flash messenger中註冊一條消息,該消息將在下一頁加載時顯示。

從ZF2文檔

$this->flashMessenger()->addMessage('You are now logged in.'); 
return $this->redirect()->toRoute('user-success'); 

看到http://framework.zend.com/manual/2.0/en/modules/zend.mvc.plugins.html爲更詳細

+0

這是另一個很好的博客文章abouts模塊http://akrabat.com/zend-framework-2/modules-in-zf2/另一個必須閱讀! –

+0

嘿!非常感謝精心解答。它有幫助。 – user2740957

1

模塊

模塊是一個應用程序內提供類似的功能的代碼的自包含集合。

這意味着模塊可以是任何你想要它們的東西(一個文件或你的整個應用程序!)。

'Modules'在ZF2中並不是新術語; 「模塊化編程」已經存在了很長時間。通過具有代碼功能的邏輯組,它將促進代碼重用和'open close principle'。

模塊在ZF2

模塊是Zend框架2內一等公民;這意味着該框架專門設計用於輕鬆添加和刪除模塊。

有很多examples of ZF2 modules online - (!代碼重用),其中大部分將需要次要的配置更改,您可以開始使用它們

插件

再一個通用術語,將有不同的含義不同構架。你可能聽說過'可插拔軟件',this answer很好的總結。

[設計你想要一個系統以直接和可預測的方式工作,具有非常具體的變化點。

'變異點'是代碼中可能需要更改或不同邏輯的區域。一個允許注入外部源而不修改基本代碼的系統被認爲是「可插入的」。

插件在ZF2

一個在ZF2「插件」實際上是被稱爲「Controller plugin

它們被設計將功能添加到控制器(任何類擴展Zend\Mvc\Controller\AbstractActionController)類,而不需要擴展控制器類。

這方面的一些示例是Zend\Mvc\Controller\Plugin\FlashMessenger,它允許您向會話添加消息並將其顯示在重新加載的頁面上。這可以在所有控制器中重用,而無需修改它們。

+0

謝謝!這很有幫助。 – user2740957

相關問題