2010-09-22 26 views
2

我已經決定,而不是在每個應用程序的目錄中都有一個Zend Framework的副本,我想將它保留在服務器上的一個位置上,我的所有網站都使用它。但是,我希望我的應用程序的自定義類仍在應用程序文件夾中。因此,一個文件夾結構有點像這樣:當與zend庫不在同一目錄下時自動加載類

webroot 
|...library 
|  |......Zend 
| 
|...app1 
|  |.....Library 
|    |.......App1 
| 
|...app2 
     |.....Library 
       |.......App2 

我怎樣才能得到的Zend Loader來自動查找App1和App2中的類? (最好只是改變東西的application.ini或bootstrap.php中)

+0

我沒有這個答案,但我確實有一個問題,當ZF需要升級時,你會怎麼做?如果你有50個站點,每個站點都需要測試。也許這是一件好事,可能就是這樣,但這是值得思考的。 – 2010-09-22 18:09:49

+0

好點,但我正在考慮這主要是爲了在我的開發機器上使用,作爲整理/加速建立新站點的一種方式 – wheresrhys 2010-09-22 18:12:45

回答

0

你可以創建一個單一的庫目錄,與符號鏈接到實際生活共享代碼:

webroot/library/Zend -> /path/to/Zend/library/Zend 
webroot/library/App1 -> /path/to/App1/library/App1 
webroot/library/App2 -> /path/to/App2/library/App2 

然後,你只需要Webroot公司/圖書館在你的道路上。

處理版本更新,你可以簡單地改變符號鏈接指向一個新的安裝:

webroot/library/Zend -> /path/to/Zend-test/library/Zend 
+0

我並不真正瞭解符號鏈接的任何內容,但即使這樣做我真的很想找一個解決方案,在這個解決方案中,創建一個新的站點是非常獨立的:創建一個包含文件的文件夾,這個文件夾可以依賴於服務器上的Zend。也許我可以用另一種方式做你的想法:App1中的一個指向Zend的符號鏈接? – wheresrhys 2010-09-22 18:18:45

0

在Zend裝載機將使用你的PHP include_path查找文件加載。

只需將webroot/library添加到include_path(您可以在php.ini或bootstrap中執行),並且自動加載器應該能夠找到框架。

如果你想擁有一個Zend的共享版本,你可以使用pear(http://pear.zfcampus.org/)來安裝它,然後只要你的include_path設置爲在你的pear目錄中查找(/ usr/share/PHP在我的機器上),那麼你很好去。

雖然我建議只爲開發機器做這件事,正如其他人所說,在生產中能夠控制每個應用程序的zend版本是個好主意。