在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 module is shown in phpinfo(), but not php -m
答案 0 :(得分:0)
我最好的猜测是,您需要先安装ast扩展程序。
这是我做的
基本上是两个命令
curl -O https://pear.php.net/go-pear.phar
sudo php -d detect_unicode=0 go-pear.phar
请注意,我已将URL更新为使用https
我只是在安装PEAR时就确认了默认配置,希望它不会干扰MAMP在正常操作中具有一些额外的目录。
从pecl.php.net下载ast
,因为我无法使pecl install ast
工作,也许它对您有用。然后,您需要运行sudo pear install [path-to-downloaded-ast.tgz]
,用下载位置替换文件路径。
像以前一样编辑php.ini
,添加扩展名。
结果应该是这个
$ php -m
[PHP Modules]
ast
...