Code-Refactoring unter Verwendung von Composer- und PHP-Codequalitätsstandards

WBOY
Freigeben: 2023-06-19 20:42:01
Original
1389 Leute haben es durchsucht

Mit der Zeit, wenn das Projekt immer wieder iteriert und sich verändert, werden die meisten Softwareentwickler irgendwann das Gefühl haben, dass der Code, den sie schreiben, in einem chaotischen Zustand ist. Diese Codes sind schwer zu lesen, zu warten, zu testen und zu erweitern, was bei der späteren Entwicklung große Probleme mit sich bringt.

Softwareentwicklung ist eine Kunst und beinhaltet auch viel Wissenschaft und Technologie. Bei der Erstellung und Pflege einer großen Codebasis müssen wir einige praktikable Methoden finden, um die Lesbarkeit und Wartbarkeit des Codes aufrechtzuerhalten. In diesem Artikel wird erläutert, wie Sie mithilfe von Composer- und PHP-Codequalitätsstandards Code umgestalten und die oben genannten Probleme lösen können.

Was ist Composer?

Composer ist ein Paketmanager in PHP, der JSON-Dateien zur Konfiguration verwendet und Abhängigkeiten von Quellen wie Packagist herunterlädt.

In der Vergangenheit haben wir möglicherweise die Methode des manuellen Herunterladens des Bibliothekscodes verwendet. Dies bereitet uns jedoch nur noch mehr Kopfschmerzen, da wir die Abhängigkeiten und Dateispeicherorte manuell im Auge behalten müssen. Composer soll dieses Problem lösen.

Mit Composer müssen wir nur eine Datei „composer.json“ im Stammverzeichnis des Projekts erstellen, einschließlich des Namens und der Version der Bibliothek, von der das Projekt abhängt:

{
    "require": {
        "vendor/library": "1.0.0"
    }
}
Nach dem Login kopieren

Verwenden Sie den Befehl „composer install“, um alle Abhängigkeiten automatisch herunterzuladen das Projektelement.

Composer kann Abhängigkeiten über einen speziellen „Autoload“-Mechanismus laden, sodass wir diese Bibliotheken flexibel in unserem Code verwenden können.

Allgemeine Composer-Befehle:

  • Composer-Installation: Alle Abhängigkeiten in der lokalen Umgebung installieren;
  • Composer-Anforderung: Abhängige Bibliotheken zum Projekt hinzufügen;
  • Composer-Entfernung: Abhängige Bibliotheken löschen aus dem Projekt.
  • Da wir nun die grundlegende Verwendung von Composer verstanden haben, werden wir als Nächstes PHP-Codequalitätsstandards verwenden, um unseren Code zu optimieren.

Was sind PHP-Code-Qualitätsstandards?

Codequalitätsstandards sind vereinbarte Codierungsregeln, die sicherstellen, dass unser Code leicht lesbar, leicht zu verstehen und leicht zu warten ist.

Für PHP-Entwickler gibt es zwei häufig verwendete Codequalitätsstandards:

PHP_CodeSniffer
  • PHP-CS-Fixer
  • PHP_CodeSniffer analysiert den Code nach bestimmten Regeln und zeigt dann schlechte Praktiken im Code an. Bevor wir PHP_CodeSniffer verwenden, müssen wir eine Regel definieren, die unseren Codierungsstandards entspricht. Diese Regeln können Community-Regeln oder Regeln sein, die Sie selbst definieren. Sie können alle verfügbaren Regeln mit dem Befehl „phpcs -i“ anzeigen.
phpcs /path/to/my/code --standard=PSR2
Nach dem Login kopieren

PHPCS-Fixer ist ein automatisiertes Codeformatierungstool, das Grammatikfehler und Formatierungsfehler im Code automatisch korrigieren kann. PHP-CS-Fixer ist ein automatisierter Normalisierer, der Syntaxfehler und Formatierungsfehler in Ihrem Code schnell beheben kann. Wenn Sie Code festschreiben, können Sie PHP-CS-Fixer in Ihren kontinuierlichen Integrationsdienst integrieren.

php-cs-fixer fix /path/to/my/code --rules=@Symfony --verbose
Nach dem Login kopieren

Wie verwende ich Composer- und PHP-Codequalitätsstandards für die Code-Umgestaltung?

Die Verwendung von Composer- und PHP-Codequalitätsstandards für die Code-Umgestaltung im Projekt kann die Wartung und Erweiterung unseres Codes erleichtern.

Als nächstes nehmen wir ein einfaches Beispielprojekt als Beispiel, um zu demonstrieren, wie Composer- und PHP-Codequalitätsstandards für die Code-Umgestaltung verwendet werden.

Erstellen Sie zunächst ein neues PHP-Projekt und installieren Sie Abhängigkeiten mit Composer.

composer require predis/predis
Nach dem Login kopieren

Hier verwenden wir Redis als unseren externen Datenspeicher. Predis ist ein PHP-Client für Redis, der einfach mit Composer installiert werden kann.

require 'vendor/autoload.php';
$client = new PredisClient();

$key = 'foo';
$value = 'bar';
$client->set($key, $value);
echo $client->get($key); // 'bar'
Nach dem Login kopieren

Im obigen Beispielcode verwenden wir Predis, um eine Verbindung zu Redis herzustellen, setzen den Wert des Schlüssels „foo“ auf „bar“ und erhalten den Wert des Schlüssels. Dieser Code wird jedoch nach dem Parsen mit PHP_CodeSniffer auf einige Probleme stoßen.

Als nächstes erstellen und verwenden wir eine Regel, um unseren Code zu überprüfen:

<?xml version="1.0"?>
<ruleset name="Project">
    <description>Custom rule set for Project</description>
    <rule ref="PSR2">
        <exclude name="PSR2.Classes.PropertyDeclaration"/>
        <exclude name="PSR2.Methods.FunctionCallSignature"/>
        <exclude name="PSR2.ControlStructures.ElseIfDeclaration"/>
        <exclude name="PSR2.ControlStructures.SwitchDeclaration"/>
        <exclude name="PSR2.ControlStructures.ControlStructureSpacing"/>
    </rule>
    <rule ref="Generic.CodeAnalysis.MissingFunctionDocComment"/>
    <rule ref="Generic.Arrays.DisallowLongArraySyntax">
        <properties>
            <property name="bracketSpacing" type="integer" value="1"/>
        </properties>
    </rule>
    <rule ref="Generic.Formatting.DisallowMultipleStatements"/>
    <rule ref="Generic.Functions.FunctionCallArgumentSpacing"/>
    <rule ref="Generic.Functions.FunctionCallSpace">
        <exclude-detection name="array"/>
        <exclude-detection name="parenthesis"/>
    </rule>
    <rule ref="Generic.Files.LineLength">
        <properties>
            <property name="lineLimit" type="integer" value="120"/>
            <property name="absoluteLineLimit" type="integer" value="120"/>
            <property name="ignoreComments" type="boolean" value="false"/>
        </properties>
    </rule>
</ruleset>
Nach dem Login kopieren

Sobald wir unsere Regel definiert haben, können wir PHP_CodeSniffer mit dem folgenden Befehl ausführen:

vendor/bin/phpcs ./src --standard=./phpcs.xml
Nach dem Login kopieren

Dieser Befehl analysiert das Verzeichnis „src“ im gesamten PHP Kodieren und melden Sie unregelmäßige Praktiken. Als nächstes verwenden wir PHP-CS-Fixer, um alle Probleme automatisch zu beheben.

vendor/bin/php-cs-fixer fix ./src
Nach dem Login kopieren

Der obige Befehl behebt automatisch alle Codierungsfehler und Formatierungsprobleme basierend auf den von uns definierten Regeln.

Jetzt führen wir PHP_CodeSniffer aus und es werden keine Probleme gemeldet.

Wir haben ein Beispiel für Code-Refactoring unter Verwendung von Composer und PHP-Code-Qualitätsstandards fertiggestellt. Wir können diesen Prozess automatisieren, indem wir PHP_CodeSniffer und PHP-CS-Fixer in unser kontinuierliches Integrationssystem integrieren.

Fazit

In diesem Artikel haben wir gelernt, wie man Composer- und PHP-Codequalitätsstandards für die Code-Umgestaltung verwendet. Diese Tools helfen uns, unseren Code besser zu organisieren und sicherzustellen, dass er von hoher Qualität und wartbar ist.

Obwohl in diesem Artikel nur einige wenige Tools angesprochen wurden, gibt es ein komplettes Ökosystem, das uns dabei helfen kann, Code-Refactoring und -Tests zu automatisieren. Mit diesen Tools können wir qualitativ hochwertigen Code schneller liefern und gleichzeitig Fehler und Störungen reduzieren.

Das obige ist der detaillierte Inhalt vonCode-Refactoring unter Verwendung von Composer- und PHP-Codequalitätsstandards. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage