Rector actualiza y refactoriza instantáneamente el código PHP de su aplicación. Puede ayudarle en 2 áreas principales:
Rector ahora admite actualizaciones de PHP 5.3 a 8.4 y proyectos importantes de código abierto como Symfony, PHPUnit y Doctrine. ¿Quieres estar constantemente en el último PHP y Framework sin esfuerzo ?
Utilice Rector para gestionar actualizaciones instantáneas por usted.
¿Tiene la calidad del código que necesita, pero le cuesta mantenerla con los nuevos desarrolladores de su equipo? ¿Quiere ver revisiones de código inteligentes incluso cuando todos los desarrolladores senior duermen?
Agregue Rector a su CI y permita que refactorice continuamente su código y mantenga alta la calidad del código.
Lea nuestra publicación de blog para ver cómo configurar la refactorización automatizada.
composer require rector/rector --dev
Hay 2 formas principales de utilizar Rector:
Para usarlos, cree un rector.php
en su directorio raíz:
vendor/bin/rector
Y modificarlo:
use Rector Config RectorConfig ;
use Rector TypeDeclaration Rector Property TypedPropertyFromStrictConstructorRector ;
return RectorConfig:: configure ()
// register single rule
-> withRules ([
TypedPropertyFromStrictConstructorRector::class
])
// here we can define, what prepared sets of rules will be applied
-> withPreparedSets (
deadCode: true ,
codeQuality: true
);
Luego simulacro Rector:
vendor/bin/rector process src --dry-run
Rector le mostrará diferencias de archivos que cambiaría . Para realizar los cambios, suelte --dry-run
:
vendor/bin/rector process src
¿Tienes curiosidad por saber cómo funciona Rector internamente, cómo crear tus propias reglas y probarlas y por qué nació Rector? Lea Rector: El poder de la refactorización automatizada, que lo llevará paso a paso a través de la configuración de Rector y cómo crear sus propias reglas.
La comunidad de Rector es poderosa gracias a los mantenedores activos que cuidan los conjuntos de Rector para proyectos particulares.
Entre sus proyectos se encuentran:
Rector es una herramienta que desarrollamos y compartimos de forma gratuita, para que cualquiera pueda automatizar su refactorización. Pero no todo el mundo tiene decenas de horas para comprender la complejidad del árbol de sintaxis abstracta a su propio ritmo. Es por eso que brindamos soporte comercial: para ahorrarle tiempo .
¿Le gustaría aplicar Rector en su código base pero no tiene tiempo para luchar con su proyecto? Contratanos para llegar más rápido.
Consulte la guía de contribuciones o vaya al repositorio de desarrollo rector/rector-src.
Puede usar la opción --debug
, que imprimirá la salida de excepciones anidadas:
vendor/bin/rector process src/Controller --dry-run --debug
O con Xdebug:
--xdebug
al ejecutar Rector vendor/bin/rector process src/Controller --dry-run --xdebug
Para ayudar con una depuración simple, Rector proporciona 2 ayudantes para imprimir nodos AST:
use PhpParser Node Scalar String_ ;
$ node = new String_ ( ' hello world! ' );
// prints node to string, as PHP code displays it
print_node ( $ node );
Rector utiliza nikic/php-parser, basado en una tecnología llamada árbol de sintaxis abstracta (AST). Un AST no conoce espacios y cuando se escribe en un archivo produce código mal formateado tanto en PHP como en anotaciones de docblock.
Rector en modo paralelo funcionará la mayoría de las veces para la mayoría de los sistemas operativos. En Windows, puede encontrar problemas que no se pueden resolver a pesar de seguir la guía paralela de solución de problemas. En tal caso, verifique si está utilizando Powershell 7 (pwsh). Cambie su terminal al símbolo del sistema (cmd) o bash para Windows.
Su proyecto necesita tener una herramienta de codificación estándar y un conjunto de reglas de formato, para que pueda hacer que el código de salida de Rector vuelva a ser agradable y brillante.
Estamos usando ECS con esta configuración.
Cuando aplica cambios a archivos con contenido PHP + HTML, es posible que deba verificar manualmente el archivo modificado después de aplicar los cambios.