我正在使用symfony 2.8并在我的本地计算机上做了一个作曲家udate并开始出现这种错误。
完全错误(对于邮件程序和用户管理器都会发生错误,这种情况正常运行一年......)
[Symfony\Component\DependencyInjection\Exception\InvalidArgumentException]
Unable to replace alias "fos_user.user_manager" with actual definition "my.custom_user_manager".
[Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException]
You have requested a non-existent service "my.custom_user_manager".
config.yml
fos_user:
service:
user_manager: my.custom_user_manager
mailer: my.custom_user_mailer # fos_user.mailer.twig
对于具有覆盖的自定义用户管理器也会发生这种情况。我的FOS用户包版本是v2.0.0-alpha3,并且自先前版本以来没有改变。
我的服务定义用于/并且看起来正确。
这里有什么领先?
服务定义:
// bunch of "use" here...
/**
* @DI\Service("my.custom_user_manager", public=true)
*/
class CoreUserManager extends BaseUserManager
{
/**
* @DI\InjectParams({
* "encoderFactory" = @DI\Inject("security.encoder_factory"),
* "usernameCanonicalizer" = @DI\Inject("fos_user.util.username_canonicalizer"),
* "emailCanonicalizer" = @DI\Inject("fos_user.util.email_canonicalizer"),
* "em" = @DI\Inject("doctrine.orm.entity_manager"),
* })
*/
public function __construct(
EncoderFactoryInterface $encoderFactory,
CanonicalizerInterface $usernameCanonicalizer,
CanonicalizerInterface $emailCanonicalizer,
EntityManager $em
)
{
$class = 'Medical\CoreBundle\Entity\User';
parent::__construct($encoderFactory, $usernameCanonicalizer, $emailCanonicalizer, $em, $class);
}
邮件
// bunch of proper "use"... here
/**
* Extends FOS mailer to send your own emails and add methods
* @DI\Service("my.custom_user_mailer", public=false)
*/
class MedicalUserMailer extends BaseMailer implements MailerInterface
{
/**
* @todo To move into settings and inject via DI
* $from = $this->getParameter('medical.core.emails')['from']; LIKE in AdminController
*/
private $from = array('support@360medics.fr' => '360 medics');
/**
* @DI\InjectParams({
* "mailer"= @DI\Inject("mailer"),
* "router"= @DI\Inject("router"),
* "templating"= @DI\Inject("templating"),
* "config"= @DI\Inject("%medical.core.emails%")
* })
*/
public function __construct(
\Swift_Mailer $mailer, UrlGeneratorInterface $router, EngineInterface $templating, array $config
)
{
parent::__construct($mailer, $router, $templating, array());
// $this->mailer = $mailer;
// $this->router = $router;
// $this->templating = $templating;
$this->config = $config;
}