Poznajemy podstawy pisania aplikacji CLI w języku PHP. Do dzieła!

Wypisywanie argv:

<?php
var_dump($argv);
//php cli1.php "hello world"
// array(2) {
//     [0]=>
//     string(8) "cli1.php"
//     [1]=>
//     string(11) "hello world"
 // }
?>

Zwróćmy uwagę na subtelną różnicę:

<?php
var_dump($argv);
//php cli1.php hello world
// array(3) {
//     [0]=>
//     string(8) "cli1.php"
//     [1]=>
//     string(5) "hello"
//     [2]=>
//     string(5) "world"
//   }

Wypisywanie w konsoli:

<?php 
$str = "Hello world!";
file_put_contents("php://output", $str);

Pobieranie inputu oraz obsługa historii:

<?php 

for ($i=0; $i < 3; $i++) {
        $line = readline("Command: ");
        readline_add_history($line);
}


print_r(readline_list_history());
// Array
// (
//     [0] => first command
//     [1] => 2nd cmd
//     [2] => third command
// )

Przy czytaniu inputu często sprawdza się pętla do-while:

<?php 

do {
    $url = readline("Enter URL:");
} while (!(filter_var($url, FILTER_VALIDATE_URL)) );
file_put_contents("php://output", $url);

Obsługa autocomplete (przycisk tab):

<?php 

function completion_function($line, $index) {
    return [
        "http://",
        "https://"
    ];
}

readline_completion_function('completion_function');

do {
    $url = readline("Enter URL:");
} while (!(filter_var($url, FILTER_VALIDATE_URL)) );
file_put_contents("php://output", $url);

Więcej w następnych lekcjach.