V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ety001
V2EX  ›  PHP

对PHP的版本开始有些抱怨,并对此有些疑问

  •  
  •   ety001 · 2013-07-22 10:29:21 +08:00 · 9236 次点击
    这是一个创建于 4178 天前的主题,其中的信息可能已经有所发展或是发生改变。
    个人表示现在php的版本前进速度有些过快了,并且弄得很是让人纠结,维护了5.3,5.4不说,最近又上了5.5。不过5.3已经走到了最后一个版本5.3.27。国内貌似很多的应用当时的开发环境是5.2或者5.1,毕竟很多人都是直接在win上安装类似wampp,npmserv这样的傻瓜包来搭建开发环境的,我现在有这样几个问题:

    1、5.2、5.3、5.4、5.5几个版本之间的区别何在?为何官方不在一个版本上走下去,而是要分散成几个版本去走,我的理解是,5.3、5.4、5.5在一定程度上有比较大的差异性,而每个版本又有很多人在用,没法立即停掉,或者说5.5和5.4这样的版本属于实验版本,5.3属于stable版,不知道我的理解对不对?

    2、大家猜测下php官方在未来合并或者逐步停掉某版本的更新吗?或者更换下这种版本路线方式?

    3、大家平时生产环境的版本号多少?生产环境大约多长时间进行一次版本升级?开发环境与生产环境的版本时候有差别,版本差多少?
    第 1 条附言  ·  2013-07-22 11:18:14 +08:00
    补充一问:每次上新版本的目的是为了什么?安全与性能的提高?还是为了使用新版本中的功能?
    29 条回复    1970-01-01 08:00:00 +08:00
    Oishi
        1
    Oishi  
       2013-07-22 10:33:13 +08:00
    PHP 5.3.27 Released - PHP 5.3 Reaching End of Life

    11-Jul-2013
    The PHP development team announces the immediate availability of PHP 5.3.27. About 10 bugs were fixed, including a security fix in the XML parser (Bug #65236).

    Please Note: This will be the last regular release of the PHP 5.3 series. All users of PHP are encouraged to upgrade to PHP 5.4 or PHP 5.5. The PHP 5.3 series will receive only security fixes for the next year.

    For source downloads of PHP 5.3.27 please visit our downloads page, Windows binaries can be found on windows.php.net/download/. The list of changes is recorded in the ChangeLog.

    http://php.net/archive/2013.php#id2013-07-11-1
    Oishi
        2
    Oishi  
       2013-07-22 10:34:06 +08:00
    5.3除非有安全修复,否则不会更新啦
    Sunyanzi
        3
    Sunyanzi  
       2013-07-22 10:44:17 +08:00   ❤️ 3
    我不太能理解为什么你会说 php 前进的速度过快 ...

    在我看来 ... 一年一个大版本的速度还是挺稳的 ...

    关于版本之间的区别 ... 你的理解是错的 ...

    任何一个不带 dev 尾缀的版本都是 stable 版 ... 没有什么实验版本一说 ...

    关于为什么要升级版本号 ... 我的理解是因为引入了一个比较大的功能 ...

    比如 5.3 系列的 closure ... 5.4 系列的 traits ... 5.5 系列的 generator ...

    其他还有一些不是主力功能的新更新 ... 比如 namespace ... 也只在新版本才有 ...

    这样的好处是发布软件的时候可以只写 ... phpVersion >= 5.3 ...

    而不用特别指明 phpVersion > 5.2.15 这样 ...

    关于第二点 ... php 在未来不会合并版本 ... 但一定会逐步停掉某版本的支持 ...

    至于更换版本路线 ... 到 6.0 之前都不太可能 ...

    我并不是说到 6.0 就会变更 ... 只是 6.0 之后的未来我看不到而已 ...

    现在我的生产环境的 php 版本是 5.4.9 ... 近期准备换 5.5.0 ...

    我的升级原则基本是本地跑一遍没问题 ... 等一个月没看到差评就更 ...
    saharabear
        4
    saharabear  
       2013-07-22 10:49:53 +08:00
    @Sunyanzi 握手,同样的运维规则。我是等一个月,没有大差评就更新,目前生产环境都是5.4.16 近期准备更换5.5.0
    cai314494687
        5
    cai314494687  
       2013-07-22 10:54:16 +08:00
    5.3
    ety001
        6
    ety001  
    OP
       2013-07-22 11:12:17 +08:00
    @Sunyanzi 其实每个大版本有一个新的重要功能这一点我是肯定支持的,但是我更喜欢一个大版本发布后,官方应该尽快停掉上一个版本的更新,推动大家转向新版本,感觉官方长时间维护两个版本还是让人很纠结的,不升级总感觉心里是个事,升级又是很累的活并且看到官方还在更新上一个版本就心存侥幸(多活一天是一天的感觉),可能是上一次一个半道接手的项目从5.1直接搞到5.4让我产生阴影了。。。。
    ety001
        7
    ety001  
    OP
       2013-07-22 11:14:45 +08:00
    @Sunyanzi 另外我看上个月lnmp一键安装包也是才更新,从原来的默认5.2.17到了现在默认5.3。
    laogui
        8
    laogui  
       2013-07-22 11:26:00 +08:00
    5.5就是stable版,因为大部分人不升级,所以官方不得不维护老版本,官方当然希望大家都升级到5.5了。

    linux也是罪魁祸首,源里面都是老版本,所以想用新版必须编译安装,麻烦了点。

    现在PHP新版本会抛弃一些老旧的东西,所以有不少程序用新版会出错。

    前几天我升级到了5.5,用了自带的Zend Opcache,编译的时候加上--enable-opcache就行了,很方便,再也不用装apc,eAccelerator什么的了。
    Sunyanzi
        9
    Sunyanzi  
       2013-07-22 11:50:16 +08:00
    @ety001 关于版本停止这个事情 ... 官方确实是在这么做的 ...

    支持中的版本一般只有两个 ... 一个是最新的版本 ... 一个是之前的版本 ...

    比如现在维护中的版本就只有 5.4 和 5.5 两个 ...

    等到 5.6 发布 ... 对 5.4 的支持也会停止这样 ...

    跨版本的升级是个麻烦事 ... 因为新版本不止多了东西还少了东西 ...

    有很多 5.1 下面正常跑的代码放到 5.4 下面就各种报错 ...

    事实上 ... 如果不是开发人员的话 ... 没必要追新 ...

    我现在的内部框架是在 5.4 的年代写的 ... 大量用到 closure 和 traits ...

    随着每个大版本的发布有轻微的修改 ... 这样升级不会很痛苦 ...

    现在我带新人 ... 也都是直接从 5.5 上手的 ...

    跟随 php 一起成长 ... 对新人来说是个很好的体验 ...

    但是如果你在维护一个 4.x 年代的大项目 ... 我的建议还是不要升级版本了 ...

    php 的每一代都有其存在的意义 ... 一个已经成型稳定的系统没必要折腾它 ...

    语言终归只是工具 ... 为自己所用才是最关键的 ... 盲目追求版本什么的没必要不是 ..?
    Sunyanzi
        10
    Sunyanzi  
       2013-07-22 12:12:07 +08:00   ❤️ 1
    刚看到你的补充问题 ... 为什么要在生产环境上新版本 ...

    这个事情要分成两种情况来说 ... 一种叫做升级换代 ... 5.4.n -> 5.5.m ...

    这样的更新一般都是为了使用新的大功能 ...

    这种更新需要谨慎 ... 下手之前一定要再三确定程序可以兼容新一代的 php ...

    另外一种情况叫做版本更新 ... 5.4.n -> 5.4.m ... 其中有 m > n ...

    这样的更新比较随意 ... 随着 php 的每一个版本发布都有 ChangeLog ...

    读读看 ... 如果有对你程序里面所使用的功能的优化就更 ... 没有的话可更可不更 ...

    更了肯定没坏处 ... 不更的话也不会影响什么 ... 一个一个更或者跳着版本更都可以 ...

    你可以注意到我的生产是 5.4.9 ... 而不是最新的 5.4.17 ...

    没更的原因并不是因为 php 本身有什么问题 ... 而是因为我懒得更 ... 就是这样 ...
    raincious
        11
    raincious  
       2013-07-22 12:12:34 +08:00   ❤️ 1
    PHP版本还好,都是追最新的版本就好了,最起码没有Python 2.7和3.0的问题。

    现在PHP版本的主要问题其实还是在一些服务器上的PHP版本太老的缘故,一些特性还没有被支持。

    其实我觉得……玩PHP的同学们真的是太幸运了……
    Hyperion
        12
    Hyperion  
       2013-07-22 12:17:47 +08:00
    http://php.net/archive/2013.php#id2013-07-11-1
    PHP 5.3.27 Released - PHP 5.3 Reaching End of Life

    changelog里都写着嘛... PHP版本如果没有大的安全问题, 重新编译替换有时候好麻烦, 特别是追加了扩展之后... 如果没必要个人做法是不会去动的, 少动少错.
    Hyperion
        13
    Hyperion  
       2013-07-22 12:25:08 +08:00
    @raincious ...这个基本没有可以类比的比方吧...? python3根本就没有向下兼容了...

    另, PHP为啥懒得升级? PHP新版本有去掉一些函数和函数别名, 有些臃肿的程序除了用到这些函数还玩了很多奇技淫巧, 改都没办法改. 但PHP始终在语法上还是向下兼容的, 和py的情况不一样...
    BOYPT
        14
    BOYPT  
       2013-07-22 13:00:26 +08:00
    PHP本来就是一个“缺陷驱动”发展的语言,有什么不好的,改。本来就没有特别良好设计,都是那样修修补补过来的。

    5.1 5.2 5.3都已经停掉更新了,你愿意的话可以永远地“稳定”下去。
    whuhacker
        15
    whuhacker  
       2013-07-22 14:20:27 +08:00
    性能的提升,这个我很看重。
    新的语言特性倒是很少有用到,因为做 Web 项目选定了一个开发框架,接触到新特性的机会比较少。这样看本质还是在跟框架走,而非语言,除非自己写框架。
    z50hz1988
        16
    z50hz1988  
       2013-07-22 18:01:47 +08:00
    5.2到5.3上有挺大的差异吧. 在面向对象方面和资源回收方面都挺多的改进的. 再往上没听说有什么非常特别的变化, 要是新版本没有放映出啥bug就升级下呗... 再说,不升级你不难受么?! 不难受么?! 不难受么?! ^_^
    iCodex
        17
    iCodex  
       2013-07-22 21:41:21 +08:00
    @laogui Opcache还在beta阶段,我在5.4下安装测试,发现和wordpress的w3tc插件有不兼容的情况。
    ety001
        18
    ety001  
    OP
       2013-07-22 21:46:40 +08:00
    @z50hz1988 恩,5.2到5.3的确差异不小,不升级的确很难受,要么说纠结呢。。。唉,这是病,得治啊,O(∩_∩)O~
    PrideChung
        19
    PrideChung  
       2013-07-22 22:16:49 +08:00
    居然还有嫌PHP版本出得快的,我还嫌它慢呢。2010就在喊PHP6要发布了,结果一些预定要在PHP6添加的功能已经给做到5.3,5.4里面去了,看这个势头PHP6还要过几年。

    用过5.4的数组语法就再也不想用5.3了。
    ety001
        20
    ety001  
    OP
       2013-07-23 07:52:27 +08:00
    @PrideChung 那看来你运气好,没有遇到蛋疼的事,遇到一次你就恶心了,真的。。
    thbourlove
        21
    thbourlove  
       2013-07-23 08:09:32 +08:00
    @ety001 5.1跳到5.4,让你蛋疼到了。但这真的是语言本身发展太快带来的问题吗?
    BOYPT
        22
    BOYPT  
       2013-07-23 08:51:26 +08:00
    @iCodex 敝厂zop已经上生产环境。和w3tc配合无压力。(opcode为啥会跟w3tc出兼容问题,如果是因为w3tc用文件存配置,那你应该把这个文件做处理,反正和apc比速度快多了。)
    andyhu
        23
    andyhu  
       2013-07-23 09:09:50 +08:00
    php官方手册里有详细的每个版本的区别,不光是加快了执行速度,还增加了很多重要的语言特性。语言进化快是好事情,作为程序员还是需要多折腾才能学到东西啊
    qiuai
        24
    qiuai  
       2013-07-23 09:15:53 +08:00   ❤️ 1
    我以做虚拟主机的角度来说一点.
    目前国内大部分程序对PHP5.3的支持都不足,能支持到PHP5.4的更是少之又少了.
    本来准备把所有的服务器都升级到5.3的.然后调查了下,结果好多都不支持...没办法,只好放弃.

    有时候版本升级,只是要看需求而已.如果你有技术随时在追新,那你可以升级到最新,升级到6都没问题.虽然不推荐.

    但是如果你用了一个公开的程序,还不知道会不会有更新的那种,趁早别折腾,一折腾一个傻,非常多程序根本对升级一点准备都没有.升级了连跑都不跑了...

    所以.一句话.有需要就升级,没需要就照样跑.
    ety001
        25
    ety001  
    OP
       2013-07-23 09:38:06 +08:00
    @qiuai 的确是需要看需求的,感谢提供经验
    @thbourlove 是程序发展太慢了导致的。。
    @andyhu 如果仅是为了学习的话,的确是要多折腾,不过本地环境和实际生产还是有比较大的区别的。
    qiuai
        26
    qiuai  
       2013-07-23 10:21:04 +08:00
    学要学新的,用要用稳定的.经验.
    yesono
        27
    yesono  
       2013-07-23 10:42:25 +08:00
    准备换 php5.5.1 自带Zend ,不用Xcache Apc eaccelerator
    caoglish
        28
    caoglish  
       2013-09-27 21:52:50 +08:00
    php越新,功能越多,越符合未来的发展趋势。

    我是欢迎新版本的。你不能因为你用起来不方便,就停止世界的发展吧

    当然,软件业里面最大的问题就是遗留系统问题,这个就看个人的解决方案了。
    wwek
        29
    wwek  
       2014-04-20 20:02:58 +08:00
    你不用管那么多的版本。
    一个简单的原则。
    如果你的项目没有历史包袱。
    那么直接用5.5.x
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2635 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:32 · PVG 19:32 · LAX 03:32 · JFK 06:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.