我构建了一个使用名称空间和PSR-0自动加载的PHP应用程序。在尝试实现Stripe库的过程中,我发现它似乎无法加载类,因为它们没有名称空间。如果我手动包含这些文件,有没有办法不自动加载?
// Get Stripe Library
require_once(App\App::$APP_PATH . "/Extensions/Stripe.php");
// Set Key
Stripe::setApiKey($stripe['secret_key']);
在示例中设置键失败并出现致命错误,因为它认为当前文件的命名空间中存在Stripe
类。
我发现,如果在名称空间声明下面添加一行use Stripe;
,它就可以工作,但在Stripe库中的下一个类上失败。
我真的要添加一个Use Stripe, Stripe_Customer, Stripe_xyz...;
行来让它正确加载文件(有超过25个文件)还是有更好的方法?
[编辑]
在我听到是否有更好的方法之前,我一直这样做:
// Import Non-Namespaced Stripe Library
use Stripe, Stripe_Account, Stripe_ApiConnectionError, Stripe_ApiError, Stripe_ApiRequestor, Stripe_ApiResource, Stripe_AuthenticationError;
use Stripe_Card, Stripe_CardError, Stripe_Charge, Stripe_Coupon, Stripe_Customer, Stripe_Error, Stripe_Event, Stripe_InvalidRequestError;
use Stripe_Invoice, Stripe_InvoiceItem, Stripe_List, Stripe_Object, Stripe_Plan, Stripe_Recipient, Stripe_SingletonApiResource;
use Stripe_Stripe, Stripe_Token, Stripe_Transfer, Stripe_Util;
2条答案
按热度按时间efzxgjgh1#
使用composer是最简单的方法(我保证!)
只需安装composer然后安装stripe,一旦你安装好了,只需浏览到你的项目文件夹并运行
composer install
,这将安装所需的依赖项,并将composer放在一个名为vendor的文件夹中。然后你只需要一个autoload.php文件就可以加载stripe,而不用使用命名空间。这里是一个完整的示例块,我grabbed from here。
mpbci0fu2#
您可以使用
\
来指定您正在指定的类名是完全限定名称空间(FQNS),例如:或不使用
use
语句: