دليل Symfony/Console الكامل لـ PHP مع أمثلة عملية

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

Symfony/Console لـ PHP: دليل شامل مع أمثلة عملية

1. ما هي المكتبة ولماذا تحتاجها؟

Symfony/Console هو مكون قوي ومرن من إطار العمل Symfony، مصمم خصيصًا لإنشاء أوامر سطر الأوامر (CLI) بلغة PHP. يوفر هذا المكون للمطورين مجموعة كاملة من الأدوات لبناء سكريبتات تفاعلية ومنظمة وسهلة الاختبار. بدلاً من كتابة سكريبتات بدائية باستخدام متغيرات ودوال عامة، يقدم Symfony/Console نهجًا كائنيًا يعتمد على فئات الأوامر، والإدخال/الإخراج (Input/Output)، ونظام الأسئلة التفاعلية.

لماذا تحتاج إليه؟ في تطوير الويب الحديث، تؤدي أوامر سطر الأوامر مهامًا حيوية: ترحيل قواعد البيانات، تشغيل قوائم الانتظار، توليد الكود، تنظيف الذاكرة المؤقتة، إرسال البريد الإلكتروني الجماعي، وغيرها من العمليات الخلفية. يتيح لك Symfony/Console توحيد هذه المهام، مما يجعلها سهلة القراءة والتوسع والصيانة. تقوم المكتبة تلقائيًا بمعالجة الوسائط والخيارات، وتوليد التعليمات، وتنسيق المخرجات، ودعم التلوين، مما يبسط حياة المطور بشكل كبير.

علاوة على ذلك، لا يرتبط Symfony/Console بشكل صارم بإطار Symfony. يمكنك استخدامه في أي مشروع PHP (Laravel، Yii، أو PHP خالص) كمكون مستقل. وهذا يجعله المعيار الفعلي لإنشاء أدوات CLI في نظام PHP البيئي. بفضل الدعم المدمج للاختبار (عبر CommandTester) ونموذج الأحداث، يمكنك بسهولة كتابة اختبارات وحدات لأوامرك وتوسيع وظائفها باستخدام الأحداث.

2. طريقة التثبيت

يتم التثبيت عبر مدير الحزم Composer. افتح الطرفية في جذر مشروعك ونفذ الأمر التالي:

composer require symfony/console

إذا كنت تستخدم Symfony Flex (الافتراضي لـ Symfony 4+)، سيتم تكوين الحزمة تلقائيًا. بالنسبة للمشاريع التي لا تستخدم Symfony، ستحتاج إلى إنشاء ملف bin/console (أو أي اسم آخر) وتهيئة التطبيق يدويًا.

بعد التثبيت، تأكد من ظهور الإدخال التالي في ملف composer.json الخاص بك:

{
    "require": {
        "symfony/console": "^6.0"
    }
}

3. البداية السريعة — مثال عملي بسيط

لننشئ أمرًا بسيطًا يطبع "Hello, World!". أولاً، أنشئ ملف bin/console:

#!/usr/bin/env php
<?php
// bin/console

require __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;

// إنشاء التطبيق
$application = new Application('تطبيق CLI الخاص بي', '1.0.0');

// تسجيل الأمر
$application->register('hello')
    ->setDescription('يطبع رسالة ترحيب')
    ->setCode(function (InputInterface $input, OutputInterface $output) {
        $output->writeln('Hello, World!');
    });

// تشغيل التطبيق
$application->run();

الآن، اجعل الملف قابلًا للتنفيذ وقم بتشغيله:

chmod +x bin/console
php bin/console hello

سترى في الطرفية: Hello, World!

هذا مثال بسيط. في المشاريع الحقيقية، يتم إنشاء الأوامر كفئات منفصلة ترث من Command، مما يضمن تنظيمًا أفضل للكود.

4. أهم الدوال والكلاسات الأساسية

دعنا نستعرض الكلاسات والدوال الرئيسية في المكتبة. لكل منها

توصيات