2017-09-05 112 views
0

我的應用程序運行在工作代理的後面。爲了讓CakePHP HTTP客戶端正常工作,我必須通過我的代理設置。每當我創建一個新的HTTP客戶端時,我都會傳入代理設置。CakePHP HTTP客戶端默認代理設置

$http = new Client([ 
     "proxy" => [ 
     "proxy" => "MYPROXYURL", 
     "username" => "MYUSERNAME", 
     "password" => "MYPASSWORD" 
     ] 
]); 

有沒有辦法讓這些設置成爲默認值,這樣我可以讓我的代碼更加乾爽?我希望這可以在引導設置完成,但如果我不得不我可以擴展Cake\Http\Client類,並使用自定義包裝。如果我這樣做,哪個文件夾最好把我的自定義Cake類放入?

回答

0

創建您自己的客戶類YourClient extends Client。然後將配置直接放入$_defaultConfig或將Configure::read('App.http.client')放入構造函數中,然後從配置中讀取代理值。

namespace App\Http; 

use Cake\Http\Client as CakeClient; 

class Client extends CakeClient { /*...*/ } 

然後實例化你自己的類,而不是你以任何方式插入的核心類。

+0

謝謝,你會建議一個好的目錄來存儲我的'YourClient'類嗎? –

+0

我通常在我的應用程序中鏡像核心命名空間,如果我必須從它擴展類,所以它應該是'App \ Http \ Client'。對於更具體的東西,我引入了新的文件夾,比如'App \ Navigation',並且我在App \ Model \ *下放了很多東西,因爲大部分東西都是與模型層相關的業務邏輯。但在一天結束時,這是個人喜好的問題。我已經更新了我的答案。 – burzum