正如标题所说。我正在讨论这里使用的UserInterface。我知道,这不是Symfony2特有的,但它似乎对我来说最好,因为人们使用它,会更容易看到我的意思。
我正在创建一个UserBundle,如FOS / UserBundle文档中所述。现在我用他们的二传手和吸气器添加了一些自己的功能。到目前为止,一切都按预期工作。
现在是我的思考部分。我重写了RegistrationFormHandler,我想在其中设置$ user的一些属性。说实话,代码有效。我唯一关心的是UserInterface,因为(在这个例子中)函数setCreatedAt()没有在UserInterface中的任何地方定义。
我发现了它,因为我的IDE没有向我显示该功能的完成情况。这是我需要照顾的事吗?如果是这样......该怎么办?或者是我可以忽略的东西?
如果我在这里使用另一个UserInterface,它会向我抛出一些错误,即Succes声明不兼容。
namespace Nexo\UserBundle\Form\Handler;
use FOS\UserBundle\Form\Handler\RegistrationFormHandler as BaseHandler;
use FOS\UserBundle\Model\UserInterface;
use Symfony\Component\Validator\Constraints\DateTime;
class RegistrationFormHandler extends BaseHandler
{
protected function onSuccess(UserInterface $user, $confirmation)
{
$user->setCreatedAt( new \DateTime() );
parent::onSuccess($user, $confirmation);
}
}
如果我不能更好地澄清自己,我很抱歉。我仍然希望这一切都有道理,有人可以帮助我。