2017-09-05 1 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

관련 문제