Прежде всего, вам нужно определить, как вы хотите интегрировать свои плагины. Если вы хотите что-то вроде плагинов Wordpress, которые в большинстве случаев являются просто функциями, то это очень просто. Это похоже на добавление нового кода в ваше приложение.
Ну, в основном, ваше приложение должно иметь возможность создавать список доступных плагинов и определять, какие из них включены. Список можно создать, просмотрев файлы, файл конфигурации или что угодно. Включенные плагины могут быть сохранены в базе данных, например.
Затем вы просто выполняете интерфейс, в котором пользователь может включить каждый доступный плагин. При его включении веб-приложение будет записывать информацию об этом в базу данных плагинов, указав, что оно включено. Затем приложение вызывает конкретный метод класса плагина (действительно, ООП является обязательным в правильной разработке плагинов), например Install(). Чтобы избежать исключений, когда плагины не имеют такого метода, все классы плагина должны наследовать базовый класс, написанный в основном веб-приложении, который содержит определение для этого метода. Этот метод имеет единственную цель для выполнения инициализации плагина (создание таблиц в базе данных, заполнение статистики и т. Д.).
Кроме того, при каждом запросе ваше веб-приложение должно включать в себя все файлы плагинов, которые указаны как разрешенные. Затем используйте их, как хотите. Например, вызовите их методы из шаблонов. Если вы хотите написать плагины, прозрачные для разработчика шаблонов, то вы можете сделать это как в wordpress. Там плагин при инициализации (например, когда он включен в файл) записывает конкретные данные в массивы действий. Он может написать, какую функцию следует вызывать, с какими параметрами и когда нужно вызывать. Вы даже можете сделать что-то вроде триггеров событий в своем основном веб-приложении, чтобы включить настройку. Прежде чем рисовать что-нибудь, вызовите функцию, называемую как do_action("before_output_of_something")
, и после завершения вывода вызовите функцию do_action("after_output_of_something")
. Строковый параметр будет ключом в массиве триггеров, который указывает на массив действий (обработчики событий). Чтобы добавить обработчики событий, вызовите функцию типа add_action("before_output_of_something", $object, "method_name", array("parameters"))
. Метод do_action передает массив действий и использует функцию call_user_func()
PHP для вызова обработчиков событий.
В этой теме гораздо больше. Все зависит от того, что именно вы хотите сделать. То, что я написали здесь, - это просто отвратительная попытка выразить некоторые из возможностей. То, что вы должны сделать, это найти хорошую книгу, возможно, только в этой теме.
(* ссылка *) [Wikipedia on Plugin Architecture] (http://en.wikipedia.org/wiki/Plug-in_%28computing%29) – Gordon
* (ссылка) * [API-интерфейс для Wordpress Plugin API] (http: /codex.wordpress.org/Plugin_API) – Gordon
@ Гордон благодарит моего друга, я уже читал об этом. но я ищу концепцию php для этого. как мне это сделать с помощью PHP – trrrrrrm