Переопределение конфигурации пакета Laravel в> 2 зависимостях с его использованием - PullRequest
0 голосов
/ 07 августа 2020

У меня есть проект с 2 пакетами, которые используют один и тот же базовый пакет для предоставления некоторого logi c.

Laravel project:
    Package 1 -> uses package 3
    Package 2 -> uses package 3

Теперь у меня проблема в том, что в конфигурации для базового пакета, который я включил для регистрации нескольких классов, которые будут использоваться:

'requestParameters'      => [
    SearchParameter::class,
    ReturnsParameter::class,
    OrderByParameter::class,
    RelationsParameter::class,
    LimitParameter::class,
    OffsetParameter::class,
    CountParameter::class,
],

Это позволяет мне модульно регистрировать дополнительные классы по запросу и расширять модель при необходимости.

Это отлично работает, когда один пакет использует это как зависимость, потому что по умолчанию он будет использовать 7 заданных классов, но если вы хотите добавить / удалить некоторые из них, вы можете переопределить конфигурацию в другом пакете и предоставить, например:

'requestParameters'      => [
    SearchParameter::class,
],

, который будет в результате этот пакет фактически использует только один класс вместо 7.

Я делаю это путем слияния конфигурации в другом пакете с:

$this->mergeConfigFrom(__DIR__ . '/Config/query-builder.php', 'query-builder');

Теперь, где это представлено проблема в том, что 2 пакета используют эту зависимость, и если я переопределю ее из одного пакета, она будет перезаписана для еще один.

Выполнение этого слияния с 1 параметром для Package 1 приводит к Package 2 с использованием 1 параметра ... что неверно.

Я думал, что внутри 3-й пакет Я мог бы предоставить дополнительный ключ, говорящий что-то вроде:

'requestParametersLookupKey' => 'requestParameters',

, чтобы я мог предоставить несуществующий ключ, таким образом делая его более модульным ... однако, если я переопределю это в одном пакете, Я снова останусь с той же проблемой, потому что он снова изменит ключ поиска глобально.

Есть ли способ предоставить другую конфигурацию таким образом?

...