PHP में CLI यूटिलिटीज़: आपने अभी तक अपना कंसोल टूल क्यों नहीं बनाया?
\n\nसोचिए: आप टर्मिनल में बैठे हैं, एक कमांड चलाते हैं — और एक सेकंड में आपकी रिपोर्ट तैयार है, सारी तस्वीरें कन्वर्ट हो गई हैं, या नए सर्वर पर प्रोजेक्ट सेटअप हो गया है। बिना ब्राउज़र, बिना माउस, बिना किसी अतिरिक्त झंझट के। यह जादू लगता है? नहीं, यह सिर्फ PHP में CLI यूटिलिटीज़ हैं।
\n\nकई डेवलपर्स PHP को सिर्फ "वेब लैंग्वेज" मानते हैं। लेकिन असल में, PHP कंसोल एप्लीकेशन बनाने के लिए भी बहुत अच्छा है। इसमें इनपुट-आउटपुट स्ट्रीम के साथ काम करने की बिल्ट-इन सुविधा है, आर्गुमेंट्स को आसानी से हैंडल कर सकते हैं, और निश्चित रूप से Symfony Console जैसी शक्तिशाली लाइब्रेरीज़ भी हैं। इस आर्टिकल में, हम सीखेंगे कि PHP में कंसोल स्क्रिप्ट कैसे बनाई जाती है — एक साधारण echo से लेकर कलर्स और प्रोग्रेस-बार वाले पूर्ण टूल तक।
\n\nअगर आप मैन्युअल रूप से एक जैसे काम करते-करते थक गए हैं, अगर आप अपने रूटीन को ऑटोमेट करना चाहते हैं और एक असली हैकर जैसा महसूस करना चाहते हैं — तो आप सही जगह पर हैं। चलिए शुरू करते हैं!
\n\nCLI यूटिलिटी क्या है और इसकी ज़रूरत क्यों है?
\n\nCLI (कमांड लाइन इंटरफ़ेस) एक प्रोग्राम है जो कमांड लाइन पर काम करता है। यह आर्गुमेंट्स लेता है, कार्य करता है और परिणाम दिखाता है। वेब एप्लीकेशन के विपरीत, इसमें कोई HTML, CSS या JavaScript नहीं होता। सिर्फ साफ कोड और टर्मिनल।
\n\nPHP में CLI यूटिलिटीज़ क्यों लिखें? यहाँ कुछ परिदृश्य हैं:
\n\n- \n
- डेटा माइग्रेशन — CSV से डेटाबेस में डेटा ट्रांसफर करना। \n
- रिपोर्ट जनरेशन — स्टैटिस्टिक्स इकट्ठा करके PDF या Excel बनाना। \n
- डिप्लॉयमेंट ऑटोमेशन — एक कमांड से सर्वर पर प्रोजेक्ट डिप्लॉय करना। \n
- फ़ाइल पार्सिंग और प्रोसेसिंग — कन्वर्ट करना, कंप्रेस करना, रीनेम करना। \n
- CRON जॉब्स — नियमित अंतराल पर चलने वाले ऑपरेशन। \n
और सबसे अच्छी बात — PHP में कंसोल टूल डेवलपमेंट के लिए किसी जटिल इंफ्रास्ट्रक्चर की ज़रूरत नहीं है। बस एक फ़ाइल और कोड की कुछ लाइनें काफी हैं।
\n\nशुरुआत: PHP में न्यूनतम CLI स्क्रिप्ट
\n\nटर्मिनल खोलें, hello.php फ़ाइल बनाएं और यह लिखें:
<?php\necho "नमस्ते, टर्मिनल!\\n";\n\n\nइसे चलाएं:
\n\nphp hello.php\n\n\nआप देखेंगे:
\n\nनमस्ते, टर्मिनल!\n\nबधाई हो! आपने अभी-अभी अपनी पहली PHP CLI यूटिलिटी लिखी है। लेकिन चलिए इसे और उपयोगी बनाते हैं। इसमें कमांड लाइन आर्गुमेंट्स को हैंडल करना जोड़ते हैं।
\n\nआर्गुमेंट्स के साथ काम: $argv और $argc
\n\nPHP कंसोल के साथ काम करने के लिए दो सुपरग्लोबल एरे प्रदान करता है: $argv (आर्गुमेंट्स की लिस्ट) और $argc (आर्गुमेंट्स की संख्या)। पहला आर्गुमेंट (इंडेक्स 0) स्क्रिप्ट का नाम होता है।
उदाहरण:
\n\n<?php\nif ($argc < 2) {\n echo "उपयोग: php hello.php [नाम]\\n";\n exit(1);\n}\n\n$name = $argv[1];\necho "नमस्ते, $name!\\n";\n\n\nचलाएं:
\n\nphp hello.php राजेश\n\n\nपरिणाम:
\n\nनमस्ते, राजेश!\n\nयह पहले से बेहतर है। लेकिन बड़े प्रोजेक्ट्स के लिए यह तरीका सुविधाजनक नहीं है। हमें नामांकित आर्गुमेंट्स, फ़्लैग्स और डिफ़ॉल्ट वैल्यू चाहिए। यहाँ Symfony Console लाइब्रेरी काम आती है।
\n\nSymfony Console: PHP CLI यूटिलिटीज़ के लिए शक्तिशाली आधार
\n\nSymfony Console PHP में कंसोल एप्लीकेशन बनाने का डी-फैक्टो स्टैंडर्ड है। इसकी मदद से आप आसानी से जोड़ सकते हैं:
\n\n- \n
- नामांकित आर्गुमेंट्स और ऑप्शन \n
- रंगीन आउटपुट \n
- प्रोग्रेस-बार \n
- इनपुट वैलिडेशन \n
- कमांड का ऑटोलोडिंग \n
Composer के ज़रिए इंस्टॉल करें:
\n\ncomposer require symfony/console\n\n\nअब हम एक पूर्ण PHP CLI यूटिलिटी बनाएंगे — एक पासवर्ड जनरेटर।
\n\nपासवर्ड जनरेशन के लिए कमांड लिखना
\n\nप्रोजेक्ट स्ट्रक्चर