Komponen Konsol: Perintah CLI
Bina alat CLI interaktif menggunakan kelas Command Konsol Symfony.
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/consoleMencipta 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?
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
- HttpFoundation: Permintaan dan Respons
- Bekas DependencyInjection
- EventDispatcher: Peristiwa Terpisah
- Komponen Konsol: Perintah CLI