أدوات CLI بلغة PHP: لماذا لم تقم ببناء أداتك الخاصة لسطر الأوامر بعد؟
\n\nتخيل: أنت جالس في الطرفية (Terminal)، تشغل أمراً واحداً — وبعد ثانية واحدة تحصل على تقرير جاهز، أو يتم تحويل جميع الصور، أو إعداد مشروع على خادم جديد. بدون متصفح، بدون فأرة، بدون حركات زائدة. يبدو كالسحر؟ لا، إنها مجرد أدوات CLI بلغة PHP.
\n\nكثير من المطورين يعتبرون PHP مجرد "لغة ويب". لكن في الحقيقة، PHP أداة ممتازة لإنشاء تطبيقات سطر الأوامر. فهي تمتلك معالجة مدمجة لتيارات الإدخال والإخراج، ومعالجة سهلة للوسائط، وبالطبع مكتبات قوية مثل Symfony Console. في هذا المقال، سنشرح كيفية إنشاء سكريبت سطر أوامر بلغة PHP من الصفر — من مجرد echo بسيط إلى أداة متكاملة بالألوان وشريط التقدم.
\n\nإذا كنت قد مللت من تكرار المهام يدوياً، وإذا كنت ترغب في أتمتة الروتين وتشعر وكأنك هاكر حقيقي — فأنت في المكان الصحيح. هيا بنا!
\n\nما هي أداة CLI وما فائدتها؟
\n\nCLI (واجهة سطر الأوامر) — هي برنامج يعمل في سطر الأوامر. يستقبل الوسائط، وينفذ الإجراءات، ويعرض النتيجة. على عكس تطبيقات الويب، لا يوجد هنا HTML أو CSS أو JavaScript. فقط كود نقي وطرفية.
\n\nلماذا كتابة أدوات CLI بلغة PHP؟ إليك بعض السيناريوهات:
\n\n- \n
- ترحيل البيانات — نقل المعلومات من CSV إلى قاعدة البيانات. \n
- إنشاء التقارير — جمع الإحصائيات وتوليد PDF أو Excel. \n
- أتمتة النشر — نشر المشروع على الخادم بأمر واحد. \n
- تحليل ومعالجة الملفات — تحويل، ضغط، إعادة تسمية. \n
- مهام CRON — عمليات دورية تُنفذ وفق جدول زمني. \n
والأهم — تطوير أدوات سطر الأوامر بلغة PHP لا يتطلب بنية تحتية معقدة. يكفي ملف واحد وبضعة أسطر من الكود.
\n\nالبداية: الحد الأدنى لسكريبت CLI بلغة PHP
\n\nافتح الطرفية، وأنشئ ملفاً باسم hello.php واكتب:
<?php\necho "مرحباً أيتها الطرفية!\\n";\n\n\nقم بتشغيله:
\n\nphp hello.php\n\n\nسترى:
\n\nمرحباً أيتها الطرفية!\n\nأهنئك! لقد كتبت للتو أول أداة CLI بلغة PHP لك. لكن دعنا نجعلها مفيدة. سنضيف معالجة وسائط سطر الأوامر.
\n\nالتعامل مع الوسائط: $argv و $argc
\n\nتوفر PHP مصفوفتين عموميتين للتعامل مع الطرفية: $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: أساس قوي لأدوات CLI بلغة PHP
\n\nSymfony Console — هو المعيار الفعلي لإنشاء تطبيقات سطر الأوامر بلغة PHP. باستخدامها، يمكنك بسهولة إضافة:
\n\n- \n
- الوسائط المسماة والخيارات \n
- الإخراج الملون \n
- أشرطة التقدم \n
- التحقق من صحة الإدخال \n
- التحميل التلقائي للأوامر \n
التثبيت عبر Composer:
\n\ncomposer require symfony/console\n\n\nالآن سننشئ أداة CLI بلغة PHP كاملة — مولد كلمات مرور.
\n\nكتابة أمر لتوليد كلمات المرور
\n\nهيكل المشروع