Download - Zend Framework 2 y MongoDB
![Page 1: Zend Framework 2 y MongoDB](https://reader035.vdocuments.site/reader035/viewer/2022081413/5495ab37b47959962d8b5c50/html5/thumbnails/1.jpg)
Zend Framework 2 y MongoDB
Carlos NaciancenoEl Taller Web
![Page 2: Zend Framework 2 y MongoDB](https://reader035.vdocuments.site/reader035/viewer/2022081413/5495ab37b47959962d8b5c50/html5/thumbnails/2.jpg)
El Taller Web
• Partners de Zend Technologies y o Productoso Entrenamientoo Consultoríao Soporte
El Taller Web
![Page 3: Zend Framework 2 y MongoDB](https://reader035.vdocuments.site/reader035/viewer/2022081413/5495ab37b47959962d8b5c50/html5/thumbnails/3.jpg)
Zend Framework 2
![Page 4: Zend Framework 2 y MongoDB](https://reader035.vdocuments.site/reader035/viewer/2022081413/5495ab37b47959962d8b5c50/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081413/5495ab37b47959962d8b5c50/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081413/5495ab37b47959962d8b5c50/html5/thumbnails/6.jpg)
¿¿MongoDB??
![Page 7: Zend Framework 2 y MongoDB](https://reader035.vdocuments.site/reader035/viewer/2022081413/5495ab37b47959962d8b5c50/html5/thumbnails/7.jpg)
MongoDB
• Base de Datos
• Open Source
• De alto desempeño
• Orientada a Documentos
MongoDB
![Page 8: Zend Framework 2 y MongoDB](https://reader035.vdocuments.site/reader035/viewer/2022081413/5495ab37b47959962d8b5c50/html5/thumbnails/8.jpg)
• 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](https://reader035.vdocuments.site/reader035/viewer/2022081413/5495ab37b47959962d8b5c50/html5/thumbnails/9.jpg)
MongoDB
MongoDB
MongoDB SQLs
Base de datos Base de datos
Collections Tablas
Documentos Bson Registros
MongoDB
![Page 10: Zend Framework 2 y MongoDB](https://reader035.vdocuments.site/reader035/viewer/2022081413/5495ab37b47959962d8b5c50/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081413/5495ab37b47959962d8b5c50/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081413/5495ab37b47959962d8b5c50/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081413/5495ab37b47959962d8b5c50/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081413/5495ab37b47959962d8b5c50/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081413/5495ab37b47959962d8b5c50/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081413/5495ab37b47959962d8b5c50/html5/thumbnails/16.jpg)
¿Preguntas?
PHP 5.4