|
19 | 19 | * count: int, |
20 | 20 | * tags: array<string>, |
21 | 21 | * } |
| 22 | + * @phpstan-type SdkPackageEntry array{ |
| 23 | + * name: string, |
| 24 | + * version: string, |
| 25 | + * } |
22 | 26 | */ |
23 | 27 | final class Event |
24 | 28 | { |
@@ -174,6 +178,16 @@ final class Event |
174 | 178 | */ |
175 | 179 | private $sdkVersion = Client::SDK_VERSION; |
176 | 180 |
|
| 181 | + /** |
| 182 | + * @var SdkPackageEntry[] The Sentry SDK packages |
| 183 | + */ |
| 184 | + private $sdkPackages = [ |
| 185 | + [ |
| 186 | + 'name' => 'composer:sentry/sentry', |
| 187 | + 'version' => Client::SDK_VERSION, |
| 188 | + ], |
| 189 | + ]; |
| 190 | + |
177 | 191 | /** |
178 | 192 | * @var EventType The type of the Event |
179 | 193 | */ |
@@ -276,6 +290,40 @@ public function setSdkVersion(string $sdkVersion): self |
276 | 290 | return $this; |
277 | 291 | } |
278 | 292 |
|
| 293 | + /** |
| 294 | + * Append a package to the list of SDK packages. |
| 295 | + * |
| 296 | + * @param SdkPackageEntry $package The package to append |
| 297 | + * |
| 298 | + * @return $this |
| 299 | + * |
| 300 | + * @internal |
| 301 | + */ |
| 302 | + public function appendSdkPackage(array $package): self |
| 303 | + { |
| 304 | + $this->sdkPackages[] = $package; |
| 305 | + |
| 306 | + return $this; |
| 307 | + } |
| 308 | + |
| 309 | + /** |
| 310 | + * Gets the SDK playload that will be sent to Sentry. |
| 311 | + * |
| 312 | + * @see https://develop.sentry.dev/sdk/data-model/event-payloads/sdk/ |
| 313 | + * |
| 314 | + * @return array{name: string, version: string, packages: SdkPackageEntry[]} |
| 315 | + * |
| 316 | + * @internal |
| 317 | + */ |
| 318 | + public function getSdkPayload(): array |
| 319 | + { |
| 320 | + return [ |
| 321 | + 'name' => $this->sdkIdentifier, |
| 322 | + 'version' => $this->sdkVersion, |
| 323 | + 'packages' => $this->sdkPackages, |
| 324 | + ]; |
| 325 | + } |
| 326 | + |
279 | 327 | /** |
280 | 328 | * Gets the timestamp of when this event was generated. |
281 | 329 | */ |
|
0 commit comments