Búsqueda del framework ideal de PHP



Documentos relacionados
Ventajas de usar Symfony

Symfony. Framework para el desarrollo de aplicaciones Web con PHP

- MANUAL TÉCNICO - Software de diagnóstico de la seguridad de la información y autoimplantación de LOPD. Rev. 01- FEBRERO 2013

Capas de la arquitectura de referencia

- MANUAL TÉCNICO - Implantación de software de Marketing Online

Descuartiza un módulo de Magento

Diseño y desarrollo de aplicaciones Web: PHP, MySql y Apache

REQUERIMIENTOS HARDWARE Y SOFTWARE QWEBDOCUMENTS VERSION 4

Audit for Printers.

WebTask Manager Modulo de Interconexión

Capítulo VI. Estudio de Caso de Aplicación del Integrador de Información Desarrollado

INSTALACIÓ N A3ERP. Informática para empresas INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS

Symfony Entorno de trabajo para el desarrollo de aplicaciones. Rodolfo Campos

INSTALACIÓN A3ERP INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS

Gestores de contenidos

Algunos Administradores de Contenido se presentan a continuación:

Descripción. Este Software cumple los siguientes hitos:

Symfony: Framework para desarrollo en PHP5

Análisis de aplicación: TightVNC

BUENOS DIAS! Ing. Germán Ziegler

Manual de NetBeans y XAMPP

POSGRADO EXPERTO.NET DESARROLLO DE SOFTWARE

Análisis de aplicación: Geany

Es el conjunto de programas y procedimientos ejecutados en un computador, necesarios para hacer posible la realización de una tarea específica.

Análisis y diseño del sistema CAPÍTULO 3

MAESTRO DE PHP PHP NIVEL 1

Especificaciones Técnicas

INTRODUCCIÓN A LA PROGRAMACIÓN WEB UNIDAD. Estructura de contenidos: cisvirtual@ucv.edu.pe. 1.

BackflipSD Modelo de Diseño

SCT Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A.

Gestor de Contenidos CMS. Prof: Ing. Henrry Servitá

INSTALACIÓN DE UBUNTU SERVER 12.4 EN MÁQUINA VIRTUAL

PROYECTO INTEGRADO CLUSTER DE ALTA DISPONIBILIDAD CON HAPROXY Y KEEPALIVED. Antonio Madrena Lucenilla 21 de Diciembre de 2012 I.E.S.

CURSO DE PHP AVANZADO

Diseño y desarrollo de el Generador de Tiendas virtuales usando Líneas de Diseño de productos

Contenido. Introducción: Requisitos: Paso 1: Instalación del Virtual Box. Configurar_Virtual_Box_en_Mac_OS_X

INTRANET DE UNA EMPRESA RESUMEN DEL PROYECTO. PALABRAS CLAVE: Aplicación cliente-servidor, Intranet, Área reservada, Red INTRODUCCIÓN

CURSO DE ESPECIALISTA EN DESARROLLO DE APLICACIONES WEB

CAPÍTULO 3: Resultados

Introducción a la extensión de scripting en gvsig 2.0

Catalyst: Framework para el desarrollo de aplicaciones Web Esteban Saavedra Lopez

Symfony2. Junio. Inicio. Curso Desarrollo de aplicaciones web con. Básico-Intermedio

SIEWEB. La intranet corporativa de SIE

Herramienta de Desarrollo Netbeans

Framework para el desarrollo ágil de aplicaciones

Controle en tiempo real el monitoreo de todos los equipos y servicios de su red, Con la mayor eficacia y anticipación

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Trabajo Práctico Guía de Instalación

NIMAKI-IT Servicios y Soluciones Informática contacto@nyminformatica.com Ezequiel.almonacid@gmail.com Celular: Web:

PLAN FORMATIVO MODALIDAD I

P P M. Project Risk Software

Manual de Referencia. Manual de instalación rápida SQL

Infraestructura Tecnológica. Sesión 2: Mejoras adicionales al servidor de archivos

Novedades en Q-flow 3.02

Avanzado. tip. ddy. Informaciones Human Business Fonos: / informaciones@hbusiness.cl Web:

Infraestructura Tecnológica. Sesión 8: Configurar y administrar almacenamiento virtual

SBConta.NET Manual de instalación. SBSS Consulting, S.A Barcelona Telf , fax web

Universidad de Guayaquil

Internet Information Server

Manual de Usario de XEDIGenerator Instalación

Abstracción. Arquitectura y diseño. Base de datos. Autana Consultores de Tecnología ACT Centro de Utilidades

Rafael Doña Gil. Enginyeria Tècnica en Informàtica de Sistemes. Consultor: Jose Juan Rodríguez

Diseño, desarrollo e implementación de una nueva versión de la Herramienta Helpdesk

texto vía celular, bajo la licencia de código libre y de código abierto.

INSTALACIÓN DE UBUNTU SERVER 12.4 EN MÁQUINA VIRTUAL

Studium, Campus Virtual de la Universidad de Salamanca.

CAPITULO 8. Planeamiento, Arquitectura e Implementación

Las pruebas unitarias se crean en una carpeta raíz del symfony: Test/Unit/EjemploTest.php

Controle el Inventario de Software, Hardware y Consumibles desde un HelpDesk integral

Contenido de la sesión. Qué es ASP.NET MVC. Comparación de MVC y WebForms 19/04/2013

Presentación del Curso Virtual PROGRAMACIÓN WEB PHP CON MYSQL AVANZADO

Donde puedo instalar GFI EventsManager en mi red?

TEMARIO. Aplicaciones web con Visual Studio 2010 FrameWork 4.0

INFORME FINAL DE PASANTIA

Empleo. CURSO FORMATIVO Desarrollo WEB con PHP. Coordinador Académico Antonio José Martín Sierra

Proyecto OPEN SOURCE WEBENABLES

Capítulo 5. Cliente-Servidor.

TUTORIAL ACADÉMICO. Programación II- Taller de Programación I Fa.CENA. UNNE

Generated by Foxit PDF Creator Foxit Software For evaluation only.

Curso de Spring Framework

Diplomado Programación Web con PHP, MySQL 5.0, Apache y Ajax

ArquitecturaTécnica de TRAVEL OPEN APPS. Breve definición técnica de la plataforma Travel Open Apps

DISEÑO E IMPLEMENTACIÓN DE UNA BASE DE DATOS PARA LA ONG ASEM

sistemas de información empresarial Nexus Nexus E-Commerce NEXUS e-commerce

Objetivos Específicos

Instituto Tecnológico Superior de Pánuco

Herramientas. Abril Unidad de Arquitectura y Soporte de Aplicaciones Área de Soluciones, Aplicaciones Especiales y Arquitectura de Software

LICITACIÓN PÚBLICA OSP/PER/183/969-1 ADQUISICIÓN DE SOFTWARE Y BIENES PARA EL ORDENAMIENTO DE AGENCIAS DE SEGUROS. NOTA ACLARATORIA No.

Ing. Carlos Rodríguez

App para realizar consultas al Sistema de Información Estadística de Castilla y León

UNIVERSIDAD DE OVIEDO

Manual de Instalación.

Transcripción:

Búsqueda del framework ideal de PHP 1 er Encuentro de Software Libre del Ecuador Yonel Meza Avila y@doknos.com

Qué estamos buscando? D Para el desarrollador: A C V D Arquitectura adecuada Facilidad para realizar cambios (módulos y look&feel) Velocidad de desarrollo Fácil depuración R Para el rendimiento del sistema: T M Bajo tiempo de ejecución Baja cantidad de memoria utilizada

Historia CakePHP Symfony Zend Framework Patrón de diseño MVC MVC MVC (por elección) 1 era versión 2005 (Michal Tatarynowicz) 2005 (Fabien Potencier) 2006 (Zend?) Origen USA Francia USA Licencia MIT MIT BSD Estable actual 1.3.5 1.4.8 1.10.8

De qué disponemos? CakePHP Symfony Zend Framework Manejo AJAX Prototype y Script.aculo.us JQuery Dojo ORM Propio (Patrón Data Mapper) Doctrine(*) y Propel No (Table and Row data gateway) Pruebas Sí Sí Sí Cache Sí Sí Sí Versión del PHP 5 y 4 5 5 i18n y L10n Sí Sí Sí

Qué más tenemos? CakePHP: Pocas funcionalidades integradas en el core Pocos plugins en la comunidad Symfony: Cantidad media de funcionalidades en el core (por encima de lo mínimo necesario) Gran cantidad de plugins en la comunidad Zend: Gran cantidad de funcionalidades en el core (a veces más de las deseadas) Poca cantidad de plugins en la comunidad

Cómo organizamos nuestro código? Cliente Petición Directa Indirecta (Patrón observador) Resultado Controlador Envío de información Lectura Escritura Vista Lectura Modelo D A

Qué posibilidades tenemos? CONTROLADOR MODELO CakePHP: Modelos Symfony: Objeto, tabla ZF: definido por el desarrollador CakePHP: Métodos CakePHP: No tiene Symfony: Actions Symfony: Components Layout, template, helpers VISTA CakePHP: Elements Symfony: Partials ZF: Partials CakePHP: No tiene Symfony: Components CakePHP: No tiene Symfony: Slots ZF: Placeholders D A C

Layouts CONTROLADOR MODELO Layout CakePHP: Métodos Symfony: Actions CakePHP: Modelos Symfony: Objeto, tabla ZF: definido por el desarrollador + template CakePHP: Layout No tiene Symfony: Components = template Layout, template, helpers VISTA CakePHP: Elements Symfony: Partials ZF: Partials CakePHP: No tiene Symfony: Components CakePHP: Página No tiene Final Symfony: Slots ZF: Placeholders D A C

Qué posibilidades tenemos? CONTROLADOR MODELO CakePHP: Modelos Symfony: Objeto, tabla ZF: definido por el desarrollador CakePHP: Métodos CakePHP: No tiene Symfony: Actions Symfony: Components Layout, template, helpers VISTA CakePHP: Elements Symfony: Partials ZF: Partials CakePHP: No tiene Symfony: Components CakePHP: No tiene Symfony: Slots ZF: Placeholders D A C

Parte inteligente en las vistas CONTROLADOR MODELO CakePHP: Modelos Symfony: Objeto, tabla ZF: definido por el desarrollador Template Sf: CakePHP: Components Métodos CakePHP: No tiene Symfony: Zf: Actions Actions Symfony: Components Lógica Layout, template, helpers VISTA CakePHP: Elements Symfony: Partials ZF: Partials CakePHP: Presentación No tiene (Partials) Symfony: Components CakePHP: No tiene Symfony: Slots ZF: Placeholders D A C

Qué posibilidades tenemos? CONTROLADOR MODELO CakePHP: Modelos Symfony: Objeto, tabla ZF: definido por el desarrollador CakePHP: Métodos CakePHP: No tiene Symfony: Actions Symfony: Components Layout, template, helpers VISTA CakePHP: Elements Symfony: Partials ZF: Partials CakePHP: No tiene Symfony: Components CakePHP: No tiene Symfony: Slots ZF: Placeholders D A C

Posición de los bloques variables CONTROLADOR MODELO Template CakePHP: Métodos Symfony: Actions Slot 1 (PH) Slot 2 (PH) Layout, template, helpers CakePHP: Modelos Symfony: Objeto, tabla ZF: definido por el desarrollador + Slot 1 Layout Layout CakePHP: No tiene Symfony: Components Template Template = Slot 1 Slot 2 Slot 2 VISTA CakePHP: Elements Symfony: Partials ZF: Partials CakePHP: No tiene Symfony: Components CakePHP: No tiene Symfony: Slots ZF: Placeholders D A C

Qué necesitamos para crear un modelo? CakePHP: Poco Creación de archivos,configuración de los los modelos, relaciones. Symfony: Nada Solo comando en una terminal, configuraciones pequeñas Zend Framework: Mucho Creación de archivos, configuración de los los modelos, relaciones, implementación de métodos de escritura, lectura, actualizaciones, etc. D V

Necesitamos interfaces de administración? CakePHP: Scaffolds Fáciles de crear, poco personalizables Symfony: Admin Fáciles de crear, completamente personalizables, incluyen filtros de datos Zend Framework: Ninguna D V

Y si tenemos errores CakePHP: Poco Solo sentencias SQL ejecutadas a través de los modelos Symfony: Completo posee un barra de información completa: configuración de la aplicación, módulos de la vista ejecutados, sentencias SQL ejecutadas a través de los modelos y logs, memoria y tiempo utilizados en la corrida Zend Framework: Mínimo solo modificación al formato de var_dump D D

Qué pruebas se realizaron? Tiempo de ejecución Internas Externas (Apache JMeter) Memoria utilizada Internas R T M

En qué se realizaron? Máquina host: Intel i5 M430 2.27 Ghz Memoria 4GB DDR3 1067MHz HD SATA II 5400 rpm Maquina virtual 2 CPUs Memoria 1GB Debian Lenny R T M

De qué se trata la aplicación? 3 módulos: Principal: mínimo procesamiento Módulo albums: búsqueda en una sola tabla e impresión paginada Módulo songs: búsqueda en dos tablas relacionadas e impresión paginada R T M

Podemos medir tiempo de proceso? Cliente (Petición) Controlador principal (index.php en raíz de la app) Censo de tiempo Cargar configuraciones Despachador Despachador Censo de tiempo Impresión de diferencia R T Cliente (Respuesta)

Qué obtuvimos en las pruebas internas? 250 Tiempo de proceso 200 ms 150 100 cf sf zf 50 0 Home page Albums Songs TOTAL R T

De qué otra forma se podría medir el tiempo? Apache JMeter es una aplicación Open Source, desarrollada en Java y diseñada para realizar pruebas funcionales y de rendimiento a diferentes tipos de aplicaciones. Pruebas realizadas: 1 usuario, múltiples peticiones consecutivas 10 usuarios simultáneos, múltiples peticiones consecutivas R T

Qué obtuvimos en las pruebas externas? (1 usuario) 250 Tiempo de respuesta 200 ms 150 100 cf sf zf 50 0 Home Albums Songs Total R T

Qué obtuvimos en las pruebas externas? (1 usuario) r/s 9.00 8.00 7.00 6.00 5.00 4.00 3.00 2.00 1.00 0.00 Rendimiento (peticiones por segundo) Home Albums Songs Total cf sf zf R T

Qué obtuvimos en las pruebas externas? (10 usuarios) 1200 Tiempo de respuesta ms 1000 800 600 400 200 cf sf zf 0 Home Albums Songs Total R T

Qué obtuvimos en las pruebas externas? (10 usuario) 16.00 Rendimiento (peticiones por segundo) r/s 14.00 12.00 10.00 8.00 6.00 4.00 2.00 cf sf zf 0.00 Home Albums Songs Total R T

Cuánto consume mi aplicación? Cliente (Petición) Controlador principal (index.php en raíz de la app) Cargar configuraciones Despachador Despachador Censo de memoria Impresión del máximo R M Cliente (Respuesta)

Qué obtuvimos? 12000 Consumo de memoria (memory_get_peak_usage) kb 10000 8000 6000 4000 2000 cf sf zf 0 Home page Albums Songs R M

Quién ganó? Para el desarrollador: Arquitectura adecuada Facilidad para realizar cambios (módulos y look&feel) Velocidad de desarrollo Fácil depuración Para el rendimiento del sistema: Bajo tiempo de ejecución Baja cantidad de memoria utilizada

Dónde podemos encontrar información? CakePHP: www.cakephp.org www.cakedc.com Symfony: www.symfony-project.org Zend Framework: framework.zend.com

Búsqueda del framework ideal de PHP Gracias por su atención! Yonel Meza Avila y@doknos.com 1 er Encuentro de Software Libre del Ecuador www.doknos.com