SlideShare una empresa de Scribd logo
1 de 18
Servicios en Zend 
Framework 2 
Carlos Nacianceno 
El Taller Web
El Taller Web 
• Partners de Zend Technologies 
o Productos 
o Entrenamiento 
o Consultoría 
o 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 
return array( 'service_manager' => array( 
'factories' => array( 
Zend Framework 2 
'User' => 'SomeModuleServiceUserFactory', 
'UserForm' => function ($serviceManager) { 
$form =new SomeModuleFormUser(); 
return $form; }, 
'invokables' => array( 
'UserInputFiler' => 
'SomeModuleInputFilterUser', ),);
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+St 
andards 
• Documentación 
• phpDocumentor 
• Comentarios en el código 
•3rd party en carpeta Vendor 
Zend Framework 2
¿Preguntas? 
PHP 5.4
GRACIAS 
info@eltallerweb.com 
@eltallerweb 
@igormx

Más contenido relacionado

La actualidad más candente

Conceptos básicos de Unit Test
Conceptos básicos de Unit Test Conceptos básicos de Unit Test
Conceptos básicos de Unit Test Juan Vladimir
 
Pruebas de aceptación 15 11_2013
Pruebas de aceptación 15 11_2013Pruebas de aceptación 15 11_2013
Pruebas de aceptación 15 11_2013dayaorte
 
Codemotion 2017: Pentesting en aplicaciones node.js AS ALWAYS: FOR FUN AND PR...
Codemotion 2017: Pentesting en aplicaciones node.js AS ALWAYS: FOR FUN AND PR...Codemotion 2017: Pentesting en aplicaciones node.js AS ALWAYS: FOR FUN AND PR...
Codemotion 2017: Pentesting en aplicaciones node.js AS ALWAYS: FOR FUN AND PR...Dani Adastra
 
Testing efectivo con pytest
Testing efectivo con pytestTesting efectivo con pytest
Testing efectivo con pytestHector Canto
 
Testing & debugging lightning web components
Testing & debugging lightning web componentsTesting & debugging lightning web components
Testing & debugging lightning web componentsFederico Giust
 
Presentación Seminario1 EA
Presentación Seminario1 EAPresentación Seminario1 EA
Presentación Seminario1 EAmariacamposperez
 
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NETPruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NETLa Red DBAccess
 
Introducción a Zend Framework
Introducción a Zend FrameworkIntroducción a Zend Framework
Introducción a Zend FrameworkIrontec
 
Pylot : Herramienta para pruebas de rendimiento de Aplicaciones Web
Pylot : Herramienta para pruebas  de rendimiento de Aplicaciones WebPylot : Herramienta para pruebas  de rendimiento de Aplicaciones Web
Pylot : Herramienta para pruebas de rendimiento de Aplicaciones WebDeisy Sapaico
 
AngularJS Patterns: Clean Code
AngularJS Patterns: Clean CodeAngularJS Patterns: Clean Code
AngularJS Patterns: Clean CodeFrancesc Jimenez
 

La actualidad más candente (20)

Pruebas unitarias
Pruebas unitariasPruebas unitarias
Pruebas unitarias
 
Qunit CookBook español
Qunit CookBook españolQunit CookBook español
Qunit CookBook español
 
Conceptos básicos de Unit Test
Conceptos básicos de Unit Test Conceptos básicos de Unit Test
Conceptos básicos de Unit Test
 
Test unitarios
Test unitariosTest unitarios
Test unitarios
 
Concurrencia en Java
Concurrencia en Java Concurrencia en Java
Concurrencia en Java
 
Tdd
TddTdd
Tdd
 
Pruebas de aceptación 15 11_2013
Pruebas de aceptación 15 11_2013Pruebas de aceptación 15 11_2013
Pruebas de aceptación 15 11_2013
 
Codemotion 2017: Pentesting en aplicaciones node.js AS ALWAYS: FOR FUN AND PR...
Codemotion 2017: Pentesting en aplicaciones node.js AS ALWAYS: FOR FUN AND PR...Codemotion 2017: Pentesting en aplicaciones node.js AS ALWAYS: FOR FUN AND PR...
Codemotion 2017: Pentesting en aplicaciones node.js AS ALWAYS: FOR FUN AND PR...
 
Testing efectivo con pytest
Testing efectivo con pytestTesting efectivo con pytest
Testing efectivo con pytest
 
Testing & debugging lightning web components
Testing & debugging lightning web componentsTesting & debugging lightning web components
Testing & debugging lightning web components
 
Pruebas de estres
Pruebas de estresPruebas de estres
Pruebas de estres
 
Presentación Seminario1 EA
Presentación Seminario1 EAPresentación Seminario1 EA
Presentación Seminario1 EA
 
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NETPruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NET
 
Maven
MavenMaven
Maven
 
Introducción a Zend Framework
Introducción a Zend FrameworkIntroducción a Zend Framework
Introducción a Zend Framework
 
Pylot : Herramienta para pruebas de rendimiento de Aplicaciones Web
Pylot : Herramienta para pruebas  de rendimiento de Aplicaciones WebPylot : Herramienta para pruebas  de rendimiento de Aplicaciones Web
Pylot : Herramienta para pruebas de rendimiento de Aplicaciones Web
 
Migrando data - DRUPAL
Migrando data - DRUPALMigrando data - DRUPAL
Migrando data - DRUPAL
 
9.laravel
9.laravel9.laravel
9.laravel
 
AngularJS Patterns: Clean Code
AngularJS Patterns: Clean CodeAngularJS Patterns: Clean Code
AngularJS Patterns: Clean Code
 
Presentación: xUnit y Junit
Presentación: xUnit y JunitPresentación: xUnit y Junit
Presentación: xUnit y Junit
 

Destacado (8)

Zend Server Data Caching
Zend Server Data CachingZend Server Data Caching
Zend Server Data Caching
 
Presentación1
Presentación1Presentación1
Presentación1
 
Біологія 8 клас
Біологія 8 класБіологія 8 клас
Біологія 8 клас
 
Alcanzando tu sueño
Alcanzando tu sueñoAlcanzando tu sueño
Alcanzando tu sueño
 
Presentación maquetación.pptx
Presentación maquetación.pptxPresentación maquetación.pptx
Presentación maquetación.pptx
 
Presentación ilabora
Presentación ilaboraPresentación ilabora
Presentación ilabora
 
Gijon
GijonGijon
Gijon
 
Tema 9. power point 4
Tema 9. power point 4Tema 9. power point 4
Tema 9. power point 4
 

Similar a Servicios en Zend Framework 2

Introducción a Zend Framework 2
Introducción a  Zend Framework 2Introducción a  Zend Framework 2
Introducción a Zend Framework 2El Taller Web
 
Módulos en Zend Framework 2
Módulos en Zend Framework 2Módulos en Zend Framework 2
Módulos en Zend Framework 2El Taller Web
 
Zend/Cache de Zend Framework 2
Zend/Cache de Zend Framework 2Zend/Cache de Zend Framework 2
Zend/Cache de Zend Framework 2El Taller Web
 
Zend Framework 2 y MongoDB
Zend Framework 2 y  MongoDBZend Framework 2 y  MongoDB
Zend Framework 2 y MongoDBEl Taller Web
 
[El comercio]php zend framework (speech)
[El comercio]php zend framework (speech)[El comercio]php zend framework (speech)
[El comercio]php zend framework (speech)Ernesto Anaya
 
Zend Framework Taller de SeeD Software, Colombia
Zend Framework Taller de SeeD Software, ColombiaZend Framework Taller de SeeD Software, Colombia
Zend Framework Taller de SeeD Software, Colombiarazigal
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJSRodrigo Pimentel
 
Symfony-Community: Introducción a Symfony Framework
Symfony-Community: Introducción a Symfony FrameworkSymfony-Community: Introducción a Symfony Framework
Symfony-Community: Introducción a Symfony Frameworkexcedesoft
 
Modulariza tus aplicaciones Grails - Springio 2012
Modulariza tus aplicaciones Grails - Springio 2012Modulariza tus aplicaciones Grails - Springio 2012
Modulariza tus aplicaciones Grails - Springio 2012Dani Latorre
 
BilboStack - Php en el 2012
BilboStack - Php en el 2012BilboStack - Php en el 2012
BilboStack - Php en el 2012Asier Marqués
 
Zend Framework - MVC - 2008
Zend Framework - MVC - 2008Zend Framework - MVC - 2008
Zend Framework - MVC - 2008Juan Carbajal
 
Introducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos WebIntroducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos WebFacundo E. Goñi Perez
 
Desymfony - Servicios
Desymfony  - ServiciosDesymfony  - Servicios
Desymfony - ServiciosRicard Clau
 
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7Luis Ruiz Pavón
 

Similar a Servicios en Zend Framework 2 (20)

Introducción a Zend Framework 2
Introducción a  Zend Framework 2Introducción a  Zend Framework 2
Introducción a Zend Framework 2
 
Módulos en Zend Framework 2
Módulos en Zend Framework 2Módulos en Zend Framework 2
Módulos en Zend Framework 2
 
Zend/Cache de Zend Framework 2
Zend/Cache de Zend Framework 2Zend/Cache de Zend Framework 2
Zend/Cache de Zend Framework 2
 
Zend Framework 2 y MongoDB
Zend Framework 2 y  MongoDBZend Framework 2 y  MongoDB
Zend Framework 2 y MongoDB
 
[El comercio]php zend framework (speech)
[El comercio]php zend framework (speech)[El comercio]php zend framework (speech)
[El comercio]php zend framework (speech)
 
Zend Framework Taller de SeeD Software, Colombia
Zend Framework Taller de SeeD Software, ColombiaZend Framework Taller de SeeD Software, Colombia
Zend Framework Taller de SeeD Software, Colombia
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJS
 
Code Igniter
Code IgniterCode Igniter
Code Igniter
 
Symfony-Community: Introducción a Symfony Framework
Symfony-Community: Introducción a Symfony FrameworkSymfony-Community: Introducción a Symfony Framework
Symfony-Community: Introducción a Symfony Framework
 
Mvc
MvcMvc
Mvc
 
Modulariza tus aplicaciones Grails - Springio 2012
Modulariza tus aplicaciones Grails - Springio 2012Modulariza tus aplicaciones Grails - Springio 2012
Modulariza tus aplicaciones Grails - Springio 2012
 
BilboStack - Php en el 2012
BilboStack - Php en el 2012BilboStack - Php en el 2012
BilboStack - Php en el 2012
 
Zend Framework - MVC - 2008
Zend Framework - MVC - 2008Zend Framework - MVC - 2008
Zend Framework - MVC - 2008
 
JS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World ExampleJS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World Example
 
Introducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos WebIntroducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos Web
 
Laravel 5.1
Laravel 5.1Laravel 5.1
Laravel 5.1
 
Formularios al limite
Formularios al limiteFormularios al limite
Formularios al limite
 
Desymfony - Servicios
Desymfony  - ServiciosDesymfony  - Servicios
Desymfony - Servicios
 
Introduccion Java.ppt
Introduccion Java.pptIntroduccion Java.ppt
Introduccion Java.ppt
 
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
 

Más de El Taller Web

Z-Ray en Zend Server 8
Z-Ray en Zend Server 8Z-Ray en Zend Server 8
Z-Ray en Zend Server 8El Taller Web
 
Webinario mejorando el desempeño con zend server
Webinario   mejorando el desempeño con zend serverWebinario   mejorando el desempeño con zend server
Webinario mejorando el desempeño con zend serverEl Taller Web
 
Patrones de diseño en POO
Patrones de diseño en POOPatrones de diseño en POO
Patrones de diseño en POOEl Taller Web
 
Mongo db enterprise_datasheet
Mongo db enterprise_datasheetMongo db enterprise_datasheet
Mongo db enterprise_datasheetEl Taller Web
 
10gen telco white_paper
10gen telco white_paper10gen telco white_paper
10gen telco white_paperEl Taller Web
 
Cisco web ex-cs-0511-final
Cisco web ex-cs-0511-finalCisco web ex-cs-0511-final
Cisco web ex-cs-0511-finalEl Taller Web
 
Replica Sets en MongoDB
Replica Sets en MongoDBReplica Sets en MongoDB
Replica Sets en MongoDBEl Taller Web
 
Introducción a PHP 5.4
Introducción a PHP 5.4Introducción a PHP 5.4
Introducción a PHP 5.4El Taller Web
 
TCO Comparison MongoDB & Oracle
TCO Comparison MongoDB & OracleTCO Comparison MongoDB & Oracle
TCO Comparison MongoDB & OracleEl Taller Web
 
Webinario Operaciones Básicas MongoDB
Webinario Operaciones Básicas MongoDBWebinario Operaciones Básicas MongoDB
Webinario Operaciones Básicas MongoDBEl Taller Web
 
Información sobre la certificación Zend
Información sobre la certificación Zend Información sobre la certificación Zend
Información sobre la certificación Zend El Taller Web
 

Más de El Taller Web (13)

Z-Ray en Zend Server 8
Z-Ray en Zend Server 8Z-Ray en Zend Server 8
Z-Ray en Zend Server 8
 
Webinario mejorando el desempeño con zend server
Webinario   mejorando el desempeño con zend serverWebinario   mejorando el desempeño con zend server
Webinario mejorando el desempeño con zend server
 
Patrones de diseño en POO
Patrones de diseño en POOPatrones de diseño en POO
Patrones de diseño en POO
 
Memcached y PHP
Memcached y PHPMemcached y PHP
Memcached y PHP
 
Offers
OffersOffers
Offers
 
Mongo db enterprise_datasheet
Mongo db enterprise_datasheetMongo db enterprise_datasheet
Mongo db enterprise_datasheet
 
10gen telco white_paper
10gen telco white_paper10gen telco white_paper
10gen telco white_paper
 
Cisco web ex-cs-0511-final
Cisco web ex-cs-0511-finalCisco web ex-cs-0511-final
Cisco web ex-cs-0511-final
 
Replica Sets en MongoDB
Replica Sets en MongoDBReplica Sets en MongoDB
Replica Sets en MongoDB
 
Introducción a PHP 5.4
Introducción a PHP 5.4Introducción a PHP 5.4
Introducción a PHP 5.4
 
TCO Comparison MongoDB & Oracle
TCO Comparison MongoDB & OracleTCO Comparison MongoDB & Oracle
TCO Comparison MongoDB & Oracle
 
Webinario Operaciones Básicas MongoDB
Webinario Operaciones Básicas MongoDBWebinario Operaciones Básicas MongoDB
Webinario Operaciones Básicas MongoDB
 
Información sobre la certificación Zend
Información sobre la certificación Zend Información sobre la certificación Zend
Información sobre la certificación Zend
 

Servicios en Zend Framework 2

  • 1. Servicios en Zend Framework 2 Carlos Nacianceno El Taller Web
  • 2. El Taller Web • Partners de Zend Technologies o Productos o Entrenamiento o Consultoría o Soporte El Taller Web
  • 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
  • 6. Nueva Arquitectura • Autoloaders • Event Manager • Service Manager • Modulos Zend Framework 2
  • 8. ¿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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. Service Manager return array( 'service_manager' => array( 'factories' => array( Zend Framework 2 'User' => 'SomeModuleServiceUserFactory', 'UserForm' => function ($serviceManager) { $form =new SomeModuleFormUser(); return $form; }, 'invokables' => array( 'UserInputFiler' => 'SomeModuleInputFilterUser', ),);
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. Otras cosas a considerar • Estándares de codificación • Una variante de PSR-2 • http://framework.zend.com/wiki/display/ZFDEV2/Coding+St andards • Documentación • phpDocumentor • Comentarios en el código •3rd party en carpeta Vendor Zend Framework 2