Использование Omnipay в плагине OctoberCMS

Я работаю над плагином для OctoberCMS и будет использовать Omnipay. Я провел исследование и нашел несколько пакетов, которые интегрируют библиотеку Omnipay с Laravel как Ignited / OmniPay а также barryvdh / Laravel-OmniPay. Я попробовал оба из них, выполнив следующие действия (все в каталоге плагинов):

  • Создать composer.json файл и добавьте это:

    {
    "name": "BalanceRecharge Plugin",
    "email": "[email protected]",
    "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
on line 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.
Осветить \ Foundation \ ProviderRepository-> нагрузки ()
/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. Осветить \ Foundation \ ProviderRepository-> createProvider ()
/var/www/html/alomicuba/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php:121

Что я делаю не так? Как правильно зарегистрировать провайдера?

2

Решение

если вы хотите использовать пакеты laravel в плагине, вы должны зарегистрировать поставщика услуг и псевдоним в plugin.php

Зарегистрируйте плагины поставщика услуг
В методе boot () вашего Plugin.php добавьте

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

Таким образом, вы автоматически регистрируете стороннего сервис-провайдера.

Зарегистрировать любой псевдоним
В методе boot () вашего Plugin.php под любой строкой ServiceProvider, если вам необходимо добавить псевдоним, это можно сделать с помощью

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

проверьте эту ссылку https://github.com/Shahiem/CKeditor-plugin/blob/master/Plugin.php#L53

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]