Primeras charlas del Grupo PHP Lithium Un framework que pega como piña Mariano Iglesias – Coding Ninja http://marianoigles...
Algunas cosas sobre mi... <ul><li>C -> C++ -> Java -> PHP & Python
Equipo CakePHP desde el 2007
Equipo Lithium desde su fundación
CRICAVA, la mejor compañía del mundo
AMO Seinfeld (...y El Eternauta)
ODIO Apple
¡Voy a ser miramarense! Ya sé... se mueren de envidia </li></ul>
¿WTF? <ul><li>¡¿¡¿¡¿¡¿¡¿ Otro framework ?!?!?!?!?! </li></ul>
Usemos los anteojos de Mariano PHP4 y 5.3??
¿Y entonces? <ul></MalaOnda> </ul>
PHP 5.3 <ul>PHP 5.3 </ul>
PHP 5.3 <ul><li>Performance, pero ¡posta posta!
mysqlnd (= abran la cabeza: Mongo, Couch)
Late static binding
Namespaces
Funciones lambda
Closures (CALIENTE!)
Autoloaders (5.1) </li><ul><li>Pero con namespaces... ¡qué placer! </li></ul></ul>
El credo Lithium <ul><li>Creemos en la interoperabilidad </li><ul><li>PHP Standards Group (Symfony, Zend, Lithium) </li></...
Creemos en lo RAD </li><ul><li>Iteration-Friday.net </li></ul></ul>
El dream team <ul><li>Nate Abele -  Ex-lead CakePHP – Lead
Garrett Woodworth – Ex PM CakePHP – Project Manager
Joël Perras – Ex Core CakePHP – Core Dev
Wil Sinclair – Ex Lead Zend Framework – Core  Dev
John Anderson – Ex Doc Lead en CakePHP - Documentación Lead
David Persson – Ex Core CakePHP - G11 Dev </li></ul>
El dream team <ul><li>Sean Coates – Core PHP (Documentación)
Ben Ramsey – Libros, PHP Architect, fundador PHPCommunity
Jon Adams – Design Lead
Upcoming SlideShare
Loading in …5
×

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

2,730 views

Published on

Charla de Mariano Iglesias titulada "Lithium - Un framework que pega como piña" en las Primeras Charlas del Grupo PHP Argentina

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,730
On SlideShare
0
From Embeds
0
Number of Embeds
207
Actions
Shares
0
Downloads
20
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • 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)
  • 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>

    ×