Symfony. Configurando Easy Coding Standard y PHPStan

Aprende a configurar estos analizadores de código para asegurar un mismo estilo en los archivos y realizar comprobaciones estáticas sobre tu código

  • PHPStan (PHP Static Analyzer) es un analizador estático de código, lo cual nos permite comprobar que la aplicación guarda un tipado coherente, la existencia de los métodos y propiedades de los objetos y vigilar que cumplimos con las principales buenas prácticas.

Instalación de EasyCodingStandard

La instalación de EasyCodingStandard la realizaremos mediante composer:

composer require symplify/easy-coding-standard --dev
  • En la línea 15 establezco que en el momento en que los argumentos de una función ocupan varias líneas, cada uno de ellos aparezca en una nueva línea.
  • Y finalmente en la 19 establezco que las llamadas a determinadas funciones nativas del lenguaje (por ejemplo, in_array ) vayan precedidas de una barra para optimizar su invocación ( \in_array ).
"scripts": {
...
"cs": [
"vendor/bin/ecs check --ansi --no-interaction"
],
"cs-fix: [
"vendor/bin/ecs check --fix --ansi --no-interaction"
]
}
  • composer cs-fix para visualizar y automáticamente dejar que la librería arregle los errores detectados.

Instalación y configuración de PHPStan

La otra herramienta que instalaremos será PHPStan, un analizador de código estático con la siguiente descripción:

composer require --dev phpstan/phpstan
composer require --dev phpstan/extension-installer
  • Y del mismo modo que hicimos con EasyCodingStandards, podemos configurar las rutas que queremos analizar y aquellas que queremos excluir.

PHPStan Symfony

La primera de ellas es phpstan-symfony:

composer require --dev phpstan/phpstan-symfony

PHPStan Doctrine

A continuación instalaremos la librería phpstan-doctrine, para añadir una serie de comprobaciones extra que necesitaremos si estamos empleando este ORM:

composer require --dev phpstan/phpstan-doctrine
<?php declare(strict_types = 1);use App\Kernel;require dirname(__DIR__) . '/../config/bootstrap.php';
$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$kernel->boot();
return $kernel->getContainer()->get('doctrine')->getManager();
@extends \Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository<EntityName>

Invocación de PHPStan

Para invocar PHPStan haremos lo mismo que con la librería EasyCodingStandard: añadir un script al archivo composer.json para poder invocarlo directamente desde línea de comandos:

"scripts": {
...
"stan": [
"vendor/bin/phpstan analyse --ansi --no-interaction"
],
}

Conclusiones

Aunque PHP esté tendiendo cada vez más a ser un lenguaje tipado, este tipo de herramientas son un añadido muy interesante para realizar determinadas comprobaciones en nuestro código y vivir algo más tranquilos.

¿Quieres recibir más artículos como este?

Si te ha gustado este artículo te animo a que te suscribas a la newsletter que envío cada domingo con publicaciones similares a esta y más contenido recomendado: 👇👇👇

Entre paseo y paseo con Simba desarrollo en Symfony y React

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store