php - Laravel:我们可以在以前的版本中使用最新版本的服务吗

标签 php laravel stripe-payments

我的应用程序是在 Laravel 5.1 中开发的。我可以使用 Billing module 吗? laravel 来自 5.2 ?我在 5.2 中看到计费模块非常不同,需要不同的 namespace 和接口(interface)。我尝试通过将 cashier package 升级到 ~6.0 来使用,但它产生了错误

Error Output: PHP Fatal error:  Interface 'Laravel\Cashier\Contracts\Billable' not found in /project/app/Models/User.php on line 8 

Laravel 5.1cashier 4.0 中, 这就是我的用户模型具有以下 namespace 的方式

 <?php namespace App\Models;

  use Cartalyst\Sentinel\Users\EloquentUser;
  use Laravel\Cashier\Billable;
  use Laravel\Cashier\Contracts\Billable as BillableContract;


 class User extends EloquentUser implements BillableContract
 {
    use Billable;
   /////
 }

但是当我将 cashier 升级到 ~6.0 时,它产生了上述错误。

我们可以在 5.1 中使用 Laravel 5.2 的 cashier 包吗,如果可以,我该怎么做?

最佳答案

根据图书馆的 composer.json,Cashier 6.0 的依赖项不会超过 Laravel 5.1 可以提供的要求。文件,所以你应该能够在 Laravel 5.1 中使用 Cashier 6.0。这里的解决方案看起来很简单,把有contract的那一行去掉即可:

use Laravel\Cashier\Contracts\Billable as BillableContract;

并且仅使用 Billable 特征:

use Laravel\Cashier\Billable;

那是因为 Cashier 5.0 有 Billable 接口(interface) defined in Contracts , 版本 6.0 removed that .还有 Cashier Documentation for Laravel 5.1 展示了如何通过添加您当前正在使用的两个 use 语句来使用 Cashier 5 设置模型,而 Cashier Documentation对于使用 Cashier 6 的 Laravel 5.2,仅显示您需要使用 Billable 特性。


Cashier 4 和 6 依赖项之间还有一个显着差异:

因此请确保该要求也得到满足。

关于php - Laravel:我们可以在以前的版本中使用最新版本的服务吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34631792/

相关文章:

php - 将用户重定向到登录时特定于其帐户的页面

mysql - JoinClause.php 第 79 行中的 InvalidArgumentException : Not enough arguments for the on clause

php - 如何在 Lumen 中将 css 文件链接到我的 html

ios - 是否仅为现有客户构建的应用程序不需要使用 IAP?

stripe-payments - 超过 7 天的 Stripe margin

php - 简单查询未运行

php - codeigniter 中的 APPPATH 是什么

php - 使用非键列从sql表中查询数据

Laravel 混合和编号 Assets ,而不是哈希?

javascript - 如何将 Stripe 支付库与 HTML/JS 中单选按钮选择的多个按钮结合起来