Интерактивная консоль


Начиная с вверсии PHP 5.1.0, модуль CLI SAPI предоставляет интерактивную консоль, доступную с помощью опции -a , если PHP был скомпилирован с опцией --with-readline .

Интерактивная консоль позволяет непосредственно набирать и одновременно выполнять PHP-код.

Пример #1 Запуск кода в интерактивной консоли

$ php -a Interactive shell  php > echo 5+8; 13 php > function addTwo($n) php > { php { return $n + 2; php { } php > var_dump(addtwo(2)); int(4) php >

Интерактивная консоль также автодополняет (с помощью клавиши Tab) имена функций, констант, классов, переменных, вызовы статических методов и константы классов.

Пример #2 Автодополнение по Tab

Двойное нажатие клавиши Tab при наличии нескольких вариантов дополнения покажет список этих вариантов:

php > strp[TAB][TAB] strpbrk   strpos    strptime php > strp

Если доступно только одно дополнение, одиночное нажатие Tab дополнит оставшийся текст на той же самой строке:

php > strpt[TAB]ime(

Дополнение также работает для элементов, которые были объявлены в течении данной интерактивной сессии:

php > $fooThisIsAReallyLongVariableName = 42; php > $foo[TAB]ThisIsAReallyLongVariableName

Интерактивная консоль хранит историю команд, для доступа к ней можно использовать стрелки вверх и вниз. История хранится в файле ~/.php_history.

Начиная с версии PHP 5.4.0, модуль CLI SAPI предоставляет две новые настройки в php.ini:cli.pager и cli.prompt. Настройка cli.pager позволяет использовать внешнюю программу (такую как less) для постраничного просмотра данных вместо их прямого вывода на экран. Настройка cli.prompt позволяет задавать приглашение php > на ввод команды.

С PHP 5.4.0 также можно устанавливать настройки php.ini в интерактивной консоли используя специальное сокращение.

Пример #3 Установка настройки php.ini в интерактивной консоли

Настройка cli.prompt:

php > #cli.prompt=hello world :>  hello world :>

Используя обратные апострофы можно задать PHP код, который выполнится в приглашении на ввод команды:

php > #cli.prompt=`echo date('H:i:s');` php >  15:49:35 php > echo 'hi'; hi 15:49:43 php > sleep(2); 15:49:45 php >

Установка less для постраничного вывода данных:

php > #cli.pager=less php > phpinfo(); (output displayed in less) php >

Настройка cli.prompt поддерживает несколько управляющих последовательностей:

Управляющие последовательности cli.prompt
Управляющая последовательность Описание
\e Используется для добавления цветов в приглашение на ввод команды. Пример: \e[032m\v \e[031m\b \e[34m\> \e[0m
\v Версия PHP.
\b Отображает в какой части PHP мы находимся. Для примера /* показывает, что мы находимся в многострочном комментарии. Внешняя область видимости обозначается как php.
\> Отображает символ запроса. По умолчанию это символ >, но он может измениться, когда мы находимся внутри незакрытых блока или строки. Возможные символы: ' " { ( >

Замечание:

Файлы, подключенные с помощью опций auto_prepend_file и auto_append_file обрабатываются в этом режиме с некоторыми ограничениями, например, функции должны быть объявлены до их использования.

Замечание:

Автозагрузка недоступна при использовании интерактивного режима PHP CLI.