4

Omnipay Paypal パッケージを Laravel 4.1 アプリケーションに統合しようとしています。Omnipay の提案に従って laravel-omnipay パッケージをインストールし、セットアップ方法の指示に従いました。

Laravel の app.php ファイルの providers 配列と aliases 配列の両方に、laravel-omnipay パッケージを追加しました。構成ファイルも作成されています。

私の composer.json には次の要件があります。

"ignited/laravel-omnipay": "1.*",
"omnipay/paypal": "~2.0"

ignited/laravel-omnipay の構成ファイルは次のようになります。

<?php

return array(

    // The default gateway to use
    'default' => 'paypal',

    // Add in each gateway here
    'gateways' => array(
        'paypal' => array(
            'driver' => 'Paypal_Express',
            'options' => array(
                'solutionType' => '',
                'landingPage' => '',
                'headerImageUrl' => ''
            )
        )
    )
);

しかし、私が電話$gateway = Omnipay::gateway('paypal');するとエラーが発生します

クラス '\Omnipay\Paypal\ExpressGateway' が見つかりません"

私が忘れているものはありますか?:私

4

2 に答える 2

5

私は特に詳しくないignited/laravel-omnipayので、これが問題かもしれませんし、そうでないかもしれませんが、この行の大文字を修正してみてください:

'driver' => 'PayPal_Express',

(PayPal には大文字の P が 2 つあることに注意してください)。

通常、PHP ではクラス名の大文字と小文字は区別されませんが、大文字と小文字を区別するファイルシステムを使用している場合、composer オートローダーは正しいクラスを見つけることができません。

于 2014-03-05T23:54:55.570 に答える
0

composer dumpautoloadを試して、新しいクラスをロードしてください。

アップデート:

その新しいパッケージによってアプリケーションに提供されるサービス条件を考えてみてください。そのサービスがアプリケーションにリンクされている場所を見つけます。これは通常、ServiceProviders クラスを通じて行われます。バグがなければ、簡単なビジネス ルールに従って、プロバイダーがメイン アプリにどのように関連しているかを確認するのは簡単なはずです。したがって、別のエンティティと通信する必要があるエンティティ (プロバイダー) が 1 つあります。そのコミュニケーションは、単純なルールによって行われます。これは、Laravel を学ぶための最良の方法です。非常に抽象的であることが多いコードをじっと見つめるのではなく、ビジネス ルールの用語で考えることが役立ちます。

于 2014-02-26T20:26:29.800 に答える