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