示例#1
0
 /**
  * $tableName is used by constraint keys.
  */
 protected function loadFromCache($schema, $itemType, $itemName, $tableName = null)
 {
     if ($tableName) {
         if (isset($this->constraintKeys[$schema][$tableName][$itemName])) {
             return;
         }
     } else {
         $prop = $this->keyToProperty($itemType);
         if (isset($this->{$prop}[$schema][$itemName])) {
             return;
         }
     }
     $key = $this->cacheKey($schema . '.' . $itemType . '.' . $itemName);
     $data = $this->cache()->read($key);
     if (!$data) {
         $this->loadAndCache($schema, $itemType, $itemName, $key, $tableName);
     } else {
         switch ($itemType) {
             case 'tb':
                 $object = new ZfObject\TableObject($data['name']);
                 $this->setTableData($object, $data);
                 break;
             case 'vw':
                 $object = new ZfObject\ViewObject($data['name']);
                 $object->setViewDefinition($data['viewDefinition']);
                 $object->setCheckOption($data['checkPption']);
                 $object->setIsUpdatable($data['isUpdatable']);
                 $this->setTableData($object, $data);
                 break;
             case 'ck':
                 $object = new ZfObject\TriggerObject();
                 $object->setOrdinalPosition($data['ordinalPosition']);
                 $object->setReferencedTableSchema($data['referencedTableSchema']);
                 $object->setForeignKeyUpdateRule($data['updateRule']);
                 $object->setForeignKeyDeleteRule($data['deleteRule']);
                 $object->setReferencedTableName($data['referencedTableName']);
                 $object->setReferencedColumnName($data['referencedColumnName']);
                 break;
             case 'tr':
                 $object = new ZfObject\ConstraintKeyObject();
                 $object->setName($data['name']);
                 $object->setEventManipulation($data['eventManipulation']);
                 $object->setEventObjectCatalog($data['eventObjectCatalog']);
                 $object->setEventObjectSchema($data['eventObjectSchema']);
                 $object->setEventObjectTable($data['eventObjectTable']);
                 $object->setActionOrder($data['actionOrder']);
                 $object->setActionCondition($data['actionCondition']);
                 $object->setActionStatement($data['actionStatement']);
                 $object->setActionOrientation($data['actionOrientation']);
                 $object->setActionTiming($data['actionTiming']);
                 $object->setActionReferenceOldTable($data['actionReferenceOldTable']);
                 $object->setActionReferenceNewTable($data['actionReferenceNewTable']);
                 $object->setActionReferenceOldRow($data['actionReferenceOldRow']);
                 $object->setActionReferenceNewRow($data['actionReferenceNewRow']);
                 $object->setCreated($data['created']);
                 break;
         }
         $this->setItem($object, $schema, $itemType, $itemName, $tableName);
     }
 }