Mac OS PHP интраактивный режим не имеет подсказки
Я пытаюсь запустить PHP в интерактивном режиме из окна терминала и когда я запускаю команду
php -a
он говорит "Интерактивный режим включен", но не показывает подсказку "php->", которая должна. Мне нужно нажать control z, чтобы выйти из интерактивного режима, но я могу выполнять любые команды, когда интерактивный режим "включен"
Кто-нибудь знает, как это исправить
3 ответа
Интерактивная оболочка PHP требует, чтобы GNU readline или libedit статически компилировались в двоичный файл PHP. Многие дистрибутивы предоставляют только общие библиотеки, содержащие только расширение readline.
Если вы сами компилируете PHP, сделайте
./configure --with-readline
или же
./configure --with-libedit
(обратите внимание, что вы, возможно, не можете распространять двоичные файлы PHP, связанные с readline, из-за несовместимости между GPl и лицензией PHP, тогда вам придется использовать libedit, но я сомневаюсь, что вы все равно хотите распространять сам PHP. Использование, конечно, нормально. Это не имеет значения для ваших PHP-приложений, но это одна из причин, почему это не работает для большинства дистрибутивов...)
Изменить: Я только что подал ошибку PHP, чтобы включить режим readline с общей сборки, может быть, я найду время для его реализации: http://bugs.php.net/bug.php?id=53878
Есть решение (эмулятор), которое работает довольно хорошо для меня:
Есть еще одно отличное решение (созданное Facebook, кстати) phpsh
Своими словами:
phpsh - это интерактивная оболочка для php, которая имеет историю чтения строк, завершение вкладок, быстрый доступ к документации. Он был разработан на Facebook и по иронии судьбы, написан в основном на Python. Это открытый исходный код и выпущен под модифицированной лицензией BSD.
Я использую это некоторое время, и это действительно хорошо, во многих отношениях даже лучше, чем просто php -a