Я планирую работать над игрой, которая имеет PHP-интерфейс для взаимодействия с хранилищем данных. Я подумал об этом и пришел к выводу, что лучшая парадигма дизайна для нашей игры будет основана на событиях. Мне нужна система достижений (похожая на систему значков на этом сайте), и в основном я бы хотел подключить эти «проверки достижений» к ряду различных событий, происходящих в игре. то есть:
Когда пользователь выполняет действие X, ловушка Y запускается, и все присоединенные функции вызываются для проверки соответствия требованию достижения.
При структурировании архитектуры, подобной этой, я позволю легко добавлять новые достижения, так как все, что мне нужно будет сделать, это добавить функцию проверки в соответствующий хук, и все остальное станет на свои места.
Я не уверен, что это отличное объяснение того, что я собираюсь сделать, но в любом случае я ищу следующее:
- Хороший справочный материал о том, как кодировать приложение, управляемое событиями
- Фрагменты кода, показывающие, как поместить «зацепку» в функцию в PHP
- Фрагменты кода, показывающие, как прикрепить функцию к «крючку», указанному в пункте 2
У меня есть несколько идей относительно того, как выполнить 2) и 3), но я надеялся, что кто-то хорошо разбирающийся в этом вопросе сможет пролить свет на лучшие практики.
Заранее спасибо!