ما هو إطار عمل CLI للغة PHP؟
إطار عمل CLI (واجهة سطر الأوامر) للغة PHP هو أداة تتيح للمطورين إنشاء أوامر وحدة تحكم ونصوص برمجية وأدوات مساعدة بلغة PHP. الحل الأكثر شيوعًا وقوة في هذا المجال هو مكون Symfony Console. فهو يوفر بنية جاهزة لمعالجة الوسائط والخيارات وإخراج النص الملون والتلميحات التفاعلية والتوليد التلقائي للتعليمات.
لماذا نحتاج إلى إطار عمل CLI؟
في التطوير الحديث، تُستخدم أوامر وحدة التحكم لأتمتة المهام: ترحيل قواعد البيانات، تنظيف ذاكرة التخزين المؤقت، توليد الكود، تشغيل الاختبارات، معالجة قوائم الانتظار وغيرها الكثير. بدون إطار عمل، سيتعين عليك تحليل وسائط سطر الأوامر يدويًا ومعالجة الأخطاء وتنسيق المخرجات. يعمل Symfony Console على جعل هذه العملية بسيطة وموحدة.
كيفية التثبيت؟
يتم التثبيت عبر Composer. افتح الطرفية في جذر مشروعك ونفذ الأمر التالي:
composer require symfony/consoleبعد ذلك، ستتمكن من استخدام جميع إمكانيات الإطار في تطبيق PHP الخاص بك.
الوظائف الرئيسية
- إنشاء الأوامر: كل أمر هو فئة منفصلة ترث من Command.
- الوسائط والخيارات: حدد بسهولة المعلمات الإلزامية والاختيارية، بالإضافة إلى الخيارات ذات القيم الافتراضية.
- الإخراج الملون: استخدم الأنماط لتمييز الأخطاء والتحذيرات والرسائل الناجحة.
- التفاعلية: دعم الأسئلة والاختيار من القائمة والإكمال التلقائي للإدخال.
- التعليمات التلقائية: عند تشغيل الأمر مع العلامة --help، يتم إنشاء وثائق كاملة.
- الجداول وأشرطة التقدم: عرض مناسب للبيانات على شكل جداول ومؤشرات تقدم.
مثال كود بلغة PHP
لننشئ أمرًا بسيطًا يرحب بالمستخدم:
// src/Command/GreetCommand.phpnamespace App\\Command;
use Symfony\\Component\\Console\\Command\\Command;use Symfony\\Component\\Console\\Input\\InputArgument;use Symfony\\Component\\Console\\Input\\InputInterface;use Symfony\\Component\\Console\\Output\\OutputInterface;
class GreetCommand extends Command{ protected static $defaultName = 'app:greet';
protected function configure() { $this ->setDescription('يرحب بالمستخدم') ->addArgument('name', InputArgument::REQUIRED, 'اسم المستخدم'); }
protected function execute(InputInterface $input, OutputInterface $output) { $name = $input->getArgument('name'); $output->writeln('مرحبًا، ' . $name . '!'); return Command::SUCCESS; }}قم بتشغيل الأمر في الطرفية:
php bin/console app:greet أحمدسترى: مرحبًا، أحمد!
متى يتم الاستخدام
يعتبر Symfony Console مثاليًا لأي مشروع PHP يتطلب إنشاء أدوات مساعدة لوحدة التحكم: من النصوص البرمجية البسيطة إلى تطبيقات CLI المعقدة التي تحتوي على عشرات الأوامر. إنها أداة لا غنى عنها لـ DevOps وأتمتة النشر والإدارة. إذا كنت تعمل مع أطر عمل Symfony أو Laravel (عبر Artisan) أو أي تطبيق PHP آخر - استخدم هذا المكون لإنشاء كود نظيف وقابل للصيانة.