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); }
/** * @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; }