परिचय: दस्तावेज़ीकरण विलासिता क्यों नहीं, बल्कि आवश्यकता क्यों है
\n\nप्रत्येक PHP-डेवलपर ने ऐसी स्थिति का सामना किया है जहाँ किसी और का (या अपना भी) कोड एक महीने बाद "अंधेरे जंगल" में बदल जाता है। दस्तावेज़ीकरण की कमी उन मुख्य कारणों में से एक है जिनकी वजह से परियोजनाएँ धीमी हो जाती हैं और बग बढ़ जाते हैं। कोड का दस्तावेज़ीकरण सिर्फ सहकर्मियों के प्रति शिष्टाचार नहीं है, यह परियोजना के भविष्य में एक निवेश है। इस लेख में, हम PHPDoc मानक, स्वचालन उपकरण और सर्वोत्तम अभ्यासों का उपयोग करके PHP परियोजना के लिए सही तरीके से दस्तावेज़ीकरण लिखने का तरीका समझेंगे।
\n\n1. PHPDoc की मूल बातें: संरचना और वाक्यविन्यास
\n\nPHPDoc (या phpDocBlock) PHP में कोड टिप्पणी करने का एक मानक है, जो न केवल किसी फ़ंक्शन या क्लास के उद्देश्य का वर्णन करने की अनुमति देता है, बल्कि स्वचालित रूप से दस्तावेज़ीकरण उत्पन्न करने की भी अनुमति देता है। दस्तावेज़ीकरण का प्रत्येक ब्लॉक /** प्रतीकों से शुरू होता है और */ पर समाप्त होता है।
DocBlock की मूल संरचना
\nएक फ़ंक्शन के लिए न्यूनतम ब्लॉक पर विचार करें:
\n<?php\n\n/**\n * दो संख्याओं का योग निकालता है\n *\n * @param int $a पहला जोड़\n * @param int $b दूसरा जोड़\n * @return int संख्याओं का योग\n */\nfunction sum(int $a, int $b): int {\n return $a + $b;\n}\n\nमुख्य तत्व:
\n- \n
- संक्षिप्त विवरण — खुलने वाली टिप्पणी के बाद पहली पंक्ति। यह संक्षिप्त और स्पष्ट होना चाहिए। \n
- विस्तृत विवरण (वैकल्पिक) — एक खाली पंक्ति के बाद आ सकता है। जटिल एल्गोरिदम समझाने की अनुमति देता है। \n
- टैग —
@प्रतीक से शुरू होते हैं। मुख्य:@param,@return,@throws। \n
क्लास और गुणों का दस्तावेज़ीकरण
\nक्लास और गुणों के लिए समान ब्लॉक का उपयोग किया जाता है:
\n<?php\n\n/**\n * उपयोगकर्ताओं के साथ काम करने के लिए क्लास\n *\n * उपयोगकर्ताओं को बनाने, अद्यतन करने और हटाने के तरीके प्रदान करता है।\n * सभी संचालन सत्यापन और लॉगिंग से गुजरते हैं।\n */\nclass UserManager {\n\n /**\n * @var PDO|null डेटाबेस कनेक्शन ऑब्जेक्ट\n */\n private $db;\n\n /**\n * @var LoggerInterface लॉगर इंस्टेंस\n */\n private $logger;\n\n /**\n * क्लास का कंस्ट्रक्टर\n *\n * @param PDO $db डेटाबेस के साथ काम करने के लिए PDO ऑब्जेक्ट\n * @param LoggerInterface $logger लॉगर ऑब्जेक्ट\n */\n public function __construct(PDO $db, LoggerInterface $logger) {\n $this->db = $db;\n $this->logger = $logger;\n }\n}\n\n2. मुख्य PHPDoc टैग: पूर्ण संदर्भ
\n\nपूर्ण दस्तावेज़ीकरण बनाने के लिए मुख्य टैग जानना आवश्यक है। यहाँ सबसे महत्वपूर्ण टैग की सूची दी गई है:
\n\nप्रकार और पैरामीटर के विवरण के लिए टैग
\n- \n
@param— विधि/फ़ंक्शन के पैरामीटर का वर्णन करता है। प्रारूप:@param प्रकार $नाम विवरण। \n @return— वापसी मान का वर्णन करता है। प्रारूप:@return प्रकार विवरण। \n @var— क्लास गुण के प्रकार का वर्णन करता है। \n @throws— इंगित करता है कि विधि कौन से अपवाद फेंक सकती है। \n
संरचना और मेटाडेटा के विवरण के लिए टैग
\n- \n
@see— दस्तावेज़ीकरण के किसी अन्य तत्व (क्लास, विधि) का लिंक। \n @link— बाहरी लिंक (URL)। \n @deprecated— पुराने तत्व को चिह्नित करता है। \n @since— उस संस्करण को इंगित करता है जिससे तत्व उपलब्ध है। \n @author— कोड का लेखक। \n
जटिल DocBlock का उदाहरण
\n<?php\n\n/**\n * पेजिनेशन के साथ उपयोगकर्ता के ऑर्डर की सूची प्राप्त करता है\n *\n * विधि तैयार अभिव्यक्तियों का उपयोग करके डेटाबेस से क्वेरी निष्पादित करती है।\n * Order ऑब्जेक्ट की एक सरणी लौटाती है।\n *\n * @param int $userId उपयोगकर्ता का ID\n * @param int $page पृष्ठ संख्या (1 से शुरू)\n * @param int $limit प्रति पृष्ठ रिकॉर्ड की संख्या (अधिकतम 100)\n * @return array Order ऑब्जेक्ट की सरणी\