Introducción
a los frameworks PHP NOTAS
Presentación del Taller
- Mencionar hashTag - #tallerPHP
- Agradecer la invitación a participar en este taller a:
- Juanlu García
- Yamir Ramírez
- A los que están siguiendo/escuchando este taller .
Introducción a los frameworks PHP
-
Hablaremos sobre el significado del termino framework.
- Que ventajas nos ofrece el utilizar un framework.
- Listaremos algunos frameworks en PHP pero en lugar de iniciar un un flame-war ó discusión sobre por que alguno es mejor que otro ... nos enfocaremos en las bondades que Symfony2 nos brinda.
Acerca de mí
Mi nombre es:
Jesús Manuel Olivas
Jesús Manuel Olivas
Me desempeño como Web Developer actualmente aprendiendo y trabajando con Drupal & Symfony2.
Me pueden encontrar y seguir en twitter como @jmolivas y leer lo que ocasionalmente publico en mi blog jmolivas.com pueden seguir también el podcast de Drupal el cual realizo con otros Drupaleros Mexicanos llamdo Drupodcast, estamos en twitter como @drupodcast y drupodcast.com
Iniciemos con el primero de los temas para este taller:
QUÉ ES UN FRAMEWORK?
Una definición formal para un framework o marco de trabajo podría algo como:
Una estructura conceptual y/o un conjunto de buenas prácticas o reglas este ofrece por defecto cierta funcionalidad por medio de módulos los cuales realizan labores previamente establecidas.
El objetivo de los frameworks es servir como base o soporte, sobre el cual otro proyecto de software puede ser organizado y desarrollado.
Y entonces ...
¿Qué es un framework?
Pensemos en un framework como una caja de legos esas que teníamos cuando niños con ellos podíamos construir casi cualquier cosa uniendo las diferentes piezas.
¿Por qué utilizar un framework? / DESPUES
- Al utilizar un framework trabajamos con una base de código soportada por una comunidad, recordemos una sola persona no es mejor que un ejercito de desarrolladores.
- Las aplicaciones desarrolladas utilizando un framework cumplen con los estándares y las necesidades del mercado actual podríamos mencionar HTML5, REST, código des-acoplado entre otros.
-
Un framework no impide al desarrollador escribir código de baja calidad o realizar malas implementaciones, pero se lo hace mas complicado.
Construye tus aplicaciones no tus herramientas / DESPUES
Nos permite enfocarnos en aprender una nueva manera de hacer las cosas y en las partes divertidas de un proyecto.
Es mucho mas sencillo integrar nuevos miembros a los equipos de trabajo ya que existe un proyecto el cual cuanta con documentación y canales oficiales de soporte mantenidos por miembros de la comunidad.
El síndrome NIH / ANTES
Hablemos un poco de que regularmente sucede cuando trabajamos solos.
Aislados y sin el soporte de la comunidad.
Terminamos contagiados de algo que se llama.
Síndrome NIH (Not Invented Here/No inventado aquí).
Inconvenientes síndrome NIH
Entre algunos podríamos mencionar:
-
Tiempo de implementación
- Nos estancamos con la versión actual de el lenguaje.
- Tenemos que mantener nuestro código actualizado y seguro.
- Es un poco mas complicado integrar nuevos miembros a un equipo de desarrollo tenemos que explicar como funciona.
- Regularmente no contamos con documentación de las clases o métodos y en el mejor de los casos cuando existe, no esta actualizada.
COmo podemos solucionar esto ?
Reemplazando el síndrome NIH (Not Invented Here) por un predisposición inversa conocida como
PIE (Proudly Invented Elsewhere/Orgullosamente Inventado en otro lugar)
también en ocasiones mencionada como:
PFE/ (Proudly Found Elsewhere/Orgullosamente Encontrado en otro lugar)
Mi primera aplicación / ANTES
Demos un vistazo a un ejemplo de código el cual pueden encontrar en la traducción que del libro de Symfony2 la cual pueden encontrar en librosweb.es.
2.1. Un blog sencillo creado con PHP simple
http://librosweb.es/symfony_2_3/capitulo_2/un_blog_sencillo_creado_con_php_simple.html
MI PRIMERA APLICACIÓN / DESPUES
En el cual podemos encontrar:
Un archivo con llamado index.php el cual contiene instrucciones de PHP y etiquetas de maquetado HTML.
-
En la parte superior podemos ver que se realizar la conexión a la base de datos y se ejecuta una instrucción para recuperar registros de una tabla.
-
Posteriormente podemos ver como mezcla código de PHP para iterar el resultado y etiquetas de HTML.
-
Al final nuevamente código PHP para cerrar la conexión a la base de datos.
¿Cuál es el problema?
-
No hay comprobación de errores: ¿qué sucede si falla la conexión a la base de datos?
-
Organización deficiente: si la aplicación crece, este único archivo cada vez será más difícil de mantener, hasta que finalmente sea imposible.
-
Es difícil reutilizar el código: ya que todo está en un archivo, no hay manera de volver a utilizar alguna parte de la aplicación.
¿COMO PODEMOS RESOLVERLO?
MVC - Modelo Vista Controlador
Es un patrón de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos.
-
Modelo: Esta es la representación específica de la información con la cual el sistema opera.
-
Vista: Este presenta el modelo en un formato adecuado para interactuar, usualmente la interfaz de usuario.
-
Controlador: Este responde a eventos, usualmente acciones del usuario e invoca peticiones al modelo y en ocasiones envía datos a la vista.
Frameworks en PHP
Frameworks en PHP existen muchos entres los cuales podemos mencionar
- YII Framework
- Zend Framework
- Code Igniter
- Fuse
- Lithium
-
Laravel
- Symfony
ALGunas NUevas características y PROYECTOS en PHP
- PSR-0 (Autoloading) : Es el primero de los estándares de código recomendados y establecido por el PHP Framework Interoperability Group. http://www.php-fig.org/
- Namespaces: Son una manera de encapsular elementos o clases podríamos explicarlos como los directorios que separan los archivos en el sistema operativo.
- Composer: Composer es un gestor de dependencias para PHP.
- YAML: Es un formato de serialización de datos legible por humanos.
Que es Symfony ? / DESPUES
Un conjunto de clases Orientadas a Objetos compatibles con PHP 5.3 y versiones posteriores.
Un conjunto de componentes reutilizables de manera independiente y/o cohesionada que solucionan problemas comunes de desarrollo web.
Es un framework de desarrollo en PHP que puede ser utilizado bajo el patrón Modelo Vista Controlador (MVC).
¿Qué ofrece Symfony 2? / DESPUES
Configuración PHP, XML, *YAML
Plantillas PHP, *Twig
Almacenamiento SQL, NoSQL
Flujo de trabajo (rutas) *Anotaciones, Archivos
Una linea de comando muy poderosa
Una linea de comando muy poderosa
Recuerdan el modelo MVC
Aún cuando Symfony2 no puede ser considerado MVC.
Podríamos agregar que symfony2
Podríamos agregar que symfony2
nos ofrece:
- MODELING: Utilizando Doctrone o Propel.
- ROUTING - Enrutamiento
- CONTROLLER - Controladores
-
VIEW - Vista
Routing (enrutamientos)
Una ruta es un mapeo desde un URL hasta un acción en un controlador.
Symfony carga estas rutas de tu aplicación desde archivos de configuración. El archivo usualmente es app/config/routing.yml, pero es posible configurar para que sea cualquier otro incluyendo un archivo XML o PHP esto último cuando utilizamos anotaciones en nuestros controladores.
Controller
Un controlador es una función PHP que toma información de la petición HTTP con esto construye y devuelve una respuesta HTTP (como un objeto Respuesta de Symfony2).
La respuesta podría ser una página HTML, un documento XML, una matriz JSON serializada, una imagen, una redirección, un error 404 o cualquier otra cosa que se te ocurra. El controlador contiene cualquier lógica arbitraria la aplicación necesita para representar el contenido de una página.
VIEW
En esta parte aun cuando es posible utilizar PHP, Symfony recomienda utilizar TWIG:
Twig es un motor de plantillas para PHP. es aun sistema de template creado para ser flexible, rápido y sencillo.
PHP Frameworks Notas
By Jesus Manuel Olivas
PHP Frameworks Notas
- 1,305