【问题标题】:Using Omnipay in OctoberCMS plugin在 OctoberCMS 插件中使用 Omnipay
【发布时间】:2014-11-29 02:30:26
【问题描述】:

我正在为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。 Illuminate\Foundation\ProviderRepository->load() /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

我做错了什么?注册 Provider 的正确方法是什么?

【问题讨论】:

    标签: php laravel laravel-4 omnipay octobercms


    【解决方案1】:

    如果你想在插件中使用 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

    【讨论】:

      猜你喜欢
      • 2018-07-31
      • 1970-01-01
      • 2018-07-13
      • 2021-01-13
      • 2016-08-25
      • 2019-08-24
      • 1970-01-01
      • 2019-04-20
      • 1970-01-01
      相关资源
      最近更新 更多