public static function init_layers() { $allTypes = func_get_args(); foreach ($allTypes as $classType) { // In an ideal world, we'd recursively generate a collated set of DB Fields from all // of our related layers. HOWEVER - we can't create an object of type $classType, because // the act of doing so is what binds all the extra methods pertinent to our relationships - which haven't // been defined yet. So we _need_ to do it using just the string representation of the // classname instead. // $sng = singleton($classType); // foreach ($sng->getLayers() as $l) { // $allDb = array_merge($allDb, $l->collatedDb()); // } $allDb = LayerManager::db_for_layers($classType); Config::inst()->update($classType, 'db', $allDb); $extraRels = LayerManager::rels_for_layers($classType); if (count($extraRels['has_one'])) { Config::inst()->update($classType, 'has_one', $extraRels['has_one']); } if (count($extraRels['many_many'])) { Config::inst()->update($classType, 'many_many', $extraRels['many_many']); } } }