時間が経つにつれて、プロジェクトが繰り返し変更され続けるにつれて、ほとんどのソフトウェア エンジニアは、最終的には自分が書いたコードが乱雑な状態になっていると感じるようになります。これらのコードは読み取り、保守、テスト、拡張が難しく、その後の開発に多大な問題をもたらします。
ソフトウェア開発は芸術であり、多くの科学技術も関係します。大規模なコード ベースを作成および保守するプロセスでは、コードの可読性と保守性を維持するための実行可能な方法をいくつか見つける必要があります。この記事では、Composer と PHP コード品質標準を使用してコードをリファクタリングし、上記の問題を解決する方法を紹介します。
コンポーザーとは何ですか?
Composer は、設定に JSON ファイルを使用し、Packagist などのソースから依存関係をダウンロードする PHP のパッケージ マネージャーです。
以前は、ライブラリ コードを手動でダウンロードしていたかも知れません。ただし、依存関係とファイルの場所を手動で追跡する必要があるため、これはさらに頭の痛い問題を引き起こすだけです。 Composer はこの問題を解決するように設計されています。
Composer を使用すると、プロジェクトのルート ディレクトリに、プロジェクトが依存するライブラリの名前とバージョンを含む、composer.json ファイルを作成するだけで済みます。
{ "require": { "vendor/library": "1.0.0" } }
「composer install」を使用します。 " コマンドで、プロジェクト内のすべての依存関係を自動的にダウンロードします。
Composer は、特定の「自動ロード」メカニズムを通じて依存関係をロードできるため、コード内でこれらのライブラリを柔軟に使用できます。
一般的な Composer コマンド:
Composer の基本的な使用法を理解したので、次に、PHP コードの品質標準を使用してコードを最適化します。
PHP コードの品質基準とは何ですか?
コード品質基準は、コードが読みやすく、理解しやすく、保守しやすいことを保証するために使用される、合意されたコーディング ルールです。
PHP 開発者にとって、一般的に使用される 2 つのコード品質標準があります。
phpcs /path/to/my/code --standard=PSR2
php-cs-fixer fix /path/to/my/code --rules=@Symfony --verbose
composer require predis/predis
require 'vendor/autoload.php'; $client = new PredisClient(); $key = 'foo'; $value = 'bar'; $client->set($key, $value); echo $client->get($key); // 'bar'
<?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>
vendor/bin/phpcs ./src --standard=./phpcs.xml
vendor/bin/php-cs-fixer fix ./src
以上がComposer および PHP コード品質標準を使用したコードのリファクタリングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。