2013-04-28 38 views
2

我正在嘗試使用unirest,一個用於進行其他調用的新PHP庫。使用具有名稱空間的Unirest php lib

我想將它放在我的項目上方的系統範圍的目錄中。然後我把它給:

require_once ('../unirest-php-master/lib/Unirest/Unirest.php');

加載罰款。然後,我用它每自述:

$response = Unirest::post(CSWA_URL ....

我得到致命錯誤:類 'Unirest' 不...程序hello_world發現/在線sign_start.php 23

我再嘗試使用的命名空間(見庫的code,他們聲明Unirest前級使用Namespace Unirest聲明。)

$response = Unirest\Unirest::post(CSWA_URL ....

我得到了更多。現在:致命錯誤:Class'Unirest \ HttpMethod'未找到.... unirest-php-master/lib/Unirest/Unirest.php on line 26 - 這是庫代碼中的錯誤!

問:我做錯了什麼? Unirest的作者是否犯了一個錯誤?我必須將庫放在./lib中嗎?什麼是最好的解決方案?

回答

6

它看起來像Unirest.php中的Unirest代碼依賴於unirest lib目錄中的其他兩個文件(HttpMethod.php和HttpResponse.php)的自動加載代碼。

作者建議使用composer安裝包,如果您要這樣做,作曲家會將Unirest名稱空間添加到它生成的autoloader.php腳本。從那裏你需要在腳本的頂部需要autoload.php文件,它將處理加載未定義的類。

或者,如果您不想使用composer,那麼我只需要在腳本頂部的unirest lib目錄中的其他兩個文件。

+1

謝謝@Colin,工作。我將針對庫文檔提交文檔錯誤報告,因爲不清楚是否需要使用composer。 – 2013-04-28 21:03:36

+0

我敢肯定,文檔很清楚如何使用和不使用作曲家...我知道,因爲我寫了:) – 2015-01-24 11:12:37

相關問題