在OctoberCMS插件中使用Omnipay

时间:2014-10-04 02:18:39

标签: php laravel laravel-4 omnipay octobercms

我正在为OctoberCMS开发一个插件,并将使用Omnipay。我做了一项研究,发现了一些将Omnipay库和Laravel集成为ignited/omnipaybarryvdh/laravel-omnipay的软件包。我已按照以下步骤尝试了这两个步骤(全部在插件目录中):

  • 创建composer.json文件并添加:

    {
        "name": "BalanceRecharge Plugin",
        "email": "webmaster@root.com",
        "require": {
            #in this case I'm using barryvdh/laravel-omnipay
            "barryvdh/laravel-omnipay": "0.1.*", 
            "omnipay/omnipay": "*"
        }
    }
    
  • 运行composer update以获取更新库和依赖项,一切都很好

  • 'Barryvdh\Omnipay\ServiceProvider'添加到提供商:

    'providers' => array_merge(include(base_path().'/modules/system/providers.php'), array(
    
        // 'Illuminate\Html\HtmlServiceProvider', // Example
    
        'System\ServiceProvider',
        'Barryvdh\Omnipay\ServiceProvider',
    )),
    
  • 然后尝试运行命令php artisan config:publish barryvdh/laravel-omnipay,但收到以下错误:

  

PHP致命错误:找不到类'Barryvdh \ Omnipay \ ServiceProvider'   在   /var/www/html/alomicuba/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php   第157行PHP堆栈跟踪:PHP 1. {main}()   / var / www / html / alomicuba / artisan:0 PHP 2. require_once()   / var / www / html / alomicuba / artisan:30 PHP 3. require()   /var/www/html/alomicuba/bootstrap/start.php:57 PHP 4。   照亮\基金会\ ProviderRepository->负载()   /var/www/html/alomicuba/vendor/laravel/framework/src/Illuminate/Foundation/start.php:210   PHP 5. Illuminate \ Foundation \ ProviderRepository-> compileManifest()   /var/www/html/alomicuba/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php:57   PHP 6. Illuminate \ Foundation \ ProviderRepository-> createProvider()   /var/www/html/alomicuba/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php:121

我做错了什么?注册提供者的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

如果你想在插件中使用laravel包,你必须在plugin.php中注册服务提供者和别名

注册插件服务提供商 在Plugin.php的boot()方法中,添加

\App::register('\Third\Party\ServiceProvider');

这是您自动注册第三方ServiceProvider的方式。

注册任何别名 在任何ServiceProvider行下的Plugin.php的boot()方法中,如果您需要添加别名,可以使用

$alias = \Illuminate\Foundation\AliasLoader::getInstance()->alias('YourAlias', 'Third\Party\Facade');

点击此链接https://github.com/Shahiem/CKeditor-plugin/blob/master/Plugin.php#L53