【问题标题】:What are exactly Laravel Contracts?Laravel 合约到底是什么?
【发布时间】:2017-01-03 23:16:24
【问题描述】:

我是 Laravel 的新手,我想知道一些关于它的调用 Contracts 的功能。
(如果我的问题不合适,请告诉我原因,不要只是投反对票)。
因此,根据我在 Laravel 文档中的红色和在 Laracasts 视频中所说的内容,我了解到合同只是类实现的接口。
那么它有什么用呢?如果我或其他人将实现这些接口都需要通过接口,然后我根本不需要更改我的代码?
这就是 Laravel 将其实现用作合同的原因吗? 我也想知道,为了实现我必须将实现绑定到合同?

【问题讨论】:

标签: laravel laravel-5


【解决方案1】:

是的,我认为您的理解大部分是正确的。我将尝试用一个例子来解释。假设您有一个 PackageDeliveryServiceContract,它有一些方法,例如 trackPackagegetShippingCost

您创建一个FedexDeliveryService 以遵守合同并实施这些方法。

在您的控制器中,您只需注入 PackageDeliveryServiceContract 并立即开始使用它。 (你熟悉 laravel 的依赖注入吗?)。

假设稍后您决定不再使用 Fedex 运送并改用 UPS。然后您可以创建同样遵守该合同的UPSDeliveryService

现在,您只需将绑定从 FedexDeliveryService 更改为 UPSDeliveryService,您无需对控制器代码进行任何更改。

通常,您将在服务提供者(例如 app/Providers/AppServiceProvider.php)内创建合约和实现之间的绑定

【讨论】:

    猜你喜欢
    • 2011-12-03
    • 1970-01-01
    • 1970-01-01
    • 2013-02-06
    • 2013-05-05
    • 2010-11-19
    • 2012-06-16
    • 2011-04-02
    • 2016-04-13
    相关资源
    最近更新 更多