首页 > 解决方案 > Laravel Facade 获取属性

问题描述

我正在尝试用 Laravel 中的外观包装 Stripe PHP 库。我知道这已经存在,但不幸的是它使用了已弃用的 Stripe API 并且行为异常。

所以我创建了一个Facade和一个ServiceProvider并更新了配置以反映这一点。

这按预期工作。当我尝试在我的Stripe外观/别名上调用方法时,它会重定向到StripeClient

>>> Stripe::foo()
PHP Error:  Call to undefined method Stripe/StripeClient::foo() in ...

然而,Stripe api 使用类常量,如下所示:

$stripe = new StripeClient(...);
$stripe->products->all();

但是,当我尝试从 Facade 获取这些属性时,它并没有重定向到StripeClient,而是尝试获取StripeFacade 本身的类常量。

>>> Stripe::products->all()
PHP Fatal error:  Class constant 'App/Facades/Stripe::products' not found ...

那么我该怎么做呢?

标签: phplaravel

解决方案


推荐阅读