Laravel - 灵活的控制器和存储库

时间:2014-05-18 02:28:16

标签: laravel repository

要创建一个灵活的控制器并使用Laravel的IoC,可以执行以下操作(比如表User

  1. 创建interface UserInterface
  2. 创建class EloquentUserRepository implements UserInterface
  3. App::bind interfaceimplement
  4. 但是,您还可以创建一个扩展User的模型Eloquent,然后您的EloquentUserRepository基本上会调用此模型。除了提供的Eloquent函数之外,如果在User中创建自定义函数或关系,则需要在EloquentUserRepository中创建一个只返回该函数的函数。这不重复吗?有没有办法直接让模型实现接口?

1 个答案:

答案 0 :(得分:0)

  

不是那么重复吗?

是。除非您有特殊需求,否则您可能会面临超过工程设计的风险。或者过度抽象'你的申请。

如果您不打算更换用户'未来的任何事情 - 没有必要这么做。仅仅因为你"可以"做某事并不意味着你应该"。

你可以拥有UserInterface - 然后你的模型

class User extends Eloquent implements UserInterface

然后完全跳过存储库。