使用 App\Libraries Laravel 中的配置文件
Use config file in App\Libraries Laravel
我在 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');
我想使用它时必须做什么?
谢谢
首先,该文件位于 config 文件夹之外,因此无法使用 Config facade 进行设置或获取。要继续使用提供程序文件,请将其移动到配置目录,一切都会为您服务。
更好的方法是创建一个 laravel 提供程序并在应用程序提供程序中注册该提供程序。
例如:
你的情况
php artisan make:provider EPaymentProvider
它将在 providers
目录中创建一个提供程序文件 EPaymentProvider.php
。
现在像这样修改您的 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];
}
}
并在 EPaymentProvider.php
的 register
方法中添加 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';
}
}
现在在 config/app.php
提供商数组中添加 EPaymentProvider
现在您可以使用
Epayment::PayPal()->setPayPalCredential(['PAYPAL_USERNAME' => 'New Username']);
和
Epayment::PayPal()->getPayPalCredential('PAYPAL_USERNAME')
让我知道它是否有效。
要使用点表示法检索 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')
.
这样的值
我在 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');
我想使用它时必须做什么?
谢谢
首先,该文件位于 config 文件夹之外,因此无法使用 Config facade 进行设置或获取。要继续使用提供程序文件,请将其移动到配置目录,一切都会为您服务。
更好的方法是创建一个 laravel 提供程序并在应用程序提供程序中注册该提供程序。
例如:
你的情况
php artisan make:provider EPaymentProvider
它将在 providers
目录中创建一个提供程序文件 EPaymentProvider.php
。
现在像这样修改您的 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];
}
}
并在 EPaymentProvider.php
的 register
方法中添加 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';
}
}
现在在 config/app.php
提供商数组中添加 EPaymentProvider
现在您可以使用
Epayment::PayPal()->setPayPalCredential(['PAYPAL_USERNAME' => 'New Username']);
和
Epayment::PayPal()->getPayPalCredential('PAYPAL_USERNAME')
让我知道它是否有效。
要使用点表示法检索 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')
.