为了使Joomla 3.5扩展PHP7兼容,需要对代码进行哪些更改?


9

(请多多包涵,对不起,但我不能这么快就问。)

我们几乎都在等待Joomla 3.5.0的稳定版本,不是吗?

RC3 RC4于今天发布,距离最终定稿(Joomla 3.5.0 Stable于2016年3月21日星期一刚刚发布)只有几天的时间,经过一年多的制定和目标变更以及ETA推迟。

在所有其他显着改进中,最大的特点肯定是可以在最新的PHP7上运行,从而使执行速度提高近50%,并将内存消耗(来源)减少近4倍。

由于PHP7的内部变化(类型提示的引入以及现在保留的单词“ int”,“ string”和“ float”),即使Joomla 3.5.0核心本身将对许多扩展,也会导致向后兼容性中断。与PHP7完全兼容。
来源:RC4发布新闻的向后兼容性突破:)

我们有向后兼容性的保证,以确保代码不会突然中断。但是,在某些情况下,可能迫使我们不再履行这一诺言。在Joomla 3.5中就是这种情况。由于PHP 7的更改,我们不得不将String类重命名为StringHelper,否则将Joomla!不能在PHP 7上运行。这是非常小的更改,我们预计不会有任何问题。对于那些感兴趣的人,可以在Update to String package 1.3中了解更多有关它的信息

自从她的第一个Beta测试版到最新的RC4,我一直热衷于她的开发,并在SiteGround的PHP7上测试了J!3.5.0,我可以确定改进是引人注目的并且是伟大的。

但是...现在我很担心,我们将看到所有扩展完全更新以支持PHP7的速度有多快?很有可能要花几个月的时间,我们才能在配置为新的v3.4.8的新PHP上自由运行我们的站点。

所以... 我正在认真考虑手动更新一些我最喜欢的admin扩展以支持PHP7,因此我可以在新的v3.5上继续使用它们。对于那些受欢迎且受到积极支持的程序(例如Akeeba,JCE等),我将等待开发人员的更新,希望它们会很快推出。但是对于那些不再得到积极支持的东西(我已经使用了很多年了,只是请不要问我详细信息),我将不得不自己更新它们。

AND ...我的问题终于是:您是否偶然知道需要进行哪些代码更改才能使某些扩展PHP7兼容?
我的意思是,除了Joomla团队本身必须进行的更改以更新到String包1.3之外,还需要进行其他更改...


1
我认为这篇文章的大部分内容都可以编辑/删除。问题的主要焦点是“要使Joomla 3.5扩展PHP7兼容,需要对代码进行哪些更改?” 尽管我认为所包含的对已知更改的引用很重要。
TryHarder

1
@moomoochoo-感谢标题更改人员...我也认为引荐对于更广泛的受众很重要...
Mikan

1
如果您使用的任何扩展都使用了ioncube loader,那么您可能需要等待一段时间。forum.ioncube.com/…在这种情况下,修改扩展名将无济于事。
TryHarder

@oooooo-感谢您指出,很高兴知道ioncube仍然不能与最新的PHP兼容,尽管我的主要重点是我们经验丰富的管理员无法想象的所有小辅助扩展,而我们几乎无法使用它许可证保护级别。
Mikan

1
尽管它可能无法涵盖您的关注点,但我希望它对其他人有意义并有用:)
TryHarder

Answers:


5

好,第一件事是第一位。Joomla 3.5.0稳定版将于明天 下周一发布:)

我退后一步,首先对您的站点进行备份,然后将其安装在运行PHP 7.0.4的子域或本地主机上。

完成后,对其进行彻底测试。

至于扩展,来自Akeeba的I Nicolas已经支持PHP 7,其他流行的扩展很可能已经支持它。

我将避免自己进行任何核心更改,并等待开发人员在可能的时候进行更新。您知道“核心技巧”演习....这是一个“禁区”。

关于向后不兼容的更改,请从PHP官方网站查看以下内容:

http://php.net/manual/zh/migration70.incompatible.php

总体而言,也许要等上几个月,直到PHP 7变得更加稳定。它仍然是相对较新的,肯定会有一些大错误。

希望这可以帮助


它肯定有帮助...感激的人...等不及要明天了;-)
Mikan

看来他们再次推迟了[Stable] :-( twitter.com/viktorvogel/statuses/710007837850791937,但他们今天却发布了RC4 ...哦,好吧……
Mikan

2
@MirkoMikan-现在稳定在下周一
Lodder

2

这不是我的问题的答案,我只是想分享一个我刚刚找到的链接,它可能对将我们的Joomlas升级到3.5有帮助:

有一个Google文档“ 支持Joomla!3.5和PHP 7的Joomla!扩展列表 ”,该文档由社区公开提供和维护(毕竟,我们谈论的是Joomla :-))。

我知道我应该把它作为评论而不是答案,但是我认为这样可以更明显地看到它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.