Servicios en Zend Framework 2
-
Upload
el-taller-web -
Category
Software
-
view
180 -
download
3
Embed Size (px)
description
Transcript of Servicios en Zend Framework 2

Servicios en Zend Framework 2
Carlos NaciancenoEl Taller Web

El Taller Web
• Partners de Zend Technologies 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

Nueva Arquitectura• Autoloaders
• Event Manager
• Service Manager
• Modulos
Zend Framework 2

Servicios

¿Qué es un servicio?• Librerías del framework
• Siguen alguna de sus reglas
• Hace algo concreto• Enviar un email• Logger• etc
• Deben ser reusables
• Tener dependencias rasonables
Zend Framework 2

Servicio vs Módulo • Módulo es específico para ZF2
• El Servicio se debe poder usar en cualquier proyecto
• Módulo tiene que ver con MVC, el Servicio generalmente no.
Zend Framework 2

Service Manager• Es un registro, contenedor y/o localizador de objetos
• Contiene información necesaria para cargar el objeto
• Esos objetos serían tus servicios
• Se puede crear propios, exportar de terceros.
Zend Framework 2

Service Manager• Invokables
• Clases con nombre completo, que no necesita parámetros
• Factories• Es un callable PHP, un objeto o clase con nombre
completo
• Alias
• Initializers• Un Callable que se ejecuta cuando el servicio se manda
llamar
Zend Framework 2

Service Manager
Zend Framework 2
return array( 'service_manager' => array('factories' => array(
'User' => 'SomeModule\Service\UserFactory', 'UserForm' => function ($serviceManager) {
$form =new SomeModule\Form\User(); return $form; },
'invokables' => array('UserInputFiler' => 'SomeModule\InputFilter\User',
),);

Estructura General• Proyecto/library/Namespace/Clases para el código
• Proyecto/tests/Namespace/Clases para los tests
• Si se desea compartir en Github, se tiene que añadir el archivo de Licencia, el README, etc.
Zend Framework 2

Composer• Composer para el manejo de depencias, añadir un
composer.json al proyecto
• Se definen dependencias
• Lugar de búsqueda de repositorios• http://packages.zendframework.com• http://packagist.org
• A esos lugares puedes subir tu servicio si deseas compartirlo y a la vez manejado por composer
Zend Framework 2

Unit testing• Una buena práctica
• La carpeta test requiere un phpunit.xml.dist que guía el testing con PHPUnit
• Bootstrap.php parala inicialización de los tests
• _autoload.php para el autoloading de las clases
• Usar estructura de ZF2 para el testing o generar propia estructura con la ayuda de herramientas como phpab
Zend Framework 2

Otras cosas a considerar• Estándares de codificación
• Una variante de PSR-2• http://framework.zend.com/wiki/display/ZFDEV2/
Coding+Standards
• Documentación• phpDocumentor• Comentarios en el código
•3rd party en carpeta Vendor
Zend Framework 2

¿Preguntas?
PHP 5.4