InheritanceBuilder
class InheritanceBuilder (View source)
A schema-aware service for DataObject model types that builds out their inheritance chain in an ORM-like way, applying inherited fields and implicitly exposing ancestral types, etc.
Traits
A class that can be instantiated or replaced via DI
Methods
An implementation of the factory method, allows you to create an instance of a class
Creates a class instance by the "singleton" design pattern.
Details
static Injectable
create(mixed ...$args)
An implementation of the factory method, allows you to create an instance of a class
This method will defer class substitution to the Injector API, which can be customised via the Config API to declare substitution classes.
This can be called in one of two ways - either calling via the class directly, or calling on Object and passing the class name as the first parameter. The following are equivalent: $list = DataList::create(SiteTree::class); $list = SiteTree::get();
static Injectable
singleton(string $class = null)
Creates a class instance by the "singleton" design pattern.
It will always return the same instance for this class, which can be used for performance reasons and as a simple way to access instance methods which don't rely on instance data (e.g. the custom SilverStripe static handling).
__construct(Schema $schema, array $hideAncestors = [])
InheritanceBuilder constructor.
void
fillAncestry(ModelType $modelType)
No description
void
fillDescendants(ModelType $modelType)
No description
bool
isBaseModel(string $class)
No description
bool
isLeafModel(string $class)
No description
Schema
getSchema()
No description
InheritanceBuilder
setSchema(Schema $schema)
No description