0

私は本に従っています:「PHP and MongoDB Web Development」

ここでは、dbconnection.php スクリプトを作成しました。

<?php

class DBConnection
{
    const HOST   = 'localhost';
    const PORT   = 27017;
    const DBNAME = 'myblogsite';

    private static $instance;

    public $connection;    
    public $database;

    private function __construct()
    {
        $connectionString = sprintf('mongodb://%s:%d', DBConnection::HOST, DBConnection::PORT);

        try {

            $this->connection = new Mongo($connectionString);
            $this->database = $this->connection->selectDB(DBConnection::DBNAME);

        } catch (MongoConnectionException $e) {
            throw $e;
        }
    }

    static public function instantiate()
    {
        if (!isset(self::$instance)) {
            $class = __CLASS__;
            self::$instance = new $class;
        }

        return self::$instance;
    }

    public function getCollection($name)
    {
        return $this->database->selectCollection($name);
    }
}

このスクリプトを使用して、blogs.php というファイルを介してブログ投稿を一覧表示したいと思います。

<?php

require_once('dbconnection.php');

class Blogs
{
    const COLLECTION = 'articles';

    private $_mongo;
    private $_collection;
    private $_blogs;

    public function __construct()
    {
        $this->_mongo = DBConnection::instantiate();
        $this->_collection = $this->_mongo->getCollection(Blogs::COLLECTION);
    }


}

$blogs = new Blogs();


?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <link rel="stylesheet" href="style.css" /> 
    <title>My Blog Site</title>
    </head>

          <body>
              <div id="contentarea">
                  <div id="innercontentarea">
                      <h1>My Blogs</h1>

                      <?php while ($blogs->hasNext()):
                        $article = $blogs->getNext(); ?>
                        <h2><?php echo $article['title']; ?></h2>
                        <p><?php echo substr($article['content'], 0, 200).'...'; ?></p>
                        <a href="blog.php?id=<?php echo $article['_id']; ?>">Read more</a>
                      <?php endwhile; ?>
                  </div>
              </div>
          </body>
</html>

ここから先に進む方法がわかりません。

4

1 に答える 1

1

Blogs コレクションへの参照があります。次のステップは、それに対してクエリを実行することです。

public function __construct()
{
    $this->_mongo = DBConnection::instantiate();
    $this->_collection = $this->_mongo->getCollection(Blogs::COLLECTION);
    $this->_blogs = $this->_collection->find();
}

これにより、反復して個々のブログ ドキュメントを取得できる結果セットへの参照が得られます。次に、これらの記事を php/html からアクセスできるようにする方法を理解する必要があります。

(これを視覚的な参照として使用していましたhttp://devzone.zend.com/1730/getting-started-with-mongodb-and-php/

于 2012-05-27T02:01:31.163 に答える