Zend Framework 2 y MongoDB
-
Author
el-taller-web -
Category
Software
-
view
79 -
download
1
Embed Size (px)
description
Transcript of Zend Framework 2 y MongoDB

Zend Framework 2 y MongoDB
Carlos NaciancenoEl Taller Web

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

Zend Framework 2

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

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

¿¿MongoDB??

MongoDB
• Base de Datos
• Open Source
• De alto desempeño
• Orientada a Documentos
MongoDB

• Si, no hay tablas sino documentos
• No hay relaciones
• No hay joins!!!
• No hay SQL
• No hay SQL Injection
MongoDB
MongoDB

MongoDB
MongoDB
MongoDB SQLs
Base de datos Base de datos
Collections Tablas
Documentos Bson Registros
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

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]’, ));

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); },);

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

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’));

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

¿Preguntas?
PHP 5.4