Upload
el-taller-web
View
86
Download
1
Embed Size (px)
DESCRIPTION
Una presentación sobre cómo usar MongoDB en una aplicación Zend Framework 2
Citation preview
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