Nette Coding Standard
Coding Standard formatea automáticamente su código PHP según el estándar de codificación de Nette, desde la indentación y las llaves hasta los espacios y la ordenación de las importaciones.
Por debajo combina dos herramientas estándar del sector, PHP CS Fixer y PHP CodeSniffer, que vienen preconfiguradas, así que no tiene que configurar nada usted mismo.
Instalación
Instale la herramienta globalmente con Composer:
composer global require nette/coding-standard
y asegúrese de que el directorio global de binarios de vendor está en
su variable de entorno $PATH.
Uso
La herramienta proporciona dos comandos. El comando check solo informa de las infracciones, mientras que
fix las repara automáticamente:
ecs check
ecs fix
Sin ningún argumento analiza los directorios src/ y tests/; también puede pasarle una o varias
rutas propias, por ejemplo ecs check app bin.
Antes de ejecutar el corrector por primera vez, no olvide hacer una copia de seguridad de sus archivos.
Versión de PHP
La herramienta soporta PHP de 8.0 a 8.5 y aplica las reglas de forma incremental según la versión. Detecta la versión
automáticamente del composer.json de su proyecto, pero también puede indicarla explícitamente con la opción
--preset:
ecs check --preset php81
Reglas propias
Puede ajustar las reglas para su proyecto. Para cambiar las reglas de PHP CS Fixer, cree un archivo ncs.php en la
raíz del proyecto:
<?php
return [
'strict_comparison' => false,
];
Para cambiar las reglas de PHP CodeSniffer, cree un archivo ncs.xml. No hace falta que referencie el preset de la
versión (se combina con él automáticamente), y puede usar $presets/ para incorporar cualquier preset incluido:
<?xml version="1.0"?>
<ruleset name="MyProject">
<!-- activa las importaciones use function/const -->
<rule ref="$presets/optimize-fn.xml"/>
<!-- desactiva una regla -->
<exclude name="SlevomatCodingStandard.TypeHints.ReturnTypeHint"/>
</ruleset>
Ambos archivos se descubren automáticamente y sus reglas tienen prioridad sobre el preset. Para una anulación puntual que no
quiera commitear, pase un archivo adicional con --config-file (.php para el fixer, .xml
para el sniffer).
Integración continua
En una pipeline de CI, instale la herramienta como proyecto y ejecútela desde allí:
- run: composer create-project nette/coding-standard temp/coding-standard
- run: php temp/coding-standard/ecs check