示例#1
0
 /**
  * @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;
       }*/
 }