Symfony和FOS更新
我正在使用symfony2.8,刚刚在本地机器上做了一个作曲家的udate,开始出现这种错误 完全错误(发生在mailer和user manager身上,他们已经顺利工作了一年…) config.ymlSymfony和FOS更新,symfony,fosuserbundle,Symfony,Fosuserbundle,我正在使用symfony2.8,刚刚在本地机器上做了一个作曲家的udate,开始出现这种错误 完全错误(发生在mailer和user manager身上,他们已经顺利工作了一年…) config.yml fos_user: service: user_manager: my.custom_user_manager mailer: my.custom_user_mailer # fos_user.mailer.twig 对于的自定义用户管理器也会发生这种情
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;
}
你在services.yml中定义了“my.custom\u user\u manager”吗?你能显示
my.custom\u user\u manager
的服务定义和服务类吗?我注意到“my.custom\u user\u manager”中的空格,也许这就是问题所在?是的,所有内容都定义正确,并且在composer更新之前都正常工作(使用JMS DI ExtraBundle很难)。我认为这肯定是JMSDiextranble的错,因为我所有的服务突然都没有定义。。。
// 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;
}