вам нужно продумать и разработать апи для плагинов - загрузка, инициализация, передача данных из плагина в систему и обратно, реагирование на события и так далее.
Это апи зависит от того как у вас там все устроено и что вы хотите плагинам позволить делать.
может быть любым, от очень простого до очень сложного.
очень грубо схема такая:
- добавление/регистрация плагинов. в самом простом виде - путем складывания файлов плагинов в нужную папку.
- активация/деактивация. В самом простом виде - храните в базе список активированных, либо симлинки в папку откуда все импортируется.
- инициализация плагина - после загрузки плагина у него вызывается метод инициализации, ему передается всякое, он делает то что плагину нужно для старта
- плагин регистрирует свои хуки в системе.
- система во время работы, в нужном месте вызывает хуки из плагина, они делают что надо. Например, загрузка пользователя - вызывается хук, ему передается пользователь, плагин туда добавляет какие-то новые поля, возвращает обратно. Пользователь с новыми полями идет дальше по системе
- если плагин был деактивирован, у него вызывается соответствующий метод, затем плагин удаляется из списка активных
дальше это можно развивать и менять как угодно, это зависит от ваших потребностей и целей.