php refactoring

Herramientas para la refactorización de código PHP



refactoring (15)

¿Hay alguna herramienta que soporte la refactorización del código PHP (renombrar variables, extraer métodos, encontrar referencias de métodos, ...)? Gracias.


Aún así, mi herramienta de refactorización favorita es la buena de EditPlus en combinación con la búsqueda de archivos súper rápida de Total Commander . (Sugerencia: Alt + F7) Estoy totalmente de acuerdo con la respuesta de Mark Biek de que desea tener control total sobre qué se reemplaza dónde y cuándo.

Cada vez que tengo que hacer una refactorización, creo una lista en el comandante total de los archivos que quiero alterar ya sea buscando con la función incorporada o simplemente seleccionándolos, y luego los arrastro a EditPlus.

Editplus puede buscar y reemplazar a través del archivo actual, una selección o todos los archivos abiertos usando la coincidencia de texto normal, la coincidencia de expresiones regulares o la coincidencia de líneas múltiples. Realmente te da un control total :)

Además, lo que resulta útil para la refactorización de código es la Grabadora de macros de EditPlus (Ctrl + Q para iniciar la grabación de la macro 1-9 y Alt + 1-9 para reproducir una macro).

Una vez que te acostumbras, sabes que puedes simplemente buscar una variable, ctrl + shift + (home || end || teclas de flecha) a través de tu código, eliminar, copiar / pegar y usar toda esa magia del teclado para me gusta, por ejemplo, convierta un archivo CSV en un grupo de consultas SQL en 30 segundos.



El NetBeans IDE tiene alguna capacidad de refactorización, pero no siempre parece funcionar. Sin embargo, estoy usando 6.1 con acceso temprano a PHP. Espero que 6.5 tenga una mejor capacidad de refactorización con PHP.


Leí que el IDE Delphi para PHP tendrá capacidades de refactorización en el lanzamiento con el nombre en código Crocodile, programado para principios de 2009. Vea este enlace para más detalles.


No existe soporte de refactorización para PHP en Netbeans 6.5, aunque viene en una versión futura.

El plugin de eclipse de PDT tampoco admite refactorización.

Aptana tampoco admite la refactorización. No pude hacer que la definición de ir a trabajar tampoco.

Termino usando búsqueda y reemplazo actualmente. Yo también me gustaría al menos la función de cambio de nombre compatible.


PDT para Eclipse admite algunas refactorizaciones básicas (que yo sepa). Puedes cambiar el nombre de las clases y hacer que cambien de nombre automáticamente cuando se les haga referencia, y creo que incluso puedes mover archivos y cambiar sus referencias de inclusión / requerimiento.


PHPStorm de Jetbrains admite refactorización, http://www.jetbrains.com/phpstorm/index.html

Renombrar refactorización funciona para archivos, funciones, constantes, clases, propiedades, métodos, parámetros y variables locales y globales. También están disponibles las siguientes refactorizaciones:

  • Introducir variable
  • Presentar constante
  • Introducir campo
  • Variable en línea

¡y también ofrecen algunas licencias gratuitas para proyectos de código abierto!


Personalmente prefiero PHPEclipse IDE como mi principal herramienta de desarrollo. Pero realmente extraño la refactorización básica "reemplazar en todas partes en el proyecto" allí.

Pero el comando find / sed muy simple puede resolverlo fácilmente:

find . -type f -name "*Controller.php" -print0 / | xargs -0 sed -i ''s/string1/string2/g''

Entonces, al usar esto inteligentemente, puede encontrar referencias, renombrar, eliminar y hacer cualquier tipo de manipulación con el código fuente.

Por cierto: ni siquiera puedes recordar todos estos parámetros y atributos, solo escríbelo una vez y luego llámalo a través de reverse-i-search .

Espero que esto ayude.


Por lo que yo sé, los únicos IDE que tienen un soporte de refactorización significativo para PHP son Zend Studio de los fabricantes de PHP y el plugin de Eclipse PHP. Aunque las características son muy básicas. Nada que yo sepa tiene las características de productos como Resharper for C #, etc.


Pruebe Web IDE desde IntelliJ. Ahora está en la etapa EAP (alfa / beta), pero lo uso como el único IDE durante varios meses, por lo que es estable y muy bueno.


Quizás es solo porque aún me siento cómodo con los conceptos de refactorización, pero no me gusta tener una herramienta que lo haga por mí.

Todavía prefiero hacer la mayoría de las refacciones manualmente porque me obliga a reducir la velocidad y realmente pensar en lo que estoy moviendo y por qué.


Zend Studio puede refactorizar un poco .....


Scisr es una herramienta de refactorización simple e independiente para PHP.

Sé que esta es una vieja pregunta, pero ya que es una de las mejores versiones de las herramientas de refactorización de PHP, pensé en agregar mi nuevo proyecto a la lista.

Muchos de mis objetivos de diseño surgen de las insuficiencias de otros elementos mencionados aquí: están vinculados a ciertos IDEs, o intentan dictar sus prácticas de prueba, o requieren un montón de mano de obra manual. Tengo la esperanza de crear una mejor experiencia general en Scisr. Es simple de instalar y ejecutar. Intenta ser inteligente, pero no demasiado inteligente. Hace las tareas que he encontrado para prestarse mejor a la automatización. ¡Disfrutar!


rephactor es una herramienta de refactorización automática. Todavía es un poco incompleto, pero tiene algunas refactorizaciones básicas.

De lo contrario, un buen banco de pruebas es realmente la mejor herramienta para refactorizar, puede tener.


https://github.com/QafooLabs/php-refactoring-browser

El navegador de refactorización de PHP es una versión más reciente del navegador de refactorización descrito en el libro bueno . Podría necesitar algo de ayuda (por favor contribuya), pero tiene soporte para varias refactorizaciones comunes.

A partir de la escritura, el navegador admite:

  • Método de extracto
  • Cambiar el nombre de la variable local
  • Conversión de variable local a instancia
  • Renombrar clases y espacios de nombres
  • Optimizar estados de uso (específicos de PHP)

Hay un complemento SublimeText que realmente funciona. Cuando estoy buscando un nuevo código, aplicaré algunas de estas sencillas refactorizaciones para ayudarme a manejar la base de código.