class NestedInputBuilder (View source)

An agnostic service that builds an input type based on a given field, with nesting.

Composable typeName functionality and handling of leaf nodes (e.g. turning the leaf node into a SortDirection enum.

Traits

A class that can be instantiated or replaced via DI

Provides extensions to this object to integrate it with standard config API methods.

Constants

SELF_REFERENTIAL

Properties

static private $prefix

Methods

static Injectable
create(mixed ...$args)

An implementation of the factory method, allows you to create an instance of a class

static Injectable
singleton(string $class = null)

Creates a class instance by the "singleton" design pattern.

static Config_ForClass
config()

Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .....).

mixed
uninherited(string $name)

Gets the uninherited value for the given config option

__construct(Field $root, Schema $schema, string|array $fields = Schema::ALL, array $resolveConfig = [])

No description

void
populateSchema()

No description

setFieldFilter(callable $fieldFilter)

No description

setTypeNameHandler(callable $typeNameHandler)

No description

setLeafNodeHandler(callable $leafNodeHandler)

No description

InputType|null
getRootType()

No description

setResolveConfig(array $config)

No description

array
getResolveConfig()

No description

string|array|null
getResolver(string $name)

No description

string|null
getResolveType(string $name)

No description

array
getResolvers()

No description

static array
buildPathsFromArgs(array $argFilters, array $origin = [])

Public API that can be used by a resolver to flatten the input argument into dot.separated.paths that can be normalised

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();

Parameters

mixed ...$args

Return Value

Injectable

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).

Parameters

string $class

Optional classname to create, if the called class should not be used

Return Value

Injectable

The singleton instance

static Config_ForClass config()

Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .....).

Return Value

Config_ForClass

mixed uninherited(string $name)

Gets the uninherited value for the given config option

Parameters

string $name

Return Value

mixed

__construct(Field $root, Schema $schema, string|array $fields = Schema::ALL, array $resolveConfig = [])

Parameters

Field $root
Schema $schema
string|array $fields
array $resolveConfig

Exceptions

SchemaBuilderException

void populateSchema()

Return Value

void

Exceptions

SchemaBuilderException

NestedInputBuilder setFieldFilter(callable $fieldFilter)

Parameters

callable $fieldFilter

Return Value

NestedInputBuilder

NestedInputBuilder setTypeNameHandler(callable $typeNameHandler)

Parameters

callable $typeNameHandler

Return Value

NestedInputBuilder

NestedInputBuilder setLeafNodeHandler(callable $leafNodeHandler)

Parameters

callable $leafNodeHandler

Return Value

NestedInputBuilder

InputType|null getRootType()

Return Value

InputType|null

NestedInputBuilder setResolveConfig(array $config)

Parameters

array $config

Return Value

NestedInputBuilder

Exceptions

SchemaBuilderException

array getResolveConfig()

Return Value

array

string|array|null getResolver(string $name)

Parameters

string $name

Return Value

string|array|null

string|null getResolveType(string $name)

Parameters

string $name

Return Value

string|null

array getResolvers()

Return Value

array

static array buildPathsFromArgs(array $argFilters, array $origin = [])

Public API that can be used by a resolver to flatten the input argument into dot.separated.paths that can be normalised

Parameters

array $argFilters
array $origin

Return Value

array