Laravel 模型更改为 API
Laravel Model changing to API
我有一个关于 design/refactoring 现有应用程序的问题。我现有的应用程序在 Laravel 中。我们有像 User 这样的模型,您可以想象它会链接到数据库中的 Users table。
现在我打算将此用户 table 移动到外部数据库,可以通过 API 调用从我的应用程序访问该数据库。
在应用程序的所有不同部分中,都会调用当前用户模型,例如 User::find(Id)。这将不再有效,因为现在用户 table 不再存在于数据库中。
第一个问题: 如何通过更改模型引用来调用 API 而不是 DB table 来完成上述操作。有没有可以利用的设计模式,这样我就不必更改所有应用程序中的所有 User::find。
第二个问题:你如何处理table直接被连接引用的地方。喜欢table.x = User.x
任何 help/guidance 将不胜感激。谢谢
听起来您需要的是一个位于模型之上的图层(可能类似于 Repository Pattern)。通过这种方式,您可以抽象出您的数据访问层(当前为模型),并使其易于交换到另一个实现(例如 API 请求)。在 Laravel 4 中,这比 5 中的工作要多一些,可能需要进行大量重构。
关于你的第二个问题,你的 API 将不得不管理更高级的查询,并为它们提供 endpoint/method。
我有一个关于 design/refactoring 现有应用程序的问题。我现有的应用程序在 Laravel 中。我们有像 User 这样的模型,您可以想象它会链接到数据库中的 Users table。
现在我打算将此用户 table 移动到外部数据库,可以通过 API 调用从我的应用程序访问该数据库。
在应用程序的所有不同部分中,都会调用当前用户模型,例如 User::find(Id)。这将不再有效,因为现在用户 table 不再存在于数据库中。
第一个问题: 如何通过更改模型引用来调用 API 而不是 DB table 来完成上述操作。有没有可以利用的设计模式,这样我就不必更改所有应用程序中的所有 User::find。
第二个问题:你如何处理table直接被连接引用的地方。喜欢table.x = User.x
任何 help/guidance 将不胜感激。谢谢
听起来您需要的是一个位于模型之上的图层(可能类似于 Repository Pattern)。通过这种方式,您可以抽象出您的数据访问层(当前为模型),并使其易于交换到另一个实现(例如 API 请求)。在 Laravel 4 中,这比 5 中的工作要多一些,可能需要进行大量重构。
关于你的第二个问题,你的 API 将不得不管理更高级的查询,并为它们提供 endpoint/method。