Skip to content

Stage 0.1.3

Choose a tag to compare

@skyyware skyyware released this 03 Oct 09:57
· 1 commit to main since this release

Stage now validates native PHP uploads and streams file attachments without buffering the payload. Existing buffered responses and route return types remain compatible.

composer require skyyware/stage:0.1.3
  • UploadedFile::fromPhp checks one native upload, actual byte length, metadata, and PHP upload errors. It returns the temporary path, client basename, and byte size.
  • FileResponse sends an attachment in 64 KiB chunks, with UTF-8 filenames, computed length, HEAD support, and application headers.
  • The documentation includes a runnable file-transfer guide and Composer-first application setup.

Validation on PHP 8.4.26: Composer metadata, PHPStan, 36 PHPUnit tests with 176 assertions, and Deptrac pass. Real HTTP tests transfer 64 MiB under a 16 MiB PHP memory limit. A separate boundary check transfers 250,000,000 bytes, verifies the download hash, and rejects a 250,000,001-byte upload with 413. The upload reported a 2 MiB PHP heap peak; this is not a total-process-memory or load-capacity measurement.

No new production dependencies or consumer migration. PHP/server multipart limits remain separate from the raw request-body limit. Applications own access, storage, quotas, and retention. Keep files unchanged during delivery and configure output buffering/compression for streaming. Range, resume, and arbitrary response streams are not implemented.