Nice programing

PHP 코드 리팩토링을위한 도구

nicepro 2020. 10. 30. 20:59
반응형

PHP 코드 리팩토링을위한 도구


PHP 코드 리팩토링 (변수 이름 변경, 메서드 추출, 메서드 참조 찾기 등)을 지원하는 도구가 있습니까? 감사합니다.


Scisr 는 PHP 용 간단한 독립형 리팩토링 도구입니다.

나는 이것이 오래된 질문이라는 것을 알고 있지만 PHP 리팩토링 도구의 가장 좋은 요약 중 하나이기 때문에 새 프로젝트를 목록에 추가 할 것이라고 생각했습니다.

저의 많은 디자인 목표는 여기에 언급 된 다른 항목의 부적절 함에서 비롯되었습니다. 특정 IDE에 묶여 있거나 테스트 관행을 지시하거나 전체적인 수작업이 필요합니다. Scisr에서 전반적으로 더 나은 경험을 만들고 싶습니다. 설치 및 실행이 간단합니다. 영리하려고하지만 너무 영리 하지는 않습니다 . 자동화에 가장 적합한 작업을 수행합니다. 즐겨!


rephactor 는 자동 리팩토링 도구입니다. 여전히 약간 불완전하지만 몇 가지 기본적인 리팩토링이 있습니다.

그렇지 않으면 좋은 테스트 스위트가 실제로 리팩토링을위한 최고의 도구입니다.


Jetbrains의 PHPStorm은 리팩토링을 지원합니다. http://www.jetbrains.com/phpstorm/index.html

Rename 리팩토링은 파일, 함수, 상수, 클래스, 속성, 메서드, 매개 변수, 로컬 및 전역 변수에 대해 작동합니다. 또한 다음과 같은 리팩토링을 사용할 수 있습니다.

  • 변수 소개
  • 상수 소개
  • 분야 소개
  • 인라인 변수

그리고 그들은 오픈 소스 프로젝트에 대한 무료 라이센스도 제공합니다!


NetBeans IDE에는 일부 리팩토링 기능이 있지만 항상 작동하지 않는 것 같습니다. 그러나 초기 PHP 액세스와 함께 6.1을 사용하고 있습니다. 나는 6.5가 PHP로 더 나은 리팩토링 기능을 가질 것으로 기대합니다.


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

PHP 리팩토링 브라우저는 좋은 책에 설명 된 리팩토링 브라우저에 대한 최신 버전 입니다 . 약간의 도움을받을 수 있지만 (기여해주세요) 몇 가지 일반적인 리팩토링을 지원합니다.

작성 시점에서 브라우저는 다음을 지원합니다.

  • 추출 방법
  • 로컬 변수 이름 바꾸기
  • 로컬을 인스턴스 변수로 변환
  • 클래스 및 네임 스페이스 이름 바꾸기
  • 사용 설명 최적화 (PHP 관련)

실제로 작동하는 SublimeText 플러그인이 있습니다. 새 코드를 볼 때 코드베이스를 처리하는 데 도움이되도록 이러한 간단한 리팩토링 중 일부를 적용합니다.


개인적으로 PHPEclipse IDE를 기본 개발 도구로 선호합니다 . 그러나 나는 거기에서 리팩토링하는 기본적인 "프로젝트의 모든 곳에서 교체"가 정말 그리워요.

그러나 매우 간단한 find / sed 명령으로 쉽게 해결할 수 있습니다.

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

따라서이를 지능적으로 사용하면 참조를 찾고, 이름을 바꾸고, 제거하고, 소스 코드로 모든 종류의 조작을 할 수 있습니다.

BTW :이 모든 매개 변수와 속성을 기억할 수도 없습니다. 한 번 입력 한 다음 reverse-i-search를 통해 호출하면됩니다 .

도움이 되었기를 바랍니다.


아마도 리팩토링의 개념에 여전히 익숙해지기 때문일 수 있지만 도구가 나를 위해하는 것을 좋아하지 않습니다.

저는 여전히 대부분의 리팩토링을 수동으로 수행하는 것을 선호합니다. 왜냐하면 속도를 늦추고 제가 무엇을 왜 움직이는 지 정말로 생각하게하기 때문입니다.


여전히 내가 가장 좋아하는 리팩토링 도구는 Total Commander 의 초고속 파일 검색 과 결합 된 EditPlus 입니다 . (힌트 : Alt + F7) 교체되는 위치와시기를 완전히 제어하고 싶다는 Mark Biek의 답변에 전적으로 동의합니다.

리팩토링을해야 할 때마다 내장 기능으로 검색하거나 선택하여 변경하려는 파일의 전체 사령관 목록을 생성 한 다음 모두 EditPlus로 드래그합니다.

Editplus는 일반 텍스트 일치, 정규식 일치 또는 여러 줄 일치를 사용하여 현재 파일, 선택 항목 또는 열려있는 모든 파일을 검색하고 바꿀 수 있습니다 . 정말 모든 권한을 부여합니다. :)

또한 코드 리팩토링에 유용한 것은 EditPlus의 매크로 레코더입니다 (Ctrl + Q는 매크로 1-9 기록을 시작하고 Alt + 1-9는 매크로 재생).

일단 익숙해지면 코드를 통해 변수, ctrl + shift + (home || end || 화살표 키)를 검색하고, 삭제, 복사 / 붙여 넣기 및 좋아하는 키보드 마법사를 사용할 수 있다는 것을 알고 있습니다. 예를 들어 CSV 파일을 30 초 이내에 SQL 쿼리로 변환합니다.


Zend Studio는 약간 리팩터링 할 수 있습니다 .....


Netbeans 6.5에서는 PHP에 대한 리팩토링 지원이 없지만 향후 버전에서 제공 될 예정입니다.

PDT eclipse 플러그인도 리팩토링을 지원하지 않습니다.

Aptana는 리팩토링도 지원하지 않습니다. 나는 작동하는 정의로 이동할 수 없었다.

나는 현재 검색 및 바꾸기를 사용하게됩니다. 나도 최소한 기능 지원의 이름을 바꾸고 싶습니다.


나는 IDE Delphi for PHP가 2009 년 초에 예정된 코드 명 Crocodile에서 리팩토링 기능을 가질 것이라고 읽었습니다. 자세한 내용은 이 링크 를 참조하십시오.


IntelliJ의 Web IDE를 사용해보십시오. 현재 EAP 단계 (알파 / 베타)에 있지만 몇 달 동안 유일한 IDE로 사용하므로 안정적이고 매우 좋습니다.


리팩토링 엔진이 작동하는 모습을 볼 수있는 PHP 용 Delphi의 다음 릴리스에 대한 기사를 방금 게시했습니다.

http://blogs.embarcadero.com/joseleon/2010/06/09/delphi-for-php-next-release-early-preview-15-refactoring/


Eclipse 용 PDT는 몇 가지 기본 리팩토링을 지원합니다 (내가 알고있는). 클래스 이름을 변경하고 참조 될 때 자동으로 이름을 바꿀 수 있으며 파일을 이동하고 포함 / 요구 참조도 변경 될 수 있다고 생각합니다.


As far as I know, the only IDEs that has any significant Refactoring support for PHP are Zend Studio from the makers of PHP and the Eclipse PHP plugin. Though the features are very basic. Nothing that I know of has the features of products like Resharper for C# etc.

참고URL : https://stackoverflow.com/questions/19758/tools-for-php-code-refactoring

반응형