Console-komponentti: CLI-komennot
Rakentakaa vuorovaikutteisia CLI-työkaluja Symfony Console Command -luokilla.
Console-komponentti: CLI-komennot on ilmainen PHP Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu PHP Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. PHP Academy-kurssilla on yhteensä 4 oppituntia.
Mikä on Symfony Console -komponentti?
Symfony Console mahdollistaa jäsenneltyjen ja testattavien PHP-komentorivisovellusten rakentamisen. Se tukee asetuksia, argumentteja, edistymispalkkeja ja väritettyä tulostetta.
Asentaminen
Asenna komponentti.
$ composer require symfony/consoleKomennon luominen
Peri Command-luokka ja korvaa configure()- ja execute()-metodit.
<?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;
}
}Sovelluksen määrittäminen
Rekisteröi komennot Application-olioon ja suorita se.
<?php
use Symfony\Component\Console\Application;
$app = new Application("MyApp", "1.0.0");
$app->add(new GreetCommand());
$app->run();Argumentit ja asetukset
Argumentit ovat sijaintiin perustuvia ja joko pakollisia tai valinnaisia. Asetukset ovat nimettyjä lippuja (--name=value tai -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");Tulosteen apumetodit
Muotoile tuloste apumetodeilla.
<?php
$output->writeln("<info>Success!</info>");
$output->writeln("<error>Error occurred</error>");
$output->writeln("<comment>Processing...</comment>");ProgressBar
Näytä edistymispalkki pitkäkestoisille tehtäville.
<?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();Table-apumetodi
Näytä taulukkomuotoinen data päätelaitteessa.
<?php
use Symfony\Component\Console\Helper\Table;
$table = new Table($output);
$table->setHeaders(["ID", "Name", "Email"])
->setRows($userData)
->render();Question-apumetodi
Pyydä käyttäjältä syötettä vuorovaikutteisesti.
<?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);Palautuskoodit
Palauta Command::SUCCESS (0), Command::FAILURE (1) tai Command::INVALID (2) metodista execute(). CI-järjestelmät käyttävät näitä koodeja.
Laravelissa
Laravelin Artisan-komennot perivät Illuminate\Console\Command-luokan ja käyttävät $signature- ja $description-ominaisuuksia configure()-metodin sijaan.
Yhteenveto
Luo komento perimällä Command-luokka. Määritä argumentit ja asetukset metodissa configure(). Suorita logiikka metodissa execute(). Käytä apumetodeja edistymispalkkeihin, taulukoihin ja käyttäjän syötteisiin.
Pikatarkistus
Minkä kokonaisluvun onnistuneen komennon tulee palauttaa metodista execute()?
Opi PHP tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 49
- Oppitunnit
- 195
Usein kysytyt kysymykset
Onko oppitunti ”Console-komponentti: CLI-komennot” ilmainen?
Kyllä – oppitunnin ”Console-komponentti: CLI-komennot” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko PHP Academy-kurssin, päivitä CoddyKit PROhon. PHP Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Console-komponentti: CLI-komennot”?
Rakentakaa vuorovaikutteisia CLI-työkaluja Symfony Console Command -luokilla. Harjoittelet PHP Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni PHP Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin PHP Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.
Kuinka kauan ”Console-komponentti: CLI-komennot”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä PHP Academy-oppitunnilla?
Kyllä. Jokainen PHP Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- HttpFoundation: pyyntö ja vastaus
- DependencyInjection-kontti
- EventDispatcher: löyhästi kytketyt tapahtumat
- Console-komponentti: CLI-komennot