php-ast が原因で phan 2.x を実行しようとするとエラーが発生しました

php-ast が原因で phan 2.x を実行しようとするとエラーが発生しました

「エラー: Phan 2.x は AST バージョン 70 に依存するため、php-ast 1.0.1+ が必要です。php-ast 0.1.6 がインストールされています。」に関する解決策が見つかりません。

root@desk:/mnt/d/ibr/phan$ ./phan
ERROR: Phan 2.x requires php-ast 1.0.1+ because it depends on AST version 70. php-ast 0.1.6 is installed.
Exiting without analyzing files.

答え1

公式 PHP リポジトリに付属する AST バージョンは古すぎて phan では動作しません。ここでは 2 つのオプションがあります:

  1. phan を で実行します--allow-polyfill-parser parameter。速度は大幅に遅くなりますが、拡張機能をインストールしなくても動作します。

  2. pecl から ast をインストールします。

    Ubuntu 18.04 の場合は、次の操作を行う必要がありました。

    sudo apt install php7.2-dev php-pear
    sudo pecl install ast`
    sudo phpenmod ast
    

    Debianベース以外のディストリビューションの場合は、をインストールしphpize、 rootとしてpecl実行しpecl install ast、php.iniを編集して以下を追加する必要があります。extension=ast.so

関連情報