注册事件不在fos用户版本1.3.x中

时间:2014-08-12 16:27:29

标签: events fosuserbundle symfony-2.3

我正在尝试为每个新注册用户执行多项操作,因此我首先想到的是 evnets 。不幸的是,我发现版本1.3.x不存在注册事件(那里没有任何名为events的文件夹)。 这是主版本:https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/FOSUserEvents.php

我应该做的最简单的事情是什么?

1 个答案:

答案 0 :(得分:1)

升级到2.0版本不是我假设的选项吗?我正在考虑同样的问题,因为我不想升级,因为SonataAdmin尚未准备好它:https://github.com/sonata-project/SonataUserBundle/issues/322

由于1.3.x版本没有事件,根据您的需要,您可以只是扩展控制器并覆盖您需要更改的内容,或者如果您想要更多地控制表单,您可以创建formType或处理程序并将它们注入FOSUserBundle:

namespace MyVendor\MyBundle\Form\Handler;

use FOS\UserBundle\Form\Handler\RegistrationFormHandler as BaseRegistrationFormHandler;

class RegistrationFormHandler extends BaseRegistrationFormHandler
{
    protected function createUser()
{
    $user = $this->userManager->createUser();
    $user->addRole("ROLE_USER_PRO");
    $user->setUsername("generate a value here");
    $user->setPlainPassword("also a generated value");
    return $user;
}

然后告诉FOSUser使用您的特殊处理程序(您必须将上述声明为新服务):

fos_user:
    registration:
        form:
            handler: mybundle.registration.form.handler