सवाल कंसोल पैरामीटर के साथ php error_reporting मान सेट करना


त्रुटियों पर मेरी PHP परियोजनाओं का परीक्षण करने के लिए मैं आमतौर पर इस आदेश का उपयोग करता हूं:

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

मैं हिस्सा का विस्तार करना चाहता हूं php -l '{}' \; कुछ पैरामीटर के साथ यह एक कस्टम त्रुटि_ रिपोर्टिंग स्तर का उपयोग करेगा और php.ini में परिभाषित नहीं है। क्या यह संभव है?

(मुझे पता है कि सवाल कुछ हद तक कोडिंग से संबंधित है। दूसरी ओर यह शैल कमांड के बारे में अधिक है। अगर आपको लगता है कि यह स्टैक ओवरफ्लो पर बेहतर होना चाहिए तो इसे स्थानांतरित करने के लिए स्वतंत्र महसूस करें। मुझे यकीन नहीं था कि सवाल बेहतर फिट बैठता है।)


9
2017-07-27 15:46


मूल


क्या मतलब है आपका error_reporting स्तर? आप मूल्य का उपयोग क्यों नहीं करना चाहते हैं php.ini या PHP फाइलों में खुद को कस्टम। - quanta
@quanta: हाँ, मैं error_reporting के बारे में बात कर रहा हूँ। क्षमा करें, यह पर्याप्त स्पष्ट नहीं था। मैं अब सवाल बदलता हूं। मैं इसे php.ini में बदलना नहीं चाहता क्योंकि मैं कभी-कभी लाइव सर्वर पर भी इस कमांड चेन का उपयोग करता हूं। और फ़ाइलों में इसे स्वयं सेट करना एक विकल्प नहीं है क्योंकि मुझे इसे प्रत्येक फ़ाइल में सेट करना होगा क्योंकि खोज आदेश प्रत्येक फ़ाइल को व्यक्तिगत रूप से निष्पादित करता है। और कभी-कभी ऐसी परियोजनाएं होती हैं जहां हम बाहरी पुस्तकालयों का उपयोग करते हैं और मैं उन्हें एक ही समय में परीक्षण करना चाहता हूं। - Raffael Luthiger


जवाब:


Php -h के अनुसार

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

यदि आप अनुशंसित उत्पादन डिफ़ॉल्ट (E_ALL और ~ E_DEPRECATED) चाहते हैं, तो PHP 5.3 में 22527 और PHP 5.4+ में 24575 होगा।

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+

11
2017-07-27 16:12



अरे ... मैं लगभग 10 बार "php -h" पढ़ रहा था लेकिन किसी भी तरह मेरा दिमाग हमेशा इस लाइन पर कूद रहा था .... हाँ, यही वह है जिसे मैं खोज रहा था। मेरे मामले में मैं उपयोग करना चाहता हूं: E_ALL | E_STRICT जो 32767 है। - Raffael Luthiger