Файл конфигурации пакета чтения пакета Laravel, а не опубликованный файл конфигурации

Я создал пакет Laravel, загрузил его в packagist и сумел установить его с помощью composer require.

Теперь я столкнулся с проблемой, и я не знаю, как ее исправить, и поиск не помогает.

У меня есть файл конфигурации, который публикует файл конфигурации по умолчанию в каталоге config. Я внес изменения в опубликованный файл, и теперь я хочу, чтобы мой пакет использовал этот файл конфигурации, но он использует файл конфигурации внутри пакета, а не недавно обновленный опубликованный файл.
Это мой поставщик услуг в папке поставщика src

namespace Clystnet\Vtiger;

use Illuminate\Support\ServiceProvider;

class VtigerServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
$this->publishes([
__DIR__ . '/Config/config.php' => config_path('vtiger.php'),
], 'vtiger');

// use the vendor configuration file as fallback
$this->mergeConfigFrom(
__DIR__ . '/Config/config.php', 'vtiger'
);
}

/**
* Register the application services.
*
* @return void
*/
public function register()
{
$this->app->bind('clystnet-vtiger', function () {
return new Vtiger();
});

config([
'config/vtiger.php',
]);
}
}

Это мой основной пакет классов

<?php
namespace Clystnet\Vtiger;

use Storage;
use Illuminate\Support\Facades\Config;

class Vtiger
{
protected $url;
protected $username;
protected $accesskey;

public function __construct() {
// set the API url and username
$this->url = Config::get('vtiger.url');
$this->username = Config::get('vtiger.username');
$this->accesskey = Config::get('vtiger.accesskey');
}
...

В моем классе я делаю var_dump($this->url) и он не читает правильный файл конфигурации.

Как мне установить его, чтобы использовать правильный?

ОБНОВИТЬ

Это мой пользовательский конфигурационный файл и тот, который читает пакет

return [
'url' => 'path/to/vtiger/webservice',
'username' => '',
'accesskey' => '',
];

2

Решение

Как документы говорит, что вы должны поместить его в метод register (), например:

public function register()
{

// use the vendor configuration file as fallback
$this->mergeConfigFrom(
__DIR__ . '/Config/config.php', 'vtiger'
);

...

}

Это должно решить проблему.

Кстати, вам нужно позаботиться о многомерных массивах, потому что документы говорят:

Этот метод объединяет только первый уровень массива конфигурации. Если
ваши пользователи частично определяют многомерный массив конфигурации,
пропущенные опции не будут объединены.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector