You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Magento 2.4.4执行setup:di:compile时类不存在错误求助

解决Magento 2.4.4 setup:di:compile 找不到SerializedToJson类的问题
  • 检查核心代码中是否存在该类
    直接前往项目的vendor/magento/framework/DB/DataConverter/目录,确认是否存在SerializedToJson.php文件。Magento 2.4.4核心框架默认包含这个类,若文件缺失,说明composer依赖安装不完整或文件被误删。

  • 重新安装/更新composer依赖
    执行以下命令修复依赖,确保核心文件完整:

    composer install --no-dev
    

    若仅需更新框架包,可单独执行:

    composer update magento/framework --no-dev
    
  • 排查自定义模块与第三方扩展的引用问题
    该类可能被自定义模块或第三方扩展错误引用,或存在兼容性问题:

    • 用全局搜索定位所有引用该类的文件:
      grep -r "Magento\Framework\DB\DataConverter\SerializedToJson" app/code vendor/
      
    • 若为自定义模块中的引用,检查类名拼写是否正确,以及模块是否适配Magento 2.4.4版本。
    • 若为第三方扩展,尝试禁用扩展后重新编译验证问题是否消失:
      bin/magento module:disable Vendor_Module
      
  • 检查DI配置文件的错误引用
    查找所有di.xml文件中是否存在对该类的错误配置:

    grep -r "SerializedToJson" app/code/*/etc/ vendor/*/etc/
    

    若发现错误的依赖配置或拼写问题,修正后再执行编译。

  • 手动生成缺失的类文件(临时方案)
    若确认核心框架确实缺少该类,可手动创建vendor/magento/framework/DB/DataConverter/SerializedToJson.php文件,内容如下(对应Magento 2.4.4官方代码):

    <?php
    /**
     * Copyright © Magento, Inc. All rights reserved.
     * See COPYING.txt for license details.
     */
    declare(strict_types=1);
    
    namespace Magento\Framework\DB\DataConverter;
    
    use Magento\Framework\DB\DataConverterInterface;
    use Magento\Framework\Serialize\SerializerInterface;
    
    /**
     * Convert serialized data to JSON format.
     */
    class SerializedToJson implements DataConverterInterface
    {
        /**
         * @var SerializerInterface
         */
        private $serializer;
    
        /**
         * @param SerializerInterface $serializer
         */
        public function __construct(SerializerInterface $serializer)
        {
            $this->serializer = $serializer;
        }
    
        /**
         * Convert serialized string to JSON.
         *
         * @param string $value
         * @return string|null
         */
        public function convert($value)
        {
            if ($value === null || $value === '') {
                return null;
            }
    
            try {
                $data = $this->serializer->unserialize($value);
                return json_encode($data, JSON_THROW_ON_ERROR);
            } catch (\Exception $e) {
                return null;
            }
        }
    }
    

    创建完成后重新执行bin/magento setup:di:compile。

  • 修复文件权限
    确保vendor、generated等目录权限正确:

    chmod -R 775 var generated vendor pub/static pub/media app/etc
    chown -R www-data:www-data . # 根据服务器实际用户组调整
    

内容的提问来源于stack exchange,提问作者Tomaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 00:31:02