Intereting Posts
Параметры URL, вызывающие 404 на главной странице, но нигде больше Использование Javascript для обнаружения события нажатия клавиш в текстовом редакторе Перемещение сайта WordPress с локального ПК на локальный Mac Лучшие плагины Live Writer для публикации фрагментов кода в WordPress? Пустые настройки постоянных ссылок в .htaccess Проблема с множественным коротким кодом в шаблоне страницы Конфликт с налогом на пул CPT с пулями типа post Меню Uber, ручная интеграция, отключить мобильный Сообщение Слияние страницы с пользовательским типом сообщения Как получить пользовательские типы сообщений, чтобы хорошо играть с schema.org (иначе как обернуть содержимое в разметке schema.org)? Опубликовать в качестве главной страницы – избежать дублирования контента Получить URL-адрес текущего сообщения, но не номер страницы Как добавить уведомление администратора в javascript в интерфейсе администратора для сообщений? Изменить миниатюры медиа-библиотеки для файлов без изображения, чтобы включить заголовок сообщения вместо имени файла?

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

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

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

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

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

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

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

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

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