создайте систему плагинов с помощью php


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

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

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

 31
Author: Mogsdad, 2008-10-20

1 answers

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

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

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

 31
Author: Vinko Vrsalovic, 2008-10-20 07:19:19