Repository navigation
Stage 0.1.3
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.3UploadedFile::fromPhpchecks one native upload, actual byte length, metadata, and PHP upload errors. It returns the temporary path, client basename, and byte size.FileResponsesends 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.