我在App \ Libraries有一个非laravel库,我有文件providers.php
<?php
return [
'slsp'=> [
'SLSP_SPOROPAY_PU_PREDCISLO'=> '000000',
'SLSP_SPOROPAY_PU_CISLO'=> '0013662162',
'SLSP_SPOROPAY_PU_KBANKY'=> '0900',
'SLSP_SPOROPAY_SHAREDSECRET'=> 'Z3qY08EpvLlAAoMZdnyUdQ==',
'SLSP_SPOROPAY_REDIRECTURLBASE'=> 'http://epaymentsimulator.monogram.sk/SLSP_SporoPay.aspx',
],
'paypal'=>[
'PAYPAL_USERNAME'=>'xxx',
'PAYPAL_PASSWORD'=>'xxx',
'PAYPAL_SIGNATURE'=>'xxxx',
'PAYPAL_CONNECTIONTIMEOUT'=>'3333',
'PAYPAL_RETRY'=>'true',
'PAYPAL_OGENABLED'=>'true',
'PAYPAL_FILENAME'=>'foo/bar',
'PAYPAL_LOGLEVEL'=>'5',
]
];
并且我希望得到并将此值设置为
Config::get('providers.paypal.username');
Config::set('providers.paypal.username', 'someName');
当我想使用它时我必须做什么?
谢谢
答案 0 :(得分:1)
更好的方法是创建一个laravel提供程序并在应用程序提供程序中注册提供程序。
例如:
在你的情况下
php artisan make:provider EPaymentProvider
它将在EPaymentProvider.php
目录中创建提供程序文件providers
。
现在像这样修改您的Library/EPayment.php
文件
<?php
class EPayment {
private static $_instance = 'null';
public $credentials = [
'PAYPAL_USERNAME'=>'xxx',
'PAYPAL_PASSWORD'=>'xxx',
'PAYPAL_SIGNATURE'=>'xxxx',
'PAYPAL_CONNECTIONTIMEOUT'=>'3333',
'PAYPAL_RETRY'=>'true',
'PAYPAL_OGENABLED'=>'true',
'PAYPAL_FILENAME'=>'foo/bar',
'PAYPAL_LOGLEVEL'=>'5',
];
/**
* @param array $array
*/
public function setPayPalCredential(array $array){
$this->credentials = $array;
}
/**
* @return EPayment|string
*/
public static function PayPal(){
if(self::$_instance === 'null')
self::$_instance = new self;
return self::$_instance;
}
/**
* @param $key
* @return mixed
*/
public function getPayPalCredential($key){
return $this->credentials[$key];
}
}
并register
方法EPaymentProvider.php
添加Libraries/EPayment.php
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class HelperServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
require base_path().'/app/Libraries/EPayment.php';
}
}
现在在EPaymentProvider
提供商数组
config/app.php
现在你可以使用
Epayment::PayPal()->setPayPalCredential(['PAYPAL_USERNAME' => 'New Username']);
和
Epayment::PayPal()->getPayPalCredential('PAYPAL_USERNAME')
让我知道它是否有效。
答案 1 :(得分:0)
首先,该文件位于config文件夹之外,因此无法设置或使用Config外观。要仍然使用提供程序文件将其移动到config目录,一切都将适合您。
答案 2 :(得分:0)
要使用点表示法检索config
值,您可以在providers.php
中执行以下操作:
$paypalArray = ['paypal' =>
[
'PAYPAL_USERNAME'=>'xxx',
'PAYPAL_PASSWORD'=>'xxx',
'PAYPAL_SIGNATURE'=>'xxxx',
'PAYPAL_CONNECTIONTIMEOUT'=>'3333',
'PAYPAL_RETRY'=>'true',
'PAYPAL_OGENABLED'=>'true',
'PAYPAL_FILENAME'=>'foo/bar',
'PAYPAL_LOGLEVEL'=>'5']
];
config($paypalArray);
现在您可以检索config('paypal.PAYPAL_USERNAME')
等值。