Belajar Symfony Console Component

Untuk memudahkan, kita harus sudah paham dulu penggunaan Composer dan konsep autoload-nya composer.

Symfony Console Component adalah component atau library dari symfony yang bisa kita gunakan untuk memudahkan pembuatan program CLI (Command Line Interface) menggunakan PHP. Untuk lebih lengkapnya silahkan merujuk pada dokumentasinya.

Membuat Program Sederhana

Langkah 1. Buka Terminal/CMD
Langkah 2. Buat folder project, untuk kali ini kita beri nama symfony-console-quickstart.

mkdir symfony-console-quickstart
cd symfony-console-quickstart

ke 3. Install dependensi yang di butuhkan

composer require symfony/console

Perintah diatas akan mendownload dependensi (Symfony Console Component) ke dalam folder vendor dan mencatatnya di file composer.json. (Perhatikan ada folder baru vendor dan file baru composer.json dan composer.lock setelah menjalankan command diatas).

Langkat 4. Buat file php untuk program yang akan kita buat, misal kita beri nama console.php.

Paste-kan kode program berikut:

<?php
// application.php

require __DIR__.'/vendor/autoload.php';

use Symfony\Component\Console\Application;

$application = new Application();

// ... register commands

$application->run();

ke 5. Sekarang, program CLI sudah bisa kita jalankan

php console.php

output:

    Console Tool

    Usage:
      command [options] [arguments]

    Options:
      -h, --help            Display this help message
      -q, --quiet           Do not output any message
      -V, --version         Display this application version
          --ansi            Force ANSI output
          --no-ansi         Disable ANSI output
      -n, --no-interaction  Do not ask any interactive question
      -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output,
     2 for more verbose output and 3 for debug

    Available commands:
      help  Displays help for a command
      list  Lists commands

Jika dilihat dari output di atas di bagian "Available commands", command atau perintah yang tersedia baru ada "help" dan "list" artinya kita masih belum bisa berbuat banyak selain menampilkan bantuan (help) dan dafter perintah yang tersedia (list).

Untuk itu kita akan coba menambahkan command/perintah sederhana: Hello World !.

Buat file class SayHelloCommand.php di folder project, paste code berikut:

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;

class SayHelloCommand extends Command
{
    protected function configure()
    {
        $this->setName('say:hello')
        ->setDescription('Say Hello');
    }

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $output->writeln('Hello World');
    }
}

Setelah itu, kita harus edit program console kita (console.php) menjadi:

<?php

require __DIR__.'/vendor/autoload.php';
require __DIR__.'/SayHelloCommand.php';

use Symfony\Component\Console\Application;

$application = new Application();
$application->add(new SayHelloCommand());
$application->run();

Program console siap dijalankan:

php console.php say:hello
// harusnya keluar "Hello World"

Sekian Dulu.

Proudly powered by Pelican, which takes great advantage of Python.