我正在做一个Symfony项目,我开始使用Psalm。几乎一切都很好,因为我一直得到一个我不明白的错误:
ERROR: PossiblyUnusedMethod - src/Repository/PlaylistRepository.php:116:21 - Cannot find any calls to method App\Repository\PlaylistRepository::getPlaylistsFor (see https://psalm.dev/087)
public function getPlaylistsFor( ?User $user = null ) : array
这个函数被声明为PossiblyUnusedMethod
,但我调用它,正如你在下面的代码中看到的:
// 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() );
}
有人能帮我理解一下吗?
解决方案
由于此函数仅在repo中使用,因此通过将方法的可见性从public
更改为private/protected
来清 debugging 误。
1条答案
按热度按时间0pizxfdo1#
错误的积极性可能发生在诗篇中,有时可能很难或不可能修复。
您可以使用@psalm-api来抑制psalm错误:
用于告诉Psalm使用了一个类或方法,即使找不到对它的引用。未使用的问题将被抑制。例如,在框架中,控制器经常被“神奇地”调用,而在代码中没有任何显式引用。您应该用@psalm-api标记这些类。
所以你可以在你的方法上面使用它: