Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在App\Libraries Laravel中使用配置文件_Php_Laravel_Config - Fatal编程技术网

Php 在App\Libraries Laravel中使用配置文件

Php 在App\Libraries Laravel中使用配置文件,php,laravel,config,Php,Laravel,Config,我在App\Libraries中有一个非laravel库,那里有file providers.php <?php return [ 'slsp'=> [ 'SLSP_SPOROPAY_PU_PREDCISLO'=> '000000', 'SLSP_SPOROPAY_PU_CISLO'=> '0013662162', 'SLSP_SPOROPAY_PU_KBANKY'=> '0900',

我在App\Libraries中有一个非laravel库,那里有file 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文件夹之外,因此无法使用config facade进行设置或获取。若要继续使用提供程序文件,请将其移动到config目录,一切都将对您有效。

更好的方法是创建一个laravel提供程序,并在应用程序提供程序中注册该提供程序

例如:

就你而言

php artisan make:provider EPaymentProvider

它将在
providers
目录中创建一个provider文件
EPaymentProvider.php

现在像这样修改
库/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];
    }
}
现在在
config/app.php
Provider数组中添加
EPaymentProvider

现在您可以使用
Epayment::PayPal()->setPayPalCredential(['PayPal_USERNAME'=>'New USERNAME'])

Epayment::PayPal()->getPayPalCredential('PayPal\u用户名')


让我知道它是否有效

要使用点符号检索
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\u USERNAME')

这样的值,如果我需要应用程序/库中的文件,该怎么办?您好,按照您的步骤操作,我会收到以下错误:“app\Providers\EPaymentProvider::register():无法打开所需文件”/var/www/html/pay/app/libraries/TomajPayGateways/EPayment.php.php”(包括路径='。:/usr/share/php:/usr/share/pear')”可能是权限问题。也可能是打字错误,因为
/var/www/html/pay/app/Libraries/TomajPayGateways/EPayment.php.php
包含两个
.php
扩展名。请告诉我是否有任何结果。是的,有两次是.php,但现在我没有找到
类“app\Providers\EPaymentProvider”
,但EPaymentProvider在/Providers.try
php artisan optimize
composer dump autoload
完成正确,但
php artisan optimize
获取我:
在第1行的/var/www/html/pay/vendor/laravel/framework/src/light/Foundation/ProviderRepository.php中未找到类“App\Providers\EPaymentProvider”46未找到[Symfony\Component\Debug\Exception\FatalErrorException]类“App\Providers\EPaymentProvider”
<?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';
    }
}  
$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);