मैं कंसोल आधारित एप्लिकेशन बनाने के लिए लैरवेल 5.1 का उपयोग कर रहा हूं। विकास के दौरान जब कोई त्रुटि होती है तो मैं अपवाद ट्रेस प्रदर्शित करना चाहता हूं। हालांकि, अगर मैं php artisan
में -v -vv या -vvv विकल्प का उपयोग करता हूं, तो मुझे अपने कस्टम आदेशों के लिए अपवाद ट्रेस नहीं मिलता है। मैंने .env
में APP_DEBUG=true
सेट किया है, फिर भी कोई अपवाद नहीं है।मैं लार्वेल कंसोल कमांड में अपवाद ट्रेस कैसे प्रदर्शित कर सकता हूं?
php artisan some:unknowncommand
का आउटपुट है:
[InvalidArgumentException]
There are no commands defined in the "some" namespace.
php artisan -v some:unknowncommand
का आउटपुट है:
[InvalidArgumentException]
There are no commands defined in the "some" namespace.
Exception trace:
() at /Users/dirkpostma/Dropbox/Domains/dpepp/vendor/symfony/console/Application.php:501
Symfony\Component\Console\Application->findNamespace() at /Users/dirkpostma/Dropbox/Domains/dpepp/vendor/symfony/console/Application.php:535
Symfony\Component\Console\Application->find() at /Users/dirkpostma/Dropbox/Domains/dpepp/vendor/symfony/console/Application.php:192
Symfony\Component\Console\Application->doRun() at /Users/dirkpostma/Dropbox/Domains/dpepp/vendor/symfony/console/Application.php:126
...
अब, मैं एक बहुत ही सरल सांत्वना आदेश डीपी बुलाया बनाया: परीक्षण, संभाल समारोह निम्नलिखित के साथ:
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
generate error here
}
php artisan dp:test
का आउटपुट है:
[Symfony\Component\Debug\Exception\FatalErrorException]
syntax error, unexpected 'error' (T_STRING)
php artisan -v dp:test
का आउटपुट वही है। php artisan -vvv dp:test
का आउटपुट वही है।
लॉग फ़ाइल अपवाद ट्रेस दिखाती है, इसलिए किसी भी तरह से इसे क्ली में प्रदर्शित करना संभव होना चाहिए। मुझे फ़ाइल नाम और linenumer भी नहीं दिखता है जहां त्रुटि होती है ... मैं इसका ख्याल कैसे रख सकता हूं?
अग्रिम धन्यवाद!
संपादित करें:
थोड़ा और खोद गया है। मामले में मैं अपने आदेश में इस का उपयोग करें:
public function handle()
{
throw new \Exception("test exception");
}
और मैं आदेश php artisan -v dp:test
जारी, त्रुटि ट्रेस छपा है। जब कोई PHP त्रुटि के कारण अपवाद फेंक दिया जाता है तो ट्रेस केवल मुद्रित नहीं होता है। Illuminate/Foundation/Bootstrap/HandleExceptions.php
विधि bootstrap
PHP त्रुटियों को अपवादों में परिवर्तित कर दिया गया है। जब ऐसा होता है, तो एक अपवाद फेंक दिया जाता है, लेकिन मुद्रण के दौरान -v किसी भी तरह अनदेखा किया जाता है। यह बहुत असुविधाजनक है क्योंकि यह सीएलआई ऐप्स को डीबग करने में कठोर बनाता है।
मुझे लगता है कि समाधान vendor/symfony/console/Application.php
, विधि renderException
में पाया जा सकता है।
मैं आगे बाद में खुदाई करने के लिए, जब तक किसी और तेजी से मुझ से समाधान इंगित कर सकते हैं :-)
लैरवेल 5.3 का उपयोग करना और ऐसा लगता है कि यह काम करता है। -v के बारे में कोई जानकारी नहीं थी और अब करें। धन्यवाद। –