Intereting Posts
Использовать одну и ту же базу данных в основном домене и субдомене Добавить фильтр post_where и передать аргумент post_type Изменение порядка в разделах меню администратора? Если форматы сообщений отчета: не выбран формат сообщений Как я могу получить всю мета-запись для конкретной должности в виде массива? post_title пуст на глобальном объекте $ post Скрипт пользовательской регистрации пользователя, разрешающий имена пользователей с 16 символами Измените расположение add_theme_support ('custom-header') в настройке Добавить запись в подкатегорию Как добавить столбец описания на экран браузера медиа-библиотеки? Недопустимый тип смещения в get_post_type_object ()? Получение таксономии gform_after_submission не работает как ожидалось Как я могу ограничить php mail (), чтобы отправить мне только одно сообщение после ошибки db WordPress не показывает продукты, когда значение post_parent не равно 0

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

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

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

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

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

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

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

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

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