[英]Stripe Payments in PHP With Namespaces
我构建了一个使用名称空间和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;
您可以使用\\
来指定您所指定的类名是FQNS,例如:
<?php
use \Stripe, \Stripe_Account;
$stripe = new Stripe();
$stripe_account = new Stripe_Account();
或没有use
声明:
<?php
$stripe = new \Stripe();
$stripe_account = new \Stripe_Account();
使用作曲家是最简单的方法(我保证!)
只需安装composer ,然后安装stripe即可 。 安装完这些文件后,只需浏览到项目的文件夹并运行composer install
。 这将安装所需的依赖项,并将composer放在一个名为vendor的文件夹中。
然后,您只需要autoload.php文件即可加载条带,而无需使用命名空间。 这是我从这里获取的完整示例块。
<?php
require_once('vendor/autoload.php');
$stripe = array(
"secret_key" => "sk_test_BQokikJOvBiI2HlWgH4olfQ2",
"publishable_key" => "pk_test_6pRNASCoBOKtIshFeQd4XMUh"
);
\Stripe\Stripe::setApiKey($stripe['secret_key']);
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.