2014-10-03 2 views
3

На основании этого ответа: Omnipay how to add new gatewayOmniPay добавить новый шлюз

Я пытаюсь добавить новый шлюз для OmniPay.

Моя структура папок:

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 

Я не фигура почему класс не загружен. Пожалуйста, помогите, спасибо.

ответ

1

Я только что создал новый шлюз сам, я считаю, ваша проблема заключается в том, что вы делаете что-то вроде

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

И это должно быть

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

Вы устанавливаете пространство имен новая библиотека для lib/omnypay, но на самом деле это должно быть lib/omnypay/src

+0

Вы можете увидеть мою реализацию здесь https://github.com/Mihai-P/tez-omnipay-eway. Вы должны создать пакет github и packagist с вашей разработкой, чтобы каждый мог извлечь из этого выгоду. –

Смежные вопросы