laravel55升级到57

公司项目用的是5.5版本,也没有考虑过升级,主要是处于稳定性考虑,而且也没有必要,但是对于框架升级毕竟也没做过所以简单测试了一下。

5.5到5.6更改的内容还是比较多的,由于我们项目里边用的第三方库并不是很多,而且也是中规中矩的使用,所以升级的时候没有费多大劲。

先从5.5升级到了5.6,5.6到5.7改动很小。

其实升级的时候已经很小心了,很仔细的去看升级文档。但是还是有漏掉的东西。

After that I starts to getting this error: Type error: 
Argument 2 passed to Symfony\Component\HttpFoundation\Request::setTrustedProxies() 
must be of the type integer, array given, 
called in /var/www/html/vendor/fideloper/proxy/src/TrustProxies.php on line 54

第一遍弄完的时候报这个错误,我们本来也没用到这个东西,但是升级的时候文档每一点都改了啊。去stack overflow看了一下原来是没有注意到文档中我们没有用到的东西的改动。

可信任代理

由于 Symfony HttpFoundation 的可信任代理功能发生了根本性的改变,因此必须对你的应用下的App\Http\Middleware\TrustProxies 中间件做轻微地改动。

之前是一个数组的 $headers 属性,现在可以接收几个不同值。 例如, 要信任所有的转发标题,你可以将你的$headers 属性更新为以下值:

所以升级也不能只看自己用的,没有用的还有一些废弃的,该删则删免得在项目里留下炸弹。

新错误:Undefined class constant 'HEADER_CLIENT_IP'

这个主要是config目录下多余的配置文件没有删除,composer安装完成后去加载就报错了,所以删掉就行。

文件名:trustedproxy.php

 

Laravel5.5升级到5.6导致的passport问题:

最终生产项目还是考虑升级了,按照文档升级的结果遇到passport验证一直出问题,最后发现,最新的passport是7.0版本,但是升级文档要求改到5.0这样导致了升级后不可用。

我的解决方案是:

1,从json文件把passport去掉,重新install。

2,然后正常引入安装passport。

3,清理下缓存,恢复正常。

你可能感兴趣的:(日积月累)