解决使用php-parser报错Fatal error: Class ‘PhpParser\Lexer\Emulative‘ not found

文章讲述了在Linux环境中通过Github下载PHP-ParserZIP文件并解压后,尝试运行遇到的PhpParserLexerEmulative类未找到的致命错误。作者指出应使用Composer进行正确安装,并提供了遇到putenv()和proc_open()函数被禁用的安全问题时的解决方法,包括检查PHP版本和在宝塔面板中启用相关函数。此外,作者分享了面对和解决Bug的经验感悟。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、错因分析

我直接在Github下载的zip压缩文件,然后把压缩文件unzip到linux系统目录,然后进入PHP-Parser-4.x/bin目录下,使用./php-parse "<?php echo 123;",结果就报错Fatal error: Class 'PhpParser\Lexer\Emulative' not found

应该使用composer工具的。如果使用宝塔安装PHP,那么很可能就已经安装composer了。 直接输入命令composer就可以看自己安装没有。

2、重要参考

运行PHP-Parser报错:PHP Fatal error: Uncaught Error: Class ‘PhpParser\ParserFactory‘ not found

composer require nikic/php-parser
	
cd ./vendor/nikic/php-parser/ #使用./是因为在哪个目录下使用了composer命令,那么就在哪个目录生成文件

安装过程出现报错:

1、putenv() has been disabled for security reasons

2、proc_open函数被禁用

解决办法:1、先用php -v查看自己当前的php版本 2、再用宝塔面板放开那些被禁用的函数。参考:由于安全原因,putenv()已被禁用 putenv() has been disabled for security reasons

运行成功截图:
在这里插入图片描述

3、感悟

1、第一天遇到Bug困难时不要放弃;第二天面对Bug困难时,记录下脑袋中闪过的突破思路,然后逐个尝试。

2、写这种文章,即时写才爽。另外少写点,争取10~20min之内搞定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值