Laravel Omnipay与Omnipay / Paypal - 未找到类

时间:2014-02-26 19:52:21

标签: php paypal laravel laravel-4 omnipay

我正在尝试将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'找不到“

有什么我忘记了吗? :我

2 个答案:

答案 0 :(得分:4)

我并不熟悉ignited/laravel-omnipay,所以这可能是也可能不是问题,但你可以尝试在这一行上修复大写:

'driver' => 'PayPal_Express',

(请注意,PayPal有两个大写P)。

通常类名在PHP中不区分大小写,但如果您使用的是区分大小写的文件系统,那么composer autoloader将无法找到合适的类。

答案 1 :(得分:0)

尝试使用 composer dumpautoload 加载新类。

更新:

在新软件包提供给您的应用程序的服务期限内思考。找到与应用程序关联的服务的位置。它通常通过ServiceProviders类完成。如果没有错误,那么应该很容易,遵循简单的业务规则,看看提供商如何与主应用程序相关。 所以,你有一个实体(提供者)应该与另一个实体进行通信。 这种沟通是通过简单的规则完成的。这是学习Laravel的最佳方式。它有助于从业务规则的角度思考,而不是盯着通常非常抽象的代码。