2016-03-20 10 views
1

クラスのコンストラクタ内にMongoClientのインスタンスを作成しようとしています。私はこれは私はMongoClientをPHPのコンストラクタ内に作成します

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

Mongoのドライバがインストールされているクラス内のコンストラクタです

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

というエラーを取得しています、拡張子が更新されます。

MongoClientがクラス外でインスタンシエートされたときに接続することができます。 Like

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

私はPHPの専門家ではありません。ちょうどPHPでコーディングを学び始めました

+0

が見えます。 'MongoClient'の前に\を追加すると、' new \ MongoClient() 'のようになります。 –

+0

名前空間の問題です。名前空間に関するPHPのドキュメントのこのセクションを読んでください:https://secure.php.net/manual/en/language.namespaces.php – Xerkus

+0

おかげで.. ..それは働いて.. :) – KrtkNyk

答えて

1

あなたはこの問題を抱えています。ここで読む:http://php.net/manual/en/language.namespaces.faq.php#language.namespaces.faq.shortname1

あなたの問題は、あなたのクラスの名前空間がRate4Me\APIあり、そしてあなたが修飾されていないクラス(\で始まるいないクラス)をインスタンス化しようとすると、PHPは自動的にクラスを探して、ということですaliasが最初に見つかると、接頭語\Rate4Me\APIを使用して、Rate4Me\API\MongoClientというクラスを検索します。このクラスがないため、失敗します。名前空間を使用するように

それはあなたのパッケージ内にないのであれば、あなたは、このような\MongoClient\MongoId\MongoDateとして、完全修飾クラスを使用する必要があります、など

関連する問題