Para apoyar el próximo lanzamiento de Couchbase Server 4.5 y algunas innovaciones en la comunidad PHP con PHP 7, estamos mejorando nuestro PHP SDK. Hoy me gustaría anunciar la tercera Beta, que trae un par de nuevas funcionalidades junto con correcciones y mejoras internas. En esta entrada de blog demostraremos algunas de ellas.

API de subdocumentos

Nosotros ya escribió anteriormente sobre esta APIpero esta vez vamos a mostrar algo de PHP. Asumimos que has instalado Couchbase 4.5 beta como mínimo y has configurado el bucket de ejemplo mejorado viaje-muestra. Primero vamos a hacer un poco de código de servicio, donde instanciamos una conexión a bucket, y también definimos una función de utilidad para informar sobre un hotel al azar.

Bien, ya estamos listos. La API de subdocumentos permite ahorrar tráfico de red al trabajar con documentos de gran tamaño mediante un control detallado; por ejemplo, podemos extraer algunas de las propiedades del archivo hotel_10025:

Aquí y los métodos de acceso posteriores aceptan la ruta como primer argumento. Esto es similar a la ruta N1QL como se describe en la documentación. Si obtiene este documento utilizando la API normal, verá que no es el más pequeño y que contiene mucha información sobre el lugar, y con buscarEn sólo transfieres los datos que te interesan. Esto es más importante cuando quieres modificar pequeñas partes de un documento enorme. Por ejemplo, añadamos una persona más a me gusta_público, ajuste el nombre del hotel y elimine una de las valoraciones.

El código se explica por sí mismo. Si desea utilizar bloqueo optimistabasta con pasar el valor CAS como segundo argumento a mutateIn. La lista completa de operadores de mutación se encuentra en la referencia API https://docs.couchbase.com/sdk-api/couchbase-php-client-2.2.0beta3/classes/CouchbaseMutateInBuilder.html. Vamos a mostrar lo que tenemos después del cambio, pero esta vez vamos a utilizar el acceso directo para buscarEn con múltiples consiga operadores:

Gestión de índices

Anteriormente, para listar, crear o eliminar índices, era necesario elaborar manualmente la sentencia N1QL. En el próximo SDK de PHP 2.2 habrá una nueva API que simplificará esta tarea mediante la exposición de prácticas funciones en Gestor de cuboscomo en Couchbase Views. Veamos qué índices están definidos en el archivo viaje-muestra por defecto:

Debería salir algo como esto:

El siguiente ejemplo demuestra la creación de índices sobre nombre:

Eliminar índices no es un poco más difícil:

Antes de terminar, me gustaría mostrar un pequeño pero en algunos casos importante cambio que hemos conseguido en la versión beta3. El valor CAS siempre ha sido opaco en el protocolo de Couchbase, así como en los SDKs, pero en PHP estaba incluso oculto para los desarrolladores de aplicaciones detrás de la referencia de recursos PHP, lo que significa que es difícil pasarlo fácilmente (por ejemplo, para renderizar en una página HTML). En esta versión codificamos el CAS como un token de cadena, por lo que sigue siendo opaco, pero mucho más fácil de serializar.

Si no está familiarizado con lo que es el CAS, puede aprenderlo con un ejemplo aquí: https://github.com/couchbase/php-couchbase/blob/master/examples/cas/cas_replace.php

Y por último, para instalar esta versión, utilice el siguiente comando (asegúrese de tener libcouchbase 2.6.0+ instalado):

Esto es todo por ahora. Planeamos una versión Beta más antes de GA con aún más características. Si encuentras algún problema, por favor envíalo directamente al sitio de Comunidades Couchbase en https://www.couchbase.com/community/. Además, los errores pueden notificarse directamente a través de nuestro gestor de incidencias disponible aquí: https://www.couchbase.com/issues/browse/PCBC/

Permanezca atento.

Autor

Publicado por Sergey Avseyev, Ingeniero SDK, Couchbase

Sergey Avseyev es Ingeniero SDK en Couchbase. Sergey Avseyev es responsable del desarrollo del conector Kafka, y la biblioteca subyacente, que implementa DCP, el protocolo de replicación de Couchbase. También mantiene PHP SDK para Couchbase.

Dejar una respuesta