public static function createInstance(sfWebRequest $request, sfSecurityUser $user) { $mobile = $request->getMobile(); $className = 'opOpenSocialLocation'; if ($mobile->isDoCoMo()) { $className .= 'Docomo'; } elseif ($mobile->isEZweb()) { $className .= 'EZweb'; } elseif ($mobile->isSoftbank() && $mobile->isType3GC()) { $className .= 'Softbank'; } else { throw new LogicException("This UserAgent isn't supported."); } return new $className($request, $user); }