Ich habe heute von L5.5 auf L5.6 aktualisiert (dabei werden Symfony-Komponenten auf v4 aktualisiert). Außerdem habe ich fideloper/proxy
package auf 4.0 als offiziellen Laravel 5.6 Upgrade Guide aktualisiert.
Danach bekomme ich diesen Fehler: 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
Symfony 4's Symfony\Component\HttpFoundation\Request::setTrustedProxies()
erwartet tatsächlich ein Integer (Bitmaske) als zweites Argument:
und fideloper/proxy
4.0 gibt tatsächlich ein Array anstelle einer Ganzzahl in diese Funktion:
und
%Vor% Also kann ich nicht verstehen, ob das ein Fehler in fideloper/proxy
ist oder ich gerade etwas verpasse?
Wie in dem Upgrade-Leitfaden angegeben, müssen Sie die Eigenschaft $ headers in App \ Http \ festlegen. Middleware \ TrustProxies zu einer Bit-Eigenschaft.
Die Konstanten sind in Symfony \ Component \ HttpFoundation \ Request definiert.
%Vor%Im Upgrade-Handbuch wird HEADER_X_FORWARDED_ALL verwendet, Sie können jedoch eine Kombination der Bitwerte verwenden.
Nach einigen Untersuchungen (Winmerge Vergleich mit einer neuen Installation von Laravel 5.6) kommt es auf einen Unterschied in den Dateien app\Http\Middleware\TrustProxies.php
:
Laravel 5.5:
%Vor%Laravel 5.6:
%Vor% Ergo, setzen Sie protected $headers = Request::HEADER_X_FORWARDED_ALL;
gemäß Laravel 5.6 Version
Tags und Links php proxy laravel laravel-5.6