0

我目前正在使用Zend 3作爲項目(或一系列項目)。爲了避免每個項目有多個vendor文件夾,我希望在每個項目運行的根級別都有一個vendor文件夾。Zend項目架構

在我的應用程序/public/index.php文件,我已經改變了這一行:

include __DIR__ . '/../vendor/autoload.php'; 

這樣:

include __DIR__ . '/../../shared/vendor/autoload.php'; 

當我這樣做,我看到了這個錯誤:

Fatal error: Uncaught exception 'Zend\ModuleManager\Exception\RuntimeException with message Module (Application) could not be initialized. in C:\Users\b28934\Documents\server\UwAmp\www\zf3\app\vendor\zendframework\zend-modulemanager\src\ModuleManager.php on line 203"

有什麼建議麼?我的composer.json文件中是否存在某些內容?

回答

2
  1. 首先,沒有必要爲所有項目只有一個vendor文件夾。驅動器空間現在很便宜。我絕對沒有理由。
  2. 這是設計,每個作曲家項目都有自己的vendor文件夾,因爲如果您有2個項目需要相同的包,但在版本不同版本中會失敗。

我建議保持簡單。保持它是由聰明人設計的。不要試圖把它搞亂。

+0

關於你的第一點,記憶不是問題。我希望使用由一個composer.json文件管理的供應商文件夾,這個文件夾將被所有四個Web應用程序使用。在我通過作曲家介紹一個新模塊/包的情況下,而不是更新每個網站的供應商文件夾(通過一次一個作曲家),更新一個composer.json文件和一個供應商文件夾是有意義的,讓它跨越所有其他Web應用程序。 –

+1

不需要。當你需要在項目1中打包'foo/A'並在項目2中打包'foo/B'時,時間就會到來。如果'foo/A'依賴於'foo/C'版本1和'foo/B '依賴於'foo/C'版本2,那麼一切都搞砸了。我看到*看到*一些人認爲和你一樣,每次這些人結束了一個混亂的設置,並且需要返回一個項目和'vendor'文件夾哲學。這是一個很好的闡述機制。複製'composer.json'並在每個項目上運行更新並使它們保持獨立更容易。如果有任何問題,您可以將它們保留在不同的依賴項上。 –