La comunidad de PHP ha evolucionado muchísimo en los últimos años, no pareciéndose en nada a las versiones anteriores. No solo ha cambiado mucho, si no que cada vez cambia más frecuentemente. Y cuando hablo de comunidad, me refiero tanto al lenguaje, como a las personas que lo utilizan, así como a las herramientas que nacen alrededor.
Hoy vengo a hablaros precisamente de herramientas. No puede ser que programes PHP con las mismas herramientas que utilizabas hace 3 años. Haber actualizado tu IDE a la última versión es un comienzo, pero no es suficiente. Estás perdiendo la posibilidad de trabajar más cómodamente y ser más productivo, pudiéndote centrar en lo que realmente importa: crear cosas.
De entre todas las herramientas que han nacido en los últimos años, voy a hacer hincapié en las que para mí son las más útiles, y ya no podría vivir sin ellas.
Estas herramientas son:
Boris
Cuando empecé a aprender Python, una de las cosas que más me sorprendió fue que para dar los primeros pasos con el lenguaje, no había que crear nuevos ficheros y ejecutarlos. Sencillamente ibas a un intérprete por línea de comandos y programabas directamente allí. Adiós complicaciones de cómo ejecutar lo que acabas de escribir en otro fichero, o de como incluir el fichero A en el fichero B. Todo eso fuera para poder centrarte en lo que realmente quieres: aprender el lenguaje.
Este intérprete se conoce comúnmente como un REPL: Read-Eval-Print-Loop . PHP trae por defecto con un modo interactivo para poder lanzar comandos, que puedes utilizar así
php -aInteractive shellphp > 1 + 3;php > var_dump( 1 + 3 );int(4)php > function plusTwo( $number ){php {php { return $number + 2;php { }php > echo plusTwo( 3 );5php >
pero es bastante limitado. No printa automáticamente el resultado de las expresiones ejecutadas, por tanto tienes que manualmente hacer echo’s ovar_dumps. Además, si se produce un fatal error, el modo interactivo terminará y perderás el estado actual. Esto no ocurriría con Boris . Os dejo el gif con la demo de Boris , porque una imagen vale más que mil palabras (sobretodo si es animada):
LadyBug
Calidad que sale desde nuestro país. Raúl Fraile se ha currado un sustituto para el var_dump() nativo de PHP que te dejará ojiplático. Se llama LadyBug y después de verlo te preguntarás cómo has sido capaz de interpretar el output del var_dump de PHP sin quedarte ciego. Para utilizarlo solo tienes que instalarlo via Composer, y utilizar la función ladybug_dump() en vez de var_dump() cuando quieras mostrar el valor de algo por pantalla. En su página de Github hay bastantes ejemplos de cual sería el output por pantalla, pero quiero poner uno aquí mismo:
Eso es el output cuando quieres pintar un objeto por pantalla y ver qué contiene. Fíjate que además de ponerte el contenido de las propiedades del objeto, como hace var_dump(), te muestra información de la clase del objeto, como donde está definida, constantes de clase e incluso los métodos y su visibilidad mediante unos iconos. Todo esto está genial, pero queda a la sombra de lo que me hubiese ahorrado horas de búsqueda en mis años iniciales con PHP: te dice en qué línea has llamado a la función ladybug_dump(). ¿Quién no se ha pasado un buen rato buscando dónde habías puesto el var_dump()? ¿Nadie? ¿Solo yo? Ok, vale.
Composer
Si todavía no lo conoces es que has vivido debajo de una piedra los últimos 2 años. No me extenderé mucho: solo utilízalo. En serio. Aquí tienes la documentación .
Bonus track: Vagrant y Puphet
Vagrant no es una herramienta para PHP específicamente, pero en el mundo de muchos gigas de RAM en el que vivimos, trabajar con máquinas virtuales locales se está convirtiendo en un standard. El hecho de que con un simple archivo de configuración puedas tener el mismo entorno que tu compañero, es increíble.
Hace 2 años que hice el curso sobre Puppet , y aunque no considero que haya sido perder el tiempo ni mucho menos, gracias a herramientas como Puphet , cada vez es menos necesario saber las entrañas de muchas cosas. Puphet es una abstracción de Puppet orientada a entornos PHP, de tal forma que como si un catálogo se tratase, vas eligiendo las tecnologías y configuraciones que quieres que tenga tu entorno de desarrollo. Con un par de clicks puedes elegir todo lo que necesites. Esto generará un archivo de configuración que será leído por Vagrant para moldear tu máquina virtual. Así de simple. Olvídate de como se instalan y configuran un montón de cosas: un par de clicks y listo. Si quieres cosas más avanzadas, tendrás que saber cómo funcionan, pero para el desarrollador PHP medio, esto es más que suficiente.
Conclusión
Además de estas herramientas, no olvides utilizar un IDE que te sea cómodo, y si no has probado PHPStorm , te lo recomiendo.
Así que ya sabes: utiliza Puphet y asegúrate de crear una máquina virtual que contenga composer, ladybug y boris, y fabrícate el entorno de desarrollo perfecto. No puedes programar igual que lo hacías hace 3 o 5 años. Esto va demasiado rápido como para permitírtelo.
Y tú, ¿usas alguna herramienta interesante?