4

を作成しPaypalBundle、Paypal Merchant -php-sdkを my に追加しcomposer.jsonたところ、vendor\paypal\merchant-php-sdkディレクトリが作成されました。しかし、この SDK は名前空間化されておらず、あまりOOP. これらのファイルにアクセスする最善の方法は何ですか?

  • 使用する必要がありますrequireか?
  • 私は何かをする必要がありautoloadingますか?

同様のもので何が行われたかを調べましたAmazonAPIが、Amazonコードは名前空間が定義されているなど、よりOOPに適しています.

ステップ 1: Composer.json の「リポジトリ」構成

{
    "type": "package",
    "package": {
        "version": "master",
        "name": "paypal/merchant-php-sdk",
        "source": {
            "url": "https://github.com/paypal/merchant-php-sdk.git",
            "type": "git",
            "reference": "master"
        }
    }
}
4

3 に答える 3

2

Composers Classmap Loading を使用できます。

{
    "autoload": {
        "classmap": ["src/", "lib/", "Something.php"]
    }
}

また

すべてのリクエストで特定のファイルを明示的に要求する場合は、ファイルの自動読み込みメカニズムを使用できます。

{
    "autoload": {
        "files": ["src/MyLibrary/functions.php"]
    }
}
于 2012-11-27T17:06:22.100 に答える
0

SDK が Packagist にあった場合、パッケージの作成者はcomposer.jsonファイルでどのファイルを含めるかを定義しているはずです。Composer は、それらのファイルを手動でインクルードします。それらについては、グローバル名前空間からアクセスできます。

<?php
namespace Path\To\Controllers;

class PaymentsController
{
    public function processAction()
    {
        $paypal = new \PayPal();

        // code...
    }
}
于 2012-11-27T16:38:20.567 に答える