/** * fetches all generators recursively for given table * * @param Doctrine_Table $table table object to retrieve the generators from * @return array an array of Doctrine_Record_Generator objects */ public function getAllGenerators(Doctrine_Table $table) { $generators = array(); foreach ($table->getGenerators() as $name => $generator) { if ($generator === null) { continue; } $generators[] = $generator; $generatorTable = $generator->getTable(); if ($generatorTable instanceof Doctrine_Table) { $generators = array_merge($generators, $this->getAllGenerators($generatorTable)); } } return $generators; }