Symfony项目中Psalm误报PossiblyUnusedMethod错误的解决
问题:Psalm 提示
PossiblyUnusedMethod 但方法已被内部调用 我在开发Symfony项目时用Psalm做静态代码检测,遇到一个困惑的错误:
ERROR: PossiblyUnusedMethod - src/Repository/PlaylistRepository.php:116:21 - Cannot find any calls to method App\Repository\PlaylistRepository::getPlaylistsFor public function getPlaylistsFor( ?User $user = null ) : array
明明我已经在调用这个方法了,相关代码如下:
控制器代码(src/Controller/PlaylistController.php)
#[ Route( '/playlists', name: 'playlists-home' ) ] public function playlists( EntityManagerInterface $em, PlaylistRepository $playlistRepository, ) : RedirectResponse|Response { $params = [ 'controller_name' => self::class, 'playlists' => $playlistRepository->getPlaylistsForUserAuthed(), ]; return $this->render( 'playlists/home.html.twig', $params ); }
仓库内部调用代码(src/Repository/PlaylistRepository.php)
public function getPlaylistsForUserAuthed() : array { $em = SpotifyTools::getEntityManager(); /** @var UserRepository $userRepository */ $userRepository = $em->getRepository( User::class ); return $this->getPlaylistsFor( $userRepository->getUserAuthed() ); }
解决方案
因为getPlaylistsFor方法仅在仓库类内部被调用,将它的可见性从public改为private或者protected就能消除这个错误。
内容的提问来源于stack exchange,提问作者Xem
相关产品推荐
相关产品推荐

