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.