Разрабатываем приложения - бэкэнд для социальных игр. Работаем с MVC, но получается это все не очень удобно.
С клиента приходят события типа startGame - Вся Основная логика зашита в моделях и событиях, каждый action контроллера представляет из себя нечто вроде
public function actionStartGame ($map, $level, $someParams) {
$user = User::getById($clientID);
$user->game->start($map, $level, $someParams);
return $user->responseEvents;
}
Есть большое количество компонентов, которые "подключаются" к модели и подписываются на её события:
onStartGame() onLoseGame()
и т.д.
Что не нравится: каждый экшн контроллера - фактически повторение вызова метода в модели, причем одной и той же. Наверняка, существует паттерн - более подходящий под такой тип.
Из описания подобного нашлась ссылка на хабр на некий
MOVE, но примеров реализаций в сети не отыскалось.
Какие есть паттенры\фреймворки для схожих задач?