어떻게 PHP 코드 의 질 을 향상 시 킬 것 인 가 를 간단히 말 하 다.

6371 단어 php코드 품질
개술
우 리 는 이것 을 여러 가지 원인 으로 돌 릴 수 있 지만,이것 은 틀림없이 PHP 생태계 가 적당 한 테스트 도구 가 부족 하기 때 문 만 은 아니다.본 논문 에서 저 는 프로젝트 의 기본 품질 테스트 에 사용 되 는 간단 한 설정 을 보 여 드 리 고 싶 습 니 다.나 는 특정한 도 구 를 상세 하 게 설명 하지 않 고 테스트 환경 설정 에 전념 할 것 이다.
이 글 에서 GitHub 에서 프 리 젠 테 이 션 코드 를 찾 을 수 있 습 니 다.https://github.com/mkosiedowski/php-testing-demo만약 네가 이 문장의 예 에 대해 어떤 문제 가 있다 면 참고 할 수 있다.
1 필수 조건
PHP 7.1 문법 에 익숙 하 다 고 가정 하면 Composer 와 PSR-4 를 사용 하여 자동 로 딩 과 PSR-1&PSR-2 의 인 코딩 기준 을 사용 할 수 있 습 니 다.내 예제 에서 vendor 의 바 이 너 리 파일 이./bin 디 렉 터 리 에 설치 되 었 습 니 다.
2 구축 도구
우 리 는 서로 다른 테스트 도 구 를 사용 할 것 이 므 로 스 크 립 트 로 실행 할 수 있 는 것 이 좋 습 니 다.PHING 은 우리 에 게 이 문 제 를 해결 할 수 있 는 절 호의 해결 방안 을 제공 합 니 다.PHing 은 Apache Ant 와 비슷 해서 XML 설정 을 사용 하여 작업 을 쉽게 자동 으로 수행 할 수 있 습 니 다.우 리 는 다음 명령 을 실행 해서 그것 을 설치 할 수 있다.
$ php composer.phar require --dev phing/phing
그리고 프로젝트 의 루트 디 렉 터 리 에 기본 build.xml 파일 을 만 듭 니 다.

<?xml version="1.0" encoding="UTF-8"?><project name="MyProject" default="run"></project>
다음 단계 에서 우 리 는 PHing 이 실행 하 는 목 표를 추가 할 것 입 니 다.
3 정적 코드 분석
내 가 코드 의 질 을 향상 시 키 기 위해 서 당신 이 할 수 있 는 첫 번 째 일 은 정적 코드 분석 기 를 설정 하 는 것 입 니 다.그들 은 제대로 실행 되 지 않 은 상태 에서 너의 오류 코드 를 읽 을 것 이다.몇 초 안에 한 로봇 이 코드 심 사 를 마 친 것 과 같다.멋 있 지 않 아 요?
4 코드 스타일
정확 한 스타일 로 작성 할 때 코드 를 쉽게 유지 할 수 있 습 니 다.누구나 다 알 고 있 지만(만약 당신 이 이렇게 하지 않 는 다 면,당신 은 적어도 로 버 트 C.마 틴 의'클 린 코드'를 읽 기 시작 해 야 합 니 다)여전히 많은 팀 들 이 그들 이 달성 한 기준 을 지 키 는 데 문제 가 있 습 니 다.우 리 는 phpcs-PHP 코드 탐지 로 이 임 무 를 자동화 할 수 있 습 니 다.신기 하지 않 습 니까?
우 리 는 다음 명령 을 실행 해서 설치 할 수 있다.
$ php composer.phar require --dev squizlabs/php_codesniffer
그리고 build.xml 에서 실행 할 목 표를 추가 합 니 다.당신 의 build.xml 는 지금 이 럴 것 입 니 다:

<?xml version="1.0" encoding="UTF-8"?>
<project name="MyProject" default="run">
	<target name="phpcs" description="Check code style with PHP_CodeSniffer">
		<exec executable="bin/phpcs" passthru="true" checkreturn="true">
			<arg line="--standard=PSR1,PSR2 -extensions=php src" />
		</exec>
	</target>
	<target name="run" depends="phpcs" />
</project>
이제.../bin/ping 을 실행 할 수 있 습 니 다.pc 는 PSR-1 과 PSR-2 인 코딩 기준 에 오류 가 있 는 지 자동 으로 확인 합 니 다.
많은 프레임 워 크,예 를 들 어 Symforny 는 그들의 코드 스타일 규칙 을 정 의 했 고 우 리 는 이 규칙 들 을 자동 으로 검사 할 수 있 습 니 다.예 를 들 어 Symforny 프레임 워 크 를 사용 하고 있다 면 확인 하 십시오.https://github.com/leaphub/phpcs-symfony2표준,phpcs 를 사용 하여 Symforny 를 검사 하 는 방법 을 알 아 보 는 기준.
잘못된 형식의 파일 예제 출력:
MyProject > phpcs: FILE: /home/maciej/workspace/php-testing/src/Domain/Price.php-------------------------------------------------------------------------FOUND 1 ERROR AFFECTING 1 LINE-------------------------------------------------------------------------28 | ERROR | Method name "Price::get_value" is not in camel caps format-------------------------------------------------------------------------Time: 67ms; Memory: 6Mb
코드 심사 기간 에 인 코딩 기준 을 검사 하 는 데 시간 을 낭비 하지 않 습 니 다.지금부터 자동 으로 실 현 됩 니 다!
5 모니터 복사/붙 여 넣 기
중복 되 는 코드 는 좋 지 않 습 니 다.누구나 알 고 있 습 니 다.때때로 우 리 는 이런 코드 를 잘못 만 들 었 는데,우 리 는 지금까지 그것 을 주의 한 적 이 없다.때때로 우리 가 이렇게 하 는 것 은 우리 가 게 으 르 기 때문이다.구축 할 때 이 문 제 를 제시 할 수 있 는 도 구 를 갖 추 는 것 이 좋 습 니 다.PHPCPD-PHP 복사/붙 여 넣 기 감지 기.
다음 명령 을 실행 하여 설치 합 니 다:
$ php composer.phar require --dev sebastian/phpcpd
그리고 대상 을 build.xml 에 추가 합 니 다:

<target name="phpcpd" description="Generate pmd-cpd.xml using PHPCPD">
	<exec executable="bin/phpcpd" passthru="true">
		<arg line="src" />
	</exec>
</target>...
<target name="run" depends="phpcs,phpcpd" />
vendor 디 렉 터 리 에서 실 행 된 중복 코드 검사 의 예제 출력:
phpcpd 4.0.0 by Sebastian Bergmann. Found 74 clones with 2929 duplicated lines in 97 files: - /home/maciej/workspace/php-testing/vendor/phpspec/phpspec/src/PhpSpec/Matcher/TriggerMatcher.php:81-102 /home/maciej/workspace/php-testing/vendor/phpspec/phpspec/src/PhpSpec/Matcher/TriggerMatcher.php:114-135 - /home/maciej/workspace/php-testing/vendor/squizlabs/php_codesniffer/src/Reports/Full.php:81-114 /home/maciej/workspace/php-testing/vendor/squizlabs/php_codesniffer/src/Reports/Code.php:162-195 (...)
6.진정 으로 깊이 있 는 코드 분석 을 원 하 십 니까?
처음부터 프로젝트 를 시작 하면 Phan 을 봐 야 합 니 다.-아주 강력 한 코드 분석 기 입 니 다.코드 를 예 쁘 게 만 들 수 있 습 니 다....에 있다https://github.com/phan/phan상부 에서 조사 하 다.설치 가 매우 간단 합 니 다.-php-ast 확장 만 설치 하면 됩 니 다.(Ubuntu 에서 sudo apt-get install php-ast 를 실행 하고 실행 할 수 있 습 니 다.)
$ php composer.phar require --dev phan/phan
그리고 프로필 을 만 듭 니 다.phan/config.php 내용 은:

<?php
return [
'target_php_version' => '7.1',   
'directory_list' => [        'src',
'vendor/symfony/console',    ],
 "exclude_analysis_directory_list" => [        'vendor/'    ],
];
build.xml 파일 에 도 phan 목 표를 만 듭 니 다:

<target name="phan" description="Check code with phan">
	<exec executable="bin/phan" passthru="true" checkreturn="true" />
</target>...
<target name="run" depends="phpcs,phpcpd,phan" />
현재 코드 분석 을 실행 할 수 있 습 니 다.오류 가 발생 하면(예 를 들 어...클래스 속성 에 오 류 를 설명 하 는 phpdoc 형식)이러한 메 시 지 를 보 셔 야 합 니 다.
MyProject > phan: src/Domain/PriceComparator.php:17 PhanTypeMismatchProperty Assigning \Domain\PriceConverter to property but \Domain\PriceComparator::priceConverter is intsrc/Domain/PriceComparator.php:35 PhanNonClassMethodCall Call to method convert on non-class type int
Phan 신기 합 니 다.-코드 전 체 를 읽 고 여러 번 검 사 를 합 니 다.이 는 phopdoc 성명 을 실제 사용 변수,방법,클래스 등 과 비교 하 는 것 을 포함 합 니 다.볼 수 있 습 니 다.https://github.com/phan/phan#features의 모든 특징 목록 입 니 다.
현재 프로젝트 에는 세 개의 완전 자동화 도구 가 있 습 니 다.코드 의 질 을 보호 할 수 있 습 니 다.수 동 으로 실행 하거나 git-hook 또는 지속 적 인 통합 에 추가 하 는 것 이 필요 합 니 다.코드 는 인 코딩 표준,중복,공식 오 류 를 검사 합 니 다.이러한 검 사 는 더욱 신뢰 할 수 있 는 운행 을 초래 할 뿐만 아니 라 코드 심사 에 걸 리 는 시간 도 더욱 적 을 것 이다.
이상 은 PHP 코드 의 질 을 어떻게 향상 시 키 는 지 에 대한 상세 한 내용 입 니 다.PHP 코드 의 질 을 어떻게 향상 시 키 는 지 에 관 한 자 료 는 우리 의 다른 관련 글 에 관심 을 가 져 주 십시오!

좋은 웹페이지 즐겨찾기