首页 > 解决方案 > php-ast 在 phpinfo 中可见,但在 php -m 中不可见(尝试安装 phan)

问题描述

php-ast是如何列出的,phpinfo()但在运行$ php -m列出模块时却没有?

正在安装 phan,静态分析器。我使用 MAMP Pro 并已验证$ which php在 MAMP 中返回所需的 php 版本。我已经更新了php.ini文件,并按phpinfo()预期运行显示 AST。

当我在vendor/bin/phan没有标志的情况下运行时,我仍然收到应该安装 AST 的警告。

我已经使用标志运行它一次以使用 polypill 解析器,并且 phan 按预期工作。

在此处输入图像描述

在此处输入图像描述

注意:其他地方使用的答案--with-config-file-path似乎对我不起作用,因为我得到了有效的 PHP 控制台命令列表,但它不是其中之一:PHP 模块显示在 phpinfo() 中,但不是 php -m

标签: phpphp-7.3

解决方案


我最好的猜测是你需要先安装 ast 扩展。

我做的是这个

  1. 按照本文中的说明安装 PEAR

基本上是两个命令

curl -O https://pear.php.net/go-pear.phar
sudo php -d detect_unicode=0 go-pear.phar

请注意,我已将 URL 更新为使用 https

我只是在安装 PEAR 的过程中确认了默认配置,希望它不会在正常操作中干扰 MAMP 有一些额外的目录。

  1. astpecl.php.net下载,因为我无法pecl install ast工作,也许它适合你。然后你需要运行sudo pear install [path-to-downloaded-ast.tgz],用你的下载位置替换文件路径。

  2. php.ini像你已经做的那样编辑,添加扩展。

结果应该是这样

$ php -m

[PHP Modules]
ast
...

推荐阅读