Konsol parametresiyle php error_reporting değerini ayarlama


11

PHP projelerimi hatalarda test etmek için normalde bu komutu kullanıyorum:

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

Ben php -l '{}' \;php.ini içinde tanımlanan bir değil, özel bir error_reporting düzeyi kullanacak şekilde bazı parametrelerle bölümü genişletmek istiyorum . Mümkün mü?

(Sorunun biraz kodlama ile ilgili olduğunu biliyorum. Diğer tarafta daha çok kabuk komutları hakkında. Eğer stackoverflow üzerinde daha iyi olması gerektiğini düşünüyorsanız o zaman taşımak için çekinmeyin. Sorunun daha iyi uyduğundan emin değildim.)


error_reportingSeviyeyi mi kastediyorsun ? Neden php.iniphp dosyalarında kendilerini veya custom değerini kullanmak istemiyorsunuz .
quanta

@quanta: Evet, error_reporting'den bahsediyorum. Üzgünüm, yeterince açık değildi. Şimdi soruyu değiştiriyorum. Bu komut zincirini bazen canlı bir sunucuda kullandığım için php.ini dosyasında değiştirmek istemiyorum. Ve dosyaları kendileri ayarlamak bir seçenek değildir, çünkü find komutu her dosyayı ayrı ayrı yürüttüğü için her dosyada ayarlamam gerekir. Bazen dış kütüphaneleri kullandığımız projelerim var ve bunları aynı zamanda test etmek istiyorum.
Raffael Luthiger

Yanıtlar:


15

Göre php -h

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

Önerilen üretim varsayılanını ( E_ALL & ~E_DEPRECATED) istiyorsanız, değer 22527PHP 5.3'te ve 24575PHP 5.4+'da olacaktır.

php -l -d error_reporting=22527

Çeşitli kombinasyonlar için değer bulmak basittir.

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
lanet olsun ... Ben yaklaşık 10 kez "php -h" okuyordu ama bir şekilde aklım hep bu çizginin üzerinden atlıyordu .... Evet, ben aradım budur. Benim durumumda kullanmak istiyorum: E_ALL | E_STRICT olan
32767.

PHP 5.4 beri E_STRICT, bir parçasıdır E_ALL. Ve E_ALLkullanışlı bir kısayol değerine sahiptir -1. Böylece php -d error_reporting=-1tüm raporlar etkinleştirilebilir.
Martin Prikryl
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.