2014-10-03 6 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{ 

} 

를 그리고 그것을 실행하려고하면

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

내가 그림을 안 :

use Omnipay\Omnipay; 

class TestController extends ControllerBase{ 

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

} 

을이 클래스를 찾을 수 없습니다의 말 클래스가로드되지 않은 이유는 무엇인지 설명합니다. 도와주세요, 고마워요.

답변

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 패키지를 만들어 모두가 그로부터 이익을 얻을 수 있도록해야합니다. –