SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
mongoDB en php y 
    Symfony2
about:me
➢
    Licenciado en Sistemas de Información 
    (egresado de la casa)
➢   Miembro de la comunidad Misiones 
    Software Libre
➢   +5 manejando GNU/Linux
➢   +4 desarrollador activo (php, symfony)
➢   Socio fundador de             empresa 
    dedicada a desarrollar y ofrecer 
    soluciones TIC utilizando Software 
    Libre
              mongoDB en php y Symfony2
mongoDB




mongoDB en php y Symfony2
(proviene de “humongous”) es una base de 
datos escalable, de alto rendimiento, 
open source, schema­free  y orientado a 
documentos. 
                                         http://mongodb.org

  ✔   Su desarrollo comenzó en 2007; primera beta pública 
      en 2009; primera versión estable en 2010. Versión 
      actual 1.8.x.
  ✔   Core licenciado bajo la AGPL v3.0 y los drivers 
      bajo Apache Licence v2.0.
  ✔   Soporte multiplataforma y multilenguaje.

                   mongoDB en php y Symfony2
✔   mongoDB  acorta  las  diferencias  entre  esquemas  de 
    almacenamientos key/value y RDBMS.
✔   mongoDB  logra  escalabilidad  horizontal  al  dejar 
    de usar uniones(joins) y transacciones complejas.



                  mongoDB en php y Symfony2
¿Por qué podríamos elegir 
         mongoDB?




        mongoDB en php y Symfony2
➔   Orientado a Documentos: fácil mapeo de objetos a documentos. 
    Soporta la evolución del esquema (schemaless).
➔   Multifuncional: implementa funciones de sistemas 
    relacionales con la flexibilidad y capacidad para escalar de 
    modelos no­relacionales.
➔   Alto rendimiento: no existe joins y soporta documentos 
    embebidos y colecciones. Manejo de índices potente.
➔   Alta disponibilidad: soporta replicación master­slave.
➔   Fácilmente escalable: sharding automático (auto­particionado 
    de datos a través de servidores). 
➔   Lenguaje de consulta poderoso: Los datos son almacenados y 
    tratados como JSON (y serializados a BSON).
➔   Soporte ACID parcial: sin transacción y MVCC multi­documento 
    en post de mejorar el rendimiento.



                       mongoDB en php y Symfony2
Modelo de Datos mongoDB 




       mongoDB en php y Symfony2
➔   Un  Sistema  Mongo  mantiene  un  conjunto  de  bases  de 
    datos.
➔   Una  Base  de  Datos  mantiene  un  conjunto  de 
    colecciones.
➔   Una Colección mantinene un conjunto de documentos.
➔   Un Documento es un conjunto de campos.
➔   Un Campo es un par clave­valor.
➔   Una Clave es un identificador (string).
➔   Un  valor  es  un  tipo  básico  (string,  integer, 
    float,  timestamp,  binary,  etc.  un  documento,  o  un 
    array de valores).

                     mongoDB en php y Symfony2
¿Pero realmente a que 
      equivalen?




      mongoDB en php y Symfony2
Tablas                    Colecciones

Filas                     Documentos

Columnas                  Claves (BSON)

Valores                   Valores (BSON, o 
                          documento)
Unión (joins)             Embebido y enlazado

Consultas retornan  Consultas retornan 
registros           un cursor!



           mongoDB en php y Symfony2
Lenguaje de Consultas 
       mongoDB 




      mongoDB en php y Symfony2
  Métodos                       Operadores
      ➔   find()                             ➔   $ne
      ➔   findOne()                          ➔   $in
                                             ➔   $nin
      ➔   save() 
                                             ➔   $mod
      ➔   remove() 
                                             ➔   $all
      ➔   update() 
                                             ➔   $size
      ➔   group()                            ➔   $exists
      ➔   limit()                            ➔   $type
      ➔   skip()                             ➔   $gt
      ➔   ensureIndex()                      ➔   $lt
      ➔   count()                            ➔   $gte
      ➔   ...                                ➔   $lte

                 mongoDB en php y Symfony2
mongoDB en php y Symfony2
mongoDB en php y Symfony2
mongoDB en php y Symfony2
Symfony2




mongoDB en php y Symfony2
Framework para PHP basado en componentes. Logra 
✔

alta cohesión y bajo acoplamiento (GRASP)
✔   Versión 2.x, reescrito para PHP >= v5.3.2
✔   Soporte extendido para las ramas estables (2.x)
✔   Popularidad en github.com/symfony/symfony:
    2,914 watchers (#1 in PHP, #25 total) 
        •


  • 746 forks (#1 en PHP, #12 total)


✔Tanto Drupal como phpBB analizan utilizar 

componentes de Symfony2
    •   groups.drupal.org/node/167299
    •   wiki.phpbb.com/PhpBB4/RFC/Symfony_2

                      mongoDB en php y Symfony2
Que nos está brindando 
       Symfony2




      mongoDB en php y Symfony2
Fuente:
www.slideshare.net/javier.eguiluz/desymfony-2011-tutorial-1-instalacion-y-primeros-pasos

                          mongoDB en php y Symfony2
Configuración                      PHP                            XML              YAML


Plantillas                         PHP                        TWIG


Almacenamiento                     SQL                        NoSQL

Flujo de 
                                   Anotaciones                Archivos
Trabajo


Fuente:
www.slideshare.net/javier.eguiluz/desymfony-2011-tutorial-1-instalacion-y-primeros-pasos

                          mongoDB en php y Symfony2
Doctrine mongoDB ODM
(Object Document Mapper)




       mongoDB en php y Symfony2
mongoDB en php y Symfony2
mongoDB en php y Symfony2
mongoDB en php y Symfony2
mongoDB en php y Symfony2
mongoDB en php y Symfony2
En conclusión




  mongoDB en php y Symfony2
➢   noSQL es un complemento a las 
    tecnologías de los RDBMS.
➢   Ideal para desarrollos ágiles, 
    lograr escalabilidad o manejar 
    enormes cantidades de datos. 
➢   UnQL en camino, lo que acelera 
    la adopción noSQL. unqlspec.org

             mongoDB en php y Symfony2
¿Preguntas?




 mongoDB en php y Symfony2
Documentación Oficial
    ➔   www.mongodb.org
    ➔   www.symfony.com
    ➔   www.doctrine-project.org/projects/mongodb_odm

Aportes Interesantes
➔

    ➔   jwage.com/2010/08/25/blending-the-doctrine-orm-and-mongodb-odm
    ➔   slideshare.net/spf13/blending-mongodb-and-rdbms-for-ecommerce
    ➔   blog.servergrove.com/2010/04/28/mongodb-with-php-and-symfony




                                     @sergiovier

                         mongoDB en php y Symfony2

Más contenido relacionado

Similar a Joinea - mongoDB en php y Symfony2

BilboStack - Php en el 2012
BilboStack - Php en el 2012BilboStack - Php en el 2012
BilboStack - Php en el 2012Asier Marqués
 
Frameworks para Php Adwa
Frameworks para Php AdwaFrameworks para Php Adwa
Frameworks para Php AdwaAndres Karp
 
Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Raul Fraile
 
Presentación de zan php
Presentación de zan phpPresentación de zan php
Presentación de zan phpCarlos Zantana
 
Desarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyDesarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyJorge Antonio Linares Vera
 
Adentrándonos al Framework Symfony
Adentrándonos al  Framework SymfonyAdentrándonos al  Framework Symfony
Adentrándonos al Framework SymfonyRodrigo Miranda
 
Symfony2 Introducción
Symfony2 IntroducciónSymfony2 Introducción
Symfony2 Introducciónstrate
 
PHP Con symfony
PHP Con symfonyPHP Con symfony
PHP Con symfonycsalazart
 
Chamilo para-desarrolladores-1.9
Chamilo para-desarrolladores-1.9Chamilo para-desarrolladores-1.9
Chamilo para-desarrolladores-1.9Chamilo Association
 
Elementos sobre Symfony 2.1
Elementos sobre Symfony 2.1Elementos sobre Symfony 2.1
Elementos sobre Symfony 2.1Yaismel Miranda
 
Programacion php con symfony
Programacion php con symfonyProgramacion php con symfony
Programacion php con symfonycsalazart
 
Clase 3 instalación y primeros pasos
Clase 3 instalación y primeros pasosClase 3 instalación y primeros pasos
Clase 3 instalación y primeros pasoshydras_cs
 

Similar a Joinea - mongoDB en php y Symfony2 (20)

BilboStack - Php en el 2012
BilboStack - Php en el 2012BilboStack - Php en el 2012
BilboStack - Php en el 2012
 
Introducción a symfony
Introducción a symfonyIntroducción a symfony
Introducción a symfony
 
Curso Php
Curso PhpCurso Php
Curso Php
 
Frameworks para Php Adwa
Frameworks para Php AdwaFrameworks para Php Adwa
Frameworks para Php Adwa
 
Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Symfony2: Framework para PHP5
Symfony2: Framework para PHP5
 
Manual de PHP Basico
Manual de PHP BasicoManual de PHP Basico
Manual de PHP Basico
 
Presentación de zan php
Presentación de zan phpPresentación de zan php
Presentación de zan php
 
Desarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyDesarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademy
 
Tema4.pdf
Tema4.pdfTema4.pdf
Tema4.pdf
 
Adentrándonos al Framework Symfony
Adentrándonos al  Framework SymfonyAdentrándonos al  Framework Symfony
Adentrándonos al Framework Symfony
 
Symfony2 Introducción
Symfony2 IntroducciónSymfony2 Introducción
Symfony2 Introducción
 
PHP Con symfony
PHP Con symfonyPHP Con symfony
PHP Con symfony
 
Chamilo para-desarrolladores-1.9
Chamilo para-desarrolladores-1.9Chamilo para-desarrolladores-1.9
Chamilo para-desarrolladores-1.9
 
Elementos sobre Symfony 2.1
Elementos sobre Symfony 2.1Elementos sobre Symfony 2.1
Elementos sobre Symfony 2.1
 
CRUD básico con Symfony
CRUD básico con SymfonyCRUD básico con Symfony
CRUD básico con Symfony
 
Programacion php con symfony
Programacion php con symfonyProgramacion php con symfony
Programacion php con symfony
 
BD_EQ6_INV_PHP
BD_EQ6_INV_PHPBD_EQ6_INV_PHP
BD_EQ6_INV_PHP
 
Clase 3 instalación y primeros pasos
Clase 3 instalación y primeros pasosClase 3 instalación y primeros pasos
Clase 3 instalación y primeros pasos
 
Taller de zan php
Taller de zan phpTaller de zan php
Taller de zan php
 
JRuby al Rescate de J2EE
JRuby al Rescate de J2EEJRuby al Rescate de J2EE
JRuby al Rescate de J2EE
 

Joinea - mongoDB en php y Symfony2

  • 2. about:me ➢ Licenciado en Sistemas de Información  (egresado de la casa) ➢ Miembro de la comunidad Misiones  Software Libre ➢ +5 manejando GNU/Linux ➢ +4 desarrollador activo (php, symfony) ➢ Socio fundador de             empresa  dedicada a desarrollar y ofrecer  soluciones TIC utilizando Software  Libre mongoDB en php y Symfony2
  • 4. (proviene de “humongous”) es una base de  datos escalable, de alto rendimiento,  open source, schema­free  y orientado a  documentos.   http://mongodb.org ✔ Su desarrollo comenzó en 2007; primera beta pública  en 2009; primera versión estable en 2010. Versión  actual 1.8.x. ✔ Core licenciado bajo la AGPL v3.0 y los drivers  bajo Apache Licence v2.0. ✔ Soporte multiplataforma y multilenguaje. mongoDB en php y Symfony2
  • 5. mongoDB  acorta  las  diferencias  entre  esquemas  de  almacenamientos key/value y RDBMS. ✔ mongoDB  logra  escalabilidad  horizontal  al  dejar  de usar uniones(joins) y transacciones complejas. mongoDB en php y Symfony2
  • 6. ¿Por qué podríamos elegir  mongoDB? mongoDB en php y Symfony2
  • 7. Orientado a Documentos: fácil mapeo de objetos a documentos.  Soporta la evolución del esquema (schemaless). ➔ Multifuncional: implementa funciones de sistemas  relacionales con la flexibilidad y capacidad para escalar de  modelos no­relacionales. ➔ Alto rendimiento: no existe joins y soporta documentos  embebidos y colecciones. Manejo de índices potente. ➔ Alta disponibilidad: soporta replicación master­slave. ➔ Fácilmente escalable: sharding automático (auto­particionado  de datos a través de servidores).  ➔ Lenguaje de consulta poderoso: Los datos son almacenados y  tratados como JSON (y serializados a BSON). ➔ Soporte ACID parcial: sin transacción y MVCC multi­documento  en post de mejorar el rendimiento. mongoDB en php y Symfony2
  • 8. Modelo de Datos mongoDB  mongoDB en php y Symfony2
  • 9. Un  Sistema  Mongo  mantiene  un  conjunto  de  bases  de  datos. ➔ Una  Base  de  Datos  mantiene  un  conjunto  de  colecciones. ➔ Una Colección mantinene un conjunto de documentos. ➔ Un Documento es un conjunto de campos. ➔ Un Campo es un par clave­valor. ➔ Una Clave es un identificador (string). ➔ Un  valor  es  un  tipo  básico  (string,  integer,  float,  timestamp,  binary,  etc.  un  documento,  o  un  array de valores). mongoDB en php y Symfony2
  • 10. ¿Pero realmente a que  equivalen? mongoDB en php y Symfony2
  • 11. Tablas Colecciones Filas Documentos Columnas Claves (BSON) Valores Valores (BSON, o  documento) Unión (joins) Embebido y enlazado Consultas retornan  Consultas retornan  registros un cursor! mongoDB en php y Symfony2
  • 12. Lenguaje de Consultas  mongoDB  mongoDB en php y Symfony2
  • 13.   Métodos   Operadores ➔ find()  ➔ $ne ➔ findOne()  ➔ $in ➔ $nin ➔ save()  ➔ $mod ➔ remove()  ➔ $all ➔ update()  ➔ $size ➔ group()  ➔ $exists ➔ limit()  ➔ $type ➔ skip()  ➔ $gt ➔ ensureIndex()  ➔ $lt ➔ count()  ➔ $gte ➔ ... ➔ $lte mongoDB en php y Symfony2
  • 18. Framework para PHP basado en componentes. Logra  ✔ alta cohesión y bajo acoplamiento (GRASP) ✔ Versión 2.x, reescrito para PHP >= v5.3.2 ✔ Soporte extendido para las ramas estables (2.x) ✔ Popularidad en github.com/symfony/symfony: 2,914 watchers (#1 in PHP, #25 total)  • • 746 forks (#1 en PHP, #12 total) ✔Tanto Drupal como phpBB analizan utilizar  componentes de Symfony2 • groups.drupal.org/node/167299 • wiki.phpbb.com/PhpBB4/RFC/Symfony_2 mongoDB en php y Symfony2
  • 19. Que nos está brindando  Symfony2 mongoDB en php y Symfony2
  • 21. Configuración PHP XML YAML Plantillas PHP TWIG Almacenamiento SQL NoSQL Flujo de  Anotaciones Archivos Trabajo Fuente: www.slideshare.net/javier.eguiluz/desymfony-2011-tutorial-1-instalacion-y-primeros-pasos mongoDB en php y Symfony2
  • 22. Doctrine mongoDB ODM (Object Document Mapper) mongoDB en php y Symfony2
  • 29. noSQL es un complemento a las  tecnologías de los RDBMS. ➢ Ideal para desarrollos ágiles,  lograr escalabilidad o manejar  enormes cantidades de datos.  ➢ UnQL en camino, lo que acelera  la adopción noSQL. unqlspec.org mongoDB en php y Symfony2
  • 31. Documentación Oficial ➔ www.mongodb.org ➔ www.symfony.com ➔ www.doctrine-project.org/projects/mongodb_odm Aportes Interesantes ➔ ➔ jwage.com/2010/08/25/blending-the-doctrine-orm-and-mongodb-odm ➔ slideshare.net/spf13/blending-mongodb-and-rdbms-for-ecommerce ➔ blog.servergrove.com/2010/04/28/mongodb-with-php-and-symfony @sergiovier mongoDB en php y Symfony2