MondonGO
¿Qué es MondonGO?
“Mondongo es a los ODMs lo que MongoDB a las
bases de datos.”
¿Ein?
“Mondongo es a los ODMs lo que MongoDB a las
bases de datos.”
¿Qué es ?
“MongoDB es una base de datos escalable, de alto
rendimiento, de código abierto y orientada a
documentos.”
Terminología
Base de Datos = Base de Datos
Base de Datos = Base de Datos
Tabla = Colección
Base de Datos = Base de Datos
Tabla = Colección
Registro ~ Documento
Documentos
JSON
Embebidos
Sin Esquema
Cada documento puede tener distinta estructura
No hay tipos
Drivers
en
Conectar con Mongo
Seleccionar bases de datos
Seleccionar colecciones
Las bases de datos y las colecciones se crean
automáticamente si no existen
Los documentos son simplemente arrays
Insertar documentos
Actualizar documentos
Consultar documentos
¿Qué es un ODM?
ODM == Object Document Mapper
“Un ODM es una herramienta que mapea la
estructura de bases de datos a objetos”
¿Qué es MondonGO?
“Mondongo es un sencillo, potente y ultrarápido
ODM para PHP y MongoDB.”
Sencillo
Fácil de usar
Potente
MondonGO es increíblemente flexible gracias a
Mondator
Puede usarse para cualquier tipo y tamaño de
proyecto
Ultrarápido
Ha sido diseñado para ser extremadamente
ligero
Es el mapeador más rápido en PHP actualmente
¿Qué es Mondator?
“Mondator es un generador de clases para PHP.”
Mondongo usa Mondator para generar las clases
de documentos y repositorios
Iniciar un mondator
Las configuraciones de clases contienen la
información de las clases que deben generarse
Asignar configuraciones de clases
Asignar configuraciones de clases
Las extensiones determinan qué clases se
generarán y dónde a partir de las
configuraciones de clases
Asignar extensiones
Asignar extensiones
Procesar el mondator
Mondongo genera cuatro clases por cada
configuración de clase
Las clases Base no deben editarse, se
sobreescriben cada vez que se procesa el mondator
Documentos MondonGO
Los documentos Mondongo se mapean en las
configuraciones de clases de Mondator
Campos
Son los datos de los documentos
Tipos MondonGO
● array
● bin_data
● boolean
● date
● float
● integer
● raw
● reference_one
● reference_many
● string
Se usan setters y getters para trabajar con los
datos de los documentos
Referencias
Las referencias son relaciones hacia otros
documentos
Referencias a uno
Referencias a varios
Embebidos
Los embebidos son documentos dentro de
otros documentos
Se usan igual que las referencias
Guardar
Mondongo genera la inserción o actualización
óptima de los campos modificados
Borrar
Configurar MondonGO
Iniciar un mondongo
Asignar conexiones al mondongo
Las conexiones son perezosas
Repositorios MondonGO
Los repositorios realizan funciones generales
sobre clases de documentos
Se obtienen mediante el mondongo
Consultas MondonGO
Se realizan mediante los repositorios
Consultar documentos
Consultar documentos con opciones
Consultar documentos agrupando opciones
La sintaxis de las opciones Mondongo es la
misma que la sintaxis Mongo
Consultar un documento
Consultar un documento por ID
Contar documentos
Borrar documentos
Eventos MondonGO
Mondongo proporciona varios hooks en los
documentos, que se lanzan antes y después de
ciertas acciones
● preSave
●
postSave
● preInsert
● postInsert
●
preUpdate
● postUpdate
●
preDelete
● postDelete
Extensiones MondonGO
Las extensiones Mondongo son extensiones Mondator
Las extensiones Mondongo permiten personalizar
muchísimo Mondongo
¿Quieres usar los documentos como arrays?
¿Quieres usar los documentos por sobrecarga?
¿Quieres importar y exportar datos con arrays?
Extensiones Independientes
Mondongo
Se definen en las configuraciones de clases
¿Quieres guardar fechas de creación y actualización
en algún documento?
¿Quieres guardar el slug de algún campo en algún
documento?
¿Qué puedes hacer con extensiones independientes
Mondongo?
● Modificar campos, referencias, embebidos
● Añadir
● Editar
● Borrar
● Añadir propiedades y métodos a documentos y
reposi...
Extensiones Independientes Mondongo
por defecto
¿Quieres guardar fechas de creación y actualización
en todos los documentos?
Más mondongadas...
Mondongo permite manejar fácilmente los
índices de las colecciones
Mondongo permite guardar ficheros mediante
GridFS
Mondongo permite loguear las consultas de la
base de datos para optimizar el desarrollo
Mondongo usa batchInsert para insertar
documentos de manera eficiente
Mondongo usa operaciones atómicas para
actualizar y borrar documentos eficientemente
Al usar clases generadas, y con PHPDoc,
podrás usar el autocompletado de tu editor
IDE
Mondongo está completamente testeado con
pruebas automáticas con PHPUnit
¿Por qué un ODM con MongoDB?
Un ODM acelera y simplifica muchísimo el
desarrollo y mantenimiento de las aplicaciones
Los ODMs tienen una desventaja:
el rendimiento
¿Es MondonGO realmente
ultrarápido ?
Vamos a ver unas pruebas comparando Mondongo con
Mongo directamente y con otros dos ODMs:
ActiveMongo y DoctrineMongo
Insertando
Consultando por ID
Hydratando
Resumiendo...
Y además...
sfMondongoPlugin
Integración con symfony
MondongoBundle
Integración con Symfony2
Conclusiones
● Mongo es sinónimo de alto rendimiento
Conclusiones
● Mongo es sinónimo de alto rendimiento
● Un ODM acelera y simplifica el desarrollo y
mantenimiento de las ap...
Conclusiones
● Mongo es sinónimo de alto rendimiento
● Un ODM acelera y simplifica el desarrollo y
mantenimiento de las ap...
Conclusiones
● Mongo es sinónimo de alto rendimiento
● Un ODM acelera y simplifica el desarrollo y
mantenimiento de las ap...
¿Preguntas?
http://mondongo.es
pablodip@gmail.com
http://twitter.com/pablodip
http://github.com/pablodip
¿Te gusta Mondong...
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
Upcoming SlideShare
Loading in...5
×

Mondongo, un ODM para PHP y MongoDB

15,342

Published on

Published in: Technology
2 Comments
9 Likes
Statistics
Notes
No Downloads
Views
Total Views
15,342
On Slideshare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
175
Comments
2
Likes
9
Embeds 0
No embeds

No notes for slide

Mondongo, un ODM para PHP y MongoDB

  1. 1. MondonGO
  2. 2. ¿Qué es MondonGO?
  3. 3. “Mondongo es a los ODMs lo que MongoDB a las bases de datos.”
  4. 4. ¿Ein? “Mondongo es a los ODMs lo que MongoDB a las bases de datos.”
  5. 5. ¿Qué es ?
  6. 6. “MongoDB es una base de datos escalable, de alto rendimiento, de código abierto y orientada a documentos.”
  7. 7. Terminología
  8. 8. Base de Datos = Base de Datos
  9. 9. Base de Datos = Base de Datos Tabla = Colección
  10. 10. Base de Datos = Base de Datos Tabla = Colección Registro ~ Documento
  11. 11. Documentos
  12. 12. JSON
  13. 13. Embebidos
  14. 14. Sin Esquema
  15. 15. Cada documento puede tener distinta estructura
  16. 16. No hay tipos
  17. 17. Drivers
  18. 18. en
  19. 19. Conectar con Mongo
  20. 20. Seleccionar bases de datos
  21. 21. Seleccionar colecciones
  22. 22. Las bases de datos y las colecciones se crean automáticamente si no existen
  23. 23. Los documentos son simplemente arrays
  24. 24. Insertar documentos
  25. 25. Actualizar documentos
  26. 26. Consultar documentos
  27. 27. ¿Qué es un ODM?
  28. 28. ODM == Object Document Mapper
  29. 29. “Un ODM es una herramienta que mapea la estructura de bases de datos a objetos”
  30. 30. ¿Qué es MondonGO?
  31. 31. “Mondongo es un sencillo, potente y ultrarápido ODM para PHP y MongoDB.”
  32. 32. Sencillo
  33. 33. Fácil de usar
  34. 34. Potente
  35. 35. MondonGO es increíblemente flexible gracias a Mondator
  36. 36. Puede usarse para cualquier tipo y tamaño de proyecto
  37. 37. Ultrarápido
  38. 38. Ha sido diseñado para ser extremadamente ligero
  39. 39. Es el mapeador más rápido en PHP actualmente
  40. 40. ¿Qué es Mondator?
  41. 41. “Mondator es un generador de clases para PHP.”
  42. 42. Mondongo usa Mondator para generar las clases de documentos y repositorios
  43. 43. Iniciar un mondator
  44. 44. Las configuraciones de clases contienen la información de las clases que deben generarse Asignar configuraciones de clases
  45. 45. Asignar configuraciones de clases
  46. 46. Las extensiones determinan qué clases se generarán y dónde a partir de las configuraciones de clases Asignar extensiones
  47. 47. Asignar extensiones
  48. 48. Procesar el mondator
  49. 49. Mondongo genera cuatro clases por cada configuración de clase
  50. 50. Las clases Base no deben editarse, se sobreescriben cada vez que se procesa el mondator
  51. 51. Documentos MondonGO
  52. 52. Los documentos Mondongo se mapean en las configuraciones de clases de Mondator
  53. 53. Campos
  54. 54. Son los datos de los documentos
  55. 55. Tipos MondonGO ● array ● bin_data ● boolean ● date ● float ● integer ● raw ● reference_one ● reference_many ● string
  56. 56. Se usan setters y getters para trabajar con los datos de los documentos
  57. 57. Referencias
  58. 58. Las referencias son relaciones hacia otros documentos
  59. 59. Referencias a uno
  60. 60. Referencias a varios
  61. 61. Embebidos
  62. 62. Los embebidos son documentos dentro de otros documentos
  63. 63. Se usan igual que las referencias
  64. 64. Guardar
  65. 65. Mondongo genera la inserción o actualización óptima de los campos modificados
  66. 66. Borrar
  67. 67. Configurar MondonGO
  68. 68. Iniciar un mondongo
  69. 69. Asignar conexiones al mondongo
  70. 70. Las conexiones son perezosas
  71. 71. Repositorios MondonGO
  72. 72. Los repositorios realizan funciones generales sobre clases de documentos
  73. 73. Se obtienen mediante el mondongo
  74. 74. Consultas MondonGO
  75. 75. Se realizan mediante los repositorios
  76. 76. Consultar documentos
  77. 77. Consultar documentos con opciones
  78. 78. Consultar documentos agrupando opciones
  79. 79. La sintaxis de las opciones Mondongo es la misma que la sintaxis Mongo
  80. 80. Consultar un documento
  81. 81. Consultar un documento por ID
  82. 82. Contar documentos
  83. 83. Borrar documentos
  84. 84. Eventos MondonGO
  85. 85. Mondongo proporciona varios hooks en los documentos, que se lanzan antes y después de ciertas acciones
  86. 86. ● preSave ● postSave ● preInsert ● postInsert ● preUpdate ● postUpdate ● preDelete ● postDelete
  87. 87. Extensiones MondonGO
  88. 88. Las extensiones Mondongo son extensiones Mondator
  89. 89. Las extensiones Mondongo permiten personalizar muchísimo Mondongo
  90. 90. ¿Quieres usar los documentos como arrays?
  91. 91. ¿Quieres usar los documentos por sobrecarga?
  92. 92. ¿Quieres importar y exportar datos con arrays?
  93. 93. Extensiones Independientes Mondongo
  94. 94. Se definen en las configuraciones de clases
  95. 95. ¿Quieres guardar fechas de creación y actualización en algún documento?
  96. 96. ¿Quieres guardar el slug de algún campo en algún documento?
  97. 97. ¿Qué puedes hacer con extensiones independientes Mondongo?
  98. 98. ● Modificar campos, referencias, embebidos ● Añadir ● Editar ● Borrar ● Añadir propiedades y métodos a documentos y repositorios ● Añadir eventos a documentos ● …
  99. 99. Extensiones Independientes Mondongo por defecto
  100. 100. ¿Quieres guardar fechas de creación y actualización en todos los documentos?
  101. 101. Más mondongadas...
  102. 102. Mondongo permite manejar fácilmente los índices de las colecciones
  103. 103. Mondongo permite guardar ficheros mediante GridFS
  104. 104. Mondongo permite loguear las consultas de la base de datos para optimizar el desarrollo
  105. 105. Mondongo usa batchInsert para insertar documentos de manera eficiente
  106. 106. Mondongo usa operaciones atómicas para actualizar y borrar documentos eficientemente
  107. 107. Al usar clases generadas, y con PHPDoc, podrás usar el autocompletado de tu editor IDE
  108. 108. Mondongo está completamente testeado con pruebas automáticas con PHPUnit
  109. 109. ¿Por qué un ODM con MongoDB?
  110. 110. Un ODM acelera y simplifica muchísimo el desarrollo y mantenimiento de las aplicaciones
  111. 111. Los ODMs tienen una desventaja: el rendimiento
  112. 112. ¿Es MondonGO realmente ultrarápido ?
  113. 113. Vamos a ver unas pruebas comparando Mondongo con Mongo directamente y con otros dos ODMs: ActiveMongo y DoctrineMongo
  114. 114. Insertando
  115. 115. Consultando por ID
  116. 116. Hydratando
  117. 117. Resumiendo...
  118. 118. Y además...
  119. 119. sfMondongoPlugin Integración con symfony
  120. 120. MondongoBundle Integración con Symfony2
  121. 121. Conclusiones ● Mongo es sinónimo de alto rendimiento
  122. 122. Conclusiones ● Mongo es sinónimo de alto rendimiento ● Un ODM acelera y simplifica el desarrollo y mantenimiento de las aplicaciones
  123. 123. 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
  124. 124. 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!
  125. 125. ¿Preguntas? http://mondongo.es pablodip@gmail.com http://twitter.com/pablodip http://github.com/pablodip ¿Te gusta Mondongo? * Úsalo * Dalo a conocer * Blog * Twitter #mndgo
  1. Gostou de algum slide específico?

    Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

×