sebastianblum/mongofill

PECL Mongo 扩展的 Polyfill - 适用于 MongoDB 2.8

该软件包的官方仓库似乎已不存在,因此软件包已被冻结。

1.1.0 2017-03-01 12:01 UTC

This package is not auto-updated.

Last update: 2024-01-23 01:13:05 UTC


README

MongoDB 驱动的纯 PHP 实现,旨在作为官方扩展的替代品,在 HHVM 运行时下使用。

安装

推荐方式

推荐的安装方式是通过 mongofill-hhvm 软件包作为 HHVM 的 HNI 扩展

git clone https://github.com/mongofill/mongofill-hhvm
cd mongofill-hhvm
./build.sh

您可以在 HNI 软件包的 构建和安装说明 中阅读完整的说明。

简单方式

安装 Mongofill 的简单方式是 通过 composer。您可以在 Packagist 上查看 软件包信息

{
    "require": {
        "mongofill/mongofill": "dev-master"
    }
}

注意:作为纯 PHP,phpversion('mongo') 将返回 null,并且一些库(如 Doctrine)在没有修改的情况下将无法正常工作 ,因此请使用 HNI 版本。

支持的库

您可以在 wiki 页面 Supported-Libraries 上检查当前支持的库。

社区

您可以在 Freenode 的 #mongofill 频道找到我们。

贡献

请将测试推送到 "compat/not-passing" 分支,确保其与官方 Mongo 扩展兼容。

我们非常欢迎贡献,包括纠正我们的英文翻译 ;)

为了确保代码库的一致性,您应该确保代码遵循 PSR2 编码标准。我们建议在提交拉取请求之前,使用 php-cs-fixer 对您的代码进行检查:php-cs-fixer fix . --level=all

运行 PHPUnit 测试

测试在 test 文件夹中。要运行它们,您需要 PHPUnit。

phpunit --configuration phpunit.xml.dist

运行 native mongo-php-driver 测试

您可以在 test/native/helper.sh 中找到辅助脚本。您的系统必须已安装:mongodb、git、phpize 和 autotools

cd tests/native/
./helper.sh setup
./helper.sh boot
./helper.sh run

基准测试

软件包中包含了一个基准测试套件,您可以使用以下命令运行套件

php ./vendor/bin/athletic -b tests/bootstrap.php  -p tests/Mongofill/Benchmarks/

一些结果可以在:https://gist.github.com/mcuadros/9551290 找到

注意事项

副本集 & APC

使用副本集时,Mongofill 驱动器需要获取副本集配置和状态信息。为了提高性能,驱动器将尝试使用 APC (apc_fetch, apc_store) 来缓存副本集数据。

APC 函数应该与 HHVM 自动安装,但如果你计划使用 PHP 与 Mongofill 驱动器,你需要确保已经安装了 APC 以获得性能提升。

对于 PHP 5.5 及更高版本,这将是通过 APCu 扩展。如果 APC 未安装,副本集仍然可以工作,但它们的速度不会那么快。