Zend Framework 2 y MongoDB

17
Zend Framework 2 y MongoDB Carlos Nacianceno El Taller Web

description

Una presentación sobre cómo usar MongoDB en una aplicación Zend Framework 2

Transcript of Zend Framework 2 y MongoDB

Page 1: Zend Framework 2 y  MongoDB

Zend Framework 2 y MongoDB

Carlos NaciancenoEl Taller Web

Page 2: Zend Framework 2 y  MongoDB

El Taller Web

• Partners de Zend Technologies y o Productoso Entrenamientoo Consultoríao Soporte

El Taller Web

Page 3: Zend Framework 2 y  MongoDB

Zend Framework 2

Page 4: Zend Framework 2 y  MongoDB

Zend Framework 2

• Framework Open-source PHP• GitHub

• Construcción de aplicaciones web y servicios

• Código 100% orientado a objetos

• Flexibilidad en mente• ‘Use al gusto’

• Simplicidad en uso de componentes

Zend Framework 2

Page 5: Zend Framework 2 y  MongoDB

Características clave

• Requiere PHP 5.3.3 o superior• Namespaces• Closures

• No es necesario instalar todo el framework• Composer• Pyrus• GitHub

• Licencia BSD

Zend Framework 2

Page 6: Zend Framework 2 y  MongoDB

¿¿MongoDB??

Page 7: Zend Framework 2 y  MongoDB

MongoDB

• Base de Datos

• Open Source

• De alto desempeño

• Orientada a Documentos

MongoDB

Page 8: Zend Framework 2 y  MongoDB

• Si, no hay tablas sino documentos

• No hay relaciones

• No hay joins!!!

• No hay SQL

• No hay SQL Injection

MongoDB

MongoDB

Page 9: Zend Framework 2 y  MongoDB

MongoDB

MongoDB

MongoDB SQLs

Base de datos Base de datos

Collections Tablas

Documentos Bson Registros

MongoDB

Page 10: Zend Framework 2 y  MongoDB

Extension Mongo

• Instalación desde PECL• pecl install mongo• extension=mongo.so en el php.ini

• Zend Server ya la trae instalada• Activarla a través del GUI

Zend Framework 2

Page 11: Zend Framework 2 y  MongoDB

Configuración de la conexión

• En config/autoload

• Puede llamarse por ejemplo mongodb.local.php

Zend Framework 2

return array( ‘mongodb' => array( ‘db' => ‘miDb’,

‘host’=> ‘mongodb://[username:password@]host1[:port1]’, ));

Page 12: Zend Framework 2 y  MongoDB

Creación de servicio

• En configuracion del módulo

• Module.php con el metodo getServiceConfig()

Zend Framework 2

return array(‘factories' => array( ‘mongoDBConn' => function($sm) {

$config=$sm->get(‘config’); $hostMongo=$config[‘mongodb’][‘host’]; $dbMongo=$config[‘mongodb’][‘db’]; $mongoConnection=new MongoClient($hostMongo); return $mongoConnection->selectDB($dbMongo); },);

Page 13: Zend Framework 2 y  MongoDB

Con el Service Locator

• En cualquier lugar (ejemplo Controller)

Zend Framework 2

$serviceLocator=$this->getServiceLocator();$mongoDb=$serviceLocator->get(‘mongoDbConn’);//ya puedo hacer operaciones con $mongoDb

Page 14: Zend Framework 2 y  MongoDB

Solución más completa

• ´Collection Gateway´ crear una clase puente de colección e inyectarle la conexión

Zend Framework 2

return array(‘factories' => array( ‘NombresCollection' => function($sm) {

$mongoConn=$sm->get(‘mongoDBConn’); $nombres=new NombreCollection($mongoConn); return $nombres; },);

$serviceLocator=$this->getServiceLocator();$collection=$serviceLocator->get(‘NombresCollection’);$data=$collection->find(array(‘nombre’=>’Carlos Nacianceno’));

Page 15: Zend Framework 2 y  MongoDB

Doctrine ODM

• Modificar Composer

• Modificar application.config.php

• Copiar el archivo configuración de Doctrine y modificarlo

• Crear directorios Hytrators y Proxies

• Crear modelo y definir mapeo al Documento

Zend Framework 2

Page 16: Zend Framework 2 y  MongoDB

¿Preguntas?

PHP 5.4

Page 17: Zend Framework 2 y  MongoDB

[email protected]

@eltallerweb

@igormx

GRACIAS