[El comercio]php zend framework (speech)

Click here to load reader

  • date post

    31-May-2015
  • Category

    Technology

  • view

    2.362
  • download

    2

Embed Size (px)

description

En la primera ronda de capacitaciones internas en El Comercio me invitaron a hablar sobre Zend Framework. Les comparto las diapositivas.

Transcript of [El comercio]php zend framework (speech)

2. AGENDA 3. Agenda Definiciones Comparaciones con otros Frameworks Anatoma de una Aplicacin Zend Recomendaciones para lograr Mantenibilidad Recomendaciones para lograr Alta Disponibilidad Recomendaciones de Seguridad 4. DEFINICIONES 5. Agenda Definiciones Framework Qu es un Framework? Problemas comunes que resuelven los Frameworks Tipos Zend Componentes Filosofa Proceso de Calidad ZF Usos MVC Comparativas otros Frameworks Anatoma de una Aplicacin Zend Recomendaciones para lograr Mantenibilidad Recomendaciones para lograr Alta Disponibilidad Recomendaciones de Seguridad 6. Qu es un Framework? 7. Qu es un Framework? 8. Qu es un Framework? Herramientas Conceptos Prcticas CriteriosEnfocados en resolver ciertos tipos de problemas 9. Framework Un conjunto estandarizado de conceptos, prcticas y criteriospara enfocar un tipo de problemtica particular, que sirve comoreferencia para enfrentar y resolver nuevos problemas dendole similar. 10. Problemas comunes Persistencia de Datos WebServices Validacin de Manejo de SesinFormularios ACL Autenticacin Configuracin E-mailing Seguridad Manejo deExcepciones Routing Cache Bsquedas Log Paginado Etc 11. No Reinventemos la rueda 12. Zend Framework es un framework de cdigo abierto paradesarrollar aplicaciones web, servicios web, scripts con PHP5. Zend Framework es una implementacin que usa cdigo 100%orientado a objetos. Cada componente est construido con una baja dependenciade otros componentes. Zend Framework ofrece un gran rendimiento y una robustaimplementacin MVC. Licencia BSD. Business friendly Documentacin en muchos idiomas >80% code covered por pruebas unitarias 13. Componentes de ZF MVC Zend_Controller Front Controller Database Router I18N Dispatcher Action Controller Auth y ACL Plugins y Helpers Web Services Request y Response Zend_View Mail, Formats, Search PHP-based views Utilitarios Helpers Zend_Layout Zend_Form 14. Componentes de ZF MVC Zend_Db_Adapter Database Adaptadores para lamayora de extensiones I18Nde PHP Auth y ACL Zend_Db_Profiler Web Services Zend_Db_Select Mail, Formats, Search Zend_Db_Table Utilitarios Zend_Db_Table_Rowset Zend_Db_Table_Row 15. Componentes de ZF MVC Zend_Locale Database Zend_Date Zend_Measure I18N Zend_Currency Auth y ACL Zend_Translate Web Services Adaptadores PHP Arrays Mail, Formats, Search CVS Utilitarios Gettext Qt Tmx Xliff 16. Componentes de ZF MVC Zend_Auth Zend_Db_Table Adapter Database HTTP Digest I18N Ldap Escribe tu propio Auth y ACLadaptador Web Services Zend_Sesion Zend_Sesion_Storage Mail, Formats, Search Zend_Acl Utilitarios Roles Resources Rights (Privilegios) 17. Componentes de ZF MVC Zend_Http_Client Zend_Rest_Client Database Zend_Services Amazon ,Delicious, Ebay, Flickr, I18N ReCaptcha, ShortUrl, Technorati, Twitter, Auth y ACL WindowsAzure, Yahoo, etc. Zend_Feed Web Services Rss y Atom Mail, Formats, Search Zend_Gdata Books, Docs, Calendar, Picasa, UtilitariosYoutube Zend_Soap Zend_Json_Server Zend_XmlRpc 18. Componentes de ZF MVC Zend_Mail Database Zend_Mime I18N Zend_Pdf Auth y ACL Zend_Search_Lucene Web Services Compatibilidad conApache Lucene Mail, Formats, Search Utilitarios 19. Componentes de ZF MVC Zend_Cache Database Zend_Config I18N Zend_Console_Getopt Auth y ACL Zend_Filter Web Services Zend_Loader Mail, Formats, Search Zend_Log Utilitarios Zend_Registry Zend_Validate 20. Componentes de ZF MVC Database I18N Auth y ACLY mucho ms Web Services Mail, Formats, Search Utilitarios 21. Sepamos diferenciar: Frameworks Full Stack Microframeworks Component Library Content Management System 22. Ejemplos Frameworks Full Stack Zend Framework Symfony CakePHP CodeIgniter Etc Microframeworks Limonade - http://limonade-php.github.com/ Slim - http://www.slimframework.com/ Flight - http://flightphp.com/ Silex - http://silex.sensiolabs.org/ Component Library PEAR Zend Framework Symfony (v2) eZ Components Content Management System Drupal Joomla 23. Filosofa de Zend Framework Simplicidad y Extensibilidad Soluciones fciles para el 80% de la funcionalidad comnmente requerida en una aplicacin web. La extensibilidad nos posibilita una fcil adecuacin al 20% restante No hay complejos archivos XML de configuracin Buenas practicas giles y Orientadas a Objetos Arquitectura Use-at-Will Full Stack Framework Diseado para Extensibilidad Unit tested 24. Proceso de Calidad ZF1. Cuntanos que es lo que propones 1. Redactar el Proposal Document2. Implemntalo 1. Escribe cdigo OO que implemente tu propuesta 2. Escribe las pruebas unitarias, Si usas TDD, aun mejor 3. Documenta cmo funciona3. Verifica que cumple con la propuesta 1. Publica tu implementacin para la revisin de la comunidad 2. Obtener Feedback e introducir mejoras. 3. Revisin del Zend-Team para validar conformidadEnlace Proposals: http://framework.zend.com/wiki/display/ZFPROP/Home 25. Usos de ZF Como Full Stack web framework Aplicaciones web Como Component Library Cron Jobs cron_importar_adecsys.php cron_despublicar_avisos.php Tools zf.php sync.php test_ws.php scrapersLectura Recomendada:http://www.slideshare.net/shahar/zend-framework-components-for-nonframework-useShahar Evron 2008 colaborador de ZF 26. Patrn MVC 27. COMPARACIONES CON OTROS FRAMEWORKS 28. Agenda Definiciones Comparaciones con otros Frameworks Cuadro Comparativo Pros & Cons ZF Anatoma de una Aplicacin Zend Recomendaciones para lograr Mantenibilidad Recomendaciones para lograr Alta Disponibilidad Recomendaciones de Seguridad 29. CakePHP CodeIgniter SymfonyYii ZFLicencia MITOSLMITNew BSD BSDInicio 2005-082006-012005-102008-01 2006-03PHP5.2+ 5.1+ 55.1+5.2.4+MVCSi Si Si SiSiI18n Si Incompleto Si SiSiORMActive RecordThird Party Only Doctrine, Propel DAO,Zend_Db Data Maper Active RecordTestingSi Next Release Si SiSiSeguridadACLSi Plugin ACL, RBAC.ACLPluginsTemplatesSi Si Si SiSiCachSi Si Si SiSiScaffoldingSi No Si SiNo Fuente:http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks 30. CakePHPCodeIgniterSymfony Yii ZFPHP4 SISINONONOPHP5 SISISISISIMultiple DBSISISISISIValidation SISISISISIAjax SI NO SISISIAuth SI NO SISISIModularSI NO SISISI Fuente: http:///www.phpframeworks.com 31. PROS CONS Open Source Menos CoC que otros FWs Bajo acoplamiento Menos RAD que otros FWs Flexibilidad Pocos ejemplos, tutoriales Buena Documentacin Mayor curva de aprendizaje 100% OO No hay scaffolding Uso de Patrones Amplia Librera Business friendly Licencia Soporte Zend Server Certificable 32. ANATOMA DE UNA APLICACIN ZEND 33. Agenda Definiciones Comparaciones con otros Frameworks Anatoma de una Aplicacin Zend Estructura de directorios Forms public/index.php Layouts application.ini Mdulos Bootstrap View Helpers Controllers Orden de ejecucin Views Plugins Models Action Helpers Recomendaciones para lograr Mantenibilidad Recomendaciones para lograr Alta Disponibilidad Recomendaciones de Seguridad 34. Estructura de directorios 35. Directorio publicDocumentRoot 36. MVC 37. Relacin entre Controladores y Vistas 38. public/index.php 39. application/configs/application.ini 40. Bootstrap La clase Bootstrap define que recursos y componentesque se deben inicializar. De forma predeterminada, el Front Controller esinicializado (Zend_Controller_Front), y configura pordefecto el directorio application/controllers/ paramanejar los Controladores (Action Controllers). 41. Bootstrap por defecto al crear un proyecto 42. Bootstrap con mtodos _init* 43. Ejemplos de mtodos de Bootstrap 44. Ejemplos de mtodos de Bootstrap 45. Controllers 46. Controlador Zend
48. Front Controller Zend_Controller_Front implementa el patrn FrontController usado en aplicaciones MVC . Tambin implementa el patrn Singleton Su propsito es: inicializar el entorno de la solicitud rutear la solicitud (Request) entrante y luego hacer un envo de cualquier de las accionesdescubiertas le agrega las respuestas y las regresa cuando se completa elproceso.Ref. http://en.wikipedia.org/wiki/Front_Controller_pattern 49. Cmo es posible que capture todas las peticiones?.htaccessRewriteEngine OnRewriteCond %{REQUEST_FILENAME} -s [OR]RewriteCond %{REQUEST_FILENAME} -l [OR]RewriteCond %{REQUEST_FILENAME} -dRewriteRule ^.*$ - [NC,L]RewriteRule ^.*$ index.php [NC,L] 50. Views 51. Vista 52. Es correcto usar short_open_tag=On? 53. Es correcto usar short_open_tag=On? 54. short_open_tag = OnPROSCONS Legibilidad Menos Portabilidad Rapidez Podra llegar a hacer conflictos si es que se configura el servidor web para que mod_php procese archivos xml 55. Escapar cadenas en la vista No escapar las vistas puede ocasionar fallos de seguridadcomo Cross Site Scripting[1]. Se deben escapar las cadenas que fueron ingresadas porusuarios.[1] http://es.wikipedia.org/wiki/Cross-site_scripting 56. Models 57. Models 58. No existe Zend_ModelNo existe una forma especfica de implementar modelos 59. Qu hacen los modelos?Persistencia de datos Obtener Guardar Modificar Borrar 60. Cmo? Bases de datos Web Services Feeds Archivos Enumeraciones Etc. 61. Cmo? Bases de datosEscenario Comn Web Services Feeds Archivos Enumeraciones Etc. 62. Zend_Db Zend_Db_Adapter Zend_Db_Statement Zend_Db_Profiler Zend_Db_Select Zend_Db_Table Zend_Db_Table_Row Zend_Db_Table_Rowset Zend_Db_Table Relationships Zend_Db_Table_Definition 63. Zend_Db_Adapter Configuracion en application.iniresources.db.adapter = pdo_mysqlresources.db.isDefaultAdapter = trueresources.db.params.host = 192.168.1.88resources.db.params.dbname = czpls_develresources.db.params.username = czpls_develresources.db.params.password = m83o823nkdnakhresources.db.params.charset = utf-8resources.db.params.profiler.enabled = trueresources.db.params.profiler.class = Zend_Db_Profiler_Firebug 64. Zend_Db_Table 65. Zend_