## Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Mongo
Nom | Défaut | Modifiable | Historique
--- | --- | --- | ---
mongo.allow_empty_keys | 0 | PHP_INI_ALL |
mongo.allow_persistent | 1 | PHP_INI_ALL | Supprimé en 1.2.0
mongo.chunk_size | 262144 | PHP_INI_ALL |
mongo.cmd | "$" | PHP_INI_ALL |
mongo.default_host | "localhost" | PHP_INI_ALL |
mongo.default_port | 27017 | PHP_INI_ALL |
mongo.is_master_interval | 15 | PHP_INI_ALL | Ajouté en 1.2.10, avant 1.3.0, la valeur par défaut était de 60.
mongo.long_as_object | 0 | PHP_INI_ALL |
mongo.native_long | 1 | PHP_INI_ALL | Avant la version 1.5.0, la valeur par défaut était 0.
mongo.ping_interval | 5 | PHP_INI_ALL | Ajouté en 1.2.10
mongo.utf8 | 1 | PHP_INI_ALL |

Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

`mongo.allow_empty_keys` int

  Ajouté en version 1.0.11.

  Si les chaînes vides ("") doivent être autorisées comme noms de clés. Par défaut, le driver émet une exception si vous tentez de passer une chaîne vide en tant que clé à la base de données. C'est très simple de le faire sans faire exprès en utilisant les guillemets doubles avec les $-opérateurs, aussi, il est recommandé de laisser cette option à sa valeur par défaut. Cependant, si vous avez besoin de sauvegarder les clés qui sont des chaînes vides, vous pouvez définir cette option à `TRUE` et le driver vous autorisera à passer des chaînes vides à la base de données.

`mongo.allow_persistent` int

  Indique si les connexions persistantes sont autorisées (supprimé en 1.2.0 - toutes les connexions sont maintenant persistentes).

`mongo.chunk_size` int

  Le nombre d'octets par bloc. Utilisé lors avec les fichiers GridFS. Ce nombre doit être supérieur 4 Mo moins 100 octets (max : 4194204) et il est recommandé qu'il soit plus petit.

`mongo.cmd` string

  Un caractère à utiliser à la place du caractère $ dans les modificateurs et les comparaisons.

  Sachant qu'il est rapide d'oublier d'échapper le caractère "$", vous pouvez également choisir votre propose caractère à utiliser en lieu et place de "$". Choisissez un caractère qui ne peut survenir dans les noms de vos clés, i.e. ":" :

      mongo.cmd = ":"

  Ensuite, pour effectuer une comparaison, par exemple :

  `<?php
  $query = array( "i" => array( ":gt" => 20, ":lte" => 30 ) );
  ?>`

  Vous pouvez également le modifier dans votre code en utilisant ini_set("mongo.cmd", ":"). Évidemment, vous pouvez également utiliser un guillemet simple ou un anti-slash pour échapper le "$".

`mongo.default_host` string

  Nom d'hôte par défaut lorsqu'aucun nom d'hôte n'est fourni au constructeur.

`mongo.default_port` string

  Le numéro de port par défaut, à utiliser lors de la connexion à la base de données, si aucun port n'est spécifié. La valeur par défaut est 27017.

`mongo.is_master_interval` int

  Ajouté en version 1.2.10.

  Pour les connexions au jeu de réplications : l'intervalle minimum pour lequel le driver enverra des requêtes "isMaster" au serveur MongoDB. Si la valeur est petite, il y aura plus de requêtes, mais le driver trouvera rapidement que le jeu de réplication a changé.

`mongo.long_as_object` int

  Retourne un BSON_LONG comme instance de MongoInt64 (à la place du type primitif).

`mongo.native_long` int

  Le comportement par défaut de ce paramètre a été changé à `TRUE` en 1.5.0, faites attention de bien configurer ce paramètre à la valeur désirée (probablement `TRUE`) ainsi le comportement du pilote ne changera pas soudainement à la mise à jour.

  Sur les plateformes 64-bits, le paramètre mongo.native_long autorise les entiers 64-bits à être stockés dans MongoDB. Sinon, seuls les entiers 32-bits seront sauvés. Dans le cas des long, le type MongoDB BSON LONG est utilisé à la place de BSON INT lorsque ce paramètre est désactivé.

  Ce paramètre change aussi la manière dont les BSON LONG se comportent lorsqu'ils sont lus depuis MongoDB. Sans mongo.native_long, le pilote convertira tout BSON LONG en un type double de PHP ce qui peut amener à une perte de précision.

  Sur les plateformes 32-bits, le paramètre mongo.native_long ne change rien en ce qui concerne le stockage des entiers dans MongoDB: l'entier est stocké comme un BSON INT comme avant. Cependant, lorsque ce paramètre est activé et qu'un BSON LONG est lu de MongoDB, une MongoCursorException est levée alertant que la donnée n'a pu être lue sans perte de précision.

  Sur les systèmes 32-bits particulièrement, il est recommandé de combiner cela avec l'activation de mongo.long_as_object.

`mongo.ping_interval` int

  Ajouté en version 1.2.10.

  Pour les connexions au jeu de réplications : L'intervalle minimum pour lequel le driver enverra des requêtes "ping" au serveur MongoDB. Si la valeur est petite, il y aura plus de pings, mais le driver trouvera rapidement qu'un noeud n'est plus disponible depuis le jeu de réplications.

`mongo.utf8` int

  Si une exception doit être émise lors de l'utilisation de chaînes non encodées UTF-8. Jusqu'à la version 1.0.4, le driver PHP ignorait les chaînes non encodées UTF-8, même si vous n'étiez pas supposés en utiliser. Depuis la version 1.0.4, le driver lance une exception MongoException. Pour faciliter la transition de vos applications qui pouvaient insérer des chaînes non encodées UTF-8, vous pouvez désactiver cette option pour émuler l'ancien comportement. Cette option sera supprimée et l'exception toujours lancée pour les chaînes non encodées UTF-8 à partir de la version 1.1.0.