예제 #1
0
 public static function getTableInfo($tblName, $connectionName = "default")
 {
     if (isset(self::$metadata[$tblName])) {
         return self::$metadata[$tblName];
     }
     $className = "Schema_" . convert_to_modelname($tblName);
     if (Sabel::using($className)) {
         $cols = array();
         $schemaClass = new $className();
         foreach ($schemaClass->get() as $colName => $info) {
             $co = new Sabel_Db_Metadata_Column();
             $co->name = $colName;
             foreach ($info as $key => $val) {
                 $co->{$key} = $val;
             }
             $cols[$colName] = $co;
         }
         $tblSchema = new Sabel_Db_Metadata_Table($tblName, $cols);
         $properties = $schemaClass->getProperty();
         $tblSchema->setTableEngine($properties["tableEngine"]);
         $tblSchema->setUniques($properties["uniques"]);
         $tblSchema->setForeignKeys($properties["fkeys"]);
     } else {
         $schemaObj = Sabel_Db::createMetadata($connectionName);
         $tblSchema = $schemaObj->getTable($tblName);
     }
     return self::$metadata[$tblName] = $tblSchema;
 }
예제 #2
0
파일: Metadata.php 프로젝트: reoring/sabel
 public function getTable($tblName)
 {
     $columns = $this->createColumns($tblName);
     $schema = new Sabel_Db_Metadata_Table($tblName, $columns);
     $schema->setForeignKeys($this->getForeignKeys($tblName));
     $schema->setUniques($this->getUniques($tblName));
     return $schema;
 }