PHP के लिए CLI फ्रेमवर्क क्या है और इसकी आवश्यकता क्यों है?
CLI (कमांड लाइन इंटरफ़ेस) फ्रेमवर्क PHP के लिए एक उपकरण है जो कंसोल एप्लिकेशन और स्क्रिप्ट बनाने को सरल बनाता है। $argv आर्गुमेंट्स को मैन्युअल रूप से पार्स करने और इनपुट/आउटपुट प्रोसेस करने के बजाय, आपको कमांड, ऑप्शन, रंगीन आउटपुट, प्रोग्रेस-बार और यहां तक कि इंटरैक्टिव मेनू के समर्थन के साथ एक तैयार आर्किटेक्चर मिलता है।
आधुनिक PHP-डेवलपमेंट में, CLI फ्रेमवर्क का व्यापक रूप से उपयोग किया जाता है:
- कार्यों का स्वचालन (DB माइग्रेशन, कैशिंग, डिप्लॉय)
- कोड जनरेशन (scaffolding)
- CRON-स्क्रिप्ट और बैकग्राउंड हैंडलर
- DevOps और CI/CD उपकरण
आइए पाँच सबसे लोकप्रिय समाधानों पर नज़र डालें जिनका उपयोग आप pythonlib.ru पर कर सकते हैं।
1. Symfony Console — उद्योग मानक
Symfony Console PHP के लिए सबसे परिपक्व और लोकप्रिय CLI फ्रेमवर्क है। इसका उपयोग Laravel Artisan, Doctrine, Composer और सैकड़ों अन्य प्रोजेक्ट्स में किया जाता है।
स्थापना
composer require symfony/consoleउदाहरण: सरल "Hello World" एप्लिकेशन
// hello.phprequire __DIR__ . '/vendor/autoload.php';
use Symfony\\Component\\Console\\Application;use Symfony\\Component\\Console\\Command\\Command;use Symfony\\Component\\Console\\Input\\InputInterface;use Symfony\\Component\\Console\\Output\\OutputInterface;
class HelloCommand extends Command{ protected static $defaultName = 'app:hello';
protected function configure(): void { $this->setDescription('उपयोगकर्ता का अभिवादन'); }
protected function execute(InputInterface $input, OutputInterface $output): int { $output->writeln('<info>नमस्ते, दुनिया!</info>'); return Command::SUCCESS; }}
$application = new Application();$application->add(new HelloCommand());$application->run();प्रमुख विशेषताएं
- स्वचालित सहायता जनरेशन (
--help) - सत्यापन के साथ ऑप्शन और आर्गुमेंट का समर्थन
- स्टाइल के माध्यम से रंगीन आउटपुट (info, error, comment)
- प्रोग्रेस-बार, टेबल, प्रश्न
CommandTesterके माध्यम से कमांड का परीक्षण
2. Laravel Zero — Laravel पर आधारित माइक्रो-फ्रेमवर्क
Laravel Zero Laravel का एक हल्का संस्करण है, जो CLI के लिए अनुकूलित है। यह आदर्श है यदि आप Laravel इकोसिस्टम के आदी हैं, लेकिन पूरे फ्रेमवर्क को शामिल नहीं करना चाहते हैं।
स्थापना
composer create-project laravel-zero/laravel-zero my-cli-appउदाहरण: आर्गुमेंट वाला कमांड
// app/Commands/GreetCommand.phpnamespace App\\Commands;
use LaravelZero\\Framework\\Commands\\Command;
class GreetCommand extends Command{ protected $signature = 'greet {name : उपयोगकर्ता का नाम} {--yell : चिल्लाएं?}'; protected $description = 'नाम के साथ अभिवादन';
public function handle(): int { $name = $this->argument('name'); $message = "नमस्ते, $name!"; if ($this->option('yell')) { $message = strtoupper($message); } $this->info($message); return self::SUCCESS; }}अंदर क्या है?
- Eloquent ORM (वैकल्पिक)
- Artisan-शैली के कमांड
- कतारों और कार्यों का समर्थन
- DB के लिए माइग्रेशन और सीडिंग
- PHAR-आर्काइव में अंतर्निहित संकलन
3. Minicli — न्यूनतम और तेज़
Minicli बिना किसी निर्भरता के एक हल्का CLI फ्रेमवर्क है। इसका वजन 100 KB से कम है और यह माइक्रोसर्विसेज और सरल उपयोगिताओं के लिए आदर्श है।
स्थापना
composer require minicli/minicliउदाहरण: इंटरैक्टिव सर्वेक्षण
// app.phprequire __DIR__ . '/vendor/autoload.ph