¿Cómo ser un supersaiyan en PHPStorm? La verdad es que tener un buen IDE para desarrollar es bueno, pero mejor aún es sacarle partido y tenerlo «tuneado» para que nuestra productividad escribiendo código sea mucho mayor. El hacer tareas repetitivas, hace que perdamos la concentración y el foco en lo que estamos haciendo por eso vamos a recopilar aquí una serie de trucos y mejoras que podemos llevar a cabo para desarrollar más rápido.
Me gusta programar, eso es una de las razones por las que estoy al día y escribo este blog, además me encantan¡ conocer teclas rápidas, atajos y trucos que hacen mi día a día más sencillo. Lo que no me gusta hacer son tareas repetitivas, ni tener que indentar a mano ficheros interminables. Por eso intento sacarle el máximo partido a PHPStorm, mis compañeros piensan que soy un «comercial-encubierto» de PHPStorm y que gano un porcentaje de cada instalación 😉
Formateado de código
Aunque PSR-2 no es un estándar específico, sino son una serie de recomendaciones de estilo a la hora de escribir código. Me gusta utilizar este «formateado de código». Eso sí, depende del proyecto, ya que si hay un estándar definido en el proyecto en el que estemos trabajando lo mejor es seguirlo. Sobre todo para no pegarte tortas con tus compañeros haciendo «merges».
Establecer PSR-2 en PHPStorm
Para configurar PSR-2 en PHPStorm vamos a PHPStorm -> preferences
Luego navegamos hasta Editor -> Code Style -> PHP y elegimos PSR-2
PSR-2
Normalmente con esto ya podemos formatear nuestro código utilizando CMD+Alt+L y el código quedará listo. Una manera de automatizar esto es en cada commit es marcando la opción Reformat Code en la ventana del commit.
Esto tiene un peligro, tenemos que ser cuidadosos con los commits. Sobre todo el los proyectos legacy, donde un formateo de código automático puede jugarnos una mala pasada. Por lo que tenemos que tener mucho ojo cuando marquemos esta opción en este tipo de proyectos.
Tuneando los templates de PHPStorm
Por defecto, cuando creamos una clase en PHPStorm, esta no viene formateada como PSR-2 por lo que tenemos que formatearla una vez que está creada. Otra opción es cambiar el template que genera la dicha clase para ponerlo a nuestro gusto
Para ello PHPStorm -> preferences, luego navegamos hasta Editor -> Live and Code Templates allí en la pestaña de files podemos «acomodar» nuestro template para que cumpla las normas de estilo que nosotros queramos o estén definidas en nuestra empresa.
De la misma forma aquí podemos editar las cabeceras, los comentarios por defecto o como se generan las funciones.
Utilizando PHP-CS-FIXER
PHP-CS-Fixer es una herramienta que nos ayuda a mantener el estilo de código en nuestros proyecto. Si con PHPStorm no tenemos suficiente, o queremos utilizar una herramienta que no sea dependiente del IDE para formatear el código podemos utilizar PHP-CS-Fixer. Así ya no habrá excusas de nadie por utilizar un estilo de código estándar en los proyectos en los que trabajemos.
Lo primero será instalarlo, en mi caso lo tengo como dependencia global de composer
$ ./composer.phar global require FriendsOfPHP/PHP-CS-Fixer
Y después configurarlo, para ello PHPStorm -> preferences, luego navegamos hasta Tools -> External Tools y añadimos una nueva tool con la siguiente configuración
- Program: Ruta hasta el php-cs-fixer /Users/JesusLC/.composer/vendor/bin/php-cs-fixer
- Parameters: parametros de entrada fix FileDir –level=psr2
- Working Directory: ProjectFileDir
Una vez hecho esto, solo tenemos que ir al keymap y añadir un atajo para ejecutarlo de manera eficiente en mi caso he elegido CMD+Alt+L+Ñ ya que está al lado de CMD+Alt+L que es el keymap de formatear.
Creando Templates
Antes hemos visto como modificar los templates existentes para adecuarlos a PSR-2, también podemos crear atajo para crear funciones. Os pongo un ejemplo: Normalmente utilizo lo notación @test
para crear test con PHPUnit. Crear la función y después ponerle la anotación es un poco tedioso, así que podemos configurar PHPStorm para que cuando escribo test y luego le doy a TAB PHPSTorm cree la firma de la función.
Para hacer esto que cuento (al principio parece «magia», pero cuando nos acostumbramos a utilizarlo es genial) vamos a PHPStorm -> preferences, luego navegamos hasta Editor -> Live template y añadimos una nuevo.
- Abbreviattion: test
- Template text:
/** @test */
public function $NAME$()
{
$END$
}
clicamos con el botón derecho encima de test, abrimos el submenu change context y chequeamos PHP
File Watchers: Ejecutando los tests más rápido todavía
Seguro que si ya has leído los post anteriores sobre PHPStorm, seguro que has memorizado los atajos de teclado para ejecutar test, estos a veces se hacen un poco difíciles (Ctrl + shift + Fn + F10) y no nos acordamos a veces de ejecutar los tests. Lo mismo pasa con compilar los CSS o minimizar los ficheros Javascript. Para estas tareas podemos configurar File Watchers que nos ayudarán a que cada vez que se modifique y guardamos un test por ejemplo, se ejecute para saber si sigue verde. Así el flujo de TDD será mucho más «fino» y no tendremos distracciones, ni cambios de contextos.
Creando un file watcher para ejecutar los tests de PHPUnit
Para ejecutar los tests de PHPUnit cada vez que se guardamanos a PHPStorm -> preferences, luego navegamos hasta Tools -> File Watcher y añadimos una nuevo.
- Name: PHPUnit Watcher
- File Type: PHP
- Scope: Escogemos … y ponemos como patrón `file:tests/.
- Program: PhpExecutable
- Arguments: vendor/bin/phpunit –configuration phpunit.xml FileDirRelativeToProjectRoot/FileName
- Working Directory: ProjectFileDir
Con esto cada vez que pulsemos Guardar (CMD + S) se ejecutarán los tests y si fallan nos mostrará el terminal, así podremos estar (si todo está verde) tranquilos pensando en que test escribir después.
Plugins
Existen multitud de plugins para PHPStorm que nos harán más sencillo el desarrollo. Aquí os dejo unos cuantos de los que utilizo habitualmente para desarrollar
PHP composer.json support
Este plugin añade autocompletado a nuestro composer.json, así podremos saber justo cuando estamos escribiendo que versiones tenemos disponibles de la librería que estamos añadiendo.
composer
Git-flow integration
Ya hemos hablado de git-flow y para PHPStorm existen un plugin que hace que nos podamos olvidar del terminal, este plugin simplifica todos los comandos de git-flow, eso sí es necesario tener instalado gitflow
Una cosa importante es que por defecto no hace push en las ramas y tendremos que hacerlo nosotros. Aunque puede configurarse esta opción, por defecto está desactivada, por lo que puede llevarnos a tener un poco de lío al principio.
PHPUnit code coverage
Este plugin está genial para proyectos legacy. Nos marca con colores que partes del código han sido ejecutadas por los tests y esta funcionalidad es estupenda para saber si hemos pasado por todas las ramas de un if o hemos ejecutado todas las rutas de un código complicado.
ignore
Con este plugin podremos crear archivo de .gitignore de una manera sencilla. Tenemos templates definidos que podemos utilizar, por ejemplo si utilizamos Symfony podemos crear un git ignore con todas las carpeta y ficheros que no queremos tener en git.
Conclusiones
Existen multitud de plugins, herramientas y atajos de teclado para que seamos más productivos y no perdamos tiempo en tareas repetitivas. Normalmente al principio, cuando empezamos a probar estas nuevas técnicas hacen que perdamos un poco de tiempo investigando y acomodándonos, pero cuando ya tenemos todo configurado seguramente ganemos muchísimo.
Es posible desarrollar código con tan solo un editor de texto, pero cuando probamos un IDE con autocompletado todo parece mágico. Lo mismo pasa con todos estos atajos, podemos vivir sin ello, pero cuando los probamos vemos que todo se hace mucho más fácil. Y tú, ¿que atajos tienes? ¿hay templante que te ayude? ¿algún plugin que utilices que sea vital?
2 comentarios en “Sacando partido a PHPStorm”