создайте систему плагинов с помощью php
Я работаю над пользовательской CMS для собственного использования и думал о внедрении системы плагинов, чтобы немного упростить расширение кода. Однако у меня возникли проблемы с концептуализацией архитектуры и планировки.
Я знаю, что мог бы пройти через несколько программ с открытым исходным кодом, которые реализуют аналогичные функции, но на данный момент это просто академический вопрос, поэтому я действительно не хочу тратить слишком много времени на изучение иностранного кода.
Есть ли у кого-нибудь хорошие идеи о том, как продолжать? Если бы кто-нибудь мог описать, как это делают некоторые из наиболее популярных программ, это было бы идеально.
1 answers
- Определите функциональность, к которой вы хотите подключить плагины (т.Е. Что они будут делать и над чем)
- Определите иерархию классов, к которой подходят плагины, например, все плагины для редактирования статей должны наследоваться от ArticleMangler
- Определите физическое местоположение для плагинов, например /plugins
- Импортируйте все плагины, присутствующие в расположении
- Используйте либо Декоратор, либо Наблюдатель шаблоны, чтобы внедрить поведение плагина или уведомить плагины о события происходят. Стратегия также может быть применима в некоторых случаях.
PHP делает это довольно легко с потенциальной стоимостью создания беспорядка, если вы не будете осторожны. Мне нравится метод наблюдателя, в котором плагины регистрируются в менеджере плагинов, который уведомляет их о том, что произошло, и ждет, когда произойдет их действие.
Если вы не доверяете плагинам, вам придется добавить элементы управления, на какие события вы собираетесь разрешить регистрироваться любому плагину.