In letzter Zeit höre ich in der PHP-Community oft Diskussionen über Codeüberprüfung. Ich habe mich dazu entschlossen, einen Beitrag zu leisten. Ich möchte über die Möglichkeiten sprechen, die Ihr Leben vereinfachen und die Qualität des Codes in Ihrem Projekt verbessern sollen. Es ist nicht nur für PHP relevant, ähnliche Tools, die hier beschrieben werden, gibt es auch für andere Programmiersprachen. Ich habe sie beispielsweise kennengelernt, als ich an einem Projekt auf NodeJS teilgenommen habe.
Ich möchte Tools freigeben, die die Qualität des Codes verbessern, Syntaxfehler finden, alles auf einen Codestil bringen usw.
Pre-Commit
Wenn Sie in einer Suchmaschine "pre-commit php" eingeben, erhalten Sie mehrere vorgefertigte Skripte, die den geschriebenen Code analysieren. Für git muss das Skript im Ordner ".git / hooks /" abgelegt werden. Jedes Mal, wenn Sie es festschreiben, wird es ausgeführt. Wenn Fehler gefunden werden, können Sie den Code einfach nicht in das Repository verschieben. Einige IDEs haben separate Plugins, die dasselbe tun, aber was ist, wenn Sie ein großes Team haben und jeder unterschiedliche Editoren verwendet? Und es ist einfacher, dieses Skript einmal durch Hochladen in Ihr Repository zu konfigurieren, als seine IDE für jeden Entwickler separat zu konfigurieren. Was noch wichtiger ist: In diesem Skript können Sie alle anderen Tools hinzufügen, die Sie in Ihrem Team verwenden, z. B. einen statischen Analysator (z. B. phpstan)) und / oder Unit-Tests (zum Beispiel phpunit )
Tools zur Verbesserung der Codequalität
php -l (nur Syntaxprüfung (lint)) ist eine im PHP-Kern integrierte Syntaxprüfung.
php-cs-fixer (PHP Coding Standards Fixer) - Fixiert Ihren Code auf PSR-1, PSR-2 usw. oder andere Communitys wie Symfony. Sie können Ihren (Team-) Stil auch durch Konfiguration definieren. Jene. Ihr gesamtes Team hat den gleichen Codestil.
php-cs + php-cbf (PHP CodeSniffer + PHP Code Beautifier) - Es handelt sich um zwei PHP-Skripte. Das Haupt-PHPCS-Skript, das PHP-, JavaScript- und CSS-Dateien extrahiert, um Verstöße gegen einen bestimmten Codierungsstandard zu erkennen, und das zweite PHPCBF-Skript beheben automatisch häufige Codierungsverletzungen. Ähnliches Tool wie PHP-CS-Fixer.
php-md (PHP Mess Detector) - NebenprojektPHP Depend , das das PHP-Äquivalent des bekannten Java PMD-Tools sein soll. Nimmt eine bestimmte PHP-Quellcodebasis und sucht nach mehreren potenziellen Problemen in dieser Quelle. Diese Probleme können Syntaxfehler, suboptimaler Code, zu komplexe Ausdrücke und nicht verwendete Parameter / Methoden / Eigenschaften sein.
php-cpd (PHP Copy / Paste Detector) - Kopier- / Einfügedetektor für PHP-Code. Jene. findet die gleichen Codeblöcke in verschiedenen Teilen der Anwendung, die in separate Funktionen / Methoden verschoben werden können.
Sie können tiefer in die automatisierte Codeüberprüfung eintauchen und werden wahrscheinlich viele andere interessante Tools finden.
Ausgabe
Mit den in der Entwicklungswelt verfügbaren Tools können Sie viele Routineprozesse zum Überprüfen von Code automatisieren, wodurch die Qualität um eine Größenordnung verbessert wird (da wir den Faktor Mensch ausschließen). Um dem gesamten Team mehr Vertrauen in die Verwendung dieser Tools zu geben, können Sie sie in ein Pre-Commit-Skript einfügen, das ausgeführt wird, bevor das Commit in Ihrem Quellcodeverwaltungssystem erstellt wird.