2011-01-29 13 views
8

Estoy intentando ejecutar PHP en modo interactivo desde la ventana de terminal y cuando ejecuto el comandomac no tiene pronta

php -a 

que dice "habilitado el modo interactivo", pero no me muestra el prompt "php->" que debería. Tengo que presionar el control z para salir del modo interactivo pero puedo ejecutar cualquier comando mientras que el modo interactivo está "activado"

¿Alguien sabe cómo solucionar este problema

Respuesta

5

El intérprete de comandos interactivo PHP requiere que readline de GNU o libedit se compila estáticamente en el binario de PHP. Muchas distribuciones solo proporcionan bibliotecas compartidas que solo contienen la extensión readline.

Si compila PHP hágalo usted mismo

./configure --with-readline 

o

./configure --with-libedit 

(tenga en cuenta que, probablemente, no puede redistribuir binarios de PHP vinculados a readline debido a incompatibilidades entre GPL y la licencia de PHP, tendrías que usar libedit entonces, pero dudo que quieras redistribuir PHP de todos modos. El uso está ciertamente bien. Esto no importa para tus aplicaciones basadas en PHP. Pero esta es una de las razones por las que esto no funciona para la mayoría de las distribuciones ...)

Edit: acaba de presentar un error de PHP para habilitar el modo de readline con una construcción compartida, también, a lo mejor encuentro tiempo para ponerlo en práctica: http://bugs.php.net/bug.php?id=53878

+1

¿hay alguna manera de determinar si los están instalados o no en caso de que se enumeran en ¿información de php? – mcgrailm

+1

Si está instalado, phpinfo listará readline. También puedes marcar 'php -m'. Para ver si estaba estáticamente, intente ejecutar 'php -nm'. Si aparece "readline" debería funcionar. – johannes

+1

[Shell interactivo frente a modo interactivo] (http://www.php.net/manual/en/features.commandline.interactive.php#108006) – sam

2

Hay otra solución excelente (creado por Facebook por cierto) phpsh

En sus propias palabras:

phpsh es un intérprete de comandos interactivo para php que cuenta con 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 publicado bajo una licencia BSD modificada.

estoy usando durante un tiempo y es muy buena, de muchas maneras, incluso mejor que sólo php -a

Cuestiones relacionadas