Composer および PHP コード品質標準を使用したコードのリファクタリング

WBOY
リリース: 2023-06-19 20:42:01
オリジナル
1389 人が閲覧しました

時間が経つにつれて、プロジェクトが繰り返し変更され続けるにつれて、ほとんどのソフトウェア エンジニアは、最終的には自分が書いたコードが乱雑な状態になっていると感じるようになります。これらのコードは読み取り、保守、テスト、拡張が難しく、その後の開発に多大な問題をもたらします。

ソフトウェア開発は芸術であり、多くの科学技術も関係します。大規模なコード ベースを作成および保守するプロセスでは、コードの可読性と保守性を維持するための実行可能な方法をいくつか見つける必要があります。この記事では、Composer と PHP コード品質標準を使用してコードをリファクタリングし、上記の問題を解決する方法を紹介します。

コンポーザーとは何ですか?

Composer は、設定に JSON ファイルを使用し、Packagist などのソースから依存関係をダウンロードする PHP のパッケージ マネージャーです。

以前は、ライブラリ コードを手動でダウンロードしていたかも知れません。ただし、依存関係とファイルの場所を手動で追跡する必要があるため、これはさらに頭の痛い問題を引き起こすだけです。 Composer はこの問題を解決するように設計されています。

Composer を使用すると、プロジェクトのルート ディレクトリに、プロジェクトが依存するライブラリの名前とバージョンを含む、composer.json ファイルを作成するだけで済みます。

{
    "require": {
        "vendor/library": "1.0.0"
    }
}
ログイン後にコピー

「composer install」を使用します。 " コマンドで、プロジェクト内のすべての依存関係を自動的にダウンロードします。

Composer は、特定の「自動ロード」メカニズムを通じて依存関係をロードできるため、コード内でこれらのライブラリを柔軟に使用できます。

一般的な Composer コマンド:

  • composer install: すべての依存関係をローカル環境にインストールします;
  • composer update: すべての依存関係を更新します;
  • composer require: 依存ライブラリをプロジェクトに追加します;
  • composer Remove: 依存ライブラリをプロジェクトから削除します。

Composer の基本的な使用法を理解したので、次に、PHP コードの品質標準を使用してコードを最適化します。

PHP コードの品質基準とは何ですか?

コード品質基準は、コードが読みやすく、理解しやすく、保守しやすいことを保証するために使用される、合意されたコーディング ルールです。

PHP 開発者にとって、一般的に使用される 2 つのコード品質標準があります。

  • PHP_CodeSniffer
  • PHP-CS-Fixer
#PHP_CodeSniffer特定のルールに従ってコードを分析し、コード内の悪い習慣を表示します。 PHP_CodeSniffer を使用する前に、コーディング標準に準拠するルールを定義する必要があります。これらのルールは、コミュニティ ルールまたは自分で定義したルールにすることができます。コマンド「phpcs -i」を使用すると、利用可能なルールをすべて表示できます。

phpcs /path/to/my/code --standard=PSR2
ログイン後にコピー

PHPCS-Fixer は、コード内の文法エラーや書式エラーを自動的に修正できる自動コード書式設定ツールです。 PHP-CS-Fixer は、コード内の構文エラーや書式設定エラーを迅速に修正できる自動ノーマライザーです。コードをコミットするときに、PHP-CS-Fixer を継続的統合サービスに統合できます。

php-cs-fixer fix /path/to/my/code --rules=@Symfony --verbose
ログイン後にコピー

コード リファクタリングに Composer と PHP コード品質標準を使用するにはどうすればよいですか?

プロジェクトでのコード リファクタリングに Composer と PHP コード品質標準を使用すると、コードの保守と拡張が容易になります。

次に、単純なサンプル プロジェクトを例として、コード リファクタリングに Composer と PHP コード品質標準を使用する方法を示します。

まず、新しい PHP プロジェクトを作成し、Composer を使用して依存関係をインストールします。

composer require predis/predis
ログイン後にコピー

ここでは、外部データ ストレージとして Redis を使用します。 Predis は、Composer を使用して簡単にインストールできる Redis 用の PHP クライアントです。

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

$key = 'foo';
$value = 'bar';
$client->set($key, $value);
echo $client->get($key); // 'bar'
ログイン後にコピー

上記のコード例では、Predis を使用して Redis に接続し、「foo」キーの値を「bar」に設定し、キーの値を取得します。ただし、このコードを PHP_CodeSniffer で解析すると、いくつかの問題が見つかります。

次に、コードをチェックするためのルールを作成して使用します:

<?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>
ログイン後にコピー

ルールを定義したら、次のコマンドを使用して PHP_CodeSniffer を実行できます:

vendor/bin/phpcs ./src --standard=./phpcs.xml
ログイン後にコピー

このコマンドは、「src」ディレクトリ内のすべての PHP コードを分析し、不規則な行為を報告します。次に、PHP-CS-Fixer を使用して、すべての問題を自動的に修正します。

vendor/bin/php-cs-fixer fix ./src
ログイン後にコピー
上記のコマンドは、定義したルールに基づいて、すべてのコーディング エラーと書式設定の問題を自動的に修正します。

ここで PHP_CodeSniffer を実行しますが、問題は報告されません。

Composer と PHP コード品質標準を使用したコード リファクタリングの例が完成しました。 PHP_CodeSniffer と PHP-CS-Fixer を継続的統合システムに統合することで、このプロセスを自動化できます。

結論

この記事では、コードのリファクタリングに Composer と PHP のコード品質標準を使用する方法を学びました。これらのツールは、コードをより適切に整理し、コードが高品質で保守可能であることを保証するのに役立ちます。

この記事ではいくつかのツールのみに触れていますが、コードのリファクタリングとテストの自動化に役立つ完全なエコシステムがあります。これらのツールにより、エラーやグリッチを減らしながら、高品質のコードをより迅速に提供できるようになります。

以上がComposer および PHP コード品質標準を使用したコードのリファクタリングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート