InterfaceType
class InterfaceType extends Type (View source)
Defines a GraphQL interface. It may seem counter-intuitive that an abstraction would inherit from the concretion, but since these are just value objects that end up getting rendered as code, an unconventional architecture is probably okay. The irrelevant fields just just ignored in rendering.
Traits
Provides extensions to this object to integrate it with standard config API methods.
A class that can be instantiated or replaced via DI
Allows adding, loading, and sorting of plugins
Properties
| protected | Field[] | $fields | from Type | 
Methods
Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .....).
Gets the uninherited value for the given config option
An implementation of the factory method, allows you to create an instance of a class
Creates a class instance by the "singleton" design pattern.
Translates all the ID and config settings to first class instances
Sorts the before/after of plugins using topological sort
No description
Details
        
                static            Config_ForClass
    config()
        
    
    Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .....).
        
                            mixed
    stat(string $name)
        deprecated
    
    deprecated
Get inherited config value
        
                            mixed
    uninherited(string $name)
        
    
    Gets the uninherited value for the given config option
        
                            $this
    set_stat(string $name, mixed $value)
        deprecated
    
    deprecated
Update the config value for a given property
        
                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).
        
                            PluginConsumer
    addPlugin(string $pluginName, array $config = [])
        
    
    No description
        
                            PluginConsumer
    removePlugin(string $pluginName)
        
    
    No description
        
                            PluginConsumer
    mergePlugins(array $plugins)
        
    
    No description
        
                            PluginConsumer
    setPlugins(array $plugins)
        
    
    No description
        
                            PluginConsumer
    setDefaultPlugins(array $plugins)
        
    
    No description
        
                            array
    getPlugins(bool $inheritDefaults = true)
        
    
    No description
        
                            array
    getDefaultPlugins()
        
    
    No description
        
                            bool
    hasPlugin(string $identifier)
        
    
    No description
        
                            PluginRegistry
    getPluginRegistry()
        
    
    No description
        
                            Generator
    loadPlugins()
        
    
    Translates all the ID and config settings to first class instances
        
                            array
    getSortedPlugins()
        
    
    Sorts the before/after of plugins using topological sort
        in 
Type at line 46
                            
    __construct(string $name, array|null $config = null)
        
    
    No description
        
                            mixed
    applyConfig(array $config)
        
    
    No description
        in 
Type at line 87
                            string|null
    getName()
        
    
    No description
        in 
Type at line 92
                            Type
    setName(string $name)
        
    
    No description
        in 
Type at line 101
                            array
    getFields()
        
    
    No description
        in 
Type at line 109
                            Type
    setFields(array $fields)
        
    
    No description
        in 
Type at line 128
                            Type
    addField(string $fieldName, string|array|Field $fieldConfig, callable|null $callback = null)
        
    
    No description
        in 
Type at line 148
                            Type
    removeField(string $field)
        
    
    No description
        in 
Type at line 155
                            Field|null
    getFieldByName(string $fieldName)
        
    
    No description
        in 
Type at line 160
                            string|null
    getDescription()
        
    
    No description
        
                            void
    validate()
        
    
    No description
        in 
Type at line 215
                            bool
    exists()
        
    
    No description
        in 
Type at line 220
                            
    setDescription(string|null $description)
        
    
    No description
        in 
Type at line 226
                            array
    getInterfaces()
        
    
    No description
        in 
Type at line 231
                            string
    getEncodedInterfaces()
        
    
    No description
        in 
Type at line 236
                            Type
    setInterfaces(array $interfaces)
        
    
    No description
        in 
Type at line 242
                            Type
    addInterface(string $name)
        
    
    No description
        in 
Type at line 251
                            bool
    implements(string $interfaceName)
        
    
    No description
        in 
Type at line 256
                            bool
    getIsInput()
        
    
    No description
        in 
Type at line 261
                            Type
    setIsInput(bool $isInput)
        
    
    No description
        in 
Type at line 267
                            ResolverReference|null
    getFieldResolver()
        
    
    No description
        in 
Type at line 276
                            Type
    setFieldResolver(array|string|ResolverReference|null $fieldResolver)
        
    
    No description
        
                            string
    getSignature()
        
    
    No description
        
                            EncodedResolver
    getEncodedTypeResolver()
        
    
    No description
        
                            InterfaceType
    setTypeResolver(array|string|ResolverReference|null $resolver)
        
    
    No description