Mariano Iglesias: Lithium - Un framework que pega como piña
1. Primeras charlas del Grupo PHP Lithium Un framework que pega como piña Mariano Iglesias – Coding Ninja http://marianoiglesias.com.ar http://twitter.com/mgiglesias
Desarrollar en PHP sin frameworks es suicida Esto produjo una avalancha de frameworks Los big three: CakePHP, ZF, Symfony Realmente era necesario otro framework?
– CakePHP Trabajo desde 2007 Escribiendo un libro PHP4 support -> PHP5 en Cake 2.0 – Zend Framework PEAR mezclado con algunos conceptos FW Se empezo a ordenar con el tiempo ZF 2.0 recien empieza a usar namespaces – Symfony Sin closures ni lambdas! One man show: Fabien Potencier Symfony Reloaded: ”El framework mas Fabien” – Code Igniter PHP4 support No hay plan visible para adopcion 5.3 – Solar Tomy, el hijo del vasko Cosas muy interesantes Demasiado joven todavia One man show: Paul M. Jones
PHP4 cumplio con su cometido PHP5 trajo mas conceptos de OOP – Yay! PHP5.3 nos hace sentir la diferencia No se bien quien es el de la foto, pero lo envidio Aunque pronto yo voy a estar en su lugar
Performance: 20% en aplicaciones migradas Mysqlnd nativo en PHP, más rápido! NoSQL: Couch y Mongo Late static binding: sobrecarga de métodos estáticos Funciones lambda: del cálculo lambda Autoloader del PHP Interoperability Group
PHP Standards Group = PHP Interoperability Group
No hay mejor framework basado realmente en PHP 5.3 que Lithium Obviamente habrá gente que no opina lo mismo, y frente a ellos voy a dejar que Simba responda
Los únicos módulos necesarios para utilizar otros módulos son core y util El resto de los módulos puede funcionar independientemente Así podemos construir aplicaciones basadas en micro-frameworks hechos con Lithium
Un concepto bien AOP (Aspect Oriented Programming) Funciones secundarias aisladas de la lógica principal Más modularidad
Cuando hay más de 3 parámetros, usamos array $_autoConfig especifica qué keys de __construct($config) debieran ser procesados, y cómo Por defecto, las keys que están en $_autoConfig y son especificadas en __construct($config) se vuelven disponibles como $this->_var lithium_qa usa los estándares de lithium y chequea la sintaxis, mostrando violaciones Gracias a lithium_qa podríamos automatizar el chequeo en un post commit hook y así rechazar código que no cumpla con los estándares
Línea de comandos: li3_bot y Tito en #php-ar
Logging: parte del módulo analysis. Gracias a los filtros, podríamos utilizarlo para loguear consultas SQL Debugger: parte del módulo analysis, tiene métodos como trace() y export(), para los que no tienen xdebug y su versión de var_dump() Parser: también del módulo analysis. Parser::tokenize(CODIGO) devuelve el código fuentes dividido en tokens (T_VARIABLE, etc.) Inspector: también del módulo analysis. Utiliza Reflection para obtener propiedades, métodos, líneas de código, y más Collections: del paquete util, utilizada en RecordSet y todo lugar con colexiones iterables. Collection::each(LAMBDA)