0Pricing
PHP Academy · درس

مكوّن Console: أوامر CLI

أنشئوا أدوات CLI تفاعلية باستخدام فئات Command في Symfony Console

مكوّن Console: أوامر CLI درس مجاني في PHP Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في PHP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة PHP Academy 4 دروس في المجموع.

ما هو مكوّن Symfony Console؟

يتيح لك Symfony Console إنشاء تطبيقات CLI منظمة وقابلة للاختبار باستخدام PHP، مع الخيارات والمعاملات وأشرطة التقدم والمخرجات الملوّنة.

التثبيت

ثبّت المكوّن.

$ composer require symfony/console

إنشاء أمر

وسّع Command وتجاوز configure() وexecute().

<?php
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;

class GreetCommand extends Command
{
    protected static string $defaultName = "app:greet";

    protected function configure(): void
    {
        $this->setDescription("Greet a user")
             ->addArgument("name", \InputArgument::REQUIRED, "Name to greet")
             ->addOption("uppercase", "u", \InputOption::VALUE_NONE, "Uppercase output");
    }

    protected function execute(InputInterface $input, OutputInterface $output): int
    {
        $name = $input->getArgument("name");
        if ($input->getOption("uppercase")) $name = strtoupper($name);
        $output->writeln("Hello, $name!");
        return Command::SUCCESS;
    }
}

إعداد التطبيق

سجّل الأوامر في Application وشغّله.

<?php
use Symfony\Component\Console\Application;

$app = new Application("MyApp", "1.0.0");
$app->add(new GreetCommand());
$app->run();

المعاملات والخيارات

المعاملات موضعية (مطلوبة أو اختيارية). أما الخيارات فهي أعلام مُسمّاة (--name=value أو -n value).

<?php
$this->addArgument("file",  InputArgument::REQUIRED)
     ->addArgument("output", InputArgument::OPTIONAL, "Output file", "out.txt")
     ->addOption("verbose", "v",  InputOption::VALUE_NONE, "Verbose output")
     ->addOption("format",  "f",  InputOption::VALUE_REQUIRED, "Output format", "json");

مساعدات المخرجات

نسّق المخرجات باستخدام أساليب المساعدة.

<?php
$output->writeln("<info>Success!</info>");
$output->writeln("<error>Error occurred</error>");
$output->writeln("<comment>Processing...</comment>");

ProgressBar

اعرض شريط تقدم للمهام طويلة التشغيل.

<?php
use Symfony\Component\Console\Helper\ProgressBar;

$bar = new ProgressBar($output, count($items));
$bar->start();
foreach ($items as $item) {
    processItem($item);
    $bar->advance();
}
$bar->finish();

مساعد الجداول

اعرض البيانات الجدولية في الطرفية.

<?php
use Symfony\Component\Console\Helper\Table;

$table = new Table($output);
$table->setHeaders(["ID", "Name", "Email"])
      ->setRows($userData)
      ->render();

مساعد الأسئلة

اطلب من المستخدم إدخال البيانات بشكل تفاعلي.

<?php
use Symfony\Component\Console\Question\Question;
$helper   = $this->getHelper("question");
$question = new Question("Enter database password: ");
$question->setHidden(true);
$password = $helper->ask($input, $output, $question);

رموز الإرجاع

أعد Command::SUCCESS (0) أو Command::FAILURE (1) أو Command::INVALID (2) من execute(). تستخدم أنظمة CI هذه الرموز.

في Laravel

توسّع أوامر Laravel Artisan Illuminate\Console\Command وتستخدم الخاصيتين $signature و$description بدلًا من configure().

الملخص

أنشئ الأوامر من خلال توسيع Command. عرّف المعاملات والخيارات في configure(). نفّذ المنطق في execute(). استخدم المساعدات لأشرطة التقدم والجداول ومطالبات المستخدم.

تحقق سريع

ما العدد الصحيح الذي يجب أن يعيده الأمر الناجح من execute()؟

الأسئلة الشائعة

هل درس «مكوّن Console: أوامر CLI» مجاني؟

نعم — نص درس «مكوّن Console: أوامر CLI» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة PHP Academy، انتقل إلى CoddyKit PRO. تتضمن دورة PHP Academy 4 دروس في المجموع.

ماذا ستتعلم في «مكوّن Console: أوامر CLI»؟

أنشئوا أدوات CLI تفاعلية باستخدام فئات Command في Symfony Console تتمرن على PHP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ PHP Academy؟

لا تُشترط خبرة سابقة. PHP Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «مكوّن Console: أوامر CLI»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس PHP Academy هذا؟

نعم. كل درس في PHP Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. HttpFoundation: الطلب والاستجابة
  2. حاوية DependencyInjection
  3. EventDispatcher: الأحداث غير المقترنة
  4. مكوّن Console: أوامر CLI
← العودة إلى PHP Academy