관리-도구
편집 파일: IOSInfo.php
<?php declare(strict_types=1); namespace Kreait\Firebase\DynamicLink; use JsonSerializable; /** * @phpstan-type IOSInfoShape array{ * iosBundleId?: non-empty-string, * iosFallbackLink?: non-empty-string, * iosCustomScheme?: non-empty-string, * iosIpadFallbackLink?: non-empty-string, * iosIpadBundleId?: non-empty-string, * iosAppStoreId?: non-empty-string * } */ final class IOSInfo implements JsonSerializable { /** * @param IOSInfoShape $data */ private function __construct(private readonly array $data) { } /** * @param IOSInfoShape $data */ public static function fromArray(array $data): self { return new self($data); } public static function new(): self { return new self([]); } /** * The bundle ID of the iOS app to use to open the link. The app must be connected to your project from the * Overview page of the Firebase console. Required for the Dynamic Link to open an iOS app. * * @param non-empty-string $bundleId */ public function withBundleId(string $bundleId): self { $data = $this->data; $data['iosBundleId'] = $bundleId; return new self($data); } /** * The link to open when the app isn't installed. Specify this to do something other than install your app from the * App Store when the app isn't installed, such as open the mobile web version of the content, or display a * promotional page for your app. * * @param non-empty-string $fallbackLink */ public function withFallbackLink(string $fallbackLink): self { $data = $this->data; $data['iosFallbackLink'] = $fallbackLink; return new self($data); } /** * Your app's custom URL scheme, if defined to be something other than your app's bundle ID. * * @param non-empty-string $customScheme */ public function withCustomScheme(string $customScheme): self { $data = $this->data; $data['iosCustomScheme'] = $customScheme; return new self($data); } /** * The link to open on iPads when the app isn't installed. Specify this to do something other than install your * app from the App Store when the app isn't installed, such as open the web version of the content, or * display a promotional page for your app. * * @param non-empty-string $ipadFallbackLink */ public function withIPadFallbackLink(string $ipadFallbackLink): self { $data = $this->data; $data['iosIpadFallbackLink'] = $ipadFallbackLink; return new self($data); } /** * The bundle ID of the iOS app to use on iPads to open the link. The app must be connected to your project from * the Overview page of the Firebase console. * * @param non-empty-string $iPadBundleId */ public function withIPadBundleId(string $iPadBundleId): self { $data = $this->data; $data['iosIpadBundleId'] = $iPadBundleId; return new self($data); } /** * Your app's App Store ID, used to send users to the App Store when the app isn't installed. * * @param non-empty-string $appStoreId */ public function withAppStoreId(string $appStoreId): self { $data = $this->data; $data['iosAppStoreId'] = $appStoreId; return new self($data); } public function jsonSerialize(): array { return $this->data; } }