PluginProbe
ActivityPub / 5.7.0
ActivityPub v5.7.0
9.3.1 9.3.0 9.2.2 9.2.1 9.2.0 9.1.0 9.0.2 9.0.1 9.0.0 8.3.0 8.2.1 8.2.0 8.1.1 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.2.0 1.3.0 2.0.0 2.0.1 2.1.0 2.1.1 All 160 releases
← All changes | includes/activity/class-base-object.php +50 -216 8.2.15.7.0 View file →
@@ -8,10 +8,8 @@
8 8 */
9 9
10 10 namespace Activitypub\Activity;
11 11
12 -use Activitypub\Activity\Extended_Object\Place;
13 -
14 12 /**
15 13 * Base_Object is an implementation of one of the
16 14 * Activity Streams Core Types.
17 15 *
@@ -22,98 +20,50 @@
22 20 * 'Base_' for this reason.
23 21 *
24 22 * @see https://www.w3.org/TR/activitystreams-core/#object
25 23 *
26 - * @method array|string|null get_attachment() Gets the attachment property of the object.
27 - * @method array|string|null get_attributed_to() Gets the entity attributed as the original author.
28 - * @method string|null get_audience() Gets the total population of entities for which the object can be considered relevant.
29 - * @method string[]|string|null get_bcc() Gets the private secondary audience of the object.
30 - * @method string[]|string|null get_bto() Gets the private primary audience of the object.
31 - * @method string[]|string|null get_cc() Gets the secondary recipients of the object.
32 - * @method string|null get_content() Gets the content property of the object.
33 - * @method string[]|null get_content_map() Gets the content map property of the object.
34 - * @method string|null get_context() Gets the context within which the object exists.
35 - * @method array|null get_dcterms() Gets the Dublin Core terms property of the object.
36 - * @method string|null get_duration() Gets the duration property of time-bound resources.
37 - * @method string|null get_end_time() Gets the date and time describing the ending time of the object.
38 - * @method string|null get_generator() Gets the entity that generated the object.
39 - * @method string[]|null get_icon() Gets the icon property of the object.
40 - * @method string|null get_id() Gets the object's unique global identifier.
41 - * @method string[]|null get_image() Gets the image property of the object.
42 - * @method string[]|string|null get_in_reply_to() Gets the objects this object is in reply to.
43 - * @method array|null get_interaction_policy() Gets the interaction policy property of the object.
44 - * @method array|null get_likes() Gets the collection of likes for this object.
45 - * @method array|string|null|Place get_location() Gets the physical or logical locations associated with the object.
46 - * @method string|null get_media_type() Gets the MIME media type of the content property.
47 - * @method string|null get_name() Gets the natural language name of the object.
48 - * @method string[]|null get_name_map() Gets the name map property of the object.
49 - * @method string|null get_preview() Gets the entity that provides a preview of this object.
50 - * @method string|null get_published() Gets the date and time the object was published in ISO 8601 format.
51 - * @method string|null get_quote() Gets the quote property of the object (FEP-044f).
52 - * @method string|null get_quote_url() Gets the quoteUrl property of the object.
53 - * @method string|null get_quote_uri() Gets the quoteUri property of the object.
54 - * @method string|null get__misskey_quote() Gets the _misskey_quote property of the object.
55 - * @method string|array|null get_replies() Gets the collection of responses to this object.
56 - * @method bool|null get_sensitive() Gets the sensitive property of the object.
57 - * @method array|null get_shares() Gets the collection of shares for this object.
58 - * @method array|null get_source() Gets the source property indicating content markup derivation.
59 - * @method string|null get_start_time() Gets the date and time describing the starting time of the object.
60 - * @method string|null get_summary() Gets the natural language summary of the object.
61 - * @method string[]|null get_summary_map() Gets the summary map property of the object.
62 - * @method array[]|null get_tag() Gets the tag property of the object.
63 - * @method string[]|string|null get_to() Gets the primary recipients of the object.
64 - * @method string get_type() Gets the type of the object.
65 - * @method string|null get_updated() Gets the date and time the object was updated in ISO 8601 format.
66 - * @method string|null get_url() Gets the URL of the object.
67 - * @method string|null get_former_type() Gets the former type of a Tombstone object.
68 - * @method string|null get_deleted() Gets the date and time the object was deleted in ISO 8601 format.
24 + * @method string|null get_actor() Gets one or more entities that performed or are expected to perform the activity.
25 + * @method string|null get_attributed_to() Gets the entity attributed as the original author.
26 + * @method array|null get_attachment() Gets the attachment property of the object.
27 + * @method array|null get_cc() Gets the secondary recipients of the object.
28 + * @method string|null get_content() Gets the content property of the object.
29 + * @method array|null get_icon() Gets the icon property of the object.
30 + * @method string|null get_id() Gets the object's unique global identifier.
31 + * @method array|null get_image() Gets the image property of the object.
32 + * @method array|string|null get_in_reply_to() Gets the objects this object is in reply to.
33 + * @method string|null get_name() Gets the natural language name of the object.
34 + * @method Base_Object|string|null get_object() Gets the direct object of the activity.
35 + * @method string|null get_published() Gets the date and time the object was published in ISO 8601 format.
36 + * @method string|null get_summary() Gets the natural language summary of the object.
37 + * @method array|null get_tag() Gets the tag property of the object.
38 + * @method array|string|null get_to() Gets the primary recipients of the object.
39 + * @method string get_type() Gets the type of the object.
40 + * @method string|null get_updated() Gets the date and time the object was updated in ISO 8601 format.
41 + * @method string|null get_url() Gets the URL of the object.
69 42 *
70 - * @method string|string[] add_cc( string|array $cc ) Adds one or more entities to the secondary audience of the object.
71 - * @method string|string[] add_to( string|array $to ) Adds one or more entities to the primary audience of the object.
43 + * @method string|array add_cc( string|array $cc ) Adds one or more entities to the secondary audience of the object.
44 + * @method string|array add_to( string|array $to ) Adds one or more entities to the primary audience of the object.
72 45 *
73 - * @method Base_Object set_attachment( array $attachment ) Sets the attachment property of the object.
74 - * @method Base_Object set_attributed_to( string $attributed_to ) Sets the entity attributed as the original author.
75 - * @method Base_Object set_audience( string $audience ) Sets the total population of entities for which the object can be considered relevant.
76 - * @method Base_Object set_bcc( array|string $bcc ) Sets the private secondary audience of the object.
77 - * @method Base_Object set_bto( array|string $bto ) Sets the private primary audience of the object.
78 - * @method Base_Object set_cc( array|string $cc ) Sets the secondary recipients of the object.
79 - * @method Base_Object set_content( string $content ) Sets the content property of the object.
80 - * @method Base_Object set_content_map( array $content_map ) Sets the content property of the object.
81 - * @method Base_Object set_context( string $context ) Sets the context within which the object exists.
82 - * @method Base_Object set_dcterms( array $dcterms ) Sets the Dublin Core terms property of the object.
83 - * @method Base_Object set_duration( string $duration ) Sets the duration property of time-bound resources.
84 - * @method Base_Object set_end_time( string $end_time ) Sets the date and time describing the ending time of the object.
85 - * @method Base_Object set_generator( string $generator ) Sets the entity that generated the object.
86 - * @method Base_Object set_icon( array $icon ) Sets the icon property of the object.
87 - * @method Base_Object set_id( string $id ) Sets the object's unique global identifier.
88 - * @method Base_Object set_image( array $image ) Sets the image property of the object.
89 - * @method Base_Object set_in_reply_to( string|string[] $in_reply_to ) Sets the is in reply to property of the object.
90 - * @method Base_Object set_interaction_policy( array|null $policy ) Sets the interaction policy property of the object.
91 - * @method Base_Object set_likes( array $likes ) Sets the collection of likes for this object.
92 - * @method Base_Object set_location( array|string|Place $location ) Sets the physical or logical locations associated with the object.
93 - * @method Base_Object set_media_type( string $media_type ) Sets the MIME media type of the content property.
94 - * @method Base_Object set_name( string $name ) Sets the natural language name of the object.
95 - * @method Base_Object set_name_map( array|null $name_map ) Sets the name map property of the object.
96 - * @method Base_Object set_preview( string $preview ) Sets the entity that provides a preview of this object.
97 - * @method Base_Object set_published( string|null $published ) Sets the date and time the object was published in ISO 8601 format.
98 - * @method Base_Object set_quote( string $quote ) Sets the quote property of the object (FEP-044f).
99 - * @method Base_Object set_quote_url( string $quote_url ) Sets the quoteUrl property of the object.
100 - * @method Base_Object set_quote_uri( string $quote_uri ) Sets the quoteUri property of the object.
101 - * @method Base_Object set__misskey_quote( mixed $misskey_quote ) Sets the _misskey_quote property of the object.
102 - * @method Base_Object set_replies( string|array $replies ) Sets the collection of responses to this object.
103 - * @method Base_Object set_sensitive( bool|null $sensitive ) Sets the sensitive property of the object.
104 - * @method Base_Object set_shares( array $shares ) Sets the collection of shares for this object.
105 - * @method Base_Object set_source( array $source ) Sets the source property indicating content markup derivation.
106 - * @method Base_Object set_start_time( string $start_time ) Sets the date and time describing the starting time of the object.
107 - * @method Base_Object set_summary( string $summary ) Sets the natural language summary of the object.
108 - * @method Base_Object set_summary_map( array|null $summary_map ) Sets the summary property of the object.
109 - * @method Base_Object set_tag( array|null $tag ) Sets the tag property of the object.
110 - * @method Base_Object set_to( string|string[] $to ) Sets the primary recipients of the object.
111 - * @method Base_Object set_type( string $type ) Sets the type of the object.
112 - * @method Base_Object set_updated( string $updated ) Sets the date and time the object was updated in ISO 8601 format.
113 - * @method Base_Object set_url( string $url ) Sets the URL of the object.
114 - * @method Base_Object set_former_type( string $former_type ) Sets the former type of a Tombstone object.
115 - * @method Base_Object set_deleted( string $deleted ) Sets the date and time the object was deleted in ISO 8601 format.
46 + * @method Base_Object set_actor( string|array $actor ) Sets one or more entities that performed the activity.
47 + * @method Base_Object set_attachment( array $attachment ) Sets the attachment property of the object.
48 + * @method Base_Object set_attributed_to( string $attributed_to ) Sets the entity attributed as the original author.
49 + * @method Base_Object set_cc( array|string $cc ) Sets the secondary recipients of the object.
50 + * @method Base_Object set_content( string $content ) Sets the content property of the object.
51 + * @method Base_Object set_content_map( array $content_map ) Sets the content property of the object.
52 + * @method Base_Object set_icon( array $icon ) Sets the icon property of the object.
53 + * @method Base_Object set_id( string $id ) Sets the object's unique global identifier.
54 + * @method Base_Object set_image( array $image ) Sets the image property of the object.
55 + * @method Base_Object set_name( string $name ) Sets the natural language name of the object.
56 + * @method Base_Object set_origin( string $origin ) Sets the origin property of the object.
57 + * @method Base_Object set_published( string $published ) Sets the date and time the object was published in ISO 8601 format.
58 + * @method Base_Object set_sensitive( bool $sensitive ) Sets the sensitive property of the object.
59 + * @method Base_Object set_summary( string $summary ) Sets the natural language summary of the object.
60 + * @method Base_Object set_summary_map( array|null $summary_map ) Sets the summary property of the object.
61 + * @method Base_Object set_target( string $target ) Sets the target property of the object.
62 + * @method Base_Object set_to( array|string $to ) Sets the primary recipients of the object.
63 + * @method Base_Object set_type( string $type ) Sets the type of the object.
64 + * @method Base_Object set_updated( string $updated ) Sets the date and time the object was updated in ISO 8601 format.
65 + * @method Base_Object set_url( string $url ) Sets the URL of the object.
116 66 */
117 67 class Base_Object extends Generic_Object {
118 68 /**
119 69 * The JSON-LD context for the object.
@@ -122,47 +72,10 @@
122 72 */
123 73 const JSON_LD_CONTEXT = array(
124 74 'https://www.w3.org/ns/activitystreams',
125 75 array(
126 - 'Hashtag' => 'as:Hashtag',
127 - 'sensitive' => 'as:sensitive',
128 - 'dcterms' => 'http://purl.org/dc/terms/',
129 - 'gts' => 'https://gotosocial.org/ns#',
130 - 'schema' => 'http://schema.org/',
131 - 'exifData' => 'schema:exifData',
132 - 'PropertyValue' => 'schema:PropertyValue',
133 - 'interactionPolicy' => array(
134 - '@id' => 'gts:interactionPolicy',
135 - '@type' => '@id',
136 - ),
137 - 'canQuote' => array(
138 - '@id' => 'gts:canQuote',
139 - '@type' => '@id',
140 - ),
141 - 'canReply' => array(
142 - '@id' => 'gts:canReply',
143 - '@type' => '@id',
144 - ),
145 - 'canLike' => array(
146 - '@id' => 'gts:canLike',
147 - '@type' => '@id',
148 - ),
149 - 'canAnnounce' => array(
150 - '@id' => 'gts:canAnnounce',
151 - '@type' => '@id',
152 - ),
153 - 'automaticApproval' => array(
154 - '@id' => 'gts:automaticApproval',
155 - '@type' => '@id',
156 - ),
157 - 'manualApproval' => array(
158 - '@id' => 'gts:manualApproval',
159 - '@type' => '@id',
160 - ),
161 - 'always' => array(
162 - '@id' => 'gts:always',
163 - '@type' => '@id',
164 - ),
76 + 'Hashtag' => 'as:Hashtag',
77 + 'sensitive' => 'as:sensitive',
165 78 ),
166 79 );
167 80
168 81 /**
@@ -218,9 +131,9 @@
218 131 protected $attributed_to;
219 132
220 133 /**
221 134 * One or more entities that represent the total population of
222 - * entities for which the object can be considered to be relevant.
135 + * entities for which the object can considered to be relevant.
223 136 *
224 137 * @see https://www.w3.org/TR/activitystreams-vocabulary/#dfn-audience
225 138 *
226 139 * @var string|null
@@ -267,27 +180,8 @@
267 180 */
268 181 protected $content_map;
269 182
270 183 /**
271 - * The date and time at which the object was deleted.
272 - *
273 - * @see https://www.w3.org/TR/activitystreams-vocabulary/#dfn-deleted
274 - *
275 - * @var string|null
276 - */
277 - protected $deleted;
278 -
279 - /**
280 - * The former type of the object. Used in Tombstone objects to
281 - * indicate the type of the object prior to deletion.
282 - *
283 - * @see https://www.w3.org/TR/activitystreams-vocabulary/#dfn-formertype
284 - *
285 - * @var string|null
286 - */
287 - protected $former_type;
288 -
289 - /**
290 184 * A simple, human-readable, plain-text name for the object.
291 185 * HTML markup MUST NOT be included.
292 186 *
293 187 * @see https://www.w3.org/TR/activitystreams-vocabulary/#dfn-name
@@ -363,9 +257,9 @@
363 257 * object.
364 258 *
365 259 * @see https://www.w3.org/TR/activitystreams-vocabulary/#dfn-location
366 260 *
367 - * @var string|null|Place
261 + * @var string|null
368 262 */
369 263 protected $location;
370 264
371 265 /**
@@ -500,11 +394,11 @@
500 394 protected $media_type;
501 395
502 396 /**
503 397 * When the object describes a time-bound resource, such as an audio
504 - * or video, a meeting, etc., the duration property indicates the
398 + * or video, a meeting, etc, the duration property indicates the
505 399 * object's approximate duration.
506 - * The value MUST be expressed as a xsd:duration as defined by
400 + * The value MUST be expressed as an xsd:duration as defined by
507 401 * xmlschema11-2, section 3.3.6 (e.g. a period of 5 seconds is
508 402 * represented as "PT5S").
509 403 *
510 404 * @see https://www.w3.org/TR/activitystreams-vocabulary/#dfn-duration
@@ -519,9 +413,9 @@
519 413 * future editing by clients.
520 414 *
521 415 * @see https://www.w3.org/TR/activitypub/#source-property
522 416 *
523 - * @var array|null
417 + * @var array
524 418 */
525 419 protected $source;
526 420
527 421 /**
@@ -539,9 +433,9 @@
539 433 * this object.
540 434 *
541 435 * @see https://www.w3.org/TR/activitypub/#likes
542 436 *
543 - * @var array|null
437 + * @var array
544 438 */
545 439 protected $likes;
546 440
547 441 /**
@@ -549,9 +443,9 @@
549 443 * this object.
550 444 *
551 445 * @see https://www.w3.org/TR/activitypub/#shares
552 446 *
553 - * @var array|null
447 + * @var array
554 448 */
555 449 protected $shares;
556 450
557 451 /**
@@ -560,71 +454,11 @@
560 454 * through to view the content.
561 455 *
562 456 * @see https://docs.joinmastodon.org/spec/activitypub/#sensitive
563 457 *
564 - * @var boolean|null
458 + * @var boolean
565 459 */
566 460 protected $sensitive;
567 -
568 - /**
569 - * The dcterms namespace.
570 - *
571 - * @see https://codeberg.org/fediverse/fep/src/branch/main/fep/b2b8/fep-b2b8.md#sensitive
572 - * @see https://www.dublincore.org/specifications/dublin-core/dcmi-terms/
573 - *
574 - * @var array|null
575 - */
576 - protected $dcterms;
577 -
578 - /**
579 - * Interaction policy is an attempt to limit the harmful effects of unwanted replies and
580 - * other interactions on a user's posts (e.g., "reply guys").
581 - *
582 - * It is also used by Mastodon to limit the ability to quote posts.
583 - *
584 - * @see https://docs.gotosocial.org/en/latest/federation/interaction_policy/
585 - * @see https://blog.joinmastodon.org/2025/09/introducing-quote-posts/
586 - *
587 - * @var array|null
588 - */
589 - protected $interaction_policy;
590 -
591 - /**
592 - * Fediverse Enhancement Proposal 044f: Quote Property
593 - *
594 - * @see https://codeberg.org/fediverse/fep/src/branch/main/fep/044f/fep-044f.md
595 - * @see https://w3id.org/fep/044f#quote
596 - *
597 - * @var string|null
598 - */
599 - protected $quote;
600 -
601 - /**
602 - * ActivityStreams quoteUrl property.
603 - *
604 - * @see https://www.w3.org/ns/activitystreams#quoteUrl
605 - *
606 - * @var string|null
607 - */
608 - protected $quote_url;
609 -
610 - /**
611 - * Fedibird-specific quoteUri property.
612 - *
613 - * @see https://fedibird.com/ns#quoteUri
614 - *
615 - * @var string|null
616 - */
617 - protected $quote_uri;
618 -
619 - /**
620 - * Misskey-specific quote property.
621 - *
622 - * @see https://misskey-hub.net/ns/#_misskey_quote
623 - *
624 - * @var string|null
625 - */
626 - protected $_misskey_quote; // phpcs:ignore PSR2.Classes.PropertyDeclaration.Underscore
627 461
628 462 /**
629 463 * Generic getter.
630 464 *