/** * Generates the base collection class * * @return string the generated PHP code * @author Anthony Bush **/ protected function generateBaseCollection($table) { $dbName = $table->getDatabase()->getDatabaseName(); $tableName = $table->getTableName(); $starterObjectClassName = $this->config->getStarterObjectClassName($table); $starterCollectionClassName = $this->config->getStarterCollectionClassName($table); $baseObjectClassName = $this->config->getBaseObjectClassName($table); $baseCollectionClassName = $this->config->getBaseCollectionClassName($table); $phpdocTags = $this->generatePhpdocTags($table); $phpdocTags[] = '@see ' . $starterCollectionClassName . ', CoughCollection'; $extensionClassName = $this->config->getCollectionExtensionClassName($table); ob_start(); echo "<?php\n\n"; ?> /** * This is the base class for <?php echo $starterCollectionClassName; ?> . * * <?php echo implode("\n * ", $phpdocTags) . "\n"; ?> **/ abstract class <?php echo $baseCollectionClassName; ?> extends <?php echo $extensionClassName; ?> { protected $dbAlias = '<?php echo $dbName; ?> '; protected $dbName = '<?php echo $dbName; ?> '; protected $elementClassName = '<?php echo $starterObjectClassName; ?> '; } <?php echo "\n?>"; // Add the class $class = new CoughClass(); $class->setContents(ob_get_clean()); $class->setIsStarterClass(false); $class->setIsCollectionClass(true); $class->setClassName($baseCollectionClassName); $class->setDatabaseName($dbName); $class->setTableName($tableName); $this->addGeneratedClass($class); }