Intereting Posts
Недостаток использования фильтров и крючков несколько раз Как дать владельцу сайта возможность изменить текст нижнего колонтитула с помощью параметров темы (1 сообщение) Защита паролем wp-login.php Как извлечь все идентификационные переменные из строки запроса? Советы по управлению кодом при разработке структуры родительской темы Пользовательский тип сообщения, сообщения не отображаются новые сообщения Есть в наличии товары, скрытые в каталоге, но появляющиеся в результатах поиска? В любом случае, чтобы указать, что должно появиться в <title> в .php-файле? Нужна помощь для написания циклов для отображения сообщений по категориям в отдельных divs Используя wp_trim_excerpt, чтобы получить the_excerpt () вне цикла Подпишитесь с другого сайта на тот же список Ajax-вызов из WP-страницы администратора OFTEN возвращает 0, но не всегда Вывод запроса по мета-ключу другой таблицы WordPress SLOW, все! Создание формы блога в блоге для входа в систему только для зарегистрированных пользователей

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

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

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

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

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

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

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

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

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