예제 #1
0
 public function write(Sabel_Db_Metadata_Table $metadata)
 {
     $mdlName = convert_to_modelname($metadata->getTableName());
     $className = "Schema_" . $mdlName;
     $target = $this->schemaDir . DS . $mdlName . ".php";
     if (file_exists($target)) {
         unlink($target);
     }
     $lines = array();
     $lines[] = "<?php" . PHP_EOL;
     $lines[] = "class {$className}";
     $lines[] = "{";
     $lines[] = "  public static function get()";
     $lines[] = "  {";
     $lines[] = '    $cols = array();' . PHP_EOL;
     $colLines = $this->createColumnLines($metadata);
     foreach ($colLines as $line) {
         $lines[] = "    " . $line;
     }
     $lines[] = PHP_EOL;
     $lines[] = '    return $cols;';
     $lines[] = "  }" . PHP_EOL;
     $lines[] = "  public function getProperty()";
     $lines[] = "  {";
     $lines[] = '    $property = array();' . PHP_EOL;
     $this->writeEngine($lines, $metadata);
     $this->writeUniques($lines, $metadata);
     $this->writeForeignKeys($lines, $metadata);
     $lines[] = PHP_EOL;
     $lines[] = "    return \$property;";
     $lines[] = "  }";
     $lines[] = "}";
     $fp = fopen($target, "w");
     fwrite($fp, implode(PHP_EOL, $lines));
     fclose($fp);
 }
예제 #2
0
 /**
  * @param Sabel_Db_Metadata_Table $metadata
  *
  * @return self
  */
 public function setMetadata(Sabel_Db_Metadata_Table $metadata)
 {
     $this->table = $metadata->getTableName();
     $this->metadata = $metadata;
     return $this;
 }