mondongo, un odm para php y mongodb

160
MondonGO

Upload: pablodip

Post on 26-Dec-2014

14.953 views

Category:

Technology


4 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Mondongo, un ODM para PHP y MongoDB

MondonGO

Page 2: Mondongo, un ODM para PHP y MongoDB

¿Qué es MondonGO?

Page 3: Mondongo, un ODM para PHP y MongoDB

“Mondongo es a los ODMs lo que MongoDB a las bases de datos.”

Page 4: Mondongo, un ODM para PHP y MongoDB

¿Ein?“Mondongo es a los ODMs lo que MongoDB a las

bases de datos.”

Page 5: Mondongo, un ODM para PHP y MongoDB

¿Qué es ?

Page 6: Mondongo, un ODM para PHP y MongoDB

“MongoDB es una base de datos escalable, de alto rendimiento, de código abierto y orientada a

documentos.”

Page 7: Mondongo, un ODM para PHP y MongoDB

Terminología

Page 8: Mondongo, un ODM para PHP y MongoDB

Base de Datos = Base de Datos

Page 9: Mondongo, un ODM para PHP y MongoDB

Base de Datos = Base de Datos Tabla = Colección

Page 10: Mondongo, un ODM para PHP y MongoDB

Base de Datos = Base de Datos Tabla = Colección

Registro ~ Documento

Page 11: Mondongo, un ODM para PHP y MongoDB

Documentos

Page 12: Mondongo, un ODM para PHP y MongoDB

JSON

Page 13: Mondongo, un ODM para PHP y MongoDB
Page 14: Mondongo, un ODM para PHP y MongoDB

Embebidos

Page 15: Mondongo, un ODM para PHP y MongoDB
Page 16: Mondongo, un ODM para PHP y MongoDB

Sin Esquema

Page 17: Mondongo, un ODM para PHP y MongoDB

Cada documento puede tener distinta estructura

Page 18: Mondongo, un ODM para PHP y MongoDB

No hay tipos

Page 19: Mondongo, un ODM para PHP y MongoDB

Drivers

Page 20: Mondongo, un ODM para PHP y MongoDB
Page 21: Mondongo, un ODM para PHP y MongoDB

en

Page 22: Mondongo, un ODM para PHP y MongoDB

Conectar con Mongo

Page 23: Mondongo, un ODM para PHP y MongoDB

Seleccionar bases de datos

Page 24: Mondongo, un ODM para PHP y MongoDB

Seleccionar colecciones

Page 25: Mondongo, un ODM para PHP y MongoDB

Las bases de datos y las colecciones se crean automáticamente si no existen

Page 26: Mondongo, un ODM para PHP y MongoDB

Los documentos son simplemente arrays

Page 27: Mondongo, un ODM para PHP y MongoDB

Insertar documentos

Page 28: Mondongo, un ODM para PHP y MongoDB
Page 29: Mondongo, un ODM para PHP y MongoDB

Actualizar documentos

Page 30: Mondongo, un ODM para PHP y MongoDB

Consultar documentos

Page 31: Mondongo, un ODM para PHP y MongoDB

¿Qué es un ODM?

Page 32: Mondongo, un ODM para PHP y MongoDB

ODM == Object Document Mapper

Page 33: Mondongo, un ODM para PHP y MongoDB

“Un ODM es una herramienta que mapea la estructura de bases de datos a objetos”

Page 34: Mondongo, un ODM para PHP y MongoDB

¿Qué es MondonGO?

Page 35: Mondongo, un ODM para PHP y MongoDB

“Mondongo es un sencillo, potente y ultrarápido ODM para PHP y MongoDB.”

Page 36: Mondongo, un ODM para PHP y MongoDB

Sencillo

Page 37: Mondongo, un ODM para PHP y MongoDB

Fácil de usar

Page 38: Mondongo, un ODM para PHP y MongoDB

Potente

Page 39: Mondongo, un ODM para PHP y MongoDB

MondonGO es increíblemente flexible gracias a Mondator

Page 40: Mondongo, un ODM para PHP y MongoDB

Puede usarse para cualquier tipo y tamaño de proyecto

Page 41: Mondongo, un ODM para PHP y MongoDB

Ultrarápido

Page 42: Mondongo, un ODM para PHP y MongoDB

Ha sido diseñado para ser extremadamente ligero

Page 43: Mondongo, un ODM para PHP y MongoDB

Es el mapeador más rápido en PHP actualmente

Page 44: Mondongo, un ODM para PHP y MongoDB

¿Qué es Mondator?

Page 45: Mondongo, un ODM para PHP y MongoDB

“Mondator es un generador de clases para PHP.”

Page 46: Mondongo, un ODM para PHP y MongoDB

Mondongo usa Mondator para generar las clases de documentos y repositorios

Page 47: Mondongo, un ODM para PHP y MongoDB

Iniciar un mondator

Page 48: Mondongo, un ODM para PHP y MongoDB

Las configuraciones de clases contienen la información de las clases que deben generarse

Asignar configuraciones de clases

Page 49: Mondongo, un ODM para PHP y MongoDB

Asignar configuraciones de clases

Page 50: Mondongo, un ODM para PHP y MongoDB

Las extensiones determinan qué clases se generarán y dónde a partir de las

configuraciones de clases

Asignar extensiones

Page 51: Mondongo, un ODM para PHP y MongoDB

Asignar extensiones

Page 52: Mondongo, un ODM para PHP y MongoDB

Procesar el mondator

Page 53: Mondongo, un ODM para PHP y MongoDB

Mondongo genera cuatro clases por cada configuración de clase

Page 54: Mondongo, un ODM para PHP y MongoDB
Page 55: Mondongo, un ODM para PHP y MongoDB

Las clases Base no deben editarse, se sobreescriben cada vez que se procesa el mondator

Page 56: Mondongo, un ODM para PHP y MongoDB

Documentos MondonGO

Page 57: Mondongo, un ODM para PHP y MongoDB

Los documentos Mondongo se mapean en las configuraciones de clases de Mondator

Page 58: Mondongo, un ODM para PHP y MongoDB

Campos

Page 59: Mondongo, un ODM para PHP y MongoDB

Son los datos de los documentos

Page 60: Mondongo, un ODM para PHP y MongoDB
Page 61: Mondongo, un ODM para PHP y MongoDB

Tipos MondonGO

● array

● bin_data

● boolean

● date

● float

● integer

● raw

● reference_one

● reference_many

● string

Page 62: Mondongo, un ODM para PHP y MongoDB

Se usan setters y getters para trabajar con los datos de los documentos

Page 63: Mondongo, un ODM para PHP y MongoDB
Page 64: Mondongo, un ODM para PHP y MongoDB

Referencias

Page 65: Mondongo, un ODM para PHP y MongoDB

Las referencias son relaciones hacia otros documentos

Page 66: Mondongo, un ODM para PHP y MongoDB
Page 67: Mondongo, un ODM para PHP y MongoDB
Page 68: Mondongo, un ODM para PHP y MongoDB

Referencias a uno

Page 69: Mondongo, un ODM para PHP y MongoDB

Referencias a varios

Page 70: Mondongo, un ODM para PHP y MongoDB

Embebidos

Page 71: Mondongo, un ODM para PHP y MongoDB

Los embebidos son documentos dentro de otros documentos

Page 72: Mondongo, un ODM para PHP y MongoDB
Page 73: Mondongo, un ODM para PHP y MongoDB
Page 74: Mondongo, un ODM para PHP y MongoDB

Se usan igual que las referencias

Page 75: Mondongo, un ODM para PHP y MongoDB

Guardar

Page 76: Mondongo, un ODM para PHP y MongoDB
Page 77: Mondongo, un ODM para PHP y MongoDB

Mondongo genera la inserción o actualización óptima de los campos modificados

Page 78: Mondongo, un ODM para PHP y MongoDB

Borrar

Page 79: Mondongo, un ODM para PHP y MongoDB
Page 80: Mondongo, un ODM para PHP y MongoDB

Configurar MondonGO

Page 81: Mondongo, un ODM para PHP y MongoDB

Iniciar un mondongo

Page 82: Mondongo, un ODM para PHP y MongoDB

Asignar conexiones al mondongo

Page 83: Mondongo, un ODM para PHP y MongoDB

Las conexiones son perezosas

Page 84: Mondongo, un ODM para PHP y MongoDB

Repositorios MondonGO

Page 85: Mondongo, un ODM para PHP y MongoDB

Los repositorios realizan funciones generales sobre clases de documentos

Page 86: Mondongo, un ODM para PHP y MongoDB

Se obtienen mediante el mondongo

Page 87: Mondongo, un ODM para PHP y MongoDB
Page 88: Mondongo, un ODM para PHP y MongoDB

Consultas MondonGO

Page 89: Mondongo, un ODM para PHP y MongoDB

Se realizan mediante los repositorios

Page 90: Mondongo, un ODM para PHP y MongoDB

Consultar documentos

Page 91: Mondongo, un ODM para PHP y MongoDB

Consultar documentos con opciones

Page 92: Mondongo, un ODM para PHP y MongoDB

Consultar documentos agrupando opciones

Page 93: Mondongo, un ODM para PHP y MongoDB

La sintaxis de las opciones Mondongo es la misma que la sintaxis Mongo

Page 94: Mondongo, un ODM para PHP y MongoDB

Consultar un documento

Page 95: Mondongo, un ODM para PHP y MongoDB

Consultar un documento por ID

Page 96: Mondongo, un ODM para PHP y MongoDB

Contar documentos

Page 97: Mondongo, un ODM para PHP y MongoDB

Borrar documentos

Page 98: Mondongo, un ODM para PHP y MongoDB

Eventos MondonGO

Page 99: Mondongo, un ODM para PHP y MongoDB

Mondongo proporciona varios hooks en los documentos, que se lanzan antes y después de

ciertas acciones

Page 100: Mondongo, un ODM para PHP y MongoDB

● preSave● postSave● preInsert● postInsert● preUpdate● postUpdate● preDelete● postDelete

Page 101: Mondongo, un ODM para PHP y MongoDB
Page 102: Mondongo, un ODM para PHP y MongoDB

Extensiones MondonGO

Page 103: Mondongo, un ODM para PHP y MongoDB

Las extensiones Mondongo son extensiones Mondator

Page 104: Mondongo, un ODM para PHP y MongoDB

Las extensiones Mondongo permiten personalizar muchísimo Mondongo

Page 105: Mondongo, un ODM para PHP y MongoDB

¿Quieres usar los documentos como arrays?

Page 106: Mondongo, un ODM para PHP y MongoDB
Page 107: Mondongo, un ODM para PHP y MongoDB
Page 108: Mondongo, un ODM para PHP y MongoDB

¿Quieres usar los documentos por sobrecarga?

Page 109: Mondongo, un ODM para PHP y MongoDB
Page 110: Mondongo, un ODM para PHP y MongoDB
Page 111: Mondongo, un ODM para PHP y MongoDB

¿Quieres importar y exportar datos con arrays?

Page 112: Mondongo, un ODM para PHP y MongoDB
Page 113: Mondongo, un ODM para PHP y MongoDB
Page 114: Mondongo, un ODM para PHP y MongoDB

Extensiones Independientes Mondongo

Page 115: Mondongo, un ODM para PHP y MongoDB

Se definen en las configuraciones de clases

Page 116: Mondongo, un ODM para PHP y MongoDB

¿Quieres guardar fechas de creación y actualización en algún documento?

Page 117: Mondongo, un ODM para PHP y MongoDB
Page 118: Mondongo, un ODM para PHP y MongoDB
Page 119: Mondongo, un ODM para PHP y MongoDB

¿Quieres guardar el slug de algún campo en algún documento?

Page 120: Mondongo, un ODM para PHP y MongoDB
Page 121: Mondongo, un ODM para PHP y MongoDB
Page 122: Mondongo, un ODM para PHP y MongoDB

¿Qué puedes hacer con extensiones independientes Mondongo?

Page 123: Mondongo, un ODM para PHP y MongoDB

● Modificar campos, referencias, embebidos● Añadir● Editar● Borrar

● Añadir propiedades y métodos a documentos y repositorios

● Añadir eventos a documentos● …

Page 124: Mondongo, un ODM para PHP y MongoDB

Extensiones Independientes Mondongopor defecto

Page 125: Mondongo, un ODM para PHP y MongoDB

¿Quieres guardar fechas de creación y actualización en todos los documentos?

Page 126: Mondongo, un ODM para PHP y MongoDB
Page 127: Mondongo, un ODM para PHP y MongoDB

Más mondongadas...

Page 128: Mondongo, un ODM para PHP y MongoDB

Mondongo permite manejar fácilmente los índices de las colecciones

Page 129: Mondongo, un ODM para PHP y MongoDB
Page 130: Mondongo, un ODM para PHP y MongoDB
Page 131: Mondongo, un ODM para PHP y MongoDB

Mondongo permite guardar ficheros mediante GridFS

Page 132: Mondongo, un ODM para PHP y MongoDB
Page 133: Mondongo, un ODM para PHP y MongoDB
Page 134: Mondongo, un ODM para PHP y MongoDB

Mondongo permite loguear las consultas de la base de datos para optimizar el desarrollo

Page 135: Mondongo, un ODM para PHP y MongoDB
Page 136: Mondongo, un ODM para PHP y MongoDB

Mondongo usa batchInsert para insertar documentos de manera eficiente

Page 137: Mondongo, un ODM para PHP y MongoDB

Mondongo usa operaciones atómicas para actualizar y borrar documentos eficientemente

Page 138: Mondongo, un ODM para PHP y MongoDB

Al usar clases generadas, y con PHPDoc, podrás usar el autocompletado de tu editor

IDE

Page 139: Mondongo, un ODM para PHP y MongoDB

Mondongo está completamente testeado con pruebas automáticas con PHPUnit

Page 140: Mondongo, un ODM para PHP y MongoDB

¿Por qué un ODM con MongoDB?

Page 141: Mondongo, un ODM para PHP y MongoDB

Un ODM acelera y simplifica muchísimo el desarrollo y mantenimiento de las aplicaciones

Page 142: Mondongo, un ODM para PHP y MongoDB

Los ODMs tienen una desventaja:el rendimiento

Page 143: Mondongo, un ODM para PHP y MongoDB

¿Es MondonGO realmente ultrarápido ?

Page 144: Mondongo, un ODM para PHP y MongoDB

Vamos a ver unas pruebas comparando Mondongo con Mongo directamente y con otros dos ODMs:

ActiveMongo y DoctrineMongo

Page 145: Mondongo, un ODM para PHP y MongoDB

Insertando

Page 146: Mondongo, un ODM para PHP y MongoDB
Page 147: Mondongo, un ODM para PHP y MongoDB

Consultando por ID

Page 148: Mondongo, un ODM para PHP y MongoDB
Page 149: Mondongo, un ODM para PHP y MongoDB

Hydratando

Page 150: Mondongo, un ODM para PHP y MongoDB
Page 151: Mondongo, un ODM para PHP y MongoDB

Resumiendo...

Page 152: Mondongo, un ODM para PHP y MongoDB
Page 153: Mondongo, un ODM para PHP y MongoDB

Y además...

Page 154: Mondongo, un ODM para PHP y MongoDB

sfMondongoPlugin

Integración con symfony

Page 155: Mondongo, un ODM para PHP y MongoDB

MondongoBundle

Integración con Symfony2

Page 156: Mondongo, un ODM para PHP y MongoDB

Conclusiones

● Mongo es sinónimo de alto rendimiento

Page 157: Mondongo, un ODM para PHP y MongoDB

Conclusiones

● Mongo es sinónimo de alto rendimiento

● Un ODM acelera y simplifica el desarrollo y mantenimiento de las aplicaciones

Page 158: Mondongo, un ODM para PHP y MongoDB

Conclusiones

● Mongo es sinónimo de alto rendimiento

● Un ODM acelera y simplifica el desarrollo y mantenimiento de las aplicaciones

● Mondongo es el mejor aliado para exprimir hasta la última gota de MongoDB en PHP

Page 159: Mondongo, un ODM para PHP y MongoDB

Conclusiones

● Mongo es sinónimo de alto rendimiento

● Un ODM acelera y simplifica el desarrollo y mantenimiento de las aplicaciones

● Mondongo es el mejor aliado para exprimir hasta la última gota de MongoDB en PHP

● Las extensiones Mondator enlarguis your... ¡mondongo!

Page 160: Mondongo, un ODM para PHP y MongoDB

¿Preguntas?

http://mondongo.es

[email protected]://twitter.com/pablodiphttp://github.com/pablodip

¿Te gusta Mondongo?

* Úsalo * Dalo a conocer * Blog * Twitter #mndgo