Пишу на PHP что-то вроде демона, который не останавливаясь обрабатывает заявки, поступающие из БД.
Вопрос такой: как организовать структуру программы? Я хочу, чтобы в зависимости от типа заявки, к ней применялись различные проверки. Причем проверки должны вызываться на 3-х этапах: заявка поступила, обработана, ушла.
Т.е. должно быть что-то типа событий OnStart, OnProcessed, OnFinish на которые навешены функции проверки, которым поступают на вход параметры заявки. Порядок выполнения функций для меня не важен.
Предполагается возможность настройки администратором системы этих функций, поэтому жестко привязать в коде функции к типам заявок я не могу.
В принципе ООП для меня не самоцель, я могу обойтись и без него.
Если же хотите, чтобы очередь работала асинхронно. То, как уже советовали или react.php. Или если нет проблемы с установкой настройкой дополнительного софта, поставьте какой-нибудь сервер очередей (например, ActiveMQ activemq.apache.org/) и работайте с ним из PHP.
Вот этого я и не люблю! Не надо натягивать патерн на задачу! Берите и решайте задачу как вам подсказывает логика.
На каждый чих патерна нету, и часто патерн может усложнить простую задачу.
И да, если вы можете обойтись без ООП (и вы уверены что оно вам дальше не понадобится) то не используйте его! ООП так же может усложнить или запутать простую задачу.