PHP7 升级踩坑笔记

此篇笔记主要用于记录我遇到的各种问题,会不定时更新,希望对后来人有那么一点用。

PHP7 已经发布的一段时间了,已经有不少大型系统升级到了 PHP7,并且给出了良好的反馈。而我们公司的线上版本现在还停留在 5.3,实在是跟不上时代啊,作为一个略有极客精神的程序员,我向上边极力推荐升级,主管也同意了(好吧,其实公司的 PHP 开发就我和主管俩人)。所以我最近把我的开发机的环境升级到了 PHP7.0.4,想现在本机运行开发一段时间,找找看有没有什么我们系统踩到的坑(虽然各界对 PHP7 的反响良好,连微博这种大架构都表示没遇到坑,但我还是小心为妙)。

mcrypt_decrypt()

这个坑属于 PHP 5.6,根据官方文档,加密Key(也就是第二个参数)的长度只能是 16,24 or 32.

PHP 5.6.0 不再接受无效长度的 key and iv 参数。 如果参数长度无效,则 mcrypt_decrypt() 函数会产生警告并且返回 FALSE。 之前版本中,对于长度不足的密钥和初始向量会在其后补齐 '\0' 使其达到有效长度。

Error

PHP7 多了一个基础错误类,就叫 Error(具体用法请自行查阅官方文档),按理说没啥问题,但是,我们系统中已经有一个叫 Error 的类,所以就日了狗了,刚升级上去的时候直接报错,我查了半个小时才查出来(好吧,其实我没有好好听鸟哥的讲座,写完马上恶补去)。所以如果你的代码中也有一个叫 Error 的类的话,请马上换名字,然后全局替换。

igbinary 扩展

很不幸,PHP7 的扩展还没有完全跟上,像这个大家用 memcache 时都会用到的pecl,目前就还没有提供 PHP7 的支持(目前最高版本号是1.2.1,支持到5.6),虽然没有它并不是不能使用 memcache,但是,还是希望这个扩展能及早跟上,毕竟大家一直在用,突然换了序列化方式,不知道会遇到什么样的坑。

(待续……)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • PHP7 已经出来1年了,PHP7.1也即将和大家见面,这么多好的特性,好的方法,为什么不使用呢,也希望PHP越来...
    梦幻_78af阅读 2,163评论 1 10
  • 更改ip和dnsVi /etc/sysconfig/network-scripts/ifcfg-eth0vi /...
    Xwei_阅读 1,912评论 0 3
  • (一):基础概念 memcache是什么? Memcache 是一个高性能的分布式内存对象缓存系统,用于动态Web...
    楚江云阅读 1,253评论 0 5
  • 一、MemCache简介 session MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存...
    李伟铭MIng阅读 3,903评论 2 13
  • 1、memcache的概念? Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨...
    桖辶殇阅读 2,290评论 2 12