Call to a member function has() on null の対処
エラーの理由
関数の呼び出し元がnullだから関数を呼び出せないから
実際のエラー時のコード
$session = $request->getSession(); if ( !$session->has('_security_admin') && file_exists($maintenanceFile) ) { $pathInfo = \rawurldecode($request->getPathInfo()); }
リクエストからセッションを取得して、変数sessionに格納してます。 if文で$sessionにsecurity_adminが入っていなかったら(!で否定にしているので)通過するように設定しています。 security_adminの値が入っているか入っていないかのhas()関数は、その手前でリクエストからsessionで取得していた場合に利用出来ます。 なのでそもそもリクエストがない場合に、今回のようにエラーが返ってきます。
対処法
少し追記するだけで回避できます。 下記のようにif文の条件に$session !== nullを追加するだけです。 こうすることで、もしnullの場合はこの時点で弾かれるので、sessionからhas()があるのかないのか読まれないのでエラーになりません。
if ( $session !== null && !$session->has('_security_admin') && file_exists($maintenanceFile) ) { $pathInfo = \rawurldecode($request->getPathInfo()); }
他にもif文の前にif(!is_null($session))で回避する方法もありますが、構文的に上記の方がスッキリして良いかと思います。
以上です。
Have a nice development day!!