私は本に従っています:「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>
ここから先に進む方法がわかりません。