我正在关注一本书:"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>
我不确定如何从这里开始。
您有对博客集合的引用; 下一步是针对它进行查询:
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/)