Shopware 6.5.7.1主题命令报错E_USER_DEPRECATED求助
问题解决方法
一、处理UrlGenerator::getAbsoluteMediaUrl()废弃错误
- 问题根源:Shopware 6.5.7.1正式标记
Shopware\Core\Content\Media\Pathname\UrlGenerator::getAbsoluteMediaUrl()为废弃方法,你的自定义主题或依赖插件仍在直接调用该类实例。 - 修复步骤:
- 修改主题代码:
- 找到主题中依赖注入
UrlGenerator的位置(通常在services.xml或PHP类构造函数里),将依赖类从Shopware\Core\Content\Media\Pathname\UrlGenerator替换为Shopware\Core\Content\Media\Pathname\AbstractUrlGenerator。 - 示例修改:
PHP代码中同理,类型声明改为<!-- 原注入配置 --> <argument type="service" id="Shopware\Core\Content\Media\Pathname\UrlGenerator"/> <!-- 修改后 --> <argument type="service" id="Shopware\Core\Content\Media\Pathname\AbstractUrlGenerator"/>AbstractUrlGenerator,调用getAbsoluteMediaUrl()的逻辑无需修改——该方法在抽象类中已定义。
- 找到主题中依赖注入
- 排查第三方插件:
- 若修改主题后错误仍存在,排查已安装的第三方插件,定位调用废弃方法的插件,联系开发者索要更新版本,或暂时禁用该插件验证问题。
- 清除缓存:
- 执行命令:
bin/console cache:clear,再重新运行theme:refresh或theme:compile。
- 执行命令:
- 修改主题代码:
二、处理plugin:refresh找不到composer.json的问题
- 问题根源:
var/cache/composer目录下的composer.json文件缺失,通常是缓存生成异常、目录权限不足导致。 - 修复步骤:
- 创建缺失目录:
- 手动创建
var/cache/composer目录,命令行执行:mkdir -p var/cache/composer(Mac/Linux环境),或通过文件管理器直接创建。
- 手动创建
- 重新生成自动加载缓存:
- 执行命令:
composer dump-autoload,该命令会重新生成Composer的自动加载配置,同时修复缓存目录下的相关文件。
- 执行命令:
- 检查目录权限:
- 确保Mamp Pro运行的PHP用户对
var目录有读写权限,执行命令:chmod -R 775 var(可根据服务器环境调整权限值,避免过度开放)。
- 确保Mamp Pro运行的PHP用户对
- 强制清除缓存:
- 直接删除
var/cache目录下的所有内容,或执行命令:bin/console cache:clear --env=prod(生产环境),再重新运行plugin:refresh。
- 直接删除
- 创建缺失目录:
内容的提问来源于stack exchange,提问作者Magnus von Bromsen
相关产品推荐
相关产品推荐

