🐾

LaraStanをインストールしたてのLaravel10で実行してみる

2024/12/29に公開

LaraStanをインストールしたてのLaravel10で実行してみる

Railsの仕事でコード静的解析を行なって、コードのレビューコストを下げていたので、とりあえず自分の得意分野のLaravelでもコード静的解析をやってみる。

LaraStan

調べてすぐに以下のパッケージを発見したが、廃止されたみたいです。
https://packagist.org/packages/nunomaduro/larastan

以下、パッケージをインストールしました
https://packagist.org/packages/larastan/larastan

phpstan.neonの作成

プロジェクト配下にphpstan.neonを作成してください。

includes:
    - vendor/larastan/larastan/extension.neon
    - vendor/nesbot/carbon/extension.neon

parameters:

    paths:
        - app/

    # Level 10 is the highest level
    level: 1

#    ignoreErrors:
#        - '#PHPDoc tag @var#'
#
#    excludePaths:
#        - ./*/*/FileToBeExcluded.php

Levelが1から10段階あります。今回はテストで1段階目にしました。

コード静的解析を実行してみた

./vendor/bin/phpstan analyse --memory-limit=2G
Note: Using configuration file /Users/******/******/******/******/phpstan.neon.
 24/24 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%

 ------ ---------------------------------------------------------------------------------------------------------- 
  Line   Console/Kernel.php                                                                                        
 ------ ---------------------------------------------------------------------------------------------------------- 
  30     Called 'env' outside of the config directory which returns null when the config is cached, use 'config'.  
         🪪  larastan.noEnvCallsOutsideOfConfig                                                                    
 ------ ---------------------------------------------------------------------------------------------------------- 

 ------ ---------------------------------------------------------------------------------------------------------- 
  Line   Http/Controllers/InfoUserController.php                                                                   
 ------ ---------------------------------------------------------------------------------------------------------- 
  31     Called 'env' outside of the config directory which returns null when the config is cached, use 'config'.  
         🪪  larastan.noEnvCallsOutsideOfConfig                                                                    
  48     Variable $attribute might not be defined.                                                                 
         🪪  variable.undefined                                                                                    
 ------ ---------------------------------------------------------------------------------------------------------- 

 ------ ---------------------------------------------------------------------------------------------------------- 
  Line   Http/Controllers/ResetController.php                                                                      
 ------ ---------------------------------------------------------------------------------------------------------- 
  19     Called 'env' outside of the config directory which returns null when the config is cached, use 'config'.  
         🪪  larastan.noEnvCallsOutsideOfConfig                                                                    
 ------ ---------------------------------------------------------------------------------------------------------- 

修正方法をChatGPTに聞くといいでしょう

以下の状態になればOKです。

./vendor/bin/phpstan analyse --memory-limit=2G
Note: Using configuration file /Users/******/******/******/******/phpstan.neon.
 24/24 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
                         
 [OK] No errors

Discussion