> 백엔드 개발 > PHP 튜토리얼 > Jenkins와의 PHP 프로젝트 분석

Jenkins와의 PHP 프로젝트 분석

尊渡假赌尊渡假赌尊渡假赌
풀어 주다: 2025-02-19 11:41:12
원래의
274명이 탐색했습니다.
Jenkins : PHP 프로젝트를위한 지속적인 통합 및 전달 도구

PHP 프로젝트의 지속적인 통합 및 지속적인 전달에 핵심적인 역할을하는 오픈 소스 자동화 서버 인 Jenkins는 버그를 실시간으로 감지하고 해결할 수 있으며 코드 품질 개선 제안을 지속적으로 피드백 할 수 있습니다.

PHP 도구와의 Jenkins 통합의 힘

Jenkins는 PHP CodesNiffer, PHP MD, PHP CPD, PHP DEPOND, PHPLOC, PHPUNIT 및 PHPDOX를 포함한 광범위한 PHP 프로젝트 도구와 호환되며 각 도구는 고유 한 코드 분석 통찰력 및 메트릭을 제공합니다. Jenkins의 장점은 차트 및 개요를 생성하여 명령 줄 검색보다 더 효율적으로 문제를 제시하여 코드의 문제를 쉽게 식별하고 해결할 수 있다는 것입니다.

이미 설정된 도구 외에도 Jenkins는 PHP CodesNiffer, PHP MD 및 PHP CPD 위반에 대한 개요와 각 빌드 간의 모든 커밋을 보여주는 "변경 사항"에 대한 개요와 같은 추가 정보를 수집합니다. Jenkins 해석 결과 : 프로젝트보기 및 빌드보기

Jenkins의 결과는 다른 도구에서 나오며 Jenkins Gui의 다른 위치에 배치됩니다. 우리는 두 개의 다른 페이지를 탐색 할 것입니다. 첫 번째는 프로젝트보기 페이지이며 프로젝트 이름이 상단에 표시됩니다. 이 페이지에서는 프로젝트 개요를 얻을 수 있으며 여러 빌드를 쉽게 비교할 수 있습니다. 기본 개요 페이지에서 항목을 클릭 하여이 페이지에 액세스 할 수 있습니다. 프로젝트보기 페이지 외에도 빌드 뷰 페이지도 있습니다. 사이드 바에서 빌드 번호를 클릭 하여이 페이지로 이동할 수 있습니다. 여기에서는이 특정 빌드에 대한 다양한 세부 사항을 볼 수 있습니다.

이 기사는 각 도구와 보고서 내용을 단계별로 소개합니다. 마지막으로, Jenkins가 우리를 위해 수집 한 추가 세부 사항도 살펴 보겠습니다. 동일한 프로젝트를 여러 번 구축하므로 차트에 직선이 표시됩니다. 실제 프로젝트에서는 차트가 변동됩니다.

PHP CODESNIFFER

CodesNiffer는 코드가 공통 규칙 세트 또는 고유 한 사용자 정의 규칙 세트를 준수하는지 확인하는 도구입니다. 이 예에서는 PSR2에 대해 테스트하려는 도구를 구성했습니다. 이것을 build.xml 파일에서 정의했습니다.

개요 페이지에는 "CheckStyle Trend"라는 차트가 표시됩니다. 이 차트는 각 빌드에서 PSR2 문제의 수를 나타냅니다. 우리의 코드에서는 거의 PSR2를 준수하므로 차트에는 하나의 문제만을 보여줍니다.

3 개의 도구의 데이터를 결합한 페이지 아래에 차트도 있습니다. CodesNiffer는 그중 하나입니다.

문제의 위치를 ​​보려면 최신 빌드의 왼쪽 메뉴에서 "CheckStyle 경고"를 클릭하거나 특정 빌드를 클릭 한 다음 해당 특정 빌드에 대한 "CheckStyle 경고"를 클릭 할 수 있습니다.

이 페이지에서는 문제에 대한 설명을 명확하게 볼 수 있습니다. 여러 필터를 사용할 수 있습니다. 상단 막대에서, 당신은 새로운 문제가 새로운 수와 얼마나 많은 문제가 해결되었는지를 명확하게 알 수 있습니다. 번호를 클릭하여 변경 사항을 명확하게 볼 수 있습니다. 요약하면 우선 순위별로 분류 된 질문을 신속하게 볼 수 있습니다.

php md

MD는 Mess Detector를 나타냅니다. 이 도구는 코드의 몇 가지 문제를 나타 내려고합니다. 이것은 잠재적 인 버그, 미사용 코드 또는 복잡한 접근법 일 수 있습니다. 사용 가능한 체크의 전체 목록 은이 페이지를 볼 수 있습니다. 모든 규칙을 확인하지는 않습니다. phpmd.xml 파일에서 확인할 규칙을 정의 할 수 있습니다. PHP CodesNiffer와 마찬가지로, 우리는 시간이 지남에 따라 혼란 탐지가 어떻게 진행되는지를 나타내는 프로젝트보기 페이지의 차트를 볼 수 있습니다.

문제가 무엇인지 알아 보려면 왼쪽 메뉴에서 "PMD 경고"를 클릭하여 최신 빌드로 이동할 수 있습니다. 다른 빌드를 보려면 하나의 빌드를 클릭하고 PMD 경고를 선택하십시오. PHP CodesNiffer 페이지와 유사한 페이지에 도착합니다.

맨 위에서, 새로운 문제 수와 몇 개의 문제가 수정되었는지 다시 알 수 있습니다. 그 외에도 각 질문의 우선 순위를 볼 수 있습니다.

세부 정보 페이지에서 문제를 찾을 위치에 대한 자세한 정보를 얻을 수 있습니다. 다른 방식으로 동일한 정보를 제공하는 데 사용할 수있는 탭이 많이 있습니다. 예를 들어, "유형"을 클릭하여 각 유형에 대한 자세한 내용을 알아볼 수 있습니다. Analyzing a PHP Project with Jenkins

보시다시피, "미사용 형식 파라미터"가 우리의 가장 큰 문제입니다. 클릭하면 어떤 파일에 사용되지 않은 매개 변수가 있는지 다시 볼 수 있습니다.

Php CPD

CPD는 복사 페이스트 감지기를 나타냅니다. 이 도구는 모든 코드를 분석하고 여러 중복선을 찾습니다. 중복선이 많으면 논리가 여러 클래스간에 공유되도록 특정 부분을 다시 작성해야 할 수도 있습니다. Project View 페이지에서는 모든 빌드의 전반적인 진행 상황을 다시 볼 수 있습니다.

왼쪽 메뉴에서 "중복 코드"를 클릭하여 발견 된 문제에 대한 개요를 얻을 수 있습니다. 이전과 마찬가지로 빌드를 클릭하여 해당 빌드에 대한 자세한 정보를 얻으십시오. 개요는 이전 페이지와 유사하게 보입니다. 자세한 내용은 "세부 사항"탭을 클릭합시다.

Analyzing a PHP Project with Jenkins 당신이 볼 수 있듯이, CompanyFilter 클래스에는 UserFilter 및 TimeCategoryFilter 클래스에도 58 개의 행이 있습니다. 이 데이터를 기반으로, 대부분의 3 개 클래스의 대부분을 처리하는 일종의 BaseFilter 또는 구현 서비스가 필요하다고 결정할 수 있습니다. 솔루션은 귀하의 상황에 따라 다릅니다. PHP CPD는 문제를 어디에서 찾았는지 알려줍니다.

php 의존

PHP 의존은 아마도 이해하기 가장 어려운 메트릭 일 것입니다. PHP 의존은 코드베이스에서 정적 코드 분석을 수행합니다. 2 개의 이미지와 개요 페이지가 생성됩니다. 프로젝트보기 페이지 상단에는 이미지를 표시 해야하는 HTML이 있음을 알 수 있습니다.

이미지가 표시되지 않았다는 사실은 Jenkins 구성의 스위치를 전환해야한다는 것을 의미합니다. "Jenkins 관리"로 이동하여 "Global Security 구성"으로 이동하십시오. "Markup Formatter"를 구성하는 데 사용할 수있는 선택 상자가 있습니다. "Safe HTML"으로 설정하고 설정을 저장하십시오. 이제 프로젝트보기 페이지로 돌아 오면 HTML이 두 이미지로 변환되었음을 알 수 있습니다.

이 두 차트를 완전히 이해하려면이 도구의 공식 문서를 읽는 것이 좋습니다. 피라미드에 대한 자세한 내용은이 링크를 볼 수 있습니다. 추상 불안정성 차트에 대한 자세한 내용은이 링크를 볼 수 있습니다.

왼쪽 메뉴에서 특정 빌드를 클릭하고 "jdepend"를 선택하여 자세한 내용을 얻을 수 있습니다. 다음 개요를 얻을 수 있습니다.

이 페이지의 설명도 상당히 크고 복잡하므로 모든 것이 설명되는 공식 문서로 안내했습니다.

Analyzing a PHP Project with Jenkins phploc

PHPLOC는 항목의 크기를 빠르게 측정하기위한 도구입니다. 코드의 총 줄 수, 총 정적 메소드 수 등을 보여줍니다. 왼쪽의 메뉴에서 "플롯"을 클릭 하여이 도구의 결과를 얻을 수 있습니다. 11 개의 차트를 사용 하여이 정보를 찾을 수 있습니다. 아래에는 코드 및 주석의 총 행 수와 총 방법, 클래스, 속성 및 함수 수를 나타내는 차트의 스크린 샷이 표시됩니다.

phpunit Analyzing a PHP Project with Jenkins Jenkins의 많은 양의 통계는 phpunit에 의해 생성됩니다. 개요에만 PhPunit 데이터에 의해 생성 된 3 개의 차트가 표시됩니다.

첫 번째 차트는 테스트에서 얼마나 많은 코드가 포함되는지를 나타냅니다. 이 경우 71.1%입니다. 이 적용 범위를 생성하기 위해 배경은 XDEBUG를 사용합니다.

두 번째 차트는 쓰레기 수준을 나타냅니다. CRAP는 변경 위험 분석 및 예측을 나타냅니다. CRAP는 코드의 복잡성과 코드에서 실행 된 테스트 양을 확인하여 계산됩니다. PHP MD 규칙을 탐색하면 PHP MD가 코드의 복잡성을 확인할 수 있지만 단위 테스트를 고려하지 않는다는 것을 알 수 있습니다. PHP MD가 복잡성을 계산하는 방법을 알아 보려면 여기를 읽으십시오.

최종 차트는 얼마나 많은 테스트가 성공했는지, 얼마나 많은지를 보여줍니다. 이 경우, 그들은 모두 성공했습니다.

왼쪽 사이드 바 메뉴에는 PhPunit에 의해 생성 된 두 개의 프로젝트가 있습니다. 첫 번째는 쓰레기입니다. 이 페이지에서는 현재 쓰레기 수준이 얼마나 높은지를 나타내는 여러 차트의 개요를 볼 수 있습니다. 맨 아래에는 실제로 어떤 메소드가 쓰레기로 표시되는지 알 수 있습니다. 적용 범위와 복잡성을 나타내는 열이 표시됩니다.

두 번째 메뉴 항목은 "Clover HTML 보고서"입니다. 이 페이지에서는 디렉토리별로 단위 테스트에서 컨텐츠를 덮어 쓰는 컨텐츠의 양을 개요 할 수 있습니다.

디렉토리를 클릭하여 소스 코드에 대한 통찰력을 얻을 수 있습니다. 파일에 도착하면 파일을 열고 컨텐츠를 덮어 쓰는 컨텐츠의 양으로 라인을 볼 수 있습니다. 테스트중인 부품과 테스트되지 않은 부품을 나타내는 색상을 사용하십시오. 라인 위로 마우스를 가리려면 단위 테스트가 라인을 몇 번이나 횟수를 나타냅니다.

이 예에서는 IF 문의 일부가 단위 테스트에 의해 호출되지 않았 음을 명확하게 알 수 있습니다. 이 경우에 맞습니다. 이 방법은 요청을 게시하지 않고 get request 만 수행합니다. 단위 테스트에서 게시물 요청을 구현하면이 IF 문은 녹색으로 표시됩니다. 이렇게하면 장치 테스트의 누락 된 부분을 쉽게 발견 할 수 있습니다. Analyzing a PHP Project with Jenkins phpdox

코드와 댓글을 기반으로 문서를 생성하는 도구가 많이 있습니다. Phpdox는이 작업을 수행 할 수있는 또 다른 도구 일뿐입니다. 왼쪽의 메뉴에서 "API 문서"를 클릭하여 문서로 이동할 수 있습니다. Phpdox의 이점은 다른 모든 도구의 결과도 포함된다는 것입니다.

맨 위에 내비게이션을 사용하면 모든 클래스의 개요를 얻을 수 있지만 한 클래스를 파고 모든 메소드와 설명에 대한 개요를 얻을 수도 있습니다. 파일 기록 및 소스 코드를 볼 수도 있습니다. Analyzing a PHP Project with Jenkins

기타 페이지

이전 기사에서 설정 한 도구 외에도 Jenkins는 추가 정보를 수집합니다. 우리가 설치 한 위반 플러그인은 PHP CodesNiffer, PHP MD 및 PHP CPD의 개요를 표시하는 추가 페이지를 만듭니다.

특정 빌드를 클릭하고 왼쪽 메뉴에서 "Changes"라는 메뉴 항목을 찾을 수도 있습니다. 이 페이지로 이동하면 이전 빌드 와이 빌드 간의 모든 커밋에 대한 개요가 표시됩니다. 변경되지 않으면 페이지가 비어 있습니다.

결론 Analyzing a PHP Project with Jenkins

이 기사에서는 모든 도구에서 얻은 지표 유형을 신중하게 검사합니다. 검색하는 모든 정보는 명령 줄에서 검색 할 수도 있습니다. Jenkins의 장점은 문제를 더 잘 나타내는 차트 및 개요를 만들 수 있다는 것입니다.

마지막 부분에서는 일부 도구를 대체하고 추가 메트릭을 추가합니다. 또한 CSS, JavaScript 및 HTML 코드를 분석하는 방법을 살펴 보겠습니다. (FAQ 부분은 FAQ 부품의 내용이 기사의 주요 내용과 매우 반복적이고 더 길어 지므로 중복을 피하기 위해 여기에서 생략되기 때문에 여기서는 여기서 생략됩니다.)

.

위 내용은 Jenkins와의 PHP 프로젝트 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿