簡體   English   中英

帶命名空間的PHP中的條帶化付款

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM