Я работаю над плагином для 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
Что я делаю не так? Как правильно зарегистрировать провайдера?
если вы хотите использовать пакеты 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
Других решений пока нет …