создать плагин с php

Я работаю над пользовательской CMS для собственного использования и думал о внедрении системы плагинов, чтобы я мог расширить код немного проще. Однако у меня возникают проблемы с концепцией архитектуры и макета.

Я знаю, что могу пройти через несколько программ с открытым исходным кодом, которые реализуют подобные функции, но на самом деле это просто академический момент, поэтому я действительно не хочу тратить слишком много времени на изучение внешнего кода.

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

  1. Определите функциональность, которую вы хотите подключить плагины (то есть, что они будут делать и над чем)
  2. Определите иерархию классов, на которой подходят плагины, например, все плагины, используемые для создания статей, должны наследовать от ArticleMangler
  3. Определите физическое местоположение для плагинов, например / plugins
  4. Импортировать все плагины, присутствующие в местоположении
  5. Используйте шаблоны Decorator или Observer , чтобы вставлять поведение плагина или сообщать о плагинах событий. Стратегия может быть применима и в некоторых случаях.

PHP делает это довольно легко при потенциальной стоимости создания беспорядка, если вы не будете осторожны. Мне нравится метод Observer, где плагины регистрируются в диспетчере плагинов, которые уведомляют их о том, что произошло, и ждут своего действия.

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