php - 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 按预期工作。
- Phan 入门(另请参阅 README 以获得稍有不同的说明):https ://github.com/phan/phan/wiki/Getting-Started
- PHP-AST 项目:https ://github.com/nikic/php-ast#installation
- 更改 PHP:https ://gist.github.com/irazasyed/5987693
- 安装 autoconf 以解决相关问题: https ://gist.github.com/anunay/7698181
注意:其他地方使用的答案--with-config-file-path
似乎对我不起作用,因为我得到了有效的 PHP 控制台命令列表,但它不是其中之一:PHP 模块显示在 phpinfo() 中,但不是 php -m
解决方案
我最好的猜测是你需要先安装 ast 扩展。
我做的是这个
- 按照本文中的说明安装 PEAR
基本上是两个命令
curl -O https://pear.php.net/go-pear.phar
sudo php -d detect_unicode=0 go-pear.phar
请注意,我已将 URL 更新为使用 https
我只是在安装 PEAR 的过程中确认了默认配置,希望它不会在正常操作中干扰 MAMP 有一些额外的目录。
ast
从pecl.php.net下载,因为我无法pecl install ast
工作,也许它适合你。然后你需要运行sudo pear install [path-to-downloaded-ast.tgz]
,用你的下载位置替换文件路径。php.ini
像你已经做的那样编辑,添加扩展。
结果应该是这样
$ php -m
[PHP Modules]
ast
...
推荐阅读
- git - git merge 在这个图中的位置
- linux - crosstool-ng 配置设置
- c - PRINTF 防止进入低功耗模式
- html - 使用html控件-jsp中的listbox标签
- javascript - 用类和循环简化 javascript?
- flutter - Flutter:在 RaisedButton 的 onPressed 事件中使用 Navigator.of(context) 时出现异常
- python - 如何将坐标从 NAD83 转换为 pandas 中的常规 gps 坐标(纬度/经度)?
- python - 如何在 sagemaker 自定义部署端点脚本中加载文件
- linker - 如果依赖项有另一个需要与静态库链接的依赖项,则链接失败
- pipenv - 使用 pipenv 安装 ta-lib 返回错误