要创建一个灵活的控制器并使用Laravel的IoC,可以执行以下操作(比如表User
)
interface UserInterface
class EloquentUserRepository implements UserInterface
App::bind
interface
到implement
但是,您还可以创建一个扩展User
的模型Eloquent
,然后您的EloquentUserRepository
基本上会调用此模型。除了提供的Eloquent函数之外,如果在User
中创建自定义函数或关系,则需要在EloquentUserRepository
中创建一个只返回该函数的函数。这不重复吗?有没有办法直接让模型实现接口?
答案 0 :(得分:0)
不是那么重复吗?
是。除非您有特殊需求,否则您可能会面临超过工程设计的风险。或者过度抽象'你的申请。
如果您不打算更换用户'未来的任何事情 - 没有必要这么做。仅仅因为你"可以"做某事并不意味着你应该"。
你可以拥有UserInterface - 然后你的模型
class User extends Eloquent implements UserInterface
然后完全跳过存储库。