/** * Uses a builder class to create the output class. * This method assumes that the DataModelBuilder class has been initialized with the build properties. * @param OMBuilder $builder * @param boolean $overwrite Whether to overwrite existing files with te new ones (default is YES). * @todo -cPropelOMTask Consider refactoring build() method into AbstractPropelDataModelTask (would need to be more generic). */ protected function build(OMBuilder $builder, $overwrite = true) { $path = $builder->getClassFilePath(); $this->ensureDirExists(dirname($path)); $_f = new PhingFile($this->getOutputDirectory(), $path); // skip files already created once if ($_f->exists() && !$overwrite) { $this->log("\t\t-> (exists) " . $builder->getClassname(), Project::MSG_VERBOSE); return 0; } $script = $builder->build(); foreach ($builder->getWarnings() as $warning) { $this->log($warning, Project::MSG_WARN); } // skip unchanged files if ($_f->exists() && $script == $_f->contents()) { $this->log("\t\t-> (unchanged) " . $builder->getClassname(), Project::MSG_VERBOSE); return 0; } // write / overwrite new / changed files $this->log("\t\t-> " . $builder->getClassname() . " [builder: " . get_class($builder) . "]"); file_put_contents($_f->getAbsolutePath(), $script); return 1; }
/** * Uses a builder class to create the output class. * This method assumes that the DataModelBuilder class has been initialized with the build properties. * @param OMBuilder $builder * @param boolean $overwrite Whether to overwrite existing files with te new ones (default is YES). * @todo -cPropelOMTask Consider refactoring build() method into AbstractPropelDataModelTask (would need to be more generic). */ protected function build(OMBuilder $builder, $overwrite = true) { $path = $builder->getClassFilePath(); $this->ensureDirExists(dirname($path)); $_f = new PhingFile($this->getOutputDirectory(), $path); if ($overwrite || !$_f->exists()) { $this->log("\t\t-> " . $builder->getClassname() . " [builder: " . get_class($builder) . "]"); $script = $builder->build(); file_put_contents($_f->getAbsolutePath(), $script); foreach ($builder->getWarnings() as $warning) { $this->log($warning, Project::MSG_WARN); } } else { $this->log("\t\t-> (exists) " . $builder->getClassname()); } }
public function getRealClassname() { return parent::getClassname(); }