Управляемая событиями архитектура и хуки в PHP

Я планирую работать над игрой, которая имеет внутреннюю часть PHP для связи с хранилищем данных. Я подумал об этом и пришел к выводу, что лучшая парадигма дизайна для нашей игры будет основана на событиях. Я ищу систему достижений (аналогичную системе значков на этом веб-сайте), и в основном я хотел бы иметь возможность привязать эти «проверки достижений» к ряду различных событий, происходящих в игре. то есть:

Когда пользователь выполняет действие X, запускается крючок Y и вызываются все присоединенные функции для проверки соответствия требованиям достижения.

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

Я не уверен, что это хорошее объяснение того, что я собираюсь сделать, но в любом случае я ищу следующее:

  1. Хороший справочный материал о том, как кодировать приложение, управляемое событиями.
  2. Фрагменты кода, показывающие, как добавить "ловушку" в функцию в PHP.
  3. Фрагменты кода, показывающие, как присоедините функцию к «крючку», упомянутому в пункте 2

. У меня есть несколько идей относительно того, как выполнить 2) и 3), но я надеялся, что кто-нибудь, хорошо разбирающийся в этом вопросе, сможет пролить свет на лучшие практики.

Заранее благодарим!

12
задан hakre 27 July 2011 в 14:35
поделиться