Mac OS PHP El modo intratactivo no tiene un aviso
-
27-10-2019 - |
Pregunta
Estoy tratando de ejecutar PHP en modo interactivo desde la ventana del terminal y cuando ejecuto el comando
php -a
Dice "Modo interactivo habilitado", pero no me muestra el mensaje "PHP->" que debería. Tengo que presionar el control z para salir del modo interactivo, pero puedo ejecutar cualquier comando mientras el modo interactivo está "habilitado"
Alguien sabe cómo arreglar esto
Solución
La carcasa interactiva PHP requiere que GNU Readline o Liedit se compilen estáticamente en el binario PHP. Muchas distribuciones solo proporcionan bibliotecas compartidas que contienen solo la extensión de línea de lectura.
Si compilas php tú mismo hazte
./configure --with-readline
o
./configure --with-libedit
(Tenga en cuenta que usted, probablemente, no redistribuya los binarios de PHP vinculados a la línea de lectura debido a las incompatibilidades entre GPL y la licencia PHP, tendrá que usar Libedit entonces, pero dudo que desee redistribuir el PHP de todos modos. El uso está ciertamente bien. Esto no importa para sus aplicaciones PHP-base. Pero esta es una de las razones por las cuales esto no funciona para la mayoría de las distribuciones ...)
EDITAR: Acabo de presentar un error PHP para habilitar el modo Readline con una compilación compartida, tal vez encuentre tiempo para implementarlo: http://bugs.php.net/bug.php?id=53878
Otros consejos
Hay una solución (emulador) que funciona bastante bien para mí:
Hay otra excelente solución (creada por Facebook por cierto) phpsh
En sus propias palabras:
PHPSH es un shell interactivo para PHP que presenta el historial de lectura, finalización de pestañas, acceso rápido a la documentación. Fue desarrollado en Facebook e irónicamente, está escrito principalmente en Python. Es de código abierto y lanzado bajo una licencia BSD modificada.
Lo estoy usando por un tiempo y es realmente bueno, en muchos sentidos incluso mejor que solo PHP -A