Oihana PHP System

ThingTrait uses \oihana\reflections\traits\ReflectionTrait

Trait ThingTrait

Provides common behavior for schema.org entities, including:

  • Object hydration from array or object
  • Automatic JSON-LD serialization
  • Integration with internal reflection tools

Used by all entities extending org\schema\Thing.

Table of Contents

Constants

CONTEXT  = 'https://schema.org'
JSON-LD @context declaration for Schema.org.

Methods

__construct()  : mixed
Constructor to hydrate public properties from an array or stdClass.
jsonSerialize()  : array<string|int, mixed>
Serializes the current object into a JSON-LD array.

Constants

CONTEXT

JSON-LD @context declaration for Schema.org.

public mixed CONTEXT = 'https://schema.org'

Methods

__construct()

Constructor to hydrate public properties from an array or stdClass.

public __construct([array<string|int, mixed>|object|null $init = null ]) : mixed

This allows objects to be quickly populated with associative data without manually setting each property.

Parameters
$init : array<string|int, mixed>|object|null = null

A data array or object used to initialize the instance. Keys must match public property names.

Tags
example
use org\schema\Person;
use org\schema\constants\Prop;

$person = new Person
([
    Prop::NAME => 'Jane Doe',
    Prop::URL  => 'https://example.com/janedoe'
]);

echo $person->name; // Outputs: Jane Doe

jsonSerialize()

Serializes the current object into a JSON-LD array.

public jsonSerialize() : array<string|int, mixed>

This method will include all public properties, the schema.org @context, and the inferred @type based on the class name.

Null values will be automatically removed using compress().

Tags
throws
ReflectionException

If reflection fails when accessing properties.

example
use org\schema\Person;
use org\schema\constants\Prop;

$person = new Person([
    Prop::NAME => 'John Smith',
    Prop::ID   => 'jsmith-001'
]);

echo json_encode($person, JSON_PRETTY_PRINT);

Output:

{
  "@type": "Person",
  "@context": "https://schema.org",
  "id": "jsmith-001",
  "name": "John Smith"
}
Return values
array<string|int, mixed>

A JSON-LD array representation of the object.


        
On this page

Search results