Magento 2.0.18执行setup:di:compile报错:NumberFormatterFactory类不存在
解决Magento 2.0.18执行
setup:di:compile时的NumberFormatterFactory不存在异常 我之前维护Magento 2.0.x版本时踩过完全一样的坑,下面是几个亲测有效的解决方案,按顺序尝试即可:
1. 检查核心文件是否缺失
错误提示明确指出Magento\Framework\Intl\NumberFormatter不存在,先去Magento根目录下的vendor/magento/framework/Intl/路径,确认NumberFormatter.php和NumberFormatterFactory.php这两个文件是否存在:
- 如果文件缺失,基本是Composer安装不完整导致的,执行以下命令重新安装依赖(注意锁定2.0.18版本,避免意外升级):
要是之前修改过composer install --no-devcomposer.lock,也可以针对性更新框架依赖:composer update magento/framework --with-dependencies
2. 彻底清理缓存与生成文件
旧的缓存或已生成的DI文件很可能干扰编译流程,先把这些文件全部删除:
rm -rf var/cache/* var/generation/* var/di/* var/view_preprocessed/* pub/static/*
清理完成后,再重新执行编译命令:
php bin/magento setup:di:compile
3. 修复目录权限问题
如果Web服务器用户没有足够的读写权限,编译时会无法读取核心类文件。执行以下命令调整权限(根据你的服务器用户组调整,www-data是常见的Web服务器用户):
chmod -R 775 var pub generated chown -R www-data:www-data .
4. 重新生成Composer自动加载文件
如果Composer的自动加载映射出现异常,PHP会找不到对应的类,执行以下命令重新生成自动加载文件:
composer dump-autoload -o
完成后再次尝试编译即可。
内容的提问来源于stack exchange,提问作者Bob Alice
相关产品推荐
相关产品推荐

