4. 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
5. 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
7. MongoDB
• Base de Datos
• Open Source
• De alto desempeño
• Orientada a Documentos
MongoDB
8. MongoDB
• Si, no hay tablas sino documentos
• No hay relaciones
• No hay joins!!!
• No hay SQL
• No hay SQL Injection
MongoDB
9. MongoDB
MongoDB
MongoDB SQLs
Base de datos Base de datos
Collections Tablas
Documentos Bson Registros
10. 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
11. Configuración de la conexión
• En config/autoload
• Puede llamarse por ejemplo mongodb.local.php
return array( ‘mongodb' => array(
Zend Framework 2
‘db' => ‘miDb’,
‘host’=> ‘mongodb://
[username:password@]host1[:port1]’,
)
);
12. Creación de servicio
• En configuracion del módulo
• Module.php con el metodo getServiceConfig()
return array(‘factories' => array(
Zend Framework 2
‘mongoDBConn' => function($sm) {
$config=$sm->get(‘config’);
$hostMongo=$config[‘mongodb’][‘host’];
$dbMongo=$config[‘mongodb’][‘db’];
$mongoConnection=new MongoClient($hostMongo);
return $mongoConnection->selectDB($dbMongo);
},
);
13. Con el Service Locator
• En cualquier lugar (ejemplo Controller)
$serviceLocator=$this->getServiceLocator();
$mongoDb=$serviceLocator->get(‘mongoDbConn’);
//ya puedo hacer operaciones con $mongoDb
Zend Framework 2
14. Solución más completa
• ´Collection Gateway´ crear una clase puente de
colección e inyectarle la conexión
return array(‘factories' => array(
Zend Framework 2
‘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’));
15. 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