我正在尝试实现用于编码密码的服务,但它似乎不起作用,因为我收到“您已请求不存在的服务 user_service ”错误。
这是我的代码:
供应商/BundleNameBundle/Resources/config/services.yml
services:
user_service:
class: Morescreens\VideomanagerBundle\Service\UserService
arguments: ['@security.encoder_factory']
应用程序/配置/config.yml
imports:
- { resource: "@morescreensVideomanagerBundle/Resources/config/services.yml" }
我的服务代码
class UserService {
/**
* @var EncoderFactoryInterface
*/
private $encoderFactory;
public function __construct(EncoderFactoryInterface $encoderFactory)
{
$this->encoderFactory=$encoderFactory;
}
public function setEncodedPassword(User $user)
{
$encoder=$this->encoderFactory->getEncoder($user);
$password=$encoder->encodePassword($user->getPassword(),$user->getSalt());
$user->setPassword($password);
}
}
矿井控制器内部:
$user=new User();
$user->setPassword('password');
$this->get('user_service')->setEncodedPassword($user);
编辑:
我手动删除了缓存文件夹,我的服务开始工作。