2013-08-28 7 views
9

मैं लैरवेल 4 या 5 को PHP नोटिस (जैसे अपरिभाषित चर नोटिस) को अनदेखा कर सकता हूं और केवल एक सरल 'अपरिभाषित अनुक्रमणिका या चर' PHP नोटिस के कारण पूरे ऐप को तोड़ नहीं सकता?लैरवेल PHP नोटिस पर पूरे ऐप को तोड़ता है

मैं उस पर लार्वेल 3 पर कॉन्फ़िगर/error.php में 'अनदेखा' सरणी सेट कर सकता था। लेकिन मुझे यह नहीं पता कि लैरवेल 4 या 5 में ऐसा कैसे किया जाए।

उत्तर

8

यह व्यवहार त्रुटि रिपोर्टिंग -1 को सेट करने के कारण है। यह वह जगह है Laravel का डिफ़ॉल्ट व्यवहार - लाइन vendor/laravel/framework/src/illuminate/Foundation/Bootstrap/HandleExceptions.php में आप Laravel 4, या लाइन 29 उपयोग कर रहे हैं vendor/laravel/framework/src/illuminate/Foundation/start.php में 14 देखते हैं कि आप Laravel 5 उपयोग कर रहे हैं:

error_reporting(-1); // Reports everything 

Laravel की त्रुटि हैंडलर अपने error_reporting स्तर का सम्मान करता है, और ध्यान नहीं देगा कोई त्रुटि जो आप PHP को रिपोर्ट नहीं करते हैं। यह उल्लेखनीय है कि त्रुटि रिपोर्टिंग स्तर को बदलना एक अच्छा विचार नहीं है। लेकिन पिछले अनुदेश ओवरराइड करने के लिए आप में अपने त्रुटि रिपोर्ट करने की प्राथमिकताओं में जोड़ सकते हैं app/start/global.php (Laravel 4 में) या app/bootstrap/app.php (Laravel 5 में)

error_reporting(E_ALL^E_NOTICE); // Ignores notices and reports all other kinds 

फिर यह एक समाधान नहीं है। यह केवल वही है जो आप पूछ रहे हैं। सभी और कोई भी त्रुटि, चेतावनी, नोटिस इत्यादि तय और तय की जानी चाहिए।

आपको त्रुटि के लिए सभी स्थिरांक देख सकते हैं यहां रिपोर्टिंग: http://www.php.net/manual/en/errorfunc.constants.php

आप यहां error_reporting का उपयोग करने के बारे में अधिक जानकारी प्राप्त कर सकते हैं: http://php.net/manual/en/function.error-reporting.php

+0

में मैं सख्त मोड है, जो मुझे लगता है कि एक गैर बुराई उपयोग है बंद करने के लिए इस का उपयोग कर रहा हूँ। सख्त मोड [आपके लिए बहुत कम करता है] (http://stackoverflow.com/a/25826279/1709587) पहली जगह में और [भाषा से हटाया जा रहा है] (https://wiki.php.net/rfc/ reclassify_e_strict) PHP 7 में, उस स्तर के नीचे गिरने वाली दो चेतावनियों को पूरी तरह से हटाकर - महत्वपूर्ण रूप से सख्त मोड में अमूर्त स्थिर तरीकों पर पूरी तरह से तर्कहीन प्रतिबंध सहित। यह मेरी राय में डिफ़ॉल्ट रूप से E_STRICT को सक्षम करने के लिए लैरावेल के हिस्से पर एक संदिग्ध निर्णय है। –

+0

'त्रुटि_ रिपोर्टिंग (E_ALL^​​E_NOTICE) जोड़ना; 'ऐप/बूटस्ट्रैप/app.php' में लार्वेल 5.1 – Moppo

3

Laravel 5.1 में आप error_reporting(0) जोड़ सकते हैं या जो भी आप चाहते हैं में \ एप्लिकेशन \ प्रदाता \ AppServiceProvider.php बूट() विधि

+0

ओएमजी के साथ काम नहीं लगता है, आपने त्रुटियों को छुपाकर पुराने लारवेल 4.2 ऐप –

+0

@ बुहूबुवेविया को अपग्रेड करने के इतने घंटों के काम को बचाया है? –

+0

@IvankaTodorova कभी-कभी किसी को व्यावहारिक होना पड़ता है। जब PHP 4.2 पर विकसित एक पुराने 4.2 लार्वा ऐप का एक बंदरगाह PHP 7 और लार्वेल 5.2 पर चलाने के लिए अपग्रेड किया जाना था, और ऐसा करने के लिए केवल 1 दिन है, तो हाँ, आप जो करते हैं वह करते हैं। –

0

लिए laravel 5.0 टिप्पणी निम्नलिखित लाइन

throw new ErrorException($message, 0, $level, $file, $line); 


विक्रेता/laravel/रूपरेखा/src/रोशन/फाउंडेशन/बूटस्ट्रैप/HandleExceptions.php

+1

* कृपया ध्यान दें *: आपके अगले 'संगीतकार अद्यतन' पर 'विक्रेता' फ़ोल्डर ओवरराइट हो जाएगा और आपके परिवर्तन गायब हो जाएंगे। :) –

संबंधित मुद्दे