시간이 지남에 따라 프로젝트가 계속 반복되고 변경됨에 따라 대부분의 소프트웨어 엔지니어는 결국 자신이 작성한 코드가 지저분한 상태에 있다고 느끼게 됩니다. 이러한 코드는 읽기, 유지 관리, 테스트 및 확장이 어려워 후속 개발에 많은 어려움을 초래합니다.
소프트웨어 개발은 예술이며 많은 과학과 기술이 필요합니다. 대규모 코드 베이스를 생성하고 유지 관리하는 과정에서 코드의 가독성과 유지 관리 가능성을 유지하기 위한 몇 가지 실행 가능한 방법을 찾아야 합니다. 이 기사에서는 위의 문제를 해결하기 위해 Composer 및 PHP 코드 품질 표준을 사용하여 코드를 리팩터링하는 방법을 소개합니다.
작곡가란 무엇인가요?
Composer는 구성을 위해 JSON 파일을 사용하고 Packagist와 같은 소스에서 종속성을 다운로드하는 PHP의 패키지 관리자입니다.
과거에는 라이브러리 코드를 수동으로 다운로드하는 방식을 사용했을 수도 있습니다. 그러나 종속성과 파일 위치를 수동으로 추적해야 하므로 이는 우리에게 더 많은 골치 아픈 문제를 야기할 뿐입니다. Composer는 이 문제를 해결하기 위해 설계되었습니다.
Composer를 사용하면 프로젝트가 의존하는 라이브러리의 이름과 버전을 포함하여 프로젝트 루트 디렉터리에 작곡가.json 파일만 생성하면 됩니다.
{ "require": { "vendor/library": "1.0.0" } }
"composer install" 명령을 사용하여 모든 종속 항목을 자동으로 다운로드합니다. 프로젝트 항목.
Composer는 특정 "자동 로드" 메커니즘을 통해 종속성을 로드할 수 있으므로 코드에서 이러한 라이브러리를 유연하게 사용할 수 있습니다.
Common Composer 명령:
PHP 코드 품질 표준이란 무엇입니까?
코드 품질 표준은 코드가 읽기 쉽고, 이해하기 쉽고, 유지 관리하기 쉽도록 하기 위해 합의된 코딩 규칙입니다.
PHP 개발자에게는 일반적으로 사용되는 두 가지 코드 품질 표준이 있습니다.
PHP_CodeSnifferphpcs /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
이 명령은 모든 PHP에서 "src" 디렉터리를 분석합니다. 불규칙한 관행을 코드화하고 보고합니다. 다음으로 PHP-CS-Fixer를 사용하여 모든 문제를 자동으로 수정하겠습니다.
vendor/bin/php-cs-fixer fix ./src
위 명령은 우리가 정의한 규칙에 따라 모든 코딩 오류와 형식 문제를 자동으로 수정합니다.
이제 PHP_CodeSniffer를 실행하면 아무런 문제도 보고되지 않습니다.
Composer 및 PHP 코드 품질 표준을 사용하여 코드 리팩토링 예제를 완성했습니다. PHP_CodeSniffer와 PHP-CS-Fixer를 지속적인 통합 시스템에 통합하여 이 프로세스를 자동화할 수 있습니다.
결론
이 기사에서는 코드 리팩토링을 위해 Composer 및 PHP 코드 품질 표준을 사용하는 방법을 배웠습니다. 이러한 도구는 코드를 더 잘 구성하고 코드의 품질과 유지 관리 가능성을 높이는 데 도움이 됩니다.
이 기사에서는 몇 가지 도구만 다루었지만 코드 리팩터링 및 테스트를 자동화하는 데 도움이 될 수 있는 완전한 생태계가 있습니다. 이러한 도구를 사용하면 오류와 결함을 줄이면서 고품질 코드를 더 빠르게 제공할 수 있습니다.
위 내용은 Composer 및 PHP 코드 품질 표준을 사용한 코드 리팩토링의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!