Omnipay / PayPalを持つLaravel Omnipay - クラスが見つかりません
質問
Omnipay Paypalパッケージを私のLaravel 4.1アプリケーションと統合しようとしています。Omnipayによって提案されているように、 laravel-omnipayパッケージをインストールし、それを設定する。
Laravel-OmnipayパッケージをProvidersアレイとApp.phpファイルの両方に追加しました。設定ファイルも作成されました。
my composer.jsonには、次の要件があります。
"ignited/laravel-omnipay": "1.*",
"omnipay/paypal": "~2.0"
.
と着火/ 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' not found "
私が忘れているものはありますか?:i
解決
具体的には、ignited/laravel-omnipay
に精通していませんので、これは問題にならない場合がありますが、この行で大文字の影響を修正することを試みるかもしれません:
'driver' => 'PayPal_Express',
.
(PayPalには2つの資本Pがあります)。
一般的なクラス名はPHPで大文字と小文字が区別されませんが、大文字と小文字を区別するファイルシステムを使用している場合は、Composer AutoLoaderが正しいクラスを見つけることができません。
他のヒント
新しいクラスをロードするには、 composer dumpautoLoad を試してください。
更新:
その新しいパッケージによってあなたのアプリケーションに提供されるサービスターミネートで考えてください。アプリケーションにリンクされたサービスはどこにあるのかを見つけます。通常ServiceProvidersクラスを通して行われます。バグがない場合は、メインアプリケーションに関連するプロバイダとは、簡単なビジネスルールに従ってください。 そのため、別のエンティティ(プロバイダ)がある場合は、あるエンティティ(プロバイダ)があります。 その通信は簡単な規則を通して行われます。これはLaravelを学ぶための最良の方法です。それは、非常に抽象的なコードを見つめるために、ビジネスルールの用語で考えるのに役立ちます。