我正在为OctoberCMS开发一个插件,并将使用Omnipay。我做了一项研究,发现了一些将Omnipay库和Laravel集成为ignited/omnipay和barryvdh/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
我做错了什么?注册提供者的正确方法是什么?
答案 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