如何在不在函数参数中声明的情况下使用 UserPasswordEncoderInterface

How can I use UserPasswordEncoderInterface without declaring it in function parameter

如何使用 UserPasswordEncoderInterface 而不必将其声明为函数参数?我想在其他地方使用此方法,因此我不能。

namespace App\Controller;
/.../
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;

class UserController extends AbstractController
{
     public function register(UserPasswordEncoderInterface $passwordEncoder, Request $request)
     {
     //some code here
     }

如果你在你的配置中使用 autowire: true 你可以注入服务。 docs

namespace App\Controller;

use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;

class UserController extends AbstractController
{
    private UserPasswordEncoderInterface $passwordEncoder;

    public function __construct(UserPasswordEncoderInterface $passwordEncoder)
    {
        $this->passwordEncoder = $passwordEncoder;
    }

    public function register(Request $request)
    {
        // use it
        $this->passwordEncoder->encode();
    }
}