mongo-php-driver-legacy

Legacy MongoDB PHP driver

  • 所有者: mongodb/mongo-php-driver-legacy
  • 平台:
  • 许可证: Other
  • 分类:
  • 主题:
  • 喜欢:
    0
      比较:

Github星跟踪图

Build Status

Installation

To build and install the driver:

phpize
./configure
make
sudo make install

Then, add the following to your php.ini file:

extension=mongo.so

Enabling enterprise features

To connect to MongoDB Enterprise using SASL (GSSAPI) or LDAP (PLAIN) you need
to build the driver against cyrus-sasl2 (external library).
This is done by passing --with-mongo-sasl to ./configure, optionally passing
in the directory to where cyrus-sasl2 was installed:

phpize
./configure --with-mongo-sasl=/usr/local
make
sudo make install

Installing on Windows

Windows builds are available through http://pecl.php.net/package/mongo.

Builds for older driver versions may be found through
https://s3.amazonaws.com/drivers.mongodb.org/php/index.html.

Each driver release includes various builds to support specific versions of PHP
and Windows. Select the correct DLL file for your environment, and add the
following to your php.ini file (VERSION will vary by environment):

extension=php_mongo-VERSION.dll

If the DLL is not located within the directory specified by the
extension_dir INI
setting, you may need to specify its full path.

Documentation

See the PHP manual.

How To Ask For Help

When asking for support, or while providing feedback in the form of bugs or
feature requestes, please include the following relevant information:

  • Detailed steps on how to reproduce the problem, including a script that
    reproduces your problem, if possible.
  • The exact PHP version used. You can find this by running php -v on the
    command line, or by checking the output of phpinfo(); in a script
    requested through a web server.
  • The exact version of the MongoDB driver for PHP. You can find this by
    running php --ri mongo, grep Version on the command line, or by running
    a script containing <?php echo phpversion("mongo"); ?>.
  • The operating system and version (e.g. Windows 7, OSX 10.8, ...).
  • How you installed the driver, either via your distribution's package
    management, with "brew", with an *AMP installation package, or through a
    manual source compile and install.
  • With connection and replica set selection issues, please also provide a
    full debug log. See further down on how to make one.

Support / Feedback

For issues with, questions about, or feedback for the PHP driver, please look
into our support channels. Please do
not email any of the PHP driver developers directly with issues or
questions—you're more likely to get an answer on the
mongodb-user list on Google
Groups.

Bugs / Feature Requests

Think you have found a bug? Want to see a new feature in the driver? Please
open a case in our issue management tool, JIRA:

Bug reports in JIRA for all driver projects, as well as for the MongoDB server
project, are public. Please do not add private information to bug reports.

Security Vulnerabilities

If you’ve identified a security vulnerability in a driver or any other
MongoDB project, please report it according to the
instructions here.

Testing

The tests are not available as part of the PECL package, but they are available
on Github.

See CONTRIBUTING.md for how to run and create new tests.

Full debug log

You can make a full debug log by using the following code:

<?php
/*
 * This script will catch all internal driver logging for MongoDB and log them
 * to a file /tmp/MONGO-PHP-LOG.<unix-timestamp>. This log will give the
 * driver developers more or less all the information they'll need to debug
 * this issue
 */
 
function module2string($module)
{
    switch ($module) {
        case MongoLog::RS: return "REPLSET";
        case MongoLog::CON: return "CON";
        case MongoLog::IO: return "IO";
        case MongoLog::SERVER: return "SERVER";
        case MongoLog::PARSE: return "PARSE";
        default: return $module;
    }
}
 
function level2string($level)
{
    switch ($level) {
        case MongoLog::WARNING: return "WARN";
        case MongoLog::INFO: return "INFO";
        case MongoLog::FINE: return "FINE";
        default: return $level;
    }
}
 
function logMongo($module, $level, $message, $save = false) {
    static $log = "";
    $log .= sprintf("%s, %s (%s): %s\n", date('Y-m-d H:i:s',time()), module2string($module), level2string($level), $message);
 
    if ($save) {
        file_put_contents("/tmp/MONGO-PHP-LOG." . time(), $log);
        $log = "";
    }
}
 
function saveMongoLogException($ex) {
    if ($ex instanceof MongoException) {
        $msg = sprintf("Uncaught exception: %s, %s\n",  get_class($ex), $ex->getMessage());
        logMongo(get_class($ex), "ERROR", $ex->getMessage(), true);
    }
    throw $ex;
}

function saveMongoLog() {
    logMongo("EXIT", "EXIT", "EXIT", true);
}
 
MongoLog::setLevel(MongoLog::ALL);
MongoLog::setModule(MongoLog::ALL);
MongoLog::setCallback("logMongo");

register_shutdown_function("saveMongoLog");
 
/* If an global exception handler is used, or a default exception handler is
 * already registered, please comment out this line and put into your catch
 * block: saveMongoLogException($exception); */
set_exception_handler("saveMongoLogException");
?>

Credits

Jon Moss

  • Came up with the idea and implemented MongoCursor implementing Iterator

Pierre-Alain Joye

  • Helped build the Windows extension and has provided the VC6 builds

Cesar Rodas

  • Created the MongoCursor::info method
  • Implemented GridFS read streaming

William Volkman

  • Made connection code check & handle error status

Derick Rethans

  • Implemented MongoInt32, MongoInt64 and related php.ini options.

Taneli Leppä

  • Provided a patch for PHP-706 to swap out select() for poll().

主要指标

概览
名称与所有者mongodb/mongo-php-driver-legacy
主编程语言PHP
编程语言Shell (语言数: 7)
平台
许可证Other
所有者活动
创建于2009-02-04 21:30:35
推送于2022-01-31 17:54:30
最后一次提交2022-01-31 12:54:30
发布数92
最新版本名称1.6.16 (发布于 2017-09-05 09:43:11)
第一版名称0.8.4 (发布于 2009-04-09 17:01:13)
用户参与
星数1.1k
关注者数118
派生数327
提交数4.7k
已启用问题?
问题数0
打开的问题数0
拉请求数530
打开的拉请求数0
关闭的拉请求数356
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?