Чёрный
Guest
Плагины. События. Конфилкт имён функций.
Здравствуйте!
Существует следующая проблема. Делаю портал, поддерживающий плагины. Не буду подробно описывать механизм. Важно лишь вот что: такие важные события как: удаление и добавление пользователей, изменение их прав, перемещение их между группами, - иногда должны обрабатываться некоторыми плагинами. Это я осуществил следующим образом. В папке каждого плагина, который может обрабатывать события, лежит файл event.php. При возникновении важного события диспетчер событий просматривает папки плагинов и последовательно включает (include) файлы event.php из каждого плагина. Всё бы ничего, да только плагин может быть довольно-таки сложной системой. И при обработке событий ему ну очень надо включить какой-то из своих файлов, чтобы воспользоваться внутриплагинскими функциями. Тут и возникает проблема: в файлах, включаемых разными event.php могут быть объявлены функции с одинаковыми именами. Тогда PHP начинает ругаться. Причём плагины могут писать разные люди, которые не договариваются друг с другом об именах функций. Кроме того, портал пишется для сервака, где админ не хочет/не может установить PHP5.
Есть ли у уважаемого ALL какие-нибудь соображения на сей счёт. Может быть в PHP существует недокументированная возможность как-нибудь unset функции? Или кто-то предложит совершенно иной подход? Только прошу, не предлагайте вовсе не реализовывать событий. Я уже пробовал - не катит.
Здравствуйте!
Существует следующая проблема. Делаю портал, поддерживающий плагины. Не буду подробно описывать механизм. Важно лишь вот что: такие важные события как: удаление и добавление пользователей, изменение их прав, перемещение их между группами, - иногда должны обрабатываться некоторыми плагинами. Это я осуществил следующим образом. В папке каждого плагина, который может обрабатывать события, лежит файл event.php. При возникновении важного события диспетчер событий просматривает папки плагинов и последовательно включает (include) файлы event.php из каждого плагина. Всё бы ничего, да только плагин может быть довольно-таки сложной системой. И при обработке событий ему ну очень надо включить какой-то из своих файлов, чтобы воспользоваться внутриплагинскими функциями. Тут и возникает проблема: в файлах, включаемых разными event.php могут быть объявлены функции с одинаковыми именами. Тогда PHP начинает ругаться. Причём плагины могут писать разные люди, которые не договариваются друг с другом об именах функций. Кроме того, портал пишется для сервака, где админ не хочет/не может установить PHP5.
Есть ли у уважаемого ALL какие-нибудь соображения на сей счёт. Может быть в PHP существует недокументированная возможность как-нибудь unset функции? Или кто-то предложит совершенно иной подход? Только прошу, не предлагайте вовсе не реализовывать событий. Я уже пробовал - не катит.