Class luya\web\jsonld\MediaObject

Inheritanceluya\web\jsonld\MediaObject » luya\web\jsonld\BaseThing » yii\base\BaseObject
Implementsluya\web\jsonld\MediaObjectInterface, luya\web\jsonld\ThingInterface, yii\base\Arrayable, yii\base\Configurable
Uses Traitsluya\web\jsonld\MediaObjectTrait, luya\web\jsonld\ThingTrait, yii\base\ArrayableTrait
Available since version1.0.3
Source Code https://github.com/luyadev/luya/blob/master/core/web/jsonld/MediaObject.php

JsonLd MediaObject.

See also http://schema.org/MediaObject.

Public Methods

Hide inherited methods

Method Description Defined By
__call() Calls the named method which is not a class method. yii\base\BaseObject
__construct() Constructor. yii\base\BaseObject
__get() Returns the value of an object property. yii\base\BaseObject
__isset() Checks if a property is set, i.e. defined and not null. yii\base\BaseObject
__set() Sets value of an object property. yii\base\BaseObject
__unset() Sets an object property to null. yii\base\BaseObject
canGetProperty() Returns a value indicating whether a property can be read. yii\base\BaseObject
canSetProperty() Returns a value indicating whether a property can be set. yii\base\BaseObject
className() Returns the fully qualified name of this class. yii\base\BaseObject
extraFields() Returns the list of fields that can be expanded further and returned by toArray(). yii\base\ArrayableTrait
fields() Returns the list of fields that should be returned by default by toArray() when no specific fields are specified. luya\web\jsonld\BaseThing
getAdditionalType() luya\web\jsonld\ThingTrait
getAlternateName() luya\web\jsonld\ThingTrait
getContentUrl() Getter method for contentUrl. luya\web\jsonld\MediaObjectTrait
getDescription() luya\web\jsonld\ThingTrait
getDisambiguatingDescription() luya\web\jsonld\ThingTrait
getEmbedUrl() Getter method for embedUrl. luya\web\jsonld\MediaObjectTrait
getIdentifier() luya\web\jsonld\ThingTrait
getImage() luya\web\jsonld\ThingTrait
getMainEntityOfPage() luya\web\jsonld\ThingTrait
getName() luya\web\jsonld\ThingTrait
getOffers() Get Offer luya\web\jsonld\ThingTrait
getSameAs() luya\web\jsonld\ThingTrait
getSubjectOf() luya\web\jsonld\ThingTrait
getUploadDate() Getter method for uploadDate. luya\web\jsonld\MediaObjectTrait
getUrl() luya\web\jsonld\ThingTrait
hasMethod() Returns a value indicating whether a method is defined. yii\base\BaseObject
hasProperty() Returns a value indicating whether a property is defined. yii\base\BaseObject
init() Initializes the object. yii\base\BaseObject
resolveGetterMethods() Find all getter methods. luya\web\jsonld\BaseThing
setAdditionalType() An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. luya\web\jsonld\ThingTrait
setAlternateName() An alias for the item luya\web\jsonld\ThingTrait
setContentUrl() Actual bytes of the media object, for example the image file or video file. luya\web\jsonld\MediaObjectTrait
setDescription() A description of the item. luya\web\jsonld\ThingTrait
setDisambiguatingDescription() A sub property of description. A short description of the item used to disambiguate from other, similar items. luya\web\jsonld\ThingTrait
setEmbedUrl() A URL pointing to a player for a specific video. In general, this is the information in the src element of an embed tag and should not be the same as the content of the loc tag. luya\web\jsonld\MediaObjectTrait
setIdentifier() The identifier property represents any kind of identifier for any kind of Thing, such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See background notes for more details. luya\web\jsonld\ThingTrait
setImage() An image of the item. luya\web\jsonld\ThingTrait
setMainEntityOfPage() Indicates a page (or other CreativeWork) for which this thing is the main entity being described. luya\web\jsonld\ThingTrait
setName() The name of the item. luya\web\jsonld\ThingTrait
setOffers() Set Offer luya\web\jsonld\ThingTrait
setSameAs() URL of a reference Web page that unambiguously indicates the item's identity. luya\web\jsonld\ThingTrait
setSubjectOf() A CreativeWork or Event about this Thing. luya\web\jsonld\ThingTrait
setUploadDate() Date when this media object was uploaded to this site. luya\web\jsonld\MediaObjectTrait
setUrl() URL of the item. luya\web\jsonld\ThingTrait
toArray() Converts the object into an array. luya\web\jsonld\BaseThing
typeDefintion() Contains the jsonLd definton @type value if not null or false. luya\web\jsonld\MediaObject

Protected Methods

Hide inherited methods

Method Description Defined By
extractFieldsFor() Extract nested fields from a fields collection for a given root field Nested fields are separated with dots (.). e.g: "item.id" The previous example would extract "id". yii\base\ArrayableTrait
extractRootFields() Extracts the root field names from nested fields. yii\base\ArrayableTrait
resolveFields() Determines which fields can be returned by toArray(). yii\base\ArrayableTrait

Method Details

Hide inherited methods

__call() public method

Defined in: yii\base\BaseObject::__call()

Calls the named method which is not a class method.

Do not call this method directly as it is a PHP magic method that will be implicitly called when an unknown method is being invoked.

public mixed __call ( $name, $params )
$name string

The method name

$params array

Method parameters

return mixed

The method return value

throws yii\base\UnknownMethodException

when calling unknown method

                public function __call($name, $params)
{
    throw new UnknownMethodException('Calling unknown method: ' . get_class($this) . "::$name()");
}

            
__construct() public method

Defined in: yii\base\BaseObject::__construct()

Constructor.

The default implementation does two things:

  • Initializes the object with the given configuration $config.
  • Call init().

If this method is overridden in a child class, it is recommended that

  • the last parameter of the constructor is a configuration array, like $config here.
  • call the parent implementation at the end of the constructor.
public void __construct ( $config = [] )
$config array

Name-value pairs that will be used to initialize the object properties

                public function __construct($config = [])
{
    if (!empty($config)) {
        Yii::configure($this, $config);
    }
    $this->init();
}

            
__get() public method

Defined in: yii\base\BaseObject::__get()

Returns the value of an object property.

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing $value = $object->property;.

See also __set().

public mixed __get ( $name )
$name string

The property name

return mixed

The property value

throws yii\base\UnknownPropertyException

if the property is not defined

throws yii\base\InvalidCallException

if the property is write-only

                public function __get($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter();
    } elseif (method_exists($this, 'set' . $name)) {
        throw new InvalidCallException('Getting write-only property: ' . get_class($this) . '::' . $name);
    }
    throw new UnknownPropertyException('Getting unknown property: ' . get_class($this) . '::' . $name);
}

            
__isset() public method

Defined in: yii\base\BaseObject::__isset()

Checks if a property is set, i.e. defined and not null.

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing isset($object->property).

Note that if the property is not defined, false will be returned.

See also https://www.php.net/manual/en/function.isset.php.

public boolean __isset ( $name )
$name string

The property name or the event name

return boolean

Whether the named property is set (not null).

                public function __isset($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter() !== null;
    }
    return false;
}

            
__set() public method

Defined in: yii\base\BaseObject::__set()

Sets value of an object property.

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing $object->property = $value;.

See also __get().

public void __set ( $name, $value )
$name string

The property name or the event name

$value mixed

The property value

throws yii\base\UnknownPropertyException

if the property is not defined

throws yii\base\InvalidCallException

if the property is read-only

                public function __set($name, $value)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter($value);
    } elseif (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Setting read-only property: ' . get_class($this) . '::' . $name);
    } else {
        throw new UnknownPropertyException('Setting unknown property: ' . get_class($this) . '::' . $name);
    }
}

            
__unset() public method

Defined in: yii\base\BaseObject::__unset()

Sets an object property to null.

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing unset($object->property).

Note that if the property is not defined, this method will do nothing. If the property is read-only, it will throw an exception.

See also https://www.php.net/manual/en/function.unset.php.

public void __unset ( $name )
$name string

The property name

throws yii\base\InvalidCallException

if the property is read only.

                public function __unset($name)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter(null);
    } elseif (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Unsetting read-only property: ' . get_class($this) . '::' . $name);
    }
}

            
canGetProperty() public method

Defined in: yii\base\BaseObject::canGetProperty()

Returns a value indicating whether a property can be read.

A property is readable if:

  • the class has a getter method associated with the specified name (in this case, property name is case-insensitive);
  • the class has a member variable with the specified name (when $checkVars is true);

See also canSetProperty().

public boolean canGetProperty ( $name, $checkVars true )
$name string

The property name

$checkVars boolean

Whether to treat member variables as properties

return boolean

Whether the property can be read

                public function canGetProperty($name, $checkVars = true)
{
    return method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name);
}

            
canSetProperty() public method

Defined in: yii\base\BaseObject::canSetProperty()

Returns a value indicating whether a property can be set.

A property is writable if:

  • the class has a setter method associated with the specified name (in this case, property name is case-insensitive);
  • the class has a member variable with the specified name (when $checkVars is true);

See also canGetProperty().

public boolean canSetProperty ( $name, $checkVars true )
$name string

The property name

$checkVars boolean

Whether to treat member variables as properties

return boolean

Whether the property can be written

                public function canSetProperty($name, $checkVars = true)
{
    return method_exists($this, 'set' . $name) || $checkVars && property_exists($this, $name);
}

            
className() public static method
Deprecated since 2.0.14. On PHP >=5.5, use ::class instead.

Defined in: yii\base\BaseObject::className()

Returns the fully qualified name of this class.

public static string className ( )
return string

The fully qualified name of this class.

                public static function className()
{
    return get_called_class();
}

            
extraFields() public method

Defined in: yii\base\ArrayableTrait::extraFields()

Returns the list of fields that can be expanded further and returned by toArray().

This method is similar to fields() except that the list of fields returned by this method are not returned by default by toArray(). Only when field names to be expanded are explicitly specified when calling toArray(), will their values be exported.

The default implementation returns an empty array.

You may override this method to return a list of expandable fields based on some context information (e.g. the current application user).

See also:

public array extraFields ( )
return array

The list of expandable field names or field definitions. Please refer to fields() on the format of the return value.

                public function extraFields()
{
    return [];
}

            
extractFieldsFor() protected method (available since version 2.0.14)

Defined in: yii\base\ArrayableTrait::extractFieldsFor()

Extract nested fields from a fields collection for a given root field Nested fields are separated with dots (.). e.g: "item.id" The previous example would extract "id".

protected array extractFieldsFor ( array $fields, $rootField )
$fields array

The fields requested for extraction

$rootField string

The root field for which we want to extract the nested fields

return array

Nested fields extracted for the given field

                protected function extractFieldsFor(array $fields, $rootField)
{
    $result = [];
    foreach ($fields as $field) {
        if (0 === strpos($field, "{$rootField}.")) {
            $result[] = preg_replace('/^' . preg_quote($rootField, '/') . '\./i', '', $field);
        }
    }
    return array_unique($result);
}

            
extractRootFields() protected method (available since version 2.0.14)

Defined in: yii\base\ArrayableTrait::extractRootFields()

Extracts the root field names from nested fields.

Nested fields are separated with dots (.). e.g: "item.id" The previous example would extract "item".

protected array extractRootFields ( array $fields )
$fields array

The fields requested for extraction

return array

Root fields extracted from the given nested fields

                protected function extractRootFields(array $fields)
{
    $result = [];
    foreach ($fields as $field) {
        $result[] = current(explode('.', $field, 2));
    }
    if (in_array('*', $result, true)) {
        $result = [];
    }
    return array_unique($result);
}

            
fields() public method

Defined in: luya\web\jsonld\BaseThing::fields()

Returns the list of fields that should be returned by default by toArray() when no specific fields are specified.

A field is a named element in the returned array by toArray().

This method should return an array of field names or field definitions. If the former, the field name will be treated as an object property name whose value will be used as the field value. If the latter, the array key should be the field name while the array value should be the corresponding field definition which can be either an object property name or a PHP callable returning the corresponding field value. The signature of the callable should be:

function ($model, $field) {
    // return field value
}

For example, the following code declares four fields:

  • email: the field name is the same as the property name email;
  • firstName and lastName: the field names are firstName and lastName, and their values are obtained from the first_name and last_name properties;
  • fullName: the field name is fullName. Its value is obtained by concatenating first_name and last_name.
return [
    'email',
    'firstName' => 'first_name',
    'lastName' => 'last_name',
    'fullName' => function ($model) {
        return $model->first_name . ' ' . $model->last_name;
    },
];
public array fields ( )
return array

The list of field names or field definitions.

                public function fields()
{
    return $this->resolveGetterMethods();
}

            
getAdditionalType() public method
public string getAdditionalType ( )

                public function getAdditionalType()
{
    return $this->_additionalType;
}

            
getAlternateName() public method
public string getAlternateName ( )

                public function getAlternateName()
{
    return $this->_alternateName;
}

            
getContentUrl() public method

Defined in: luya\web\jsonld\MediaObjectTrait::getContentUrl()

Getter method for contentUrl.

public void getContentUrl ( )

                public function getContentUrl()
{
    return $this->_contentUrl;
}

            
getDescription() public method
public string getDescription ( )

                public function getDescription()
{
    return $this->_description;
}

            
getDisambiguatingDescription() public method
public string getDisambiguatingDescription ( )

                public function getDisambiguatingDescription()
{
    return $this->_disambiguatingDescription;
}

            
getEmbedUrl() public method

Defined in: luya\web\jsonld\MediaObjectTrait::getEmbedUrl()

Getter method for embedUrl.

public void getEmbedUrl ( )

                public function getEmbedUrl()
{
    return $this->_embedUrl;
}

            
getIdentifier() public method
public luya\web\jsonld\PropertyValue getIdentifier ( )

                public function getIdentifier()
{
    return $this->_identifier;
}

            
getImage() public method
public luya\web\jsonld\ImageObject getImage ( )

                public function getImage()
{
    return $this->_image;
}

            
getMainEntityOfPage() public method
public luya\web\jsonld\CreativeWork getMainEntityOfPage ( )

                public function getMainEntityOfPage()
{
    return $this->_mainEntityOfPage;
}

            
getName() public method
public string getName ( )

                public function getName()
{
    return $this->_name;
}

            
getOffers() public method (available since version 1.2.2)
public luya\web\jsonld\Offer getOffers ( )

                public function getOffers()
{
    return $this->_offers;
}

            
getSameAs() public method
public string getSameAs ( )

                public function getSameAs()
{
    return $this->_sameAs;
}

            
getSubjectOf() public method
public luya\web\jsonld\CreativeWork|luya\web\jsonld\Event getSubjectOf ( )

                public function getSubjectOf()
{
    return $this->_subjectOf;
}

            
getUploadDate() public method

Defined in: luya\web\jsonld\MediaObjectTrait::getUploadDate()

Getter method for uploadDate.

public void getUploadDate ( )

                public function getUploadDate()
{
    return $this->_uploadDate;
}

            
getUrl() public method
public string getUrl ( )

                public function getUrl()
{
    return $this->_url;
}

            
hasMethod() public method

Defined in: yii\base\BaseObject::hasMethod()

Returns a value indicating whether a method is defined.

The default implementation is a call to php function method_exists(). You may override this method when you implemented the php magic method __call().

public boolean hasMethod ( $name )
$name string

The method name

return boolean

Whether the method is defined

                public function hasMethod($name)
{
    return method_exists($this, $name);
}

            
hasProperty() public method

Defined in: yii\base\BaseObject::hasProperty()

Returns a value indicating whether a property is defined.

A property is defined if:

  • the class has a getter or setter method associated with the specified name (in this case, property name is case-insensitive);
  • the class has a member variable with the specified name (when $checkVars is true);

See also:

public boolean hasProperty ( $name, $checkVars true )
$name string

The property name

$checkVars boolean

Whether to treat member variables as properties

return boolean

Whether the property is defined

                public function hasProperty($name, $checkVars = true)
{
    return $this->canGetProperty($name, $checkVars) || $this->canSetProperty($name, false);
}

            
init() public method

Defined in: yii\base\BaseObject::init()

Initializes the object.

This method is invoked at the end of the constructor after the object is initialized with the given configuration.

public void init ( )

                public function init()
{
}

            
resolveFields() protected method

Defined in: yii\base\ArrayableTrait::resolveFields()

Determines which fields can be returned by toArray().

This method will first extract the root fields from the given fields. Then it will check the requested root fields against those declared in fields() and extraFields() to determine which fields can be returned.

protected array resolveFields ( array $fields, array $expand )
$fields array

The fields being requested for exporting

$expand array

The additional fields being requested for exporting

return array

The list of fields to be exported. The array keys are the field names, and the array values are the corresponding object property names or PHP callables returning the field values.

                protected function resolveFields(array $fields, array $expand)
{
    $fields = $this->extractRootFields($fields);
    $expand = $this->extractRootFields($expand);
    $result = [];
    foreach ($this->fields() as $field => $definition) {
        if (is_int($field)) {
            $field = $definition;
        }
        if (empty($fields) || in_array($field, $fields, true)) {
            $result[$field] = $definition;
        }
    }
    if (empty($expand)) {
        return $result;
    }
    foreach ($this->extraFields() as $field => $definition) {
        if (is_int($field)) {
            $field = $definition;
        }
        if (in_array($field, $expand, true)) {
            $result[$field] = $definition;
        }
    }
    return $result;
}

            
resolveGetterMethods() public method

Defined in: luya\web\jsonld\BaseThing::resolveGetterMethods()

Find all getter methods.

public array resolveGetterMethods ( )

                public function resolveGetterMethods()
{
    $resolved = [];
    $methods = get_class_methods($this);
    
    if (!$methods) {
        return [];
    }
    
    foreach ($methods as $method) {
        if (StringHelper::startsWith($method, 'get', true)) {
            $resolved[] = lcfirst(StringHelper::replaceFirst('get', '', $method));
        }
    }
    
    asort($resolved);
    
    return $resolved;
}

            
setAdditionalType() public method

Defined in: luya\web\jsonld\ThingTrait::setAdditionalType()

An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax.

This is a relationship between something and a class that the thing is in.

public static setAdditionalType ( luya\web\jsonld\UrlValue $additionalType )
$additionalType string

                public function setAdditionalType(UrlValue $additionalType)
{
    $this->_additionalType = $additionalType->getValue();
    return $this;
}

            
setAlternateName() public method

Defined in: luya\web\jsonld\ThingTrait::setAlternateName()

An alias for the item

public static setAlternateName ( $alternateName )
$alternateName string

                public function setAlternateName($alternateName)
{
    $this->_alternateName = $alternateName;
    return $this;
}

            
setContentUrl() public method

Defined in: luya\web\jsonld\MediaObjectTrait::setContentUrl()

Actual bytes of the media object, for example the image file or video file.

public static setContentUrl ( luya\web\jsonld\UrlValue $url )
$url luya\web\jsonld\UrlValue

                public function setContentUrl(UrlValue $url)
{
    $this->_contentUrl = $url->getValue();
    return $this;
}

            
setDescription() public method

Defined in: luya\web\jsonld\ThingTrait::setDescription()

A description of the item.

public static setDescription ( $description )
$description string

                public function setDescription($description)
{
    $this->_description = $description;
    return $this;
}

            
setDisambiguatingDescription() public method

Defined in: luya\web\jsonld\ThingTrait::setDisambiguatingDescription()

A sub property of description. A short description of the item used to disambiguate from other, similar items.

Information from other properties (in particular, name) may be necessary for the description to be useful for disambiguation.

public static setDisambiguatingDescription ( $disambiguatingDescription )
$disambiguatingDescription string

                public function setDisambiguatingDescription($disambiguatingDescription)
{
    $this->_disambiguatingDescription = $disambiguatingDescription;
    return $this;
}

            
setEmbedUrl() public method

Defined in: luya\web\jsonld\MediaObjectTrait::setEmbedUrl()

A URL pointing to a player for a specific video. In general, this is the information in the src element of an embed tag and should not be the same as the content of the loc tag.

public static setEmbedUrl ( luya\web\jsonld\UrlValue $url )
$url luya\web\jsonld\UrlValue

                public function setEmbedUrl(UrlValue $url)
{
    $this->_embedUrl = $url->getValue();
}

            
setIdentifier() public method

Defined in: luya\web\jsonld\ThingTrait::setIdentifier()

The identifier property represents any kind of identifier for any kind of Thing, such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See background notes for more details.

public static setIdentifier ( luya\web\jsonld\PropertyValue $identifier )
$identifier luya\web\jsonld\PropertyValue

                public function setIdentifier(PropertyValue $identifier)
{
    $this->_identifier = $identifier;
    return $this;
}

            
setImage() public method

Defined in: luya\web\jsonld\ThingTrait::setImage()

An image of the item.

This can be a URL or a fully described ImageObject.

public static setImage ( luya\web\jsonld\ImageObject $image )
$image luya\web\jsonld\ImageObject

                public function setImage(ImageObject $image)
{
    $this->_image = $image;
    return $this;
}

            
setMainEntityOfPage() public method

Defined in: luya\web\jsonld\ThingTrait::setMainEntityOfPage()

Indicates a page (or other CreativeWork) for which this thing is the main entity being described.

Inverse property: mainEntity.

public static setMainEntityOfPage ( luya\web\jsonld\CreativeWork $mainEntityOfPage )
$mainEntityOfPage luya\web\jsonld\CreativeWork

                public function setMainEntityOfPage(CreativeWork $mainEntityOfPage)
{
    $this->_mainEntityOfPage = $mainEntityOfPage;
    return $this;
}

            
setName() public method

Defined in: luya\web\jsonld\ThingTrait::setName()

The name of the item.

public static setName ( $name )
$name string

                public function setName($name)
{
    $this->_name = $name;
    return $this;
}

            
setOffers() public method
public static setOffers ( luya\web\jsonld\Offer $offers )
$offers

                public function setOffers(Offer $offers)
{
    $this->_offers = $offers;
    return $this;
}

            
setSameAs() public method

Defined in: luya\web\jsonld\ThingTrait::setSameAs()

URL of a reference Web page that unambiguously indicates the item's identity.

E.g. the URL of the item's Wikipedia page, Wikidata entry, or official website.

public static setSameAs ( luya\web\jsonld\UrlValue $sameAs )
$sameAs luya\web\jsonld\UrlValue

                public function setSameAs(UrlValue $sameAs)
{
    $this->_sameAs = $sameAs->getValue();
    return $this;
}

            
setSubjectOf() public method

Defined in: luya\web\jsonld\ThingTrait::setSubjectOf()

A CreativeWork or Event about this Thing.

Inverse property: about.

public static setSubjectOf ( $subjectOf )
$subjectOf luya\web\jsonld\CreativeWork|luya\web\jsonld\Event

                public function setSubjectOf($subjectOf)
{
    $this->_subjectOf = $subjectOf;
    return $this;
}

            
setUploadDate() public method

Defined in: luya\web\jsonld\MediaObjectTrait::setUploadDate()

Date when this media object was uploaded to this site.

public static setUploadDate ( luya\web\jsonld\DateValue $date )
$date luya\web\jsonld\DateValue

                public function setUploadDate(DateValue $date)
{
    $this->_uploadDate = $date->getValue();
    return $this;
}

            
setUrl() public method

Defined in: luya\web\jsonld\ThingTrait::setUrl()

URL of the item.

public static setUrl ( luya\web\jsonld\UrlValue $url )
$url luya\web\jsonld\UrlValue

                public function setUrl(UrlValue $url)
{
    $this->_url = $url->getValue();
    return $this;
}

            
toArray() public method

Defined in: luya\web\jsonld\BaseThing::toArray()

Converts the object into an array.

public array toArray ( array $fields = [], array $expand = [], $recursive true )
$fields array

The fields that the output array should contain. Fields not specified in fields() will be ignored. If this parameter is empty, all fields as specified in fields() will be returned.

$expand array

The additional fields that the output array should contain. Fields not specified in extraFields() will be ignored. If this parameter is empty, no extra fields will be returned.

$recursive boolean

Whether to recursively return array representation of embedded objects.

return array

The array representation of the object

                public function toArray(array $fields = [], array $expand = [], $recursive = true)
{
    $array = $this->removeEmptyValues($this->internalToArray($fields, $expand, $recursive));
    
    if ($this->typeDefintion()) {
        $array['@type'] = $this->typeDefintion();
    }
    
    return $array;
}

            
typeDefintion() public method

Contains the jsonLd definton @type value if not null or false.

public boolean|string typeDefintion ( )
return boolean|string

Generates the @type field.

                public function typeDefintion()
{
    return 'MediaObject';
}