2013-02-24 84 views
0

搜索我注意到,通常在基於Zend Framework的應用程序中,插件位於庫文件夾內。但我試圖以不同的應用程序使用同一個插件庫的方式工作。Zend Framework的插件共享庫方法

我的直覺告訴我,如果其他應用程序可以使用它們,這些插件應該在應用程序外部。我想要做的是爲我的ZF應用程序提供一個插件庫。我要尋找的結構是這樣的:

www/ 
    zf-app-1/ 
    zf-app-2/ 

www-library/ 
    zf-my-plugins/ 
     database/ 
      EnttityManager.php 
      DoctrineEntityManager.php 

因此,ZF-APP-1和ZF-APP-2使用相同的外部插件來實現它們。我可能是錯的,但這種方法比zf-app-1更符合邏輯,zf-app-2擁有庫中相同插件文件夾的每個副本。你對這個想法有什麼看法嗎?

但我的問題是關於如何配置應用程序zf-app-1和zf-app-2來使用這個共享庫。我會通過每個的application.ini。

謝謝!

回答

1

如果你想這樣的項目文件夾以外的共享庫:

東西/項目/ zfproject1
東西/項目/ zf2project2
東西/項目/ zf2project3
。 .....
東西/共享/庫 < ---共享庫在這裏進入

假設稱爲MyLib中的共享庫

東西/共享/庫/ MyLib中

您需要

  1. 添加庫文件夾到你的include路徑
  2. 將磁帶庫名稱空間添加到自動裝載器中

你的application.ini:

autoloaderNamespaces[] = "MyLib_" 
includePaths.library = APPLICATION_PATH "/../../../library" 
+0

這添加到包括路徑。但是我怎樣才能在'includePaths.library'配置多個庫? 'includePaths.library'不適用於圖書館應用程序?我需要這個,但需要另一個,外部和其他應用程序通用。 'zf-app-1'文件夾有它自己的庫文件夾,但也必須使用外部文件夾。例如,我想'resources.entitymanager'(例如Doctrine 2的一個插件)是很多應用程序的外部和通用的。 – Maykonn 2013-02-25 00:38:35

+1

你應該只能使用'includePaths.library1 =「path/to/library1」'然後'includePaths.library2 =「path/to/library2」'。甚至完全避免使用鍵:'includePaths [] =「path/to/library1」'includePaths [] =「path/to/library2」' – 2013-02-25 06:02:06