찾다
백엔드 개발PHP 튜토리얼PHP_CodeSniffer를 사용하여 코드 사양을 확인하는 방법(자세한 설명)

PHP_CodeSniffer를 사용하여 코드 사양을 확인하는 방법(자세한 설명)

이 내용을 들어보지 못한 학생들도 있을 수 있습니다. 간략한 소개는 다음과 같습니다.

PHP_CodeSniffer는 코드 스타일 감지 도구입니다. 여기에는 phpcsphpcbf(GitHub 주소)라는 두 가지 유형의 스크립트가 포함되어 있습니다. PHP_CodeSniffer 是一个代码风格检测工具。它包含两类脚本,phpcsphpcbf(GitHub地址)。

phpcs 脚本对 PHPJavaScriptCSS 文件定义了一系列的代码规范(通常使用官方的代码规范标准,比如 PHPPSR2),能够检测出不符合代码规范的代码并发出警告或报错(可设置报错等级)。

phpcbf 脚本能自动修正代码格式上不符合规范的部分。比如 PSR2 规范中对每一个 PHP 文件的结尾都需要有一行空行,那么运行这个脚本后就能自动在结尾处加上一行空行。

安装

推荐使用 composer 来安装:

composer global require "squizlabs/php_codesniffer=*"

安装完后就会在全局的 Vendor 目录下的 bin 中生成两个软链接:

phpcbf -> ../squizlabs/php_codesniffer/bin/phpcbf
phpcs -> ../squizlabs/php_codesniffer/bin/phpcs

如果你不知道全局 Vendor 目录在哪,用下这个命令吧:

composer global config bin-dir --absolute

命令行使用

到这一步,其实你就可以愉快的使用这两个命令了:

哦,不过如果要全局使用这两个命令那还是做个软链接放在 /usr/local/bin 下吧~

$ phpcs test.php

FILE: /Users/stephen/Develop/Code/test.php
--------------------------------------------------------------------------------------------
FOUND 2 ERRORS AFFECTING 2 LINES
--------------------------------------------------------------------------------------------
 2 | ERROR | [ ] Missing file doc comment
 3 | ERROR | [x] TRUE, FALSE and NULL must be lowercase; expected "false" but found "FALSE"
--------------------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
--------------------------------------------------------------------------------------------

Time: 45ms; Memory: 4Mb

$ phpcbf test.php

PHPCBF RESULT SUMMARY
----------------------------------------------------------------------
FILE                                                  FIXED  REMAINING
----------------------------------------------------------------------
/Users/stephen/Develop/Code/test.php                  1      1
----------------------------------------------------------------------
A TOTAL OF 1 ERROR WERE FIXED IN 1 FILE
----------------------------------------------------------------------

Time: 49ms; Memory: 4Mb

Sublime Text 中集成

安装插件

前提 Package Control 要安装好,这个你肯定没问题的(莫名的自信,逃)

安装 phpcs 这个插件,然后打开这个插件的 Settings - UserSettings - Default,将后者的内容全部复制到前者。

配置插件

将以下这几个配置项配置一下:

当前环境中 php 的执行路径

"phpcs_php_prefix_path": "/usr/bin/php",

当前环境中 phpcs 的执行路径

"phpcs_executable_path": "~/.composer/vendor/bin/phpcs",

执行脚本时额外添加的参数,一般以 PSR2 代码规范作为标准,你也可以选择 PSR1PEAR

"phpcs_additional_args": {
    "--standard": "PSR2",
    "-n": ""
},

当前环境中 phpcbf 的执行路径

"phpcbf_executable_path": "/Users/stephen/.composer/vendor/bin/phpcbf",

开启保存就执行 cbf 脚本功能

"phpcbf_on_save": true,

现在就可以愉快的玩耍了,编辑完 .php 后缀的文件保存后就会自动回复修正代码不规范的地方。

这个插件还有其他代码规范可以设置的地方,比如 PHP Mess Detector settingsPHP Linter settingsPHP Scheck settings

下次在研究其他几个,目前是够我用了,逃)

PhpStrom 中集成

配置 Code Sniffer

在 Settings -> Languages & Frameworks -> PHP -> Code Sniffer 中对 phpcs 进行配置

点击 Configuration: Local 旁边的 ...,将当前环境的 phpcs 执行脚本所在路径配置进去,旁边有一个 Validate 按钮可以进行验证,其他两个参数默认就好,这里也稍微说一下吧。

Maxumum number of messages per file[1...100]:每个文件最多显示不符合代码规范的条数,一般出现50个了那你有很多工作可以做了,其实10个就够了,尤其对我这种代码洁癖和强迫症晚期的人来说一个足矣  。。。

Tool process timeout, sec[1...30]:脚本执行的超时时间

开启验证

在 Settings -> Editor -> Inspections 中进行开启

找到 PHP -> PHP Code Sniffer validation 选项,对其打钩,在右侧进行详细配置

我是将 Options -> Show warnings as: Error 开启了,当然你也可以选择 Warnning,提示级别高一点能够强迫自己,没啥不好的吧~

Coding standard 依旧是选择 PSR2,如果找不到这个选项,记得点一下紧挨着的刷新按钮。

自动修复

我找了半天没发现 PhpStrom 有支持 phpcbf 的可用选项,所以只能通过 External Tools

phpcs 스크립트는 PHP, JavaScriptCSS 파일에 대한 일련의 코드 사양을 정의합니다(보통 공식 사용). PHPPSR2)와 같은 코드 사양 표준은 코드 사양을 준수하지 않는 코드를 감지하고 경고 또는 오류를 발행할 수 있습니다(오류 수준 설정 가능).

phpcbf 스크립트는 표준을 준수하지 않는 코드 형식의 부분을 자동으로 수정할 수 있습니다. 예를 들어, PSR2 사양에서는 각 PHP 파일 끝에 빈 줄이 필요합니다. 그런 다음 이 스크립트를 실행하면 끝에 빈 줄이 자동으로 추가됩니다. 설치rrreeerrreee전역 Vendor 디렉토리가 어디에 있는지 모르는 경우 rrreee명령줄 사용법rrreeeSublime Text에 통합phpcs 플러그인을 설치한 다음 플러그인의 설정 - 사용자 및 설정 - 기본값 code>, 후자의 모든 내용을 전자에 복사합니다. 현재 환경의 php 실행 경로rrreeerrreeerrreee현재 환경의 phpcbf 실행 경로rrreee
composer를 사용하여 설치하는 것이 좋습니다: 설치 후 , 전역 Vendor 디렉토리 아래 bin에 두 개의 소프트 링크를 생성합니다.
이 시점에서 실제로 이 두 가지를 사용할 수 있습니다. happy command: 아, 하지만 이 두 명령을 전역적으로 사용하려면 소프트 링크를 만들어 /usr/local/bin에 넣어야 합니다~
설치 플러그인 전제 조건 Package Control이 필요합니다. 설치되시면 괜찮을 것 같아요(설명할 수 없을 정도로 자신감이 있어서 도망가세요)
구성 플러그인 다음 구성 항목을 구성합니다.
phpcs의 실행 경로스크립트 실행 시 추가되는 추가 매개변수는 일반적으로 PSR2 코드 사양을 기준으로 하며, PSR1을 선택할 수도 있습니다. PEAR 잠깐
저장을 열고 cbf 스크립트 함수를 실행🎜rrreee🎜 이제 즐겁게 플레이하실 수 있습니다. 편집 .php 접미사를 붙여 파일을 저장하신 후 자동으로 코드의 불규칙성을 수정하라는 응답을 보내드립니다. 🎜🎜이 플러그인에는 PHP Mess Detector 설정, PHP Linter 설정, PHP Scheck 설정과 같은 코드 사양을 설정할 수 있는 다른 위치도 있습니다. code>🎜🎜 다음에 몇 가지 더 공부하겠지만 지금은 이것으로 충분합니다. 탈출)🎜🎜PhpStrom에 통합 span>🎜🎜코드 스니퍼 구성🎜🎜설정 -> 언어 ​​& 프레임워크 -> 코드 스니퍼🎜🎜를 클릭하세요. 구성: 로컬 ... 옆 code>, 현재 환경에서 phpcs 실행 스크립트의 경로를 구성합니다. Validate가 있습니다. 확인을 위해 옆에 있는 > 버튼을 클릭하세요. 다른 두 매개변수는 기본적으로 괜찮으므로 여기서는 이에 대해 조금 이야기하겠습니다. 🎜🎜파일당 최대 메시지 수[1...100]: 각 파일은 코드 사양을 따르지 않는 최대 메시지 수를 표시합니다. 일반적으로 50개의 메시지가 나타나면 사실, 10개이면 충분합니다. 특히 나처럼 코드에 집착하고 강박 장애의 후기 단계에 있는 사람에게는 1개이면 충분합니다. . . 🎜🎜도구 프로세스 시간 초과, 초[1...30]: 스크립트 실행 시간 초과🎜🎜확인 활성화🎜🎜설정 -> 🎜🎜PHP -> PHP 코드 스니퍼 유효성 검사 옵션을 찾아 확인하고 오른쪽에서 자세히 구성합니다. 🎜🎜옵션 -> 경고 표시: 오류를 선택할 수도 있습니다. 경고. 프롬프트 수준을 높여도 문제가 없습니다~🎜🎜코딩 표준 그래도 이 옵션을 찾을 수 없으면 옆에 있는 새로 고침 버튼을 클릭하세요. 🎜🎜자동 복구🎜🎜오랜 시간 동안 검색했지만 PhpStromphpcbf를 지원하는 사용 가능한 옵션이 있다는 것을 찾을 수 없었습니다. 이를 달성하려면 외부 도구만 사용할 수 있습니다. 🎜🎜설정 -> 도구 -> 외부 도구에 추가하세요. 아래는 기본적으로 복사할 수 있는 예입니다. 🎜 🎜description 🎜🎜automically 올바른 코딩 표준 위반.

이제 메뉴바의 도구 -> 외부 도구에서 찾아 즐겁게 사용하실 수 있습니다.

량 형제님, 정말 불편해요. . .

그런 다음 단축키를 추가하세요. . .

설정 -> 키맵 -> 외부 도구 -> phpcbf에서 단축키를 추가하세요. 제가 설정한 것은 Option + F 또는 Windows의 경우 Alt + FOption + F,或者 Windows 上的 Alt + F

蜜汁延伸

之前没用 phpcbf,代码自动修复使用的是 php-cs-fixer,但后来发现两者功能差不多,所以秉着能少一个包就少一个包的原则,放弃了 php-cs-fixer

Honey Extension

이전에 phpcbf를 사용하지 않았는데 코드가 자동으로 복구됩니다. php-cs-fixer를 사용하다가 나중에 둘의 기능이 비슷하다는 걸 발견하고 하나 덜한다는 원칙에 따라 php-cs-fixer를 포기했습니다. 패키지.

관심이 있으시면 스스로 지식을 확장하실 수 있습니다~

추천: "🎜PHP 비디오 튜토리얼🎜"🎜

위 내용은 PHP_CodeSniffer를 사용하여 코드 사양을 확인하는 방법(자세한 설명)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 segmentfault에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
절대 세션 타임 아웃의 차이점은 무엇입니까?절대 세션 타임 아웃의 차이점은 무엇입니까?May 03, 2025 am 12:21 AM

절대 세션 시간 초과는 세션 생성시 시작되며, 유휴 세션 시간 초과는 사용자가 작동하지 않아 시작합니다. 절대 세션 타임 아웃은 금융 응용 프로그램과 같은 세션 수명주기의 엄격한 제어가 필요한 시나리오에 적합합니다. 유휴 세션 타임 아웃은 사용자가 소셜 미디어와 같이 오랫동안 세션을 활성화하려는 응용 프로그램에 적합합니다.

세션이 서버에서 작동하지 않으면 어떤 조치를 취 하시겠습니까?세션이 서버에서 작동하지 않으면 어떤 조치를 취 하시겠습니까?May 03, 2025 am 12:19 AM

서버 세션 고장은 다음 단계를 따라 해결할 수 있습니다. 1. 서버 구성을 확인하여 세션이 올바르게 설정되었는지 확인하십시오. 2. 클라이언트 쿠키를 확인하고 브라우저가 지원하는지 확인하고 올바르게 보내십시오. 3. Redis와 같은 세션 스토리지 서비스가 정상적으로 작동하는지 확인하십시오. 4. 올바른 세션 로직을 보장하기 위해 응용 프로그램 코드를 검토하십시오. 이러한 단계를 통해 대화 문제를 효과적으로 진단하고 수리 할 수 ​​있으며 사용자 경험을 향상시킬 수 있습니다.

session_start () 함수의 중요성은 무엇입니까?session_start () 함수의 중요성은 무엇입니까?May 03, 2025 am 12:18 AM

session_start () iscrucialinphpformanagingUsersessions.1) itiniteSanewsessionifnoneexists, 2) ResumesAnxistessions, and3) setSasessionCookieForContInuityAcrosrequests, enablingplicationsirecationSerauthenticationAndpersonalizestContent.

세션 쿠키를 위해 httponly 플래그를 설정하는 것이 중요합니까?세션 쿠키를 위해 httponly 플래그를 설정하는 것이 중요합니까?May 03, 2025 am 12:10 AM

XSS 공격을 효과적으로 방지하고 사용자 세션 정보를 보호 할 수 있기 때문에 httponly 플래그를 설정하는 것은 세션 쿠키에 중요합니다. 구체적으로, 1) httponly 플래그는 JavaScript가 쿠키에 액세스하는 것을 방지합니다. 2) PHP 및 Flask에서 SetCookies 및 Make_response를 통해 깃발을 설정할 수 있습니다. 3) 모든 공격으로부터 방지 할 수는 없지만 전체 보안 정책의 일부가되어야합니다.

웹 개발에서 PHP 세션은 어떤 문제를 해결합니까?웹 개발에서 PHP 세션은 어떤 문제를 해결합니까?May 03, 2025 am 12:02 AM

phpssessionssolvetheproblemofmainingstateacrossmultiplehtttprequestsbystoringdataontheserversociatingititwithauniquessessionid.1) theStoredAserver-side, 일반적으로, 일반적으로 and insessionsecietoretoretrievedata.2) sessionsenhances

PHP 세션에 어떤 데이터를 저장할 수 있습니까?PHP 세션에 어떤 데이터를 저장할 수 있습니까?May 02, 2025 am 12:17 AM

phpsessionscanstorestrings, 숫자, 배열 및 객체 1.Strings : TextDatalikeUsernames.2.numbers : integorfloatsforcounters.3.arrays : listslikeshoppingcarts.4.objects : complexStructuresThatareserialized.

PHP 세션을 어떻게 시작합니까?PHP 세션을 어떻게 시작합니까?May 02, 2025 am 12:16 AM

tostartAphPessession, us

세션 재생이란 무엇이며 보안을 어떻게 개선합니까?세션 재생이란 무엇이며 보안을 어떻게 개선합니까?May 02, 2025 am 12:15 AM

세션 재생은 세션 고정 공격의 경우 사용자가 민감한 작업을 수행 할 때 새 세션 ID를 생성하고 이전 ID를 무효화하는 것을 말합니다. 구현 단계에는 다음이 포함됩니다. 1. 민감한 작업 감지, 2. 새 세션 ID 생성, 3. 오래된 세션 ID 파괴, 4. 사용자 측 세션 정보 업데이트.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.