0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

miriwoお一人様Advent Calendar 2024

Day 17

PHPStan Larastan 警告対象のファイルに誤りが無いのにエラーが出る

Posted at

概要

LaravelにLarastanを導入しチェックレベル2でコードをチェックした。
警告が出たが、対象のファイルに問題は見当たらなくてちょっと詰まったので簡単にまとめる。

警告内容

 ------ -------------------------------------------------------------------------------------------------------- 
  Line   Http/Controllers/Settings/IndexController.php                                                       
 ------ -------------------------------------------------------------------------------------------------------- 
  7      Class App\Http\Controllers\Controller referenced with incorrect case: app\Http\Controllers\Controller.  
         🪪  class.nameCase                                                                                      
  12     Class App\Http\Controllers\Controller referenced with incorrect case: app\Http\Controllers\Controller.  
         🪪  class.nameCase                                                                                      
 ------ --------------------------------------------------------------------------------------------------------

警告対象のファイル

とりあえず警告の対象のファイルを見てみる。

use App\Http\Controllers\Controller;は特段問題ないように思える。

app/Http/Controllers/Settings/IndexController.php
<?php

declare(strict_types=1);

namespace App\Http\Controllers\Settings;

use App\Http\Controllers\Controller;
use Illuminate\Contracts\View\View;

class IndexController extends Controller
{
    /**
     * Handle the incoming request.
     */
    public function __invoke(): View
    {
        return view('settings.index');
    }
}

原因

継承元のapp/Http/Controllers/Controller.phpの名前空間の記載に問題があった。

app/Http/Controllers/Controller.php
<?php

declare(strict_types=1);

namespace app\Http\Controllers;

abstract class Controller
{
    //
}

確かに名前空間の指定でappの頭文字が小文字のaになっている。本来はAになることが正しい。

解放方法

継承元のapp/Http/Controllers/Controller.phpの名前空間の指定を下記の様に指定したらエラーは解消された。

app/Http/Controllers/Controller.php
<?php

declare(strict_types=1);

namespace App\Http\Controllers;

abstract class Controller
{
    //
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?