PHP Academy · Pelajaran

Komponen Konsol: Perintah CLI

Bina alat CLI interaktif menggunakan kelas Command Konsol Symfony.

Pelajaran 4 daripada 413 langkah

Komponen Konsol: Perintah CLI ialah pelajaran PHP Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran PHP Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.

Apakah Komponen Konsol Symfony?

Symfony Console membolehkan Anda membina aplikasi CLI PHP yang berstruktur dan boleh diuji, dengan pilihan, argumen, bar kemajuan dan keluaran berwarna.

Memasang

Pasang komponen tersebut.

$ composer require symfony/console

Mencipta Arahan

Luaskan Command dan gantikan configure() serta 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;
    }
}

Menyediakan Aplikasi

Daftarkan arahan dalam Application dan jalankannya.

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

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

Argumen dan Pilihan

Argumen adalah berdasarkan kedudukan (diperlukan atau pilihan). Pilihan ialah bendera bernama (--name=value atau -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");

Pembantu Keluaran

Formatkan keluaran dengan kaedah pembantu.

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

ProgressBar

Paparkan bar kemajuan untuk tugas yang berjalan lama.

<?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();

Pembantu Jadual

Paparkan data berbentuk jadual dalam terminal.

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

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

Pembantu Soalan

Minta masukan daripada pengguna secara interaktif.

<?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);

Kod Pulangan

Pulangkan Command::SUCCESS (0), Command::FAILURE (1) atau Command::INVALID (2) daripada execute(). Sistem CI menggunakan kod ini.

Dalam Laravel

Arahan Artisan Laravel meluaskan Illuminate\Console\Command dan menggunakan sifat $signature serta $description dan bukannya configure().

Ringkasan

Cipta arahan dengan meluaskan Command. Takrifkan argumen dan pilihan dalam configure(). Laksanakan logik dalam execute(). Gunakan pembantu untuk bar kemajuan, jadual dan gesaan pengguna.

Semakan Pantas

Apakah integer yang harus dipulangkan oleh execute() apabila arahan berjaya?

Percuma untuk bermula

Pelajari PHP dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
49
Pelajaran
195

Soalan Lazim

Adakah pelajaran “Komponen Konsol: Perintah CLI” percuma?

Ya — teks penuh “Komponen Konsol: Perintah CLI” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus PHP Academy, tingkat taraf kepada CoddyKit PRO. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Komponen Konsol: Perintah CLI”?

Bina alat CLI interaktif menggunakan kelas Command Konsol Symfony. Anda berlatih PHP Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan PHP Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran PHP Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “Komponen Konsol: Perintah CLI” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran PHP Academy ini?

Ya. Setiap pelajaran PHP Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. HttpFoundation: Permintaan dan Respons
  2. Bekas DependencyInjection
  3. EventDispatcher: Peristiwa Terpisah
  4. Komponen Konsol: Perintah CLI
← Kembali ke PHP Academy