is there an easy way to import Members into a specific group in SS 3.6? I'm merging systems, and have a couple thousand users I'd like to bring over

__get(), which is defined on ViewableData, defers to the class implementation of getField(). ViewableData::getField() does simple property lookup using a variable property name $this->$field (wouldn’t this trigger an infinite loop?) whereas DataObject::getField() pulls the data from $this->record[$field]. So isInDB() will do the same check as exists() in the end, but through the magic of __get().

record is the local cache of the query result for that object (i.e. result row)

Seems odd that DataObject::exists() doesn’t just call DataObject::isInDB(). The logic is effectively the same, but isInDB() does direct property lookup syntax for $this->ID (via __get()) while exists() checks against $this->record['ID'] (edited)

Sorry, I meant that it does a file existence check using $this->File->exists()

this is to say: "I'm unsure, but your theory sounds ... sound."

@webbower see SilverStripe 3 and File I guess. exists includes a file_exists check too.