mongofill / mongofill
PECL Mongo 扩展的 Polyfill
Requires (Dev)
- athletic/athletic: dev-master
- phpunit/phpunit: ~4.7.7
Provides
- ext-mongo: *
This package is not auto-updated.
Last update: 2020-05-01 16:46:43 UTC
README
纯 PHP 实现的 MongoDB 驱动,旨在作为官方扩展的替代品,可在 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 版本。
支持的库
您可以在维基页面上查看当前支持的库 支持的库。
社区
您可以在 Freenode 上的 #mongofill 频道找到我们。
贡献
请将未通过的测试推送到 "compat/not-passing" 分支,确保与官方 Mongo 扩展的兼容性。
我们非常感谢您的贡献,包括对英文的更正 ;)
为确保代码库的一致性,请确保代码遵循 PSR2 编码标准。我们建议在提交 pull request 之前使用 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 自动安装,但如果你计划使用 Mongofill 驱动与 PHP 一起使用,你需要确保安装了 APC 以获得性能提升。
对于 PHP 5.5 及更高版本,这将是 APCu 扩展。如果未安装 APC,副本集仍然可以工作,但它们的速度不会那么快。