3

この回答に基づいて: Omnipay how to add new gateway

オムニペイの新しいゲートウェイを追加しようとしています。

私のフォルダ構造:

lib/omnipay/newgw/
lib/omnipay/newgw/src/
lib/omnipay/newgw/src/Gateway.php
lib/omnipay/newgw/composer.json

vendor/omnipay/...
...
composer.json

メインの composer.json には次のものがあります。

{
    "require": {
        ...
        "omnipay/omnipay": "dev-master"
        ...
    },
    "autoload": {

        "psr-0": { 
            "": "lib/", 
            "Omnipay\\NewGw\\" : "lib/omnipay"
        }
    }
}

コンポーザーの更新を行います。

gateway.php で:

namespace Omnipay\NewGw;

use Omnipay\Common;
use Omnipay\Common\AbstractGateway;
use Omnipay\NewGw\Message\PurchaseRequest;
use Omnipay\NewGw\Message\RefundRequest;


class Gateway extends AbstractGateway{

}

そして、実行しようとすると:

use Omnipay\Omnipay;

class TestController extends ControllerBase{

 public function index(){
   $gateway = Omnipay::create('NewGw');
 }

}

そのクラスが見つからないと言っています:

Omnipay\Common\Exception\RuntimeException: Class '\Omnipay\NewGw\Gateway' not found

クラスがロードされない理由がわかりません。助けてください、ありがとう。

4

1 に答える 1

1

私は自分で新しいゲートウェイを作成しました。あなたの問題は、あなたが次のようなことをしているという事実だと思います

   "psr-0": { 
            "": "lib/", 
            "Omnipay\\NewGw\\" : "lib/omnipay"
        }

そして、それはあるべきです

"Omnipay\\NewGw\\" : "lib/omnipay/src"

新しいライブラリの名前空間を lib/omnypay に設定していますが、実際には lib/omnypay/src である必要があります

于 2014-10-29T00:12:03.453 に答える