, , . , codereview . , , " ". , , .
, , ASAP , , , .
, MVC-ish, . Game id 123456. fillGameModel(Game $gameInstance). Game . User. : likeGame(Game $game, User $user). .
, . OO-:
$user = new User();
$user->setId($_SESSION['user_id']);
$game = new Game();
$game->setId(123456);
$service = new MainService();
$service->userLikes($game,$user);
public function userLikes(Game $game, User $user)
{
$user = $this->_completeUser($user);
$game = $this->_completeGame($game);
}
protected function _completeUser(User $user)
{
$db = $this->_getConnection();
$query = 'SELECT * FROM my_db.users WHERE id = ?';
$stmt = $db->prepare($query);
$row = $stmt->fetch(PDO::FETCH_ASSOC);
foreach ($row as $field => $value)
{
$user->{'set'.ucfirst(strtolower($field))}($value);
}
return $user;
}
protected function _completeGame(Game $game)
{
$db = $this->_getConnection();
$query = 'SELECT * FROM my_db.games WHERE id = ?';
$stmt = $db->prepare($query);
$row = $stmt->fetch(PDO::FETCH_ASSOC);
foreach ($row as $field => $value)
{
$game->{'set'.ucfirst(strtolower($field))}($value);
}
return $game;
}
protected function _completeAny(Model_Abstract $model)
{
$modelName = get_class($model);
if (method_exists($this,'_complete'.$modelName))
{
return $this->{'_complete'.$modelName}($model);
}
throw new Exception('No completion method for '.$modelName.' found');
}
, , . , ; -)