मैं एक एपीआई रैपर वर्ग पर काम कर रहा हूं, जो मैंने पहले बनाया है। अधिकांश भाग के लिए यह बहुत मुश्किल नहीं रहा है। उस बिंदु पर पहुंचना जहां मुझे एपीआई द्वारा वापस आने वाली त्रुटियों की संभावना से निपटने की ज़रूरत है, हालांकि इस बात से भ्रमित है कि मुझे उनसे निपटने के बारे में कैसे जाना चाहिए।PHP में एक त्रुटि लौटने के विरोध में मुझे अपवाद फेंकना चाहिए?
एक बाहरी फ़ाइल एपीआई वर्ग के लिए एक कॉल, यानी, findVenueByLocationID($locationID);
इस समारोह तो निर्माण करेगी यूआरएल और API कॉल की विधि (पोस्ट, मिलता है, हटाएँ, आदि) और एक समारोह makeCall कहा जाता है कि पारित कर देगा।
मेककॉल पूरा यूआरएल बनाता है, सेवा के लिए अनुरोध भेजता है और परिणामस्वरूप एक्सएमएल वापस भेजता है। यदि एपीआई एक त्रुटि देता है, तो यह एक्सएमएल के भीतर आता है। यूआरएल को फंक्शन file_get_contents() का उपयोग करने के लिए कहा जाता है। एपीआई में त्रुटि कोड की एक निश्चित संख्या है जो एक्सएमएल में वापस आ जाएगी।
मैं यह समझ के रूप में, मैं समारोह makeCall दौरान निम्न करना चाहिए:
- पहले एक्सएमएल दिया जाता है, देखने के लिए अगर यह एक त्रुटि कोड होता है की जाँच करें, और यदि हां, तो एक त्रुटि है कि पारित त्रुटि से निपटने के लिए कक्षा को संभालना। (लॉग और रिटर्न क्लाइंट संस्करण त्रुटि संदेश)
- किसी भी कनेक्शन त्रुटियों को पकड़ने के लिए file_get_contents() फ़ंक्शन के आसपास पकड़ने का प्रयास करें, यानी सर्वर तक पहुंचने में सक्षम नहीं है?
क्या यह चीजों को करने का सबसे अच्छा तरीका माना जाता है? क्या मुझे फ़ाइल_get_contents के अंदर इसे बनाने के बजाय कॉल करने के लिए कॉल के चारों ओर पकड़ने की कोशिश करनी चाहिए? क्या मुझे एक्सएमएल द्वारा लौटाई गई प्रत्येक त्रुटि के लिए अपवाद फेंकना चाहिए और उन्हें एक त्रुटि वर्ग से संभालना चाहिए?
जिस प्रकार का उत्तर मैं ढूंढ रहा हूं उसे एपीआई रैपर या ऐसी चीजों के साथ त्रुटि प्रबंधन के आसपास कुछ सर्वोत्तम प्रथाओं को समझाते हुए संसाधन के लिए एक लिंक भी होना चाहिए।
आपके समय और प्रतिक्रियाओं के लिए अग्रिम धन्यवाद।
संपादित करें: हमारे सीटीओ के साथ बात कर के बाद, वर्तमान संस्करण में PHP में त्रुटियों अपवाद हैं, और मैं अपवाद फेंक और फोन करने वाले के लिए अपवाद के व्यवहार छोड़ देना चाहिए। याद रखें, मैं एक एपीआई के लिए एक रैपर वर्ग लागू कर रहा हूँ। विचार?
'file_get_contents() 'चेतावनी ट्रिगर करता है अगर यह संसाधन को पुनर्प्राप्त या पढ़ नहीं सकता है, तो कोशिश करें ... पकड़ आपको वहां मदद नहीं करेगा। यदि आप 'Zend_Http_Client' जैसी कक्षा का उपयोग करते हैं, तो आप असफलताओं को अधिक आसानी से रोक पाएंगे। –