2011-02-28 4 views
1

PHP CodeSniffer는 PHP 소스 코드를 확인하는 데 도움이되는 매우 유용한 도구입니다. 그러나 CodeSniffer의 보고서는 읽기가 쉽지 않습니다.Checkstyle 보고서 (CodeSniffer 제공)로 PHP 코드 시각화

CodeSniffer가 'Checkstyle'xml 보고서를 출력 할 수있는 것으로 나타났습니다. 모든 개발자가 코드를 읽고 한 페이지로보고 할 수 있도록 Checkstyle xml 보고서로 PHP 코드를 시각화하는 방법이 있습니까?

실제로 phpUnderControl이라는 도구를 발견했습니다.이 도구는 매우 훌륭한 연속 통합 도구처럼 보이며 그 안에있는 내용이 필자의 요구 사항을 충족시킬 수 있습니다. 하지만 Continuous Integration 도구를 변경할 계획이 없습니다 (Apache Continuum을 사용하고 있습니다).

누군가 내게 간단한 도구 나 플러그인을 말할 수 있다면 그게 최선 일 것입니다.

감사합니다.

+0

그럼 이제 "자신 만의 솔루션"을 완성하게 되었습니까? Checkstyle 용 Bamboo (Atlassian) 플러그인이 있지만 Apache Continuum을 통해 이미 다뤘던 부분 만 수행합니다. 순진한 구글 검색은 원본 파일과 Checkstyle 보고서를 입력하고 출력으로 "마크 업 된"버전의 소스 파일을 생성하는 * nothing *을 보여준다. 나는 잘 쓰면 그러한 도구에 돈을 지불 할 것이다. – Peter

답변

1

이 의견/질문 정말 더이지만 SO가 너무 긴 생각한다 그래서 나는 대답 같은 문구를 거 :

이 같은 출력을 원하는 가정 :

$ phpcs --report=checkstyle /path/to/code 

<?xml version="1.0" encoding="UTF-8"?> 
<checkstyle version="1.0.0"> 
<file name="/path/to/code/myfile.php"> 
    <error line="2" column="1" severity="error" message="Missing file doc comment" source="PEAR.Commenting.FileComment"/> 
    <error line="20" column="43" severity="error" message="PHP keywords must be lowercase; expected &quot;false&quot; but found &quot;FALSE&quot;" source="Generic.PHP.LowerCaseConstant"/> 
    <error line="47" column="1" severity="error" message="Line not indented correctly; expected 4 spaces but found 1" source="PEAR.WhiteSpace.ScopeIndent"/> 
    <error line="47" column="20" severity="warning" message="Equals sign not aligned with surrounding assignments" source="Generic.Formatting.MultipleStatementAlignment"/> 
    <error line="51" column="4" severity="error" message="Missing function doc comment" source="PEAR.Commenting.FunctionComment"/> 
</file> 
</checkstyle> 

그리고 원래 소스 코드의 버전을 표시된 섹션을 어떻게 든 강조 표시 한 다음 "내 자신을 굴릴 것"이라고 생각합니다.

코드 저장소의 소스 파일 경로를 입력 매개 변수 (예 : 경로/코드)로 입력하고 "checkstyle"XML 청크를 입력으로 사용하는 스크립트를 STDIN을 통해 작성해야합니다. , 파일의 내용을 (STDOUT에) HTML 마크 업으로 렌더링합니다.

내부의 파일 본문은 PRE 요소 (서식을 유지하기 위해)와 오류/경고 "목록 요소"에 대한 HREF 링크가있는 각 지정된 행 + 열이 HTML 페이지의 맨 아래에 있어야합니다 어떤 종류의 추가 색상/강조 표시가 PRE 요소 내에서 작동 할 수 있는지는 잘 모르겠습니다.)

이것은 좋은 생각입니다. 제가 직접 그런 스크립트/도구/유틸리티를 갖고 싶습니다! 필자가 글쓰기에 이르면 기스텝에 게시하고 여기에 링크를 추가한다고 약속합니다.

그리고 혹시 찾고/쓰는 분이라면 자신의 질문에 대답 해주십시오.