2016-11-10 7 views
0

私はlaravel 5.2とMongoDB 3.2を使用しています。Longvel/PHP経由で接続が正常かどうかを確認するMongodb

私のアプリが起動する前に(私はDBファサードを使用することはできません)、接続がOKであるかどうかは、モノログ構成でテストします。接続がOKでない場合、私はファイル内のログインを使用します。

私はMongoClient、Mongo、MongoDB \ Clientをテストしています。有効になっているものを使用しています。

私は、次のように接続モンゴをテストしようとしている:

リターンだ
$mongoClient = new \MongoDB\Client('mongodb://localhost:27017'); 
$mongoClient->selectCollection('mydb', 'mycollection'); 

Client { 
    +manager: Manager {#21} 
    +uri: "mongodb://localhost:27017" 
    +typeMap: [ 
     array => "MongoDB\Model\BSONArray", 
     document => "MongoDB\Model\BSONDocument", 
     root => "MongoDB\Model\BSONDocument" 
    ] 
} 

Finnaly、私の質問:

  • は、使用する方法が存在しますアプリ起動前のDBファサード?
  • PHPとのMongoDB接続をテストする正しい方法とは何ですか?

あなたに別の提案がある場合は、感謝します。あなたがPHPでMongoDBの接続を確認することができますこの方法を使用して

+0

Finnaly私は火災時に例外が発生します:$ mongoClient-> mydb-> mycollection-> findOne()。これは私の問題を解決するが、私の疑問は残る。 :) –

答えて

0

$connection = new MongoClient(); // connects to localhost:27017 
$connection = new MongoClient("mongodb://example.com"); // connect to a remote host (default port: 27017) 
$connection = new MongoClient("mongodb://example.com:65432"); // connect to a remote host at a given port 
+0

いいえ、これはエラーや例外をトリガーしません。 (私が列挙した3つのクラスに適した何かをする必要があることを忘れないでください) –

1

PHPドキュメント、the driver connects to the database lazilyhttp://php.net/manual/en/mongodb-driver-manager.getservers.php)によると、接続をテストする唯一の方法は、あなたのコメントに記載されたfindOne()のようなコマンドを実行して、実際にする必要があります。

また、その時点でDBまたはCollectionの名前が不明な場合は、listDatabases()メソッドを使用して接続が失敗した場合にも例外をスローすることができます。

関連する問題