查看: 72|回复: 9

[教程] Discuz! X 3.4, 更新PHP7.4后无法打开uc_server的解决方案!

[复制链接]

63

主题

383

回帖

0

积分

积极分子

金币
383
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2009-10-2
发表于 2020-12-6 05:23:13 | 显示全部楼层 |阅读模式


页面报错:
Deprecated: Array and string offset access syntax with curly braces is deprecated in/www/wwwroot/***/uc_server/admin.php on line53

出现报错原因:

PHP7.4不再支持使用大括号访问数组以及字符串的偏移



将53行修改为:

  1. if(method_exists($control, $method) && $a[0] != '_') {


即可。

报错, uc, server, 本帖
回复

使用道具 举报

12

主题

188

回帖

0

积分

积极分子

金币
188
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2009-2-24
发表于 2020-12-11 23:54:35 | 显示全部楼层
最新版的x3.4已修复大多数花括号问题,少数位置的花括号修复时间晚于发布版时间,下一个发布版就会修好。
但需要注意的是,x3.4虽然支持php7.4,但是不支持php8,目前也没有相关的计划,请勿直接尝试升级。
下一代x3.5不出意外的话有机会支持php8(但目前的测试版还不行)。
回复

使用道具 举报

63

主题

383

回帖

0

积分

积极分子

金币
383
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2009-10-2
 楼主| 发表于 2020-12-14 02:58:50 | 显示全部楼层

Discuz! x 3.5  要支持PHP8.0,就要停止支持其它PHP低版本才行。
回复

使用道具 举报

12

主题

188

回帖

0

积分

积极分子

金币
188
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2009-2-24
发表于 2020-12-16 04:23:44 | 显示全部楼层

不需要的,目前x3.5的开发计划最低兼容php 5.6。
目标是在5.6以上直到8.0的版本均不出现fatal error。
如果一切顺利的话,有望在明年第一季度达成目标。
回复

使用道具 举报

63

主题

383

回帖

0

积分

积极分子

金币
383
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2009-10-2
 楼主| 发表于 2020-12-16 18:30:33 | 显示全部楼层

问题是 Discuz x 3.5 用 PHP5.6没问题,用 PHP8.0才有问题。
回复

使用道具 举报

12

主题

188

回帖

0

积分

积极分子

金币
188
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2009-2-24
发表于 2020-12-16 19:03:31 | 显示全部楼层

所以说是目标,就是目前尚未达成的意思。
现在的x3.5开发版本暂时不支持8.0。

目前相关工作已经进行到了在8.0上大体上跑起来(未合并到3.5主干),完全适配8.0还需要一段时间。
回复

使用道具 举报

63

主题

383

回帖

0

积分

积极分子

金币
383
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2009-10-2
 楼主| 发表于 2020-12-16 19:32:28 | 显示全部楼层


如果只是如PHP7.4大括号问题就简单,Discuz x 3.5 程序不用大括号就可以。

个人还没开始研究 PHP8.0,不知结构与低版本有什么不同,难说。

最大问题是 Discuz! X 3.5还是免费,真会兼容吗?

还有一大问题,Discuz! x 3.5开发版本暂时不支持8.0,安装了大堆支持PHP低版本收费插件与第三方模版,收费插件与第三方模版也会免费整改吗?
回复

使用道具 举报

12

主题

188

回帖

0

积分

积极分子

金币
188
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2009-2-24
发表于 2020-12-19 15:40:14 | 显示全部楼层

PHP7.4的花括号问题确实相对来说很好处理,唯一麻烦的地方就是要找齐所有的花括号。之前总是有遗漏的。
已修复的花括号:
https://gitee.com/Discuz/DiscuzX/pulls/487
https://gitee.com/Discuz/DiscuzX/pulls/488
https://gitee.com/Discuz/DiscuzX/pulls/551
https://gitee.com/Discuz/DiscuzX/pulls/561




php8.0改动很大,很多原来能用的老办法都失效了,因此直到目前适配工作仍未完成。
Discuz x3.5怎么说也是下一个大版本,最新的php都不支持这个确实有点说不过去,应该能做到的。

如果有意愿尝试最新的php8.0适配的话,可以给你一份当前可以在php8.0上运行的测试版本
(目前的php8适配尚未完工,只能保证基本跑起来,如果遇到错误欢迎反馈)

至于模板和插件的相关问题:
x3.4的模板无法直接在x3.5上完美使用,即便用php5或者7也不行。这跟php8关系不大。x3.5的默认主题做了大量改动,x3.4主题想在x3.5上用则需要适配,否则会出现少量错位。php8对模板的影响反而相对很小。

x3.4的插件基本上可以在x3.5上跑,此时php8可能会产生一些影响,尤其是原本开发质量较差的插件。
php8废除的主要是php4和php5早期的一些遗留包袱,如果开发者有良好的习惯的话,适配php8应该不会太难。
回复

使用道具 举报

63

主题

383

回帖

0

积分

积极分子

金币
383
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2009-10-2
 楼主| 发表于 2020-12-19 17:58:19 | 显示全部楼层

PHP7.4 问题,见到bug页面才修改就行。

Discuz x 3.5 要时间支持 PHP8.0,但是已安装大堆支持 DIscuz x 3.5 收费插件与模版,都会免费整改吗?

Discuz ! X 最大问题是每一个程序都支持PHP多个版本;要支持 PHP8.0不可能。

最快是出一个程序,PHP最低要求是8.0才行。
回复

使用道具 举报

12

主题

188

回帖

0

积分

积极分子

金币
188
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2009-2-24
发表于 2020-12-20 18:40:02 | 显示全部楼层

给你看看已经兼容php8.0的内测版本:

想试试么?




同时兼容低版本的php并不是问题。如果肯多花点时间,甚至能兼容php5.2。
主要是花时间做这种事情太没意义了。

兼容5.6这件事情并不难,所以可以做。
别看5.6也是php5系列的,它的生命周期才刚结束不久,不像5.2 5.3那些老家伙都是十几年前的东西了。
该有的功能5.6都有。
但5.3是真的不能再做兼容了,太麻烦了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部