DataFormatter
abstract class DataFormatter (View source)
A DataFormatter object handles transformation of data from SilverStripe model objects to a particular output format, and vice versa. This is most commonly used in developing RESTful APIs.
Traits
Provides extensions to this object to integrate it with standard config API methods.
Config options
| priority | int | Set priority from 0-100.  | 
                
Properties
| public | int | $relationDepth | Follow relations for the DataObject instances ($has_one, $has_many, $many_many).  | 
                |
| protected | array | $customFields | Allows overriding of the fields which are rendered for the processed dataobjects. By default, this includes all fields in DataObject::inheritedDatabaseFields().  | 
                |
| protected | array | $customAddFields | Allows addition of fields (e.g. custom getters on a DataObject)  | 
                |
| protected | array | $customRelations | Allows to limit or add relations.  | 
                |
| protected | array | $removeFields | Fields which should be expicitly excluded from the export.  | 
                |
| protected | string | $outputContentType | Specifies the mimetype in which all strings returned from the convert*() methods should be used, e.g. "text/xml".  | 
                |
| protected | int | $totalSize | Used to set totalSize properties on the output of convertDataObjectSet(), shows the total number of records without the "limit" and "offset" GET parameters. Useful to implement pagination.  | 
                
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
Backslashes in fully qualified class names (e.g. NameSpaced\ClassName) kills both requests (i.e. URIs) and XML (invalid character in a tag name) So we'll replace them with a hyphen (-), as it's also unambiguious in both cases (invalid in a php class name, and safe in an xml tag name)
Get a DataFormatter object suitable for handling the given file extension.
Get formatter for the first matching extension.
Get a DataFormatter object suitable for handling the given mimetype.
Get formatter for the first matching mimetype.
Returns all fields on the object which should be shown in the output. Can be customised through DataFormatter::setCustomFields().
Convert a single data object to this format. Return a string.
Convert an array of aliased field names to their Dataobject field name
Get the DataObject field name from its alias
Get a DataObject Field's Alias defaults to the fieldname
Get the 'api_field_mapping' config value for a class or return an empty array
Details
        
                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
        
                    protected        string
    sanitiseClassName($className)
        
    
    Backslashes in fully qualified class names (e.g. NameSpaced\ClassName) kills both requests (i.e. URIs) and XML (invalid character in a tag name) So we'll replace them with a hyphen (-), as it's also unambiguious in both cases (invalid in a php class name, and safe in an xml tag name)
        
                static            DataFormatter
    for_extension(string $extension)
        
    
    Get a DataFormatter object suitable for handling the given file extension.
        
                static            DataFormatter
    for_extensions(array $extensions)
        
    
    Get formatter for the first matching extension.
        
                static            DataFormatter
    for_mimetype(string $mimeType)
        
    
    Get a DataFormatter object suitable for handling the given mimetype.
        
                static            DataFormatter
    for_mimetypes(array $mimetypes)
        
    
    Get formatter for the first matching mimetype.
Useful for HTTP Accept headers which can contain multiple comma-separated mimetypes.
        
                            $this
    setCustomFields(array $fields)
        
    
    No description
        
                            array
    getCustomFields()
        
    
    No description
        
                            $this
    setCustomAddFields(array $fields)
        
    
    No description
        
                            $this
    setCustomRelations(array $relations)
        
    
    No description
        
                            array
    getCustomRelations()
        
    
    No description
        
                            array
    getCustomAddFields()
        
    
    No description
        
                            $this
    setRemoveFields(array $fields)
        
    
    No description
        
                            array
    getRemoveFields()
        
    
    No description
        
                            string
    getOutputContentType()
        
    
    No description
        
                            $this
    setTotalSize(int $size)
        
    
    No description
        
                            int
    getTotalSize()
        
    
    No description
        
                    protected        array
    getFieldsForObj(DataObject $obj)
        
    
    Returns all fields on the object which should be shown in the output. Can be customised through DataFormatter::setCustomFields().
        
            abstract                
    supportedExtensions()
        
    
    Return an array of the extensions that this data formatter supports
        
            abstract                
    supportedMimeTypes()
        
    
    No description
        
            abstract                mixed
    convertDataObject(DataObjectInterface $do)
        
    
    Convert a single data object to this format. Return a string.
        
            abstract                string
    convertDataObjectSet(SS_List $set)
        
    
    Convert a data object set to this format. Return a string.
        
            abstract                string
    convertArray($array)
        
    
    Convert an array to this format. Return a string.
        
                            
    convertStringToArray(string $strData)
        
    
    No description
        
                            string[]
    getRealFields(string $className, string[] $fields)
        
    
    Convert an array of aliased field names to their Dataobject field name
        
                            string
    getRealFieldName(string $className, string $field)
        
    
    Get the DataObject field name from its alias
        
                            string
    getFieldAlias(string $className, string $field)
        
    
    Get a DataObject Field's Alias defaults to the fieldname
        
                    protected        string[]|array
    getApiMapping(string $className)
        
    
    Get the 'api_field_mapping' config value for a class or return an empty array
        
                    protected        string
    getMappedKey(array $map, string $key)
        
    
    Helper function to get mapped field names