wcatron / mongo-db-framework
一个集MongoDB框架和ODM(助手)于一体的工具。对任何项目都极具灵活性。
Requires
- php: >=5.5
- mongodb/mongodb: >=1.0.0
- wcatron/common-db-framework: 0.1.2
Requires (Dev)
- phpunit/phpunit: 4.0.*
This package is not auto-updated.
Last update: 2024-09-14 19:31:04 UTC
README
一个集MongoDB接口和ODM(助手)于一体的工具。对任何项目都极具灵活性。
概述
此框架允许您快速将对象映射到MongoDB集合中的文档。
设置
为文档创建模型,并让它们扩展 Document。实现 toDocument 和 fromDocument 方法,并设置 COLLECTION 常量。在您的 autoload.php 文件或数据库调用之前需要的地方调用 MDB::configure()。现在您可以执行查询并返回 PHP 对象。
安装
Composer
composer require wcatron/mongo-db-framework
模型 & MDB
模型
您的类。添加两个函数和一个变量,并允许任何模型创建对象。
class YourClass extend Document { const COLLECTION = 'YourCollection'; function toDocument() { $document = parent::toDocument(); // Your code setting the documents key/value pairs. return $document; } function fromDocument($document) { parent::fromDocument($document); // Your code setting the objects properties. } }
当您有一个扩展文档的类的对象时,保存操作极为简单。
$object->save();
MDB
您与MongoDB的连接。要获取您的文档作为对象,请使用此单例 MDB::getInstance()
getObjectByID(Class::class,$id)
或者,您可以直接在自定义 Document 对象上调用 getByID($id)。
这将返回您的确切对象。
getObjectsFromQuery(Class::class,$query)
基于自定义查询的对象数组。不过,并非所有查询都需要写出来。
getObjectsByKey('ClassName', 'KeyName', $value)
如果您仅通过一个键值对进行搜索,这个简单的函数将工作。
文档 & 对象
通过使用 toDocument 和 fromDocument 方法,类可以自定义其数据存储方式与在 PHP 应用程序中呈现方式。这比许多其他ODM提供了更大的灵活性。但是,它限制了直接将对象属性与文档键连接的能力。这是 KeysChanged 模型的原因。我们理解这可能在应用程序方面可能会因为额外的计算而变慢,但我们认为如果不担心属性变化如何影响底层文档结构,则更容易开发。
归一化数组和对象
有两种归一化方法可以将对象 ID 或 ID 数组转换为它们表示的对象,仅在他们被请求时。
示例
JSON
User Collection
{
"_id":{"$oid":"1"}
"username":"JohnDoe2000",
"friends":["2","3"]
}
PHP
class User extends Document {
var $friends; // must match property name for now.
...
function User() {
$this->setArrayForKey('User','friends');
}
}
$user = User::getByID('1');
$friends = $user->friends->get();
ID 作为字符串
所有 ID 都被视为字符串,并由 MongoDB 类转换为 MongoID。无需在 MongoID 和字符串之间进行转换。如果有人在这里看到重大问题,请提出。