#### 架构概览
![](https://box.kancloud.cn/5bfb5995103be0d3d02f93b7a887753f_625x450.png)
本节将解释驱动程序的所有不同部分是如何组合在一起的。不同的语言运行时,通过扩展和顶部的PHP库。这种新的架构取代了旧的 [mongo](https://php.net/manual/zh/book.mongo.php) 扩展。我们将新版本作为 mongodb 扩展。
在这个堆栈的顶部有一个纯粹的»PHP库,我们将它作为一个Composer包来分发。这个库将提供给用户期望的API功能(例如CRUD方法、数据库和集合对象、命令助手)等类似于从老mongo驱动程序所提供的功能,并且我们期望它是大多数应用MongoDB构建的应用程序时候的共同依赖。该库还将实现常见的»规范,以提高MongoDB维护的所有»驱动程序的API时候的一致性(希望一些社区驱动程序按照这样的规范)。
库下面我们有低级别的驱动程序。这个扩展的驱动程序将有效地在PHP和我们的系统库(»libmongoc和»libbson)之间形成粘合剂。此扩展将为最基本和性能敏感的功能开放出相同的公用API功能:
1. 连接管理
2. BSON编码和解码
3. 对象文档序列化(以支持ODM库)
4. 执行命令和写操作。
5. 处理查询和游标
通过将驱动程序内核和高级API分离到扩展和PHP库中,我们希望这样做能够减少我们的维护负担,并允许在新特性上进行更快的迭代。这会带来一个受欢迎的好处,使得任何人都更容易对驱动程序做出贡献。此外,采用相同的公共API将使在PHP不同的运行环境下的应用程序更容易移植,无论应用程序是直接使用底层驱动程序还是使用高级PHP库。
* * * * *
https://secure.php.net/manual/zh/mongodb.overview.php