symfony PossiblyUnusedMethod:在存储库中找不到对方法的任何调用

6g8kf2rb  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(162)

我正在做一个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 误。

0pizxfdo

0pizxfdo1#

错误的积极性可能发生在诗篇中,有时可能很难或不可能修复。
您可以使用@psalm-api来抑制psalm错误:

@api, @psalm-api

用于告诉Psalm使用了一个类或方法,即使找不到对它的引用。未使用的问题将被抑制。例如,在框架中,控制器经常被“神奇地”调用,而在代码中没有任何显式引用。您应该用@psalm-api标记这些类。
所以你可以在你的方法上面使用它:

/**
* @psalm-api
*/
public function getPlaylistsFor( ?User $user = null ) : array

相关问题