关于php升级7.2后overture微信开发遇到的问题

2018-01-20 20:34:42

由于使用larvavel5.5的最新特性。

所以被迫从php7.0升级到了7.2。

哎,是的,升级就会带来问题的厄运还是来了。


用overtrue框架开发的微信支付不报错了。


首先一个错误。就是count报错。并且这个是在overture框架下的错误。


通过百度查询下面地址解决了问题。


php7.2的一些注意事项



然后我修改了overture框架下的,CurlFactory.php下面的语句。第68行函数

function fun_adm_count($array_or_countable,$mode = COUNT_NORMAL){
    if(is_array($array_or_countable) || is_object($array_or_countable)){
        return count($array_or_countable, $mode);
    }else{
        return 0;
    }
}
    public function release(EasyHandle $easy)
    {
        $resource = $easy->handle;
        unset($easy->handle);

        if ($this->fun_adm_count($this->handles) >= $this->maxHandles) {
            curl_close($resource);
        } else {
            // Remove all callback functions as they can hold onto references
            // and are not cleaned up by curl_reset. Using curl_setopt_array
            // does not work for some reason, so removing each one
            // individually.
            curl_setopt($resource, CURLOPT_HEADERFUNCTION, null);
            curl_setopt($resource, CURLOPT_READFUNCTION, null);
            curl_setopt($resource, CURLOPT_WRITEFUNCTION, null);
            curl_setopt($resource, CURLOPT_PROGRESSFUNCTION, null);
            curl_reset($resource);
            $this->handles[] = $resource;
        }
    }



很庆幸的通过了,这个问题应该是做着没有严格的按照php语法写出现的错误。修改了,,,


其实很想更新为最新版本的overtrue,结果打开文档一看,可能是有些语法有些变化,如果盲目升级到话,出错的话我还得搞半天业务。等下次有时间在统一修改下吧,


结果网页能打开成功了。

继续往下。

哎。又是个坑啊。

ession_cache_limiter(): Cannot change cache limiter when session is active



这是什么鬼。

百度的答案:

修改php.ini中的


session.auto_start = 0 为 session.auto_start = 1


无济于事啊。



后来经过调试,发现崩溃出现在了。


$oauth = $app->oauth;



怎么修改也不行。


其实我应该认真读一读错误答案的,人家说不能改变缓存,在session活跃的状态。


不知怎么的,我就吧session_start放在了这个报错语句后面,竟然不报错了。

虽然不是很清楚

ession_cache_limiter

是做什么的,但是知道

session_start();

是不能放到他后面的了。哎。但是不知道原来为什么没有报错,是不是php7.0没有那么严格,而后来的版本就越来越严格了。


其实我仔细读读搜来的答案,还是能解决的,看到一堆自己不熟悉的文字就退却了,下面是我搜来的答案。我没仔细看,里面也讲了这个事。

PHP中session_cache_limiter() 是什么意思啊

  • 2019-05-09 11:46:30

    Glide使用高级技巧(解决Glide生成缓存Key问题)

    虽说Glide将缓存功能高度封装之后,使得用法变得非常简单,但同时也带来了一些问题。 比如之前有一位群里的朋友就跟我说过,他们项目的图片资源都是存放在七牛云上面的,而七牛云为了对图片资源进行保护,会在图片url地址的基础之上再加上一个token参数。也就是说,一张图片的url地址可能会是如下格式:

  • 2019-05-13 14:34:42

    linux系统中清理MySql的日志文件,打印日志文件

    默认情况下mysql会一直保留mysql-bin文件,这样到一定时候,磁盘可能会被撑满,这时候是否可以删除这些文件呢,是否可以安全删除,是个问题。 首先要说明一下,这些文件都是mysql的日志文件,如果不做主从复制的话,基本上是没用的,虽然没用,但是不建议使用rm命令删除,这样有可能会不安全,正确的方法是通过mysql的命令去删除。

  • 2019-05-14 16:47:27

    数据库整理碎片

    最后还是用的ALTER TABLE来修改的,不知道为什么有时候管用,有时候不管用。

  • 2019-05-17 16:27:26

    在vue项目里面使用引入公共方法

    今天早上来到公司,没事看了一下别人的博客,然后试了一下,发现的确是可以的,在此记录一下,方便自己日后查阅。 首先新建一个文件夹:commonFunction ,然后在里面建立 一个文件common.js

  • 2019-05-18 12:37:39

    Android夜间模式的实现方案

    对于一款阅读类的软件,夜间模式是不可缺少的。最初看到这个需求时候觉得无从下手,没有一点头绪。后来通过查阅资料发现Android官方在Support Library 23.2.0中已经加入了夜间主题。也就是只需要通过更换主题便可实现日间模式和夜间模式的切换。下面截取项目实现的夜间模式效果图:

  • 2019-05-18 12:38:41

    android 快速实现夜间模式

    最近项目中遇到了一个问题,夜间模式在8.0以上的手机中不起作用,查看了一下原因,是夜间模式实现方法的问题。分两种情况介绍一下

  • 2019-05-18 12:40:35

    Android夜间模式的几种实现

    通过增加一层遮光罩来实现。效果不是很理想,但是好用,毕竟很多手机都有自己的夜间模式了