我正在尝试将Omnipay Paypal软件包与我的Laravel 4.1应用程序集成。我按照Omnipay的建议安装了laravel-omnipay package,并按照如何设置它的说明进行操作。
我已经将laravel-omnipay包添加到了laravel的app.php文件中的providers数组和别名数组中。配置文件也已创建。
我的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');
时,我收到了错误
Class'\ Omnipay \ Paypal \ ExpressGateway'找不到“
有什么我忘记了吗? :我
答案 0 :(得分:4)
我并不熟悉ignited/laravel-omnipay
,所以这可能是也可能不是问题,但你可以尝试在这一行上修复大写:
'driver' => 'PayPal_Express',
(请注意,PayPal有两个大写P)。
通常类名在PHP中不区分大小写,但如果您使用的是区分大小写的文件系统,那么composer autoloader将无法找到合适的类。
答案 1 :(得分:0)
尝试使用 composer dumpautoload 加载新类。
更新:
在新软件包提供给您的应用程序的服务期限内思考。找到与应用程序关联的服务的位置。它通常通过ServiceProviders类完成。如果没有错误,那么应该很容易,遵循简单的业务规则,看看提供商如何与主应用程序相关。 所以,你有一个实体(提供者)应该与另一个实体进行通信。 这种沟通是通过简单的规则完成的。这是学习Laravel的最佳方式。它有助于从业务规则的角度思考,而不是盯着通常非常抽象的代码。