콘솔 파라미터로 PHP error_reporting 값 설정


11

오류에 대한 PHP 프로젝트를 테스트하기 위해 보통 다음 명령을 사용합니다.

find ./ -type f -name \*.php -exec php -l '{}' \; | grep -v "No syntax errors detected"

php -l '{}' \;php.ini에 정의 된 것이 아닌 사용자 정의 error_reporting 수준을 사용하도록 일부 매개 변수 를 사용하여 부분을 확장하고 싶습니다 . 이것이 가능한가?

(질문은 다소 코딩과 관련이 있다는 것을 알고 있습니다. 다른 한편으로는 쉘 명령에 관한 것입니다.


당신은 error_reporting수준 을 의미 합니까? php.iniPHP 파일 자체에서 value 또는 custom을 사용하고 싶지 않은 이유는 무엇입니까?
quanta

@ Quanta : 예, error_reporting에 대해 이야기하고 있습니다. 죄송합니다. 명확하지 않았습니다. 나는 지금 질문을 바꾼다. 라이브 서버에서도 때때로이 명령 체인을 사용하기 때문에 php.ini에서 변경하고 싶지 않습니다. find 명령은 모든 파일을 개별적으로 실행하기 때문에 모든 파일에서 설정해야하기 때문에 파일 자체에서 파일을 설정하는 것은 옵션이 아닙니다. 때로는 외부 라이브러리를 사용하는 프로젝트가 있으며 동시에 테스트하고 싶습니다.
라파엘 루티 게르

답변:


15

에 따르면 php -h

-d foo[=bar]     Define INI entry foo with value 'bar'

권장 생산 기본값 ( E_ALL & ~E_DEPRECATED) 을 원하면 값은 22527PHP 5.3 및 24575PHP 5.4 이상입니다.

php -l -d error_reporting=22527

다양한 조합의 가치를 찾는 것은 간단합니다.

php -r 'echo E_ALL & ~E_NOTICE | E_STRICT;' # should return 32759
php -r 'echo E_ALL & ~E_DEPRECATED;' # should return 22527 in PHP 5.3, 24575 in PHP 5.4+

1
젠장 ... 나는 "php -h"를 10 번 정도 읽었지만 어떻게 든 내 마음은 항상이 선 위로 뛰어 넘고 있었다.… 제 경우에는 다음을 사용하고 싶습니다. E_ALL | E_STRICT는 32767입니다.
Raffael Luthiger

PHP 5.4부터는 E_STRICT의 일부입니다 E_ALL. 그리고 E_ALL편리한 바로 가기 값을 갖는다 -1. 따라서 php -d error_reporting=-1모든보고를 활성화 할 수 있습니다 .
Martin Prikryl
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.