Mautic 4.0版本升级指南:重大变更与兼容性说明

Mautic 4.0版本升级指南:重大变更与兼容性说明

mautic Mautic: Open Source Marketing Automation Software. mautic 项目地址: https://gitcode.com/gh_mirrors/ma/mautic

平台要求变更

Mautic 4.0对运行环境提出了更高要求,PHP最低版本从7.3提升至7.4。这一变更主要是为了利用PHP 7.4引入的新特性,如类型属性、箭头函数等,这些特性能够提升代码质量和性能。

API重大变更

OAuth1认证支持已被完全移除,Mautic现在仅支持OAuth2标准协议。开发者需要特别注意,Mautic 4.0新增了Client Credentials授权模式,这种模式特别适合机器对机器(M2M)的认证场景。

Symfony 4升级影响

服务容器变更

Symfony 4中服务默认变为私有,Mautic虽然保留了将服务注册为公共的机制,但强烈建议开发者采用依赖注入方式访问服务。特别需要注意的是:

  • 控制器中通过容器直接获取Symfony服务的方式可能不再可用
  • 命令(Commands)和服务(services)都应优先使用依赖注入

表单类型变更

YesNoButtonGroupType表单类型现在使用true/false值而非之前的0/1。这一变更可能导致:

  • 使用NotBlank约束的表单验证可能失效
  • 功能测试中提交值为0的YesNoButtonGroupType字段可能产生问题

模板引擎迁移策略

Symfony官方已弃用PHP模板引擎,Mautic 4.3开始推荐:

  1. 新开发的内置Bundle必须使用Twig模板
  2. 新开发的插件也应采用Twig模板
  3. 现有Bundle将逐步从PHP迁移到Twig

Mautic 4.3已提供content.html.twig模板,开发者可以基于此模板进行扩展。需要注意的是,在升级到Symfony 5之前,两种模板引擎可以共存。

依赖包变更

移除的包

  • debril/rss-atom-bundle:RSS/Atom解析功能
  • egeloen/ordered-form-bundle:表单排序功能
  • sensio/distribution-bundle:Symfony分发工具
  • joomla/http:HTTP客户端功能
  • 其他测试相关包

升级的包

主要依赖包版本升级包括:

  • Symfony全家桶升级到4.x系列
  • Doctrine相关包全面升级
  • FOSRestBundle升级到3.x
  • 其他如JMSSerializerBundle、OneupUploaderBundle等均有版本提升

命令与服务变更

命令相关

  • ModeratedCommand::$lockHandler属性变为私有
  • 安装命令(InstallCommand)进行了错误修复和严格性增强

服务相关

HTTP客户端服务进行了重大升级:

  1. mautic.http.client从Guzzle 6升级到7
  2. 移除了mautic.http.connector服务
  3. 现在支持PSR-18标准的ClientInterface

开发者现在可以这样使用HTTP客户端:

use Psr\Http\Client\ClientInterface;

class DemoClass {
    public function __construct(ClientInterface $client) {
        $this->client = $client;
    }
}

插件与集成变更

集成相关

INTEGRATION_CONFIG_BEFORE_SAVE事件触发时机调整,现在插件开发者可以获取用户提交的更新值,便于在持久化前修改配置。

插件相关

  1. AbstractIntegration::makeRequest方法现在返回PSR-7标准的ResponseInterface
  2. PLUGIN_ON_INTEGRATION_RESPONSE事件的响应对象也变为PSR-7标准

Webhook变更

WebhookBundle中移除了多个队列相关方法,包括:

  • getQueues()
  • addQueues()
  • addQueue()
  • removeQueue()

这些方法没有替代方案,开发者需要调整相关代码。

企业联系人功能增强

Mautic 4.0新增了对企业联系人唯一字段的支持:

  • 默认使用"公司名称"作为唯一字段
  • 支持配置其他字段作为唯一标识
  • 支持字段间的AND/OR逻辑组合

其他变更

  • VersionProvider的第二个构造函数参数被移除
  • 多项内部优化和重构

升级建议

  1. 首先确保环境满足PHP 7.4要求
  2. 检查所有自定义插件和集成,特别是涉及:
    • OAuth认证
    • HTTP请求
    • 表单验证
    • 服务容器使用
  3. 逐步将模板迁移到Twig引擎
  4. 测试所有自定义功能,特别是涉及Webhook队列的部分

通过以上变更,Mautic 4.0在性能、安全性和开发体验上都有显著提升,虽然带来了一些兼容性挑战,但为未来的发展奠定了更好的基础。

mautic Mautic: Open Source Marketing Automation Software. mautic 项目地址: https://gitcode.com/gh_mirrors/ma/mautic

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宋虎辉Mandy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值