0Pricing
PHP Academy · Pelajaran

Komponen Konsol: Perintah CLI

Bangun alat CLI interaktif menggunakan class Command Symfony Console.

Komponen Konsol: Perintah CLI adalah pelajaran PHP Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar PHP Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus PHP Academy mencakup 4 pelajaran total.

Apa itu Komponen Console Symfony?

Symfony Console memungkinkan Anda membangun aplikasi CLI PHP yang terstruktur dan dapat diuji, dengan opsi, argumen, bilah kemajuan, dan keluaran berwarna.

Memasang

Pasang komponen tersebut.

$ composer require symfony/console

Membuat Perintah

Perluas Command dan timpa 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;
    }
}

Menyiapkan Aplikasi

Daftarkan perintah dalam Application dan jalankan.

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

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

Argumen dan Opsi

Argumen bersifat berurutan (wajib atau opsional). Opsi adalah penanda 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

Format keluaran dengan metode pembantu.

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

ProgressBar

Tampilkan bilah 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 Tabel

Tampilkan data berbentuk tabel di terminal.

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

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

Pembantu Pertanyaan

Minta masukan dari 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);

Kode Pengembalian

Kembalikan Command::SUCCESS (0), Command::FAILURE (1), atau Command::INVALID (2) dari execute(). Sistem CI menggunakan kode-kode ini.

Di Laravel

Perintah Artisan Laravel memperluas Illuminate\Console\Command dan menggunakan properti $signature serta $description, bukan configure().

Ringkasan

Buat perintah dengan memperluas Command. Tentukan argumen dan opsi dalam configure(). Jalankan logika dalam execute(). Gunakan pembantu untuk bilah kemajuan, tabel, dan permintaan masukan pengguna.

Pemeriksaan Singkat

Bilangan bulat berapa yang harus dikembalikan oleh perintah yang berhasil dari execute()?

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Komponen Konsol: Perintah CLI” gratis?

Ya — teks lengkap “Komponen Konsol: Perintah CLI” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus PHP Academy, upgrade ke CoddyKit PRO. Kursus PHP Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Komponen Konsol: Perintah CLI”?

Bangun alat CLI interaktif menggunakan class Command Symfony Console. Kamu berlatih PHP Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai PHP Academy?

Tidak diperlukan pengalaman sebelumnya. PHP Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Komponen Konsol: Perintah CLI” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran PHP Academy ini?

Ya. Setiap pelajaran PHP Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. HttpFoundation: Request dan Response
  2. Kontainer DependencyInjection
  3. EventDispatcher: Event yang Terpisah
  4. Komponen Konsol: Perintah CLI
← Kembali ke PHP Academy