คอมโพเนนต์คอนโซล: คำสั่ง CLI
สร้างเครื่องมือ CLI แบบโต้ตอบด้วยคลาสคำสั่งของ Symfony Console
คอมโพเนนต์คอนโซล: คำสั่ง CLI เป็นบทเรียน PHP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน PHP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน
คอมโพเนนต์คอนโซลของ Symfony คืออะไร
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
คำสั่ง Artisan ของ Laravel สืบทอดจาก Illuminate\Console\Command และใช้พร็อพเพอร์ตี $signature กับ $description แทน configure()
สรุป
สร้างคำสั่งโดยสืบทอดจาก Command กำหนดอาร์กิวเมนต์และตัวเลือกใน configure() ดำเนินตรรกะใน execute() ใช้ตัวช่วยสำหรับแถบความคืบหน้า ตาราง และการขอข้อมูลจากผู้ใช้
ตรวจสอบอย่างรวดเร็ว
คำสั่งที่ทำงานสำเร็จควรส่งคืนจำนวนเต็มใดจาก execute()
เรียนรู้ PHP ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 49
- บทเรียน
- 195
คำถามที่พบบ่อย
บทเรียน “คอมโพเนนต์คอนโซล: คำสั่ง CLI” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “คอมโพเนนต์คอนโซล: คำสั่ง CLI” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส PHP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “คอมโพเนนต์คอนโซล: คำสั่ง CLI”
สร้างเครื่องมือ CLI แบบโต้ตอบด้วยคลาสคำสั่งของ Symfony Console คุณปฏิบัติ PHP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน PHP Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน PHP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “คอมโพเนนต์คอนโซล: คำสั่ง CLI” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน PHP Academy นี้ได้ไหม
ได้ บทเรียน PHP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- HttpFoundation: คำขอและการตอบกลับ
- คอนเทนเนอร์ DependencyInjection
- EventDispatcher: อีเวนต์แบบแยกส่วน
- คอมโพเนนต์คอนโซล: คำสั่ง CLI