2016-05-03 41 views
0

私はAbraham TwitterOAuth PHP SDKを使用しています。 index.php(ファイルが存在し+私は<?phpを使用)の上にライブラリを含めました。PHP - クラスが見つかりませんでしたが、必要です

if (isset($_COOKIE['token']) && !empty($_COOKIE['token'])) { 
     $token = objectToArray(json_decode($_COOKIE['token'])); 
     $connection = new TwitterOAuth(CONSUMER, SECRET, $token['oauth_token'], $token['oauth_token_secret']); 
:私はエラーをスローTwitterOAuthクラスをインスタンス化この div.phpファイルで

<?php include('div.php'); ?> 

:私はそうのようなdiv.phpファイルを含めるHTMLの間で以下

<?php 
require 'inc/oauth/autoload.php'; 
var_dump(file_exists('inc/oauth/autoload.php')); //true 
use Abraham\TwitterOAuth\TwitterOAuth; 

これにより、エラーClass 'TwitterOAuth' not foundがスローされます。

私はdiv.phpにコードを移動する前にこれが機能していました。しかし、将来はJQueryを使ってdivをリフレッシュするので、別にする必要があります。

答えて

1

クラスはAbraham\TwitterOAuth名前空間を使用しています - あなたはそれらを含めるか、FQN(完全修飾クラス名)(〜6分で受け付けます)、それを固定

$connection = new \Abraham\TwitterOAuth\TwitterOAuth(CONSUMER, SECRET, $token['oauth_token'], $token['oauth_token_secret']); 
+0

おかげで、使用する必要があります。インクルードファイルが 'index.php'から' use Abraham \ TwitterOAuth \ TwitterOAuth; 'を無視する理由は何ですか?これは同じコードが 'div.php'のコードが' index.php'の中にあったときに働いたからです。なぜそれが含まれて動作しないのですか? – kgongonowdoe

+1

'use 'で宣言されたクラスエイリアスは、同じファイル内でのみ認識されるためです。 – Philipp

+0

ああ、私はphp.netを参照してください: 'インポートルールはファイル単位であり、インクルードファイルは親ファイルのインポートルールを継承しません。ありがとうございました! – kgongonowdoe

関連する問題