2016-05-03 12 views
1

Bluemixで動作するPHPアプリケーションがあり、これを拡張してRESTfulサービス(Twitter用のInsights)を呼び出すことができます。 PHPにはこのサービスを呼び出す組み込みの方法がないので、私は周りを見回し、Guzzleを使用することに決めました。BluemixのLaravelアプリケーションでGuzzleが動作しない

私はそのGitリポジトリからがつがつ食う6.0.2をダウンロードし、私のhttdocs /ベンダーパスにzipファイルをインポートして、私はPHP 5.5を得るために、私buildpackを変更し、自動ロードにcomposer.jsonを更新GuzzleHttpインポートパスと改名.psr4とプロパティ:

"GuzzleHttp\\": "htdocs/vendor/" 

は、私は私のアプリを再デプロイし、それはまだ働いていました。いくつかの他の用途の後:

use GuzzleHttp\Client; 

し、後で:

は、その後、私は私のMainController.phpに次のコードを追加、私はアプリを再デプロイするとき今

$client = new GuzzleHttp\Client([ 
// Base URI is used with relative requests 
'base_uri' => 'https:myserviceURI.mybluemix.net', 
// You can set any number of default request options. 
'timeout' => 2.0, 
]); 
// Use guzzle to send a GET request to Watson Twitter Insights 
$guzzleresponse = $client->request('GET', '/api/v1/messages/search'); 

を、私が手:

FatalErrorException in HomeController.php line 100: 
Class 'App\Http\Controllers\GuzzleHttp\Client' not found 

なぜ私はそれがapp \ Http \ Controllers \を見ているのかわかりませんが、私はコピーを試みましたGuzzle srcフォルダ(Client.phpを含む)にはという名前が付けられ、GuzzleHttpという名前に変更されていますが、それでも同じ方法で失敗します。

私はPHPでもLaravelのエキスパートでもありません。私はインターンチームのコードを継承したので、すべての作品がどのようにフィットしているかはよく分かりません。

私はいくつかの質問を持っている:

は、私は本当に私のワークスペースにがつがつ食うをインストールする必要がありましたか、buildpackから自動的にピックアップされるのでしょうか?

Guzzleコードを正しい方法でインポートしましたか?

私のコントローラのパスでGuzz Clientを探しているのはなぜですか?

Twitter用のInsightsを活用する良いPHPサンプルプログラムはありますか? Javascriptで1つ見つかりましたが、このサーバー側を実行する必要がありますか?

もちろん、最も重要なことは、これを機能させるには何が必要なのでしょうか?あなたは

use GuzzleHttp\Client; 

を追加しましたので、あなたはこのようにがつがつ食うクライアントを使用する必要があり、これらの質問のいずれかまたは全てに

回答が大幅に

+1

あなたはその '$クライアント=新しい\ GuzzleHttp \クライアントのようにインポートする必要があるクライアントクラスの完全修飾名を使用する場合...'かあなたが 'GuzzleHttp \ Clientを使用する 'からインポートした場合 - >' $ client = new Client ...' –

答えて

3

を理解さウォルド:

$client = new Client([ 
// Base URI is used with relative requests 
'base_uri' => 'https:myserviceURI.mybluemix.net', 
// You can set any number of default request options. 
'timeout' => 2.0, 
]); 

それが見えるようにしようあなたのコントローラーの名前空間がApp\Http\Controllersであり、のようなGuzzleクライアントを使用しようとしているために、おそらくコントローラパスのGuzz Client用に

+0

ありがとうございました。それは治療に効果があった。私はいくつかの読書を持っているように見えます。 –

0
$client = new Client(array_merge([ 
     'base_uri' => 'URL', 
     'timeout' => 30.0 
    ]), $options); 

/あなたが必要な場合はオプション/

$options = array_merge_recursive([ 
     RequestOptions::AUTH => [ 
      'Conversation_USERNAME', 
      'CONVERSATION_PASSWORD', 
     ], 
     RequestOptions::HEADERS => [ 
      'Content-Type' => 'application/json' 
     ] 
    ], $options); 
+0

これは質問に正確には答えません – fragmentedreality

関連する問題