Niezbędnik: narzędzia dla PHP

Postanowiłem zebrać w jednym miejscu narzędzia dla PHP, z których korzystam przy każdym projekcie lub czasami się nimi wspomagam.

Na początku wspomnę, że każdy projekt posiada własne repozytorium w Subversion lub GIT. Jest to nieodłączny element każdego projektu, nawet jeśli pracuję nad nim sam. W każdym momencie możemy stworzyć odgałęzienie (branch) lub cofnąć zmiany.
A teraz konkretne narzędzia dla PHP.

PHPUnit

Mam nadzieję, że nie trzeba tej biblioteki komentować. PHPUnit jest to pakiet do unit testów dla projektów PHP. Przy jego pomocy w bardzo prosty sposób możemy testować poprawność działania poszczególnych rozwiązań.

phpDocumentor

Służy do tworzenie automatycznej dokumentacji projektu. Na podstawie odpowiednio komentowanych klas, metod czy funkcji generuje gotową dokumentację dla programistów.

PHP Code Sniffer

Zaawansowane narzędzie do wykrywania w kodzie PHP, JS, CSS naruszeń określonych standardów kodowania. Dzięki phpcs mamy dodatkową pewność, że nikt nie robi rażących byków w kodzie.

phpUnderControl

Jest to aplikacja WWW odpowiedzialna za Continuous Integration (CI). Podczas każdej zmiany w repozytorium phpUnderControl sprawdza m.in. pod kątem unit testów czy przypadkiem, ktoś nie popsuł aplikacji swoimi zmianami. Dodatkowo posiada integrację z phpcs i phpDocumentor.
Jest to dodatkowa aplikacja do kombajnu CruiseControl, który jest stworzony w Javie.

Dodatkowo polecam kilka mniejszych narzędzi, które mogą okazać się przydatne podczas refaktoryzacji kodu i nie tylko:

Copy/Paste Detector

phpcpd zainstalujemy za pomocą PEAR z kanału PHPUnit. Jak sama nazwa wskazuje aplikacja służy do odnalezienia skopiowanych fragmentów w kodzie projektu. Sposób użycia jest banalny:
phpcpd /my_project/trunk

Dead Code Detector

phpdcd zainstalujemy za pomocą PEAR z kanału PHPUnit. Narzędzie szczególnie przydatne w przypadku, gdy podczas trwania projektu specyfikacja ulega zmianie. Niepostrzeżenie może się okazać, że wiele metod, lub nawet klas nie jest przez nas używanych. W wykryciu takich właśnie miejsc pomoże nam phpdcd.

PHP Mess Detector

PHPMD jest swego rodzaju kombajnem, który ma nam służyć pomocą w celu znalezienia: możliwych błędów, niedokończonego kodu, skomplikowanych wyrażeń oraz niewykorzystywanych parametrów, metod i właściwości w naszym projekcie.

Mam nadzieję, że podana lista pomoże Wam w skupianiu się na rozwiązaniach, a nie marnowaniu czasu na szukaniu błędów.

Część kolejna: edytor dla PHP