PHP Academy · Oppitunti

Console-komponentti: CLI-komennot

Rakentakaa vuorovaikutteisia CLI-työkaluja Symfony Console Command -luokilla.

Oppitunti 4/413 vaihetta

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/console

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

Aloita maksutta

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

  1. HttpFoundation: pyyntö ja vastaus
  2. DependencyInjection-kontti
  3. EventDispatcher: löyhästi kytketyt tapahtumat
  4. Console-komponentti: CLI-komennot
← Takaisin: PHP Academy