2016-03-20 9 views
1

nicht erstellen Ich versuche, MongoClient Instanz in einem Konstruktor einer Klasse zu erstellen. Ich erhalte Fehler sagenKann MongoClient in einem Konstruktor in PHP

Fatal error: Class 'Rate4Me\API\MongoClient' not found in C:\wamp64\www\Rate4Me\API\API_Pagination.php on line 18 

Dies ist der Konstruktor in einer Klasse ist

public function __construct() 
{ 
    new MongoClient(); 
    echo "constructor"; 
} 

Mongo Treiber installiert ist, extention wird aktualisiert.

Kann Verbindung herstellen, wenn MongoClient außerhalb der Klasse instanziiert wird. Wie

{ 
    $m = new MongoClient(); 
    var_dump($m); 
} 

Ich bin kein PHP-Experte. Fangen gerade an, Kodierung in PHP zu lernen

+0

Sieht aus wie Sie einen Namespace verwenden. Setze ein \ vor 'MongoClient' vor, so dass es wie folgt aussieht: 'new \ MongoClient()'. –

+0

Es ist Namespace-Problem. Bitte lies diesen Abschnitt der PHP-Dokumentation über Namespaces: https://secure.php.net/manual/en/language.namespaces.php – Xerkus

+0

Danke dude .. es hat geklappt .. :) – KrtkNyk

Antwort

1

Sie laufen auf dieses Problem. Lesen Sie hier: http://php.net/manual/en/language.namespaces.faq.php#language.namespaces.faq.shortname1

Ihr Problem ist, dass der Namensraum der Klasse ist Rate4Me\API, und wenn man einen uneingeschränkten Klasse zu instanziiert versucht (eine Klasse, die nicht mit einem \ startet), PHP sucht automatisch für die Klasse von alias zuerst, und wenn nicht gefunden, es verwendet das Präfix \Rate4Me\API, um nach der Klasse zu suchen, die Rate4Me\API\MongoClient ist, daher schlägt es fehl, da Sie diese Klasse nicht haben.

So sollten Sie eine voll qualifizierte Klasse verwenden, wenn es nicht in der Packung ist, wie \MongoClient, \MongoId, \MongoDate usw.

Verwandte Themen