내용으로 건너뛰기
ChangwooWiki
사용자 도구
로그인
사이트 도구
검색
도구
문서 보기
이전 판
역링크
최근 바뀜
미디어 관리자
사이트맵
로그인
>
최근 바뀜
미디어 관리자
사이트맵
추적:
wordpress:php_cs
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
워드프레스 사용하면서 플러그인의 코딩 스타일을 PhpStorm 에 맡기는 편이다. 그러다보니 너무 IDE에 의존하는 것이 아닌가 싶다. 공통적인 스타일 통일이 필요하다 생각하여 PhpCS를 스터디한 결과를 적는다. ====== PHP Code Sniffer ====== 코드를 검사하여 지정한 규격대로 작성되었는지 검사한다. ==== 설치 ==== wget이나 curl을 이용해 글로벌로 설치 가능하다. 아래 참고문서에서 github 의 가이드를 따라 설치하면 된다. ==== phpcs.xml 예시 ==== 아래는 간단한 phpcs.xml 예시이다. 플러그인에 맞춰 적절히 작성했다. 주석을 참고하여 적절히 설정을 가감한다. 괜찮은 설정이 있다면 업데이트 바람. <code xml> <?xml version="1.0"?> <ruleset name="WordPress Site Utilities Ruleset"> <!-- What to scan --> <file>.</file> <exclude-pattern>/vendor/</exclude-pattern> <exclude-pattern>/node_modules/</exclude-pattern> <!-- How to scan --> <!-- Usage instructions: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Usage --> <!-- Annotated ruleset: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml --> <arg value="sp"/> <!-- Show sniff and progress --> <arg name="basepath" value="./"/><!-- Strip the file paths down to the relevant bit --> <arg name="colors"/> <arg name="extensions" value="php"/> <arg name="parallel" value="8"/><!-- Enables parallel processing when available for faster results. --> <!-- Rules: Check PHP version compatibility --> <!-- https://github.com/PHPCompatibility/PHPCompatibility#sniffing-your-code-for-compatibility-with-specific-php-versions --> <config name="testVersion" value="5.6-"/> <!-- https://github.com/PHPCompatibility/PHPCompatibilityWP --> <rule ref="PHPCompatibilityWP"/> <!-- Rules: WordPress Coding Standards --> <!-- https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards --> <!-- https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/wiki/Customizable-sniff-properties --> <config name="minimum_supported_wp_version" value="5.2"/> <rule ref="WordPress"/> <rule ref="WordPress.NamingConventions.PrefixAllGlobals"> <properties> <!-- Value: replace the function, class, and variable prefixes used. Separate multiple prefixes with a comma. --> <property name="prefixes" type="array" value="wpsu"/> </properties> </rule> <rule ref="WordPress.WP.I18n"> <properties> <!-- Value: replace the text domain used. --> <property name="text_domain" type="array" value="wpsu"/> </properties> </rule> <rule ref="WordPress.WhiteSpace.ControlStructureSpacing"> <properties> <property name="blank_line_check" value="true"/> </properties> </rule> </ruleset> </code> ==== 플러그인 composer.json 예시 ==== 위 xml 문서 중 rule ref 속성이 있음을 발견할 수 있다. 이것들은 모두 스니퍼에서 읽어들일 수 있는 외부 규칙 세트들을 언급한 것이며 스니퍼가 인식할 수 있어야 한다. 그러나 이런 규칙들은 스니퍼의 일부분이 아니기 때문에 별도로 설치하고 인식시켜 주어야 한다. 규칙 세트는 주로 composer를 활용하여 작성 가능하다. 위 예제에서 사용된 규칙은 PHPCompatibilityWP, WordPress 이다. 이 둘은 다음 명령어로 설정 가능하다. <code bash> composer.phar require --dev phpcompatibility/phpcompatibility-wp wp-coding-standards/wpcs dealerdirect/phpcodesniffer-composer-installer </code> 얼마정도 시간이 흐르고 나면 vendor 디렉토리에 의존성이 설치된다. ==== phpcs 룰셋 인식시키기 ==== 룰을 설치하고 난 다음에는 스니퍼가 정확히 해당 룰셋의 경로를 인식해야 한다. 세번째에 언급된 ''dealerdirect/phpcodesniffer-composer-installer''를 설정하면 자동으로 인식이 된다. 만약 사용하지 않고 수동으로 인식해야 한다면, 다음 설정을 composer.json 에다 넣어 주어야 한다. <code json> "scripts": { "post-install-cmd": "\"vendor/bin/phpcs\" --config-set installed_paths vendor/phpcompatibility/php-compatibility,vendor/phpcompatibility/phpcompatibility-paragonie,vendor/phpcompatibility/phpcompatibility-wp,vendor/wp-coding-standards/wpcs/WordPress,vendor/wp-coding-standards/wpcs/WordPress-Core,vendor/wp-coding-standards/wpcs/WordPress-Docs,,vendor/wp-coding-standards/wpcs/WordPress-Extra", "post-update-cmd" : "\"vendor/bin/phpcs\" --config-set installed_paths vendor/phpcompatibility/php-compatibility,vendor/phpcompatibility/phpcompatibility-paragonie,vendor/phpcompatibility/phpcompatibility-wp,vendor/wp-coding-standards/wpcs/WordPress,vendor/wp-coding-standards/wpcs/WordPress-Core,vendor/wp-coding-standards/wpcs/WordPress-Docs,,vendor/wp-coding-standards/wpcs/WordPress-Extra" } </code> 그냥 간단하게 패키지를 설치하는 것을 추천한다. 이렇게 되면 다음처럼 인식이 된다. 주의할 점은 composer로 설치된 phpcs 에만 설정이 먹힌다. 글로벌로 잡힌 phpcs와는 결과가 다를 것이다. <code bash> $ ./vendor/bin/phpcs -i The installed coding standards are Squiz, PSR2, PSR12, MySource, PEAR, PSR1, Zend, PHPCompatibility, PHPCompatibilityParagonieSodiumCompat, PHPCompatibilityParagonieRandomCompat, PHPCompatibilityWP, WordPress, WordPress-Core, WordPress-Docs and WordPress-Extra </code> ==== PHPStorm ==== - Settings > Languages&Frameworks > PHP > Quality Tools > Code Sniffer 에서 설정을 맞춘다. - Settings > Editor > Inspections > PHP > Quality Tools > PHP Code Sniffer validation 체크 - Coding Standard를 custom으로 맞추고 설정한 phpcs.xml 파일을 인식시켜주면 IDE 화면에서 검사 결과를 바로 보여줌 ==== 참고 문서 ==== * [[ https://github.com/squizlabs/PHP_CodeSniffer | PHP_CodeSniffer]] * [[ https://github.com/PHPCompatibility/PHPCompatibility ]] * https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards * https://www.jetbrains.com/help/phpstorm/using-php-code-sniffer.html
wordpress/php_cs.txt
· 마지막으로 수정됨: 2019/06/08 06:06 저자
changwoo
문서 도구
문서 보기
이전 판
역링크
맨 위로