2016-05-03 9 views
0

Ich verwende das Abraham TwitterOAuth PHP SDK. Ich habe die Bibliothek an der Spitze der index.php (Datei existiert + ich verwende <?php).PHP - Klasse nicht gefunden, ist aber erforderlich

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

Unten zwischen dem HTML-I gehören eine .php Datei in einem div, etwa so:

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

In diesem div.php Datei ich die TwitterOAuth Klasse instanziiert, die einen Fehler wirft:

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']); 

Dies wirft den Fehler Class 'TwitterOAuth' not found.

Hinweis

Dies funktioniert war, bevor ich den Code div.php bewegt. Ich brauche es jedoch separat, weil ich in Zukunft das Div mit JQuery aktualisieren werde.

Antwort

1

Die Klasse verwendet die Abraham\TwitterOAuth Namespace - so müssen Sie sie enthalten oder die fqn verwenden (vollständig qualifizierte Klassenname)

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

Danke, es fixiert (wird in ~ 6 Minuten akzeptieren). Irgendein Grund warum eingeschlossene Dateien 'Abraham \ TwitterOAuth \ TwitterOAuth;' von 'index.php' ignorieren? Weil der gleiche Code funktionierte, als der Code von 'div.php' direkt in' index.php' lag. Warum funktioniert es nicht mit Includes? – kgongonowdoe

+1

, da Klassenaliase, die mit 'use' deklariert wurden, nur in derselben Datei bekannt sind. – Philipp

+0

Ah Ich sehe auf php.net: 'Importieren Regeln sind pro Datei Basis, was bedeutet, dass die importierten Regeln die importierenden Regeln der übergeordneten Datei NICHT übernehmen. Danke! – kgongonowdoe