Intereting Posts
Как играть в видео без использования плагина? Пользовательская таксономия не возвращает сообщений Проблема с htaccess https 301 Как скрыть значения таксономии Duplicate в WordPress? Есть ли способ ограничить многократную загрузку в поле для загрузки мультимедиа? WordPress не работает на localhost Узнайте, запрашивается ли запрос для архива пользовательского типа после выполнения запроса Крюк для обновления постоянной ссылки Заказ пользовательского почтового типа по пользовательскому полю без заголовка пользовательское правило перезаписи htaccess для страницы Относительные ссылки для производительности? Должен ли вывод HTML быть передан через esc_html () AND wp_kses ()? Самый быстрый способ (наименьшее количество шагов) для локального импорта удаленной базы данных с использованием WP-CLI Как использовать tinyMCE для пользовательской «биографической информации» без использования каких-либо файлов ядра? Как отображать изображения в связанных сообщениях?

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

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

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

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

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

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

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

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

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