Mac OS PHP интраактивный режим не имеет подсказки - PullRequest
9 голосов
/ 29 января 2011

Я пытаюсь запустить PHP в интерактивном режиме из окна терминала, и когда я запускаю команду

  php -a

он говорит: «Интерактивный режим включен», но не показывает подсказку «php->», которая должна быть. Мне нужно нажать control z, чтобы выйти из интерактивного режима, но я могу выполнять любые команды, когда интерактивный режим «включен»

Кто-нибудь знает, как это исправить

Ответы [ 3 ]

5 голосов
/ 29 января 2011

Интерактивная оболочка 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

4 голосов
/ 11 февраля 2011

Есть решение (эмулятор), которое работает для меня довольно хорошо:

http://www.fischerlaender.net/php/phpa-norl

2 голосов
/ 11 ноября 2012

Есть еще одно отличное решение (созданное Facebook, кстати) phpsh

своими словами:

phpsh - это интерактивная оболочка для php, которая имеет историю чтения строк, завершение вкладок, быстрый доступ к документации. Это было разработано в Facebook и по иронии судьбы, написано в основном на Python. Он имеет открытый исходный код и выпущен под модифицированной лицензией BSD.

Я использую его некоторое время, и это действительно хорошо, во многих отношениях даже лучше, чем просто php -a

...