Skip to content

PKPassBundle

Raxos\Wallet\Apple\PKPassBundle groups multiple signed PKPass instances into a single .pkpasses archive.

php
final readonly class PKPassBundle

Constructor

php
public function __construct(
    public string $fileName
)

Opens an internal Archive for the bundle. $fileName is the download name used by respond().

Methods

add(PKPass $pass): void

Appends an already signed PKPass by reading its binary() output into the archive under the pass file name. Sign and close the pass before adding it.

binary(): string

Returns the raw bytes of the bundle archive.

close(): void

Finalizes the zip.

delete(): void

Removes the underlying temporary file.

respond(): HttpResponse

Returns an HttpResponse with the application/vnd.apple.pkpasses content type and a Content-Disposition: attachment header using fileName.

Example

php
<?php
declare(strict_types=1);

use Raxos\Wallet\Apple\PKPassBundle;

$bundle = new PKPassBundle('tickets.pkpasses');

foreach ($passes as $pkpass) {
    $pkpass->sign();
    $pkpass->close();

    $bundle->add($pkpass);
}

$bundle->close();

return $bundle->respond();

See also