PluginProbe
ActivityPub / 5.3.1
ActivityPub v5.3.1
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 +10 -241 8.2.1 → 5.3.1 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 *
@@ -21,99 +19,8 @@
21 19 * Note: Object is a reserved keyword in PHP. It has been suffixed with
22 20 * 'Base_' for this reason.
23 21 *
24 22 * @see https://www.w3.org/TR/activitystreams-core/#object
25 - *
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.
69 - *
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.
72 - *
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.
116 23 */
117 24 class Base_Object extends Generic_Object {
118 25 /**
119 26 * The JSON-LD context for the object.
@@ -122,73 +29,14 @@
122 29 */
123 30 const JSON_LD_CONTEXT = array(
124 31 'https://www.w3.org/ns/activitystreams',
125 32 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 - ),
33 + 'Hashtag' => 'as:Hashtag',
34 + 'sensitive' => 'as:sensitive',
165 35 ),
166 36 );
167 37
168 38 /**
169 - * The default types for Objects.
170 - *
171 - * @see https://www.w3.org/TR/activitystreams-vocabulary/#object-types
172 - *
173 - * @var array
174 - */
175 - const TYPES = array(
176 - 'Article',
177 - 'Audio',
178 - 'Document',
179 - 'Event',
180 - 'Image',
181 - 'Note',
182 - 'Page',
183 - 'Place',
184 - 'Profile',
185 - 'Relationship',
186 - 'Tombstone',
187 - 'Video',
188 - );
189 -
190 - /**
191 39 * The type of the object.
192 40 *
193 41 * @var string
194 42 */
@@ -218,9 +66,9 @@
218 66 protected $attributed_to;
219 67
220 68 /**
221 69 * One or more entities that represent the total population of
222 - * entities for which the object can be considered to be relevant.
70 + * entities for which the object can considered to be relevant.
223 71 *
224 72 * @see https://www.w3.org/TR/activitystreams-vocabulary/#dfn-audience
225 73 *
226 74 * @var string|null
@@ -267,27 +115,8 @@
267 115 */
268 116 protected $content_map;
269 117
270 118 /**
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 119 * A simple, human-readable, plain-text name for the object.
291 120 * HTML markup MUST NOT be included.
292 121 *
293 122 * @see https://www.w3.org/TR/activitystreams-vocabulary/#dfn-name
@@ -363,9 +192,9 @@
363 192 * object.
364 193 *
365 194 * @see https://www.w3.org/TR/activitystreams-vocabulary/#dfn-location
366 195 *
367 - * @var string|null|Place
196 + * @var string|null
368 197 */
369 198 protected $location;
370 199
371 200 /**
@@ -500,11 +329,11 @@
500 329 protected $media_type;
501 330
502 331 /**
503 332 * When the object describes a time-bound resource, such as an audio
504 - * or video, a meeting, etc., the duration property indicates the
333 + * or video, a meeting, etc, the duration property indicates the
505 334 * object's approximate duration.
506 - * The value MUST be expressed as a xsd:duration as defined by
335 + * The value MUST be expressed as an xsd:duration as defined by
507 336 * xmlschema11-2, section 3.3.6 (e.g. a period of 5 seconds is
508 337 * represented as "PT5S").
509 338 *
510 339 * @see https://www.w3.org/TR/activitystreams-vocabulary/#dfn-duration
@@ -519,9 +348,9 @@
519 348 * future editing by clients.
520 349 *
521 350 * @see https://www.w3.org/TR/activitypub/#source-property
522 351 *
523 - * @var array|null
352 + * @var array
524 353 */
525 354 protected $source;
526 355
527 356 /**
@@ -539,9 +368,9 @@
539 368 * this object.
540 369 *
541 370 * @see https://www.w3.org/TR/activitypub/#likes
542 371 *
543 - * @var array|null
372 + * @var array
544 373 */
545 374 protected $likes;
546 375
547 376 /**
@@ -549,9 +378,9 @@
549 378 * this object.
550 379 *
551 380 * @see https://www.w3.org/TR/activitypub/#shares
552 381 *
553 - * @var array|null
382 + * @var array
554 383 */
555 384 protected $shares;
556 385
557 386 /**
@@ -560,71 +389,11 @@
560 389 * through to view the content.
561 390 *
562 391 * @see https://docs.joinmastodon.org/spec/activitypub/#sensitive
563 392 *
564 - * @var boolean|null
393 + * @var boolean
565 394 */
566 395 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 396
628 397 /**
629 398 * Generic getter.
630 399 *