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

Config options

prefix string

Properties

Methods

public static 
create(mixed ...$args)

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

public static 
singleton(string $class = null)

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

public static 
config()

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

public
mixed
stat(string $name) deprecated

Get inherited config value

public
mixed
uninherited(string $name)

Gets the uninherited value for the given config option

public
$this
set_stat(string $name, mixed $value) deprecated

Update the config value for a given property

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

No description

public
void
populateSchema()

No description

protected
array
buildAllFieldsConfig(Type $type)

No description

protected
void
addInputTypesToSchema(Type $type, array $fields, InputType|null $parentType = null, string|null $parentField = null, string $prefix = '')

No description

public
setFieldFilter(callable $fieldFilter)

No description

public
setTypeNameHandler(callable $typeNameHandler)

No description

public
setLeafNodeHandler(callable $leafNodeHandler)

No description

public
InputType|null
getRootType()

No description

public
setResolveConfig(array $config)

No description

public
array
getResolveConfig()

No description

public
string|array|null
getResolver(string $name)

No description

public
string|null
getResolveType(string $name)

No description

public
array
getResolvers()

No description

public 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 stat(string $name) deprecated

deprecated 5.0 Use ->config()->get() instead

Get inherited config value

Parameters

string $name

Return Value

mixed

mixed uninherited(string $name)

Gets the uninherited value for the given config option

Parameters

string $name

Return Value

mixed

$this set_stat(string $name, mixed $value) deprecated

deprecated 5.0 Use ->config()->set() instead

Update the config value for a given property

Parameters

string $name
mixed $value

Return Value

$this

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

No description

Parameters

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

Exceptions

SchemaBuilderException

void populateSchema()

No description

Return Value

void

Exceptions

SchemaBuilderException

protected array buildAllFieldsConfig(Type $type)

No description

Parameters

Type $type

Return Value

array

Exceptions

SchemaBuilderException

protected void addInputTypesToSchema(Type $type, array $fields, InputType|null $parentType = null, string|null $parentField = null, string $prefix = '')

No description

Parameters

Type $type
array $fields
InputType|null $parentType
string|null $parentField
string $prefix

Return Value

void

Exceptions

SchemaBuilderException

NestedInputBuilder setFieldFilter(callable $fieldFilter)

No description

Parameters

callable $fieldFilter

Return Value

NestedInputBuilder

NestedInputBuilder setTypeNameHandler(callable $typeNameHandler)

No description

Parameters

callable $typeNameHandler

Return Value

NestedInputBuilder

NestedInputBuilder setLeafNodeHandler(callable $leafNodeHandler)

No description

Parameters

callable $leafNodeHandler

Return Value

NestedInputBuilder

InputType|null getRootType()

No description

Return Value

InputType|null

NestedInputBuilder setResolveConfig(array $config)

No description

Parameters

array $config

Return Value

NestedInputBuilder

Exceptions

SchemaBuilderException

array getResolveConfig()

No description

Return Value

array

string|array|null getResolver(string $name)

No description

Parameters

string $name

Return Value

string|array|null

string|null getResolveType(string $name)

No description

Parameters

string $name

Return Value

string|null

array getResolvers()

No description

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