由于使用larvavel5.5的最新特性。
所以被迫从php7.0升级到了7.2。
哎,是的,升级就会带来问题的厄运还是来了。
用overtrue框架开发的微信支付不报错了。
首先一个错误。就是count报错。并且这个是在overture框架下的错误。
通过百度查询下面地址解决了问题。
然后我修改了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,结果打开文档一看,可能是有些语法有些变化,如果盲目升级到话,出错的话我还得搞半天业务。等下次有时间在统一修改下吧,
结果网页能打开成功了。
继续往下。
哎。又是个坑啊。
这是什么鬼。
百度的答案:
修改php.ini中的
session.auto_start = 0 为 session.auto_start = 1
无济于事啊。
后来经过调试,发现崩溃出现在了。
$oauth = $app->oauth;
怎么修改也不行。
其实我应该认真读一读错误答案的,人家说不能改变缓存,在session活跃的状态。
不知怎么的,我就吧session_start放在了这个报错语句后面,竟然不报错了。
虽然不是很清楚
是做什么的,但是知道
session_start();
是不能放到他后面的了。哎。但是不知道原来为什么没有报错,是不是php7.0没有那么严格,而后来的版本就越来越严格了。
其实我仔细读读搜来的答案,还是能解决的,看到一堆自己不熟悉的文字就退却了,下面是我搜来的答案。我没仔细看,里面也讲了这个事。