2013-10-21 194 views
1

我不清楚最佳做法是什麼將外部庫包括在我計劃分發的自定義模塊中。ZF2模塊和外部依賴關係

通常我會將外部庫放在應用程序的供應商目錄下。但是我想確保在分發我的自定義模塊時(即,我不想強​​制用戶將依賴項手動下載到其應用程序的供應商目錄中),所有依賴項都會被滿足。

正確的做法是在模塊目錄下包含供應商目錄,如下所示:

/application_dir 
    /vendor 
    /module 
      /my_module 
       /vendor 
+2

使用作曲家的依賴關係。這是當今常見的最佳做法,幾乎是社區接受的唯一事情。如果你提供了代碼的依賴關係並且有更新,那麼是什麼? – Sam

+0

Sam說了一切。使用作曲家來處理你的依賴關係。 – Soundz

回答

1

使用作曲家,你可以在這裏找到文檔:

Composer Documentation

基本上你會修改該文件composer.json在你的應用程序的根,並在需要部分添加您的依賴關係:

{ 
    "name": "zendframework/skeleton-application", 
    "description": "Skeleton Application for ZF2", 
    "license": "BSD-3-Clause", 
    "keywords": [ 
     "framework", 
     "zf2" 
    ], 
    "homepage": "http://framework.zend.com/", 
    "require": { 
     "php": ">=5.3.3", 
     "zendframework/zendframework": "2.2.*", 
     "doctrine/common": "dev-master", 
     "zendframework/zendpdf": "2.*", 
     "zendframework/zendservice-recaptcha": "2.*", 
     "thiagoalessio/tesseract_ocr": ">= 0.1.2", 
     "zf-commons/zfc-user": "dev-master" 
     // add your requirements here** 
    } 
} 

如果依賴是在私人github存儲庫上,您可以像這樣添加它:

{ 
    "require": { 
     "vendor/my-private-repo": "dev-master" 
    }, 
    "repositories": [ 
     { 
      "type": "vcs", 
      "url": "[email protected]:vendor/my-private-repo.git" 
     } 
    ] 
} 

不要忘了在完成添加之後再做composer.phar更新。

+0

這可能是一個愚蠢的問題,但是如果外部庫沒有託管在存儲庫中,但是您只是將它從網頁上下載爲zip文件,您會怎麼做?你是否將它包含在你自己項目的源代碼樹下? – trajan