首页 文章

在OctoberCMS插件中使用Omnipay

提问于
浏览
2

我正在为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致命错误:第157行/var/www/html/alomicuba/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php中找不到类'Barryvdh \ Omnipay \ ServiceProvider'PHP堆栈跟踪:PHP 1 . ()/ 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.照亮\ 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 回答

  • 2

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

    Register the plugins Service Provider 在Plugin.php的boot()方法中,添加

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

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

    Register any Alias's 在任何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

相关问题