Общий абстрактный класс для плагинов

У меня есть несколько плагинов и намерены перенести их на очень общую базу с абстрактным классом. Проблема в том, что даже если я применяю решения, чтобы избежать дублирования классов (например, ответ EarnestoDev для # 31034 ), система может иметь разные версии абстрактного класса, если присутствует больше моих плагинов.

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

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

Solutions Collecting From Web of "Общий абстрактный класс для плагинов"

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

Возможные решения:

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

Если расширения предназначены для частного использования (в отличие от того, чтобы быть отдельно и общедоступными), вы можете управлять ими как частью всего стека сайтов – в управлении версиями или в Composer (что, я надеюсь, будет более привлекательным для проектов WP).