在 OctoberCMS 插件中使用 Omnipay
Posted
技术标签:
【中文标题】在 OctoberCMS 插件中使用 Omnipay【英文标题】:Using Omnipay in OctoberCMS plugin 【发布时间】:2014-11-29 02:30:26 【问题描述】:我正在为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。 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 的正确方法是什么?
【问题讨论】:
【参考方案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
【讨论】:
以上是关于在 OctoberCMS 插件中使用 Omnipay的主要内容,如果未能解决你的问题,请参考以下文章
如何在 octobercms 中过滤具有多个类别的博客文章?
OctoberCMS:如何在 Rainlab.User 插件中通过电子邮件设置用户帐户激活?