/** * @static * @param $roomNameCanonical * @param null $roomSizeId * @param null $roomTypeId * @return RoomNamesNemo */ public static function &getNamesByParams($roomNameCanonical, $roomSizeId = null, $roomTypeId = null) { $startTime = microtime(true); HotelBookClient::$countFunc++; $roomParamsKey = ($roomNameCanonical ? $roomNameCanonical : '') . '|' . ($roomSizeId ? $roomSizeId : '') . '|' . ($roomTypeId ? $roomTypeId : ''); if ($roomParamsKey != '||') { if (isset(RoomNamesNemo::$paramsIdMap[$roomParamsKey])) { $endTime = microtime(true); $fullTime = $endTime - $startTime; if ($fullTime > HotelBookClient::$maxMicrotime) { HotelBookClient::$maxMicrotime = $fullTime; } HotelBookClient::$totalMicrotime += $fullTime; return RoomNamesNemo::$roomNames[RoomNamesNemo::$paramsIdMap[$roomParamsKey]]; } else { self::$needLoading = true; self::$roomNames[self::$lazyIndex] = new RoomNamesNemo(); self::$roomNames[self::$lazyIndex]->roomNameCanonical = $roomNameCanonical; self::$roomNames[self::$lazyIndex]->roomSizeId = $roomSizeId; self::$roomNames[self::$lazyIndex]->roomTypeId = $roomTypeId; self::$paramsIdMap[$roomParamsKey] = self::$lazyIndex; self::$lazyLoadObjectsIds[self::$lazyIndex] = self::$lazyIndex; //$newRoomNameNemo = new RoomNamesNemo(); //$newRoomNameNemo->roomNameCanonical = $roomNameCanonical; //$newRoomNameNemo->roomSizeId = $this->sizeId; //$newRoomNameNemo->roomTypeId = $this->typeId; //$roomNameNemo = RoomNamesNemo::model()->findByAttributes(array( // 'roomNameCanonical' => $roomNameCanonical, // 'roomSizeId'=> $roomSizeId, // 'roomTypeId'=> $roomTypeId //)); self::$lazyIndex++; HotelBookClient::$countSql++; //return $roomParamsKey; return self::$roomNames[self::$lazyIndex - 1]; } /*}elseif($roomNameCanonical){ if(isset(RoomNamesNemo::$nameIdMap[$roomNameCanonical])) { $endTime = microtime(true); $fullTime = $endTime - $startTime; if($fullTime > HotelBookClient::$maxMicrotime) HotelBookClient::$maxMicrotime = $fullTime; HotelBookClient::$totalMicrotime += $fullTime; return RoomNamesNemo::$roomNames[RoomNamesNemo::$nameIdMap[$roomNameCanonical]]; } else { $roomNameNemo = RoomNamesNemo::model()->findByAttributes(array( 'roomNameCanonical' => $roomNameCanonical )); HotelBookClient::$countSql++; }*/ } else { $endTime = microtime(true); $fullTime = $endTime - $startTime; if ($fullTime > HotelBookClient::$maxMicrotime) { HotelBookClient::$maxMicrotime = $fullTime; } HotelBookClient::$totalMicrotime += $fullTime; return false; } /*if($roomNameNemo) { RoomNamesNemo::$roomNames[$roomNameNemo->id] = $roomNameNemo; $roomParamsKey = $roomNameNemo->roomNameCanonical.'|'.$roomNameNemo->roomSizeId.'|'.$roomNameNemo->roomTypeId; if($roomParamsKey){ RoomNamesNemo::$paramsIdMap[$roomParamsKey] = $roomNameNemo->id; } if($roomNameNemo->roomNameCanonical){ RoomNamesNemo::$nameIdMap[$roomNameNemo->roomNameCanonical] = $roomNameNemo->id; } $endTime = microtime(true); $fullTime = $endTime - $startTime; if($fullTime > HotelBookClient::$maxMicrotime) HotelBookClient::$maxMicrotime = $fullTime; HotelBookClient::$totalMicrotime += $fullTime; return $roomNameNemo; }else{ $endTime = microtime(true); $fullTime = $endTime - $startTime; if($fullTime > HotelBookClient::$maxMicrotime) HotelBookClient::$maxMicrotime = $fullTime; HotelBookClient::$totalMicrotime += $fullTime; return false; }*/ }