Как сделать мой требуемый пакет глобальным, без конфликтов в composer-php? - PullRequest
2 голосов
/ 09 июня 2019

Предположим, у меня есть пакет sprout_services, который использует 3 других пакета require. Как только первый пакет запустится, он будет открыт в глобальном пространстве.

Из любого места в моем приложении я могу сделать new SproutServices\ServiceLocator. Теперь, когда мой второй пакет инициализировал этот sprout_services, я неизбежно столкнусь с проблемой Class has already been declared, так как я пытаюсь переопределить те же классы, которые были загружены ранее.

Как я могу сделать этот пакет sprout_services открытым в глобальном состоянии , не переопределяя его и не вступая в конфликты "эй, я был первым здесь!"?

1 Ответ

0 голосов
/ 11 июня 2019

Я запаниковал впустую.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...