MAC OS PHP Intratactiveモードにはプロンプトがありません
-
27-10-2019 - |
質問
ターミナルウィンドウからインタラクティブモードでPHPを実行しようとしています。コマンドを実行したとき
php -a
「インタラクティブモードが有効になっている」と書かれていますが、「php->」プロンプトは表示されません。インタラクティブモードから抜け出すにはzを押す必要がありますが、インタラクティブモードが「有効」である間、任意のコマンドを実行できます。
誰かがこれを修正する方法を知っていますか?
解決
PHPインタラクティブシェルでは、GNU ReadlineまたはLibeditをPHPバイナリに静的にコンパイルする必要があります。多くの分布は、ReadLine拡張機能のみを含む共有ライブラリのみを提供します。
自分でPHPをコンパイルする場合
./configure --with-readline
また
./configure --with-libedit
(おそらく、GPLとPHPライセンスの間の非互換性のためにReadLineにリンクされたPHPバイナリを再配布しない可能性があることに注意してください。Libeditを使用する必要がありますが、とにかくPHP自体を再分配したいと思います。これは、PHPベースアプリケーションにとっては問題ではありません。しかし、これがこれがほとんどのディストリビューションで機能しない理由の1つです...)
編集:共有ビルドで読み取りモードを有効にするためにPHPバグを提出したばかりです。 http://bugs.php.net/bug.php?id=53878
他のヒント
私にとって非常にうまく機能するソリューション(エミュレータ)があります:
別の優れたソリューションがあります(Facebook BTWによって作成) phpsh
彼ら自身の言葉で:
PHPSHは、読み取り履歴、タブの完了、ドキュメントへのクイックアクセスを特徴とするPHP用のインタラクティブなシェルです。 Facebookで開発され、皮肉なことに、主にPythonで書かれています。オープンソースであり、変更されたBSDライセンスの下でリリースされます。
私はしばらくそれを使用しています、そしてそれは本当に良いです、多くの点でPHP -Aよりもさらに良いです