关于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() 是什么意思啊

  • 2018-08-28 14:19:58

    php如何配置上传较大文件

     在php中判断上传文件的大小,但是文件一但过大,print_r($_FILES);的值就变为null了,有时候大家会遇到这么一个问题,上传小文件 时,PHP能正常获取到,但是文件一超过8M就变为空了,我在做项目的时候,就遇到这样的问题,我刚开始把最大上传文件值改为20M,在PHP.INI里 面。

  • 2018-08-28 15:09:50

    JAVA中MAP值保持顺序不变

    今天在进行JAVA开发过程中,因需要使用MAP来存放数据,同时希望MAP中KEY的顺序与放入顺序保持一致。 在使用HashMap之后,发现KEY的顺序是乱序的,每次打印还不太一样。上网查询资料之后发现:

  • 2018-09-03 13:57:27

    load average 的含义

    一般的进程需要消耗CPU、内存、磁盘I/O、网络I/O等资源,在这种情况下,平均负载就不是单独指的CPU使用情况。即内存、磁盘、网络等因素也可以影响系统的平均负载值。 在单核处理器中,平均负载值为1或者小于1的时候,系统处理进程会非常轻松,即负载很低。当达到3的时候,就会显得很忙,达到5或者8的时候就不能很好的处理进程了(其中5和8目前还是个争议的阈值,为了保守起见,建议选择低的)。

  • 2018-09-05 01:42:03

    git reset 回退以前某个版本及常用命令

    第一个命令只删除所有untracked的文件,如果文件已经被tracked, 修改过的文件不会被回退。而第二个命令把tracked的文件revert到前一个版本,对于untracked的文件(比如编译的临时文件)都不会被删除。