Overview
En esta guía, puede aprender sobre los cambios que debe realizar en su aplicación al actualizar a una nueva versión de MongoDB PHP librería. Esta página también describe cómo actualizar tu extensión PHP a una nueva versión.
Cómo actualizar
Antes de actualizar, realiza las siguientes acciones:
Resuelve cualquier cambio disruptivo entre la versión de la librería que tu aplicación está usando y la versión a la que planeas actualizar, en la sección Cambios disruptivos.
Asegúrate de que la nueva versión de la librería PHP sea compatible con las versiones del Servidor de MongoDB a las que tu aplicación se conecta y con la versión de PHP con la que tu aplicación compila. Para información sobre compatibilidad de versiones, consulta la sección Cambios de compatibilidad y la página Compatibilidad.
Tip
Para asegurar la compatibilidad entre las distintas versiones de MongoDB Server durante la actualización de las versiones de la librería, utiliza la Stable API.
Las versiones mayor y menor de la extensión y la librería de PHP están sincronizadas. Esto significa que puedes ejecutar un comando de actualización para la extensión y también para actualizar la librería de PHP.
Las versiones de parche (x.x.x) para la librería y la extensión no están sincronizadas. Ejecuta los comandos respectivos para actualizar a las versiones parches de la librería o extensión.
Para actualizar la extensión de PHP, reemplace <version-number> con el número de versión al que desea actualizar y ejecute el siguiente comando en el directorio de su aplicación:
pie install mongodb/mongodb-extension:^<version-number>
Tip
Versiones anteriores de la extensión de PHP
Para actualizar a una versión anterior a la extensión de PHP v1.21, usa el siguiente comando:
pecl upgrade mongodb-<version-number>
Para actualizar la versión de la librería PHP, reemplace <version-number> con el número de versión al que desea actualizar y ejecute el siguiente comando en el directorio de su aplicación:
composer require mongodb/mongodb:<version-number>
Se pueden encontrar instrucciones detalladas de instalación en la documentación de PHP.net.
cambio disruptivo
Un cambio disruptivo es una modificación de una convención o comportamiento que comienza en una versión específica de la librería. Este tipo de cambio puede evitar que la aplicación funcione correctamente si no se soluciona antes de actualizar la librería.
Los cambios disruptivos en esta sección se categorizan según la versión de la librería que los introdujo. Solo las versiones principales de las librerías introducen cambios disruptivos. Al actualizar versiones, se deben abordar todos los cambios disruptivos entre la versión actual y la actualizada.
Para obtener más información sobre los cambios de versión, consulta las notas de versión y los tickets de JIRA asociados para cada versión en GitHub.
Versión 2.0 cambio disruptivo
Esta versión de la librería presenta los siguientes cambios disruptivos:
Los siguientes métodos devuelven
voiden vez de la respuesta de comando bruta:MongoDB\\Client:dropDatabase()MongoDB\\Collection:drop(),dropIndex(),dropIndexes(),dropSearchIndex(),rename()MongoDB\\Database:createCollection(),drop(),dropCollection(),renameCollection()
El método
MongoDB\\Database::createEncryptedCollection()devuelve la lista de campos cifrados en lugar de la respuesta bruta del comando.Si ocurre un error, los métodos lanzan una excepción.
Si necesitas acceder a la respuesta bruta del comando a partir de los métodos anteriores, puedes registrar un CommandSubscriber en tu aplicación.
Cambios de compatibilidad
Esta sección describe los cambios de compatibilidad entre el MongoDB Server y PHP introducidos en las versiones de la MongoDB PHP librería.
Versión 1.x Cambios de compatibilidad
Esta versión de la librería introduce los siguientes cambios de compatibilidad:
- Se descarta el soporte para MongoDB Server 3.6 en MongoDB PHP librería v1.20
Tip
Versiones anteriores de la librería
Para ver los cambios de compatibilidad para las versiones 1.19 y anteriores de MongoDB PHP librería, consulta las notas de la versión y los tickets asociados en JIRA para cada lanzamiento en GitHub.