2

我正在尝试实现我自己的 userBundle,并且我从 FOSUSerBunle 获得了一些想法。当我看到代码时,我注意到他首先创建了 UserInterface,然后在用户实体上实现了该接口。

我想知道 userInterface 有什么用,为什么不能直接做 UserClass

4

2 回答 2

3

接口是一个面向对象的编程概念。在 PHP 中,它声明(而不是定义)一组公共方法。任何实现接口的类都需要定义接口中声明的方法。您可以将接口视为合同。

使用接口允许您“编程到接口”。

在 FOSUserBundle 的情况下,UserInterface它旨在用于使您的用户实体实际与捆绑的其余部分一起使用。通过同意 的合同UserInterface,您的用户实体将包含 FOSUserBundle 所需的必要方法。此外,您可能会看到在 FOSUserBundle 中使用了类型提示,它专门指代UserInterface,而不是具体的用户类。

如果您正在滚动自己的用户包,则不需要实现任何接口,因为设计完全取决于您。但是,听起来你在这里重新发明轮子,所以我建议只使用 FOSUserBundle。

于 2012-07-11T12:35:24.550 回答
0

因此,您可以创建自己的实现此接口的用户类。这样您就可以轻松地将您的课程与 FOSUserBundle 集成

于 2012-07-11T08:38:01.080 回答