PHP에서 변수 대소문자 자동 수정
2098 단어 phpphpcsfixerlintersprogramming
$this->variableName
를 사용하여 호출됩니다. 이는 함수를 호출하는 방법과 매우 유사합니다. 그것들은 또한 private $variableName
와 같은 생성자 위에 정의될 수 있으며 이는 이와 같은 수정자로 수정되지만 모든 호출 사이트는 그렇지 않습니다. 그래서 약간의 위험이 있습니다 😅. PHP에는 업데이트하고 싶지 않은 predefined variables도 있습니다. 좋아, 시작하자!기존 프로젝트를 사용하고 있었기 때문에 각 파일을 가져오는 것에 대해 걱정할 필요가 없었고 PHP-CS-Fixer가 각 파일을 구문 분석하고 토큰을 가져오는 것을 신뢰할 수 있었습니다. 이것의 가장 어려운 부분은 실제로 토큰을 선택하는 방법을 알아내는 것이었습니다. 따라서 이 모든 작업은 토큰(코드의 가장 작은 블록)이 둘 중 하나variable types이고 미리 정의된 변수 목록에 없는지 확인하는 것입니다.
foreach ($tokens as $index => $token) {
if ((T_VARIABLE === $token->getId()) || (T_STRING_VARNAME === $token->getId())) {
if (in_array($token->getContent(), $predefinedVariables)) {
continue;
}
$tokens[$index] = new Token([$token->getId(), $this->updateVariableCasing($token->getContent())]);
}
}
그것은 실제로 그것의 대부분입니다!
updateVariableCasing
는 구성을 취한 다음 우리가 필요로 하는 모든 기능을 호출합니다(예: camelCase()
가 configuration['case']
와 같으면 camel_case
대소문자를 바꾸는 함수가 StackOverflow 어딘가에서 발견되었습니다. 전반적으로 이것은 매우 잘 작동합니다! 유일한 우리가 문제에 부딪힌 곳은 private 변수가 맨 위에 정의되어 거기에서 변환되었지만 코드에서 호출될 때 변환되지 않은 곳이었습니다( $this->variable_name
) 프로젝트에서 이와 같은 것을 구현하기로 결정했다면 염두에 두어야 할 사항 .(PHP-CS-Fixer에 이 규칙을 추가하기 위한 PR)[ https://github.com/FriendsOfPHP/PHP-CS-Fixer/pull/5097 ]을 올렸지만 안전하지 않고 유지할 시간이 별로 없기 때문에 추가하기를 꺼려했다고 생각합니다. 들어가려고 합니다.
Reference
이 문제에 관하여(PHP에서 변수 대소문자 자동 수정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jennifer/autofixing-variable-case-in-php-58od텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)