Ejemplo n.º 1
0
 public function testSetAndGet()
 {
     $record1 = Mock::read(1);
     $record2 = Mock::read(2);
     $record3 = Mock::read(3);
     IdentityMap::set(get_class($record1), $record1->id, $record1);
     IdentityMap::set(get_class($record2), $record2->id, $record2);
     IdentityMap::set(get_class($record3), $record3->id, $record3);
     $this->assertEquals($record1, IdentityMap::get(get_class($record1), $record1->id));
     $this->assertEquals($record2, IdentityMap::get(get_class($record2), $record2->id));
     $this->assertEquals($record3, IdentityMap::get(get_class($record3), $record3->id));
 }
Ejemplo n.º 2
0
 /**
 * 使用禁止
 *
 *
 *
 */
 private static function hydrate($rowData, $recordClass)
 {
     $pk = static::$primaryKey;
     if (class_exists($recordClass)) {
         $record = IdentityMap::get($recordClass, $rowData[$pk]);
         if ($record !== false) {
             return $record;
         }
         $newRecord = new $recordClass($rowData);
         IdentityMap::set($recordClass, $newRecord->id, $newRecord);
         return $newRecord;
     } else {
         throw new Exception('class not found ' . $recordClass);
     }
 }