Historique des modifications

Les modifications suivantes ont été apportées aux classes/fonctions/méthodes de cette extension.

Driver PHP MongoDB 1.5.0

Il supporte toutes les nouvelles fonctionnalités de MongoDB 2.6, y compris :

  • L'aggrégation peut maintenant retourner un curseur
  • Les pipelines d'aggrégation peuvent maintenant être expliquées
  • Possibilité de définir maxTimeMS pour les commandes et les requêtes
  • Support transparant pour les nouvelles commandes basées sur l'API d'écriture MongoDB
  • Nouvelle classe MongoWriteBatch (utilisant la nouvelle API d'écriture MongoDB)
  • Support des fonctionnalités MongoDB Enterprise (i.e. Kerberos, LDAP, X509)
  • Option pour affiner une latence acceptable des serveurs pour les lectures secondaires (secondaryAcceptableLatencyMS)

Dans cette version, quelques fonctionnalités du driver qui étaient documentées sont devenues obsolètes, et émettent désormais des notices quant à leur obsolescence. Ceci est valable pour :

  • L'instanciation de la classe Mongo
  • L'appel à la méthode MongoCursor::slaveOkay()
  • L'utilisation des options "wtimeout" et "safe" pour les opérations en écriture de MongoCollection
  • La manipulation des propriétés publiques des classes du coeur (par exemple, $collection->w)

Note:

Aucune fonctionnalité déclarée comme obsolète précédemment n'a été supprimée.

Modification de comportement :

  • Le fait de définir l'option INI mongo.native_long émet désormais une erreur sur les plateformes 32-bits, et vaut TRUE par défaut pour les plateformes 64-bits.

Driver PHP MongoDB 1.4.0

La série 1.4 a introduit des changements fondamentaux sur la façon dont les connexions sont créées vers les serveurs MongoDB. Le driver utilise désormais les flux PHP natifs, aussi, toutes les options des flux PHP peuvent être utilisées. De plus, le support d'un contexte de flux expérimental a été ajouté.

La série 1.4.x a également ajouté le support de MongoDB 2.4.x.

Cependant, l'amélioration la plus importe reste la gestion des jeux de réplication, et tout spécialement les noeuds dont le délai maximal d'attente est atteint ou ceux qui ne sont pas joignables pour diverses raisons. Cette version aborde également les problèmes avec les préférences de lecture via les noeuds mongo. Elle apporte également le support des connexions SSL, ainsi que des options pour les journaux et les connexions fsync.

Driver PHP MongoDB 1.3.0

La série 1.3 introduit plusieurs modifications majeures à l'extension, comme la complète ré-écriture du gestionnaire de connexion (et la suppression du mécanisme de mise en file d'attente), le support des préférences de lecture et la modification de WriteConcerns devant être reconnu en introduisant une nouvelle classe MongoClient qui agit comme classe de remplacement pour la classe Mongo devenue pour l'occasion obsolète.

Le driver supporte maintenant la connexion à de multiples instances mongos (le routeur Mongo Shard) pour la balance de charge.

Mais aussi d'autres améliorations comme la fourniture de log pour un débogage simplifié du gestionnaire de connexion avec la classe MongoLog ainsi que le support du » Framework d'aggrégation via la méthode MongoCollection::aggregate().

Modifications sur les méthodes existantes

Voici une liste de toutes les améliorations sur les méthodes existantes depuis leur création.

VersionFunctionDescription
1.7.0MongoDB::executeCette méthode est devenue obsolète, sachant qu'un résultat d'une commande eval sous-jacente est devenu obsolète en MongoDB 3.0+.
1.6.0MongoClient::__constructAjout du support de "SCRAM-SHA-1" pour l'option "authMechanism".
 MongoCollection::countLe second paramètre est maintenant un tableau d'options. Le fait de passer les paramètres limit et skip comme second et troisième paramètres, respectivement, est maintenant obsolète.
 MongoDB::getCollectionNamesModification du premier paramètre pour devenir un tableau d'options. Avant la version 1.6.0, le premier paramètre était un booléen indiquant l'option "includeSystemCollections".
 MongoDB::listCollectionsModification du premier paramètre pour devenir un tableau d'options. Avant la version 1.6.0, le premier paramètre était un booléen indiquant l'option "includeSystemCollections".
1.5.0log_cmd_deleteUniquement disponible lorsque connecté à MongoDB 2.6.0+
 log_cmd_insertUniquement disponible lorsque connecté à MongoDB 2.6.0+
 log_cmd_updateUniquement disponible lorsque connecté à MongoDB 2.6.0+
 log_write_batchUniquement disponible lors d'une connexion à MongoDB 2.6.0+
 MongoBinData::__constructLa valeur par défaut passe de 2 (MongoBinData::BYTE_ARRAY) à 0 (MongoBinData::GENERIC).
 MongoClient::__constructAjout de "authMechanism", "gssapiServiceName" et "secondaryAcceptableLatencyMS".
 MongoClient::__constructAjout de "authSource".
 MongoCollection::aggregateAjout de l'argument optionnel options
 MongoCollection::batchInsertAjout de l'option "wTimeoutMS", qui remplace "wtimeout". Emets une alerte de niveau E_DEPRECATED lorsque "wtimeout" est utilisée. Ajout de l'option "socketTimeoutMS", qui remplace "timeout". Emets une alerte de niveau E_DEPRECATED lorsque "timeout" est utilisée. Emets une alerte de niveau E_DEPRECATED lorsque "safe" est utilisée.
 MongoCollection::ensureIndexRenommage de l'option "wtimeout" en "wTimeoutMS". Emets une alerte de niveau E_DEPRECATED lorsque "wtimeout" est utilisée. Renommage de l'option "timeout" en "socketTimeoutMS". Emets une alerte de niveau E_DEPRECATED lorsque "timeout" est utilisée. Emets une alerte de niveau E_DEPRECATED lorsque "safe" est utilisée.
 MongoCollection::findOneAjout de l'argument optionnel options.
 MongoCollection::groupAjout de l'option "maxTimeMS".
 MongoCollection::insertAjout de l'option "wTimeoutMS", qui remplace "wtimeout". Emets une alerte de niveau E_DEPRECATED lorsque "wtimeout" est utilisée. Ajout de l'option "socketTimeoutMS", qui remplace "timeout". Emets une alerte de niveau E_DEPRECATED lorsque "timeout" est utilisée. Emets une alerte de niveau E_DEPRECATED lorsque "safe" est utilisée.
 MongoCollection::removeAjout de l'option "wTimeoutMS", qui remplace l'option "wtimeout". Emets une alerte de niveau E_DEPRECATED lorsque "wtimeout" est utilisée. Ajout de l'option "socketTimeoutMS", qui remplace l'option "timeout". Emets une alerte de niveau E_DEPRECATED lorsque "timeout" est utilisée. Emets une alerte de niveau E_DEPRECATED lorsque "safe" est utilisée.
 MongoCollection::saveAjout de l'option "wTimeoutMS", qui remplace l'option "wtimeout". Emets une alerte de type E_DEPRECATED lorsque "wtimeout" est utilisée. Ajout de l'option "socketTimeoutMS", qui remplace l'option "timeout". Emets une alerte de type E_DEPRECATED lorsque "timeout" est utilisée. Emets une alerte de type E_DEPRECATED lorsque "safe" est utilisée.
 MongoCollection::toIndexStringCette méthode est devenue obsolète.
 MongoCollection::updateAjout de l'option "wTimeoutMS", qui remplace l'option "wtimeout". Emets une alerte de niveau E_DEPRECATED lorsque "wtimeout" est utilisée. Ajout de l'option "socketTimeoutMS", qui remplace l'option "timeout". Emets une alerte de niveau E_DEPRECATED lorsque "timeout" est utilisée. Emets une alerte de niveau E_DEPRECATED lorsque "safe" est utilisée.
 MongoCursor::slaveOkayCette méthode est devenue obsolète, en faveur de la méthode MongoCursor::setReadPreference et .
 MongoDB::commandRenommage de l'option "timeout" en "socketTimeoutMS". Emets une alerte de type E_DEPRECATED lorsque "timeout" est utilisée. Ajout du paramètre hash par référence.
1.4.5MongoCursor::batchSizeAvant la version 1.4.5, cette méthode lançait une exception de type MongoCursorException si le curseur avait déjà commencé son itération.
1.4.0MongoClient::__constructAjout de l'option "ssl" et du support de la connexion via SSL. Ajout de l'option "wTimeoutMS", qui remplace l'option "wTimeout". Emets une alerte de niveau E_DEPRECATED lorsque "slaveOkay" ou "timeout" est utilisé.
 MongoCursor::hintL'argument index supporte maintenant les noms d'index comme valeur. Pour les versions antérieures à 1.4.0, sur les valeurs sous forme de tableau ou d'objet étaient acceptées.
 MongoCursor::setFlagAjout du support du drapeau n°3 (OPLOG_REPLAY). Les versions antérieures à 1.4.0 émettront une alerte indiquant que le drapeau n'est pas supporté..
 MongoDB::createCollectionDans les versions antérieures à 1.4.0, les options étaient toutes des arguments de la méthode. La signature de la fonction dans ces anciennes versions était : public MongoCollectionMongoDB::createCollection stringname boolcappedFALSE intsize0 intmax0 La signification de ces options est la même que celle décrite ci-dessus, dans l'argument options.
 MongoId::__constructUne exception est lancée lorsqu'une chaîne de caractères invalide est passée.
1.3.4MongoClient::__constructAjout des options "connectTimeoutMS" et "socketTimeoutMS".
 MongoCollection::batchInsertAjout de l'option "wtimeout".
 MongoCollection::ensureIndexAjout de l'option "wtimeout".
 MongoCollection::insertAjout de l'option "wtimeout".
 MongoCollection::removeAjout de l'option "wtimeout".
 MongoCollection::updateAjout de l'option "wtimeout".
1.3.3MongoClient::getReadPreferenceLa valeur retournée a changé pour être consistante avec la méthode MongoClient::setReadPreference. La valeur type a été modifiée, passant d'un nombre à une chaîne de caractères, la valeur type_string a été supprimée, et la valeur tagsets exprime désormais les tags sous la forme d'une paire clé/valeur, au lieu d'une chaîne dont les valeurs étaient séparées par une virgule.
 MongoCollection::getReadPreferenceLa valeur retournée a changé pour être consistante avec la méthode MongoCollection::setReadPreference. La valeur type a été modifiée, passant d'un nombre à une chaîne de caractères, la valeur type_string a été supprimée, et la valeur tagsets exprime maintenant les tags sous la forme d'une paire clé/valeur, au lieu d'une chaîne dont les valeurs sont délimitées par une virgule.
 MongoDB::getReadPreferenceLa valeur retournée a changée pour être consistante avec la méthode MongoDB::setReadPreference. La valeur type a été changée, passant d'un nombre à une chaîne de caractères, la valeur type_string a été supprimée, et la valeur tagsets exprime maintenant les tags sous la forme d'une paire clé/valeur, au lieu d'une chaîne dont les valeurs étaient séparées par une virgule.
1.3.0MongoClient::closeLe paramètre connection a été ajouté. Avant cette version, seule la connexion en écriture était fermée par cette méthode.
 MongoClient::__constructAjout des options "readPreference", "readPreferenceTags", "w" et "wTimeout".
 MongoCollection::batchInsertAjout de l'option "w".
 MongoCollection::ensureIndexAjout de l'option "w". Le paramètre options n'accepte plus de booléen pour signifier un index unique. A la place, vous devez utiliser la syntaxe array('unique' => true).
 MongoCollection::insertAjout de l'option "w". Le paramètre options n'accepte plus de booléen pour indiquer une écriture reconnue. A la place, utilisez la syntaxe array('w' => 1) (comportement par défaut de MongoClient).
 MongoCollection::removeAjout de l'option "w". Le paramètre options n'accepte plus de booléen pour indiquer "justOne". A la place, utilisez la syntaxe array('justOne' => true).
 MongoCollection::updateAjout de l'option "w". Le paramètre options n'accepte plus de booléen pour indiquer un upsert. A la place, vous devez utiliser la syntaxe array('upsert' => true).
 MongoDB::listCollectionsAjout du paramètre includeSystemCollections.
 MongoGridFSCursor::keyL'_id du document est retourné sous forme de chaîne de caractères, sachant que la clé doit être unique. Avant la version 1.3.0, filename était retourné.
1.2.11Mongo::getPoolSizeLance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 Mongo::getSlaveLance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 Mongo::getSlaveOkayLance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 Mongo::poolDebugLance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 Mongo::setSlaveOkayLance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 Mongo::switchSlaveLance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 MongoBinData::__constructLance une alerte de niveau E_DEPRECATED lorsque le second argument n'est pas utilisé. La valeur par défaut du paramètre type peut changer dans de futures versions.
 MongoCollection::ensureIndexLance une alerte de niveau E_DEPRECATED lorsque le paramètre options est de type scalar.
 MongoCollection::getSlaveOkayLance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 MongoCollection::groupLance une alerte de niveau E_DEPRECATED lorsque le paramètre options est de type scalar.
 MongoCollection::removeLance une alerte de niveau E_DEPRECATED lorsque le paramètre options est de type scalar.
 MongoCollection::setSlaveOkayLance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 MongoCollection::updateLance une alerte de niveau E_DEPRECATED lorsque le paramètre options est de type scalar.
 MongoCursor::doQueryLance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 MongoDB::authenticateLance une alerte de niveau E_DEPRECATED lorsqu'utilisé. Veuillez passer les détails d'authentification au constructeur.
 MongoDB::forceErrorLance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 MongoDB::getSlaveOkayLance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 MongoDB::prevErrorLance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 MongoDB::resetErrorLance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 MongoDB::setSlaveOkayLance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 MongoPool::getSizeLance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 MongoPool::infoLance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
 MongoPool::setSizeLance une alerte de niveau E_DEPRECATED lorsqu'utilisé.
1.2.10MongoClient::getHostsLe support de l'absence de jeu de réplication a été ajouté. Les éléments de tableau retournés incluent à présent également le hostname et le port.
1.2.7MongoCollection::batchInsertLe drapeau "continueOnError" a été ajouté.
1.2.5MongoGridFS::storeUploadModification du second paramètre en un tableau de méta-données. Avant la version 1.2.5, le second paramètre étaient une chaîne optionnelle permettant d'écraser le nom du fichier.
1.2.0MongoClient::closeAvant la version 1.2.0, le driver n'utilisait pas les connexions persistentes par défaut, et toutes les connexions étaient fermées dès que une connexion MongoDB sortait du scope. Depuis la version 1.2.0, ce n'est plus le cas et c'est une mauvaise idée d'appeler la méthode close car vous pourriez finir par surcharger le serveur avec des connexions à haute charge.
 MongoClient::__constructAjout des options "username" et "password". Suppression de l'option "persist", toutes les connexions sont désormais persistantes. Le paramètre peut tout de même être utilisé, il sera simplement ignoré. "persist" Si la connexion doit être persistante. La chaine représentant la valeur est utilisée comme identifiant de connexion, ainsi deux instances de MongoClient qui sont initialisées avec array("persist" => "foobar") vont partager la même connexion à la base, alors que une instance initialisée avec array("persist" => "barbaz") utilisera une connexion différente. Le paramètre "replicaSet" accepte maintenant une chaine, pas un booléen.
 MongoCollection::ensureIndexAjout de l'option "timeout".
 MongoCollection::insertAjout de l'option "timeout".
 MongoCollection::removeAjout de l'option "timeout".
 MongoCollection::saveAjout de l'option "timeout".
 MongoCollection::updateAjout de l'option "timeout".
 MongoDB::commandAjout du paramètre options avec une seule option : "timeout".
1.1.0MongoCursor::infoAjout de quelques champs, incluant id (l'identifiant de curseur), at (le compteur du driver du document courant), numReturned (le nombre retourné par le serveur dans le batch courant), et server (le serveur sur lequel la requête a été émise ; utile en plus de ).
1.0.11MongoCollection::ensureIndexL'option "safe" déclenchera le failover du primaire, si nécessaire. MongoException sera envoyée si le nom de l'index (généré ou défini) est plus long que 128 octets.
 MongoCollection::insertSe déconnecte lors d'erreurs "not master" si "safe" est utilisé.
 MongoCollection::removeSe déconnecte lors d'erreurs "not master" si "safe" est utilisé.
 MongoCollection::saveSe déconnecte lors d'erreurs "not master" si "safe" est utilisé.
 MongoCollection::updateSe déconnecte lors d'erreurs "not master" si "safe" est utilisé.
1.0.10MongoCursor::infoAjout du champ started_iterating, un booléen indiquant si le curseur est antérieur ou postérieur à la requête.
1.0.9MongoClient::__constructAjout de l'option "replicaSet".
 MongoCollection::batchInsertAjout de la possibilité de passer des entiers à l'option "safe" (auparavant, seuls les booléens étaient acceptés). Ajout de l'option "fsync".
 MongoCollection::insertAjout de la possibilité de passer des entiers à l'option "safe" (auparavant, seuls les booléens étaient acceptés). Ajotu de l'option "fsync". Le type retourné a changé. C'est maintenant un tableau contenant les informations d'erreur si l'option "safe" est utilisée, sinon, c'est un booléen, comme auparavant.
 MongoCollection::removeAjout de la capacité de passer des entiers à l'option "safe" (n'acceptaient que des booléens avant). Ajout de l'option "fsync". Le type retourné a été modifié en un tableau contenant les informations de l'erreur si l'option "safe" est utilisée, sinon, ce sera un booléen comme auparavant.
 MongoCollection::saveAjout de l'option "fsync".
 MongoCollection::updateAjout de la possibilité de passer des entiers à l'option "safe" (auparavant, seuls les booléens étaient acceptés). Ajout de l'option "fsync". Le type retourné a été modifié en un tableau contenant les informations de l'erreur si l'option "safe" est utilisé, sinon, ce sera un booléen comme auparavant.
1.0.7MongoCollection::countAjout des paramètres limit et skip comme second et troisième paramètres, respectivement.
1.0.5MongoCollection::batchInsertAjout du paramètre options.
 MongoCollection::ensureIndexAjout de l'option "name" pour écraser la création du nom de l'index.
 MongoCollection::removeModification du second paramètre en un tableau d'options. Pre-1.0.5, le second paramètre était un booléen indiquant l'option "safe".
 MongoCollection::saveAjout du paramètre options.
 MongoCollection::updateAjout de l'option "safe".
1.0.2MongoClient::__constructLe constructeur a changé pour accepter une tableau. Avant 1.0.2, le constructeur acceptait les paramètres suivants : server Nom du serveur. connect Paramètre optionnel indiquant si le constructeur doit se connecter à la base avant de retourner l'objet. Par défaut TRUE. persistent Si la connexion doit être persistante. paired Si la connexion doit être pairée.
 MongoCollection::ensureIndexLe paramètre options passe de booléen à un tableau. En version Pre-1.0.2, le second paramètre était une valeur booléenne optionnelle spécifiant un index unique.
 MongoCollection::insertModification du second paramètre en un tableau d'options. Avant la version 1.0.2, le second paramètre était un booléen indiquant l'option "safe".
1.0.1MongoCollection::insertLance une exception MongoCursorException si l'option "safe" est définie et que l'insertion échoue.
 MongoCollection::updateLe paramètre options passe de booléen à un tableau. En version Pre-1.0.1, le second paramètre était une valeur booléenne optionnelle, spécifiant un upsert.