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?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?