2015-07-21 29 views

回答

2

我認爲要做到這一點,最好的辦法是:

  • 有助於項目添加composer.json
  • 有助於允許從其他地方加載,而不是被硬編碼的配置

然後你就可以簡單地使用composer來加載這個包。 :)

+0

這將是很好!我不是作曲家的專家,但我會看看 –

+0

你應該真的學會如何寫一個好的composer.json文件:) –

+0

肯定你可以做什麼@Vamsi Krishna B的答案,它會工作,但有助於緩解對每個人都更好IMO –

2

作曲(在其他的答案提及)是僅依賴管理,因此僅解決方案的一部分。如果你對最簡潔的方式非常感興趣,那很簡單:你自己編寫包。

事實上,有作爲集成層爲第三方庫工作包的例子很多。例如,查看https://github.com/nelmio/alice,這是一個Symfony2包,用於包裝外部數據設備庫Faker。

一個包可能會聲明配置選項可覆蓋應用程序主配置文件。它可能會暴露庫對象的服務定義,以便您可以避免手動創建它們並在需要時注入它們(無論是否使用DI來編寫庫)。它可能對分枝擴展,事件監聽器等也很有用。

一個很好的書面包可以促進重用,可測試性和關注點的分離。不要害怕從從頭開始編寫你的包,從這裏開始http://symfony.com/doc/current/cookbook/bundles/best_practices.html

+0

所需的庫是「只是」一個功能,在這種情況下無需捆綁。定義函數的文件只需要自動加載。 –

+0

他問是否確實存在更好的方法。那麼......答案是:它的確如此。 –

0

你應該把它添加到您的composer.json

{ 
     "require": { 
      "agilecrm/php-api": "dev-master" 
     }, 
     "repositories": [ 
     { 
      "type": "vcs", 
      "url": "[email protected]:agilecrm/php-api.git" 
     } 
    ] 
} 

,或者你可以將其添加到作曲家自動加載https://getcomposer.org/doc/01-basic-usage.md#autoloading

+0

嗯,它需要首先有自己的composer.json –

+0

因此將它添加到你的composer.json中autoload(我的答案的第二部分) – Robert

0

由於agilecrm/php-apiPackagist上不可用,最好的方法是將庫添加到您的composer.json文件中,然後以與其他所有方式相同的方式安裝軟件包。

{ 
    //... 
    "repositories": [ 
     { 
      "type": "package", 
      "package": { 
       "name": "agilecrm/php-api", 
       "version": "2.1.0", 
       "source": { 
        "url": "https://github.com/agilecrm/php-api", 
        "type": "git", 
        "reference": "2.1.0" 
       } 
      } 
     } 
    ], 
    "require": { 
     //... 
     "agilecrm/php-api": "2.1.0" 
    } 
//... 
}