Successfully reported this slideshow.

Mariano Iglesias: Lithium - Un framework que pega como piña

1

Share

1 of 30
1 of 30

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Mariano Iglesias: Lithium - Un framework que pega como piña

  1. 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
  2. 2. Algunas cosas sobre mi... <ul><li>C -> C++ -> Java -> PHP & Python
  3. 3. Equipo CakePHP desde el 2007
  4. 4. Equipo Lithium desde su fundación
  5. 5. CRICAVA, la mejor compañía del mundo
  6. 6. AMO Seinfeld (...y El Eternauta)
  7. 7. ODIO Apple
  8. 8. ¡Voy a ser miramarense! Ya sé... se mueren de envidia </li></ul>
  9. 9. ¿WTF? <ul><li>¡¿¡¿¡¿¡¿¡¿ Otro framework ?!?!?!?!?! </li></ul>
  10. 10. Usemos los anteojos de Mariano PHP4 y 5.3??
  11. 11. ¿Y entonces? <ul></MalaOnda> </ul>
  12. 12. PHP 5.3 <ul>PHP 5.3 </ul>
  13. 13. PHP 5.3 <ul><li>Performance, pero ¡posta posta!
  14. 14. mysqlnd (= abran la cabeza: Mongo, Couch)
  15. 15. Late static binding
  16. 16. Namespaces
  17. 17. Funciones lambda
  18. 18. Closures (CALIENTE!)
  19. 19. Autoloaders (5.1) </li><ul><li>Pero con namespaces... ¡qué placer! </li></ul></ul>
  20. 20. El credo Lithium <ul><li>Creemos en la interoperabilidad </li><ul><li>PHP Standards Group (Symfony, Zend, Lithium) </li></ul><li>Creemos en la meritocracia </li><ul><li>A ver... Ni democracia, ni dictadura </li></ul><li>Creemos en la comunidad
  21. 21. Creemos en lo RAD </li><ul><li>Iteration-Friday.net </li></ul></ul>
  22. 22. El dream team <ul><li>Nate Abele - Ex-lead CakePHP – Lead
  23. 23. Garrett Woodworth – Ex PM CakePHP – Project Manager
  24. 24. Joël Perras – Ex Core CakePHP – Core Dev
  25. 25. Wil Sinclair – Ex Lead Zend Framework – Core Dev
  26. 26. John Anderson – Ex Doc Lead en CakePHP - Documentación Lead
  27. 27. David Persson – Ex Core CakePHP - G11 Dev </li></ul>
  28. 28. El dream team <ul><li>Sean Coates – Core PHP (Documentación)
  29. 29. Ben Ramsey – Libros, PHP Architect, fundador PHPCommunity
  30. 30. Jon Adams – Design Lead
  31. 31. Matt Harris – Core dev
  32. 32. Jeff Loiselle – Ex Core dev CakePHP - Core dev
  33. 33. Marke Hallowell – Core Dev </li></ul>
  34. 34. El dream team <ul><li>Alexander Morland – Ex promotor CakePHP - Core Dev y promotor de la comunidad
  35. 35. Y yo... Focalizado en integraciones </li><ul><li>li3_doctrine
  36. 36. li3_solar </li></ul></ul>
  37. 37. ¿Hay mujeres en la sala? <ul><li>Lithium, partner principal de PHP Women </li><ul><li>http://www.phpwomen.org/wordpress/partnerships-with-os-projects </li></ul></ul>
  38. 38. Características de Lithium <ul>El mejor framework PHP 5.3 </ul>
  39. 39. Características de Lithium <ul><li>Modularidad
  40. 40. Interoperabilidad
  41. 41. Namespaces y lambdas
  42. 42. Extensibilidad
  43. 43. Inyección de dependencia
  44. 44. Filtros
  45. 45. API sencilla y ordenada </li></ul>
  46. 46. Modularidad <ul><li>¿Querés moduralidad? ¡Ahí te va! </li></ul>
  47. 47. Modularidad <ul><li>Todo en lithium son módulos </li></ul>
  48. 48. Interoperabilidad <ul><li>¿Hay una clase Zend que te rompe el bocho, y la querés usar? ¡Animate! </li></ul>
  49. 49. Namespaces y lambdas <ul><li>Extendiendo helpers
  50. 50. Validator::add()
  51. 51. ¡Incorporá lambdas en tu código! </li></ul><ul>PHP != Java </ul>
  52. 52. Extensibilidad <ul><li>Plugins, Plugins y ¡más plugins!
  53. 53. Que google ni google... Para los vagos (como yo), un repositorio central </li></ul>
  54. 54. Extensibilidad
  55. 55. Extensibilidad <ul><li>Y ya está... usá lo que quieras, cuando quieras, donde quieras...
  56. 56. Si esto no es extensibilidad, ¿qué es? </li></ul>
  57. 57. Extensibilidad <ul><li>¿Doctrine2 es el mejor ORM del universo? </li></ul>
  58. 58. Inyección de dependencia <ul><li>Le decimos a una clase qué otras clases puede usar </li></ul>
  59. 59. Filtros <ul>Bueno ahora prepárense... ¿Callbacks? Pfff... para los dinosaurios quizás </ul>
  60. 60. Filtros <ul>Lambdas / Closures -> ¡Filtros! </ul>
  61. 61. API sencilla y ordenada <ul><li>Nombres y namespaces lógicos y sencillos
  62. 62. Menos de 3 parámetros por método
  63. 63. Object::__construct($config) </li><ul><li>Object::$_autoConfig
  64. 64. Object::$_config </li></ul><li>Chequeamos nuestro propio código </li><ul><li>lithium_qa </li></ul></ul>
  65. 65. Lithium es mucho más <ul><li>Test Suite
  66. 66. Línea de Comandos
  67. 67. Data sources para BD basadas en documentos
  68. 68. ORM basado en objetos
  69. 69. g11n
  70. 70. Autenticación
  71. 71. Sesión y Cookies
  72. 72. Autorización (1.0) </li></ul>
  73. 73. Lithium es mucho más <ul><li>Validator
  74. 74. Logging
  75. 75. Debugger
  76. 76. Parser
  77. 77. Inspector
  78. 78. Collections
  79. 79. Sockets </li></ul>
  80. 80. Andá y probalo che <ul><li>http://lithify.me
  81. 81. http://lab.lithify.me
  82. 82. #li3
  83. 83. #li3-core
  84. 84. http://marianoiglesias.com.ar
  85. 85. twitter: </li><ul><li>UnionOfRad
  86. 86. mgiglesias </li></ul></ul>
  87. 87. ¿Preguntas? <ul>Lithium Un framework que pega como piña </ul><ul>¿Pegó o no pegó? </ul>

Editor's Notes

  • 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 -&gt; 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-&gt;_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)
  • ×