makinacorpus/filechunk-bundle
A Symfony bundle for reliable chunked file uploads: large files are split into smaller parts on the client and reassembled server-side, helping you bypass upload size limits and handle big transfers with Symfony forms and storage.
Architecture fit — Poor, unchanged. makinacorpus/filechunk-bundle remains a Symfony bundle, not a Laravel package, and a 2.0 line does not alter that: the integration surface is still an HttpKernel bundle class, a DI extension, a Symfony Form type, Twig templates, and a bundled JS chunking widget. Laravel has no bundle registry, no Form component, and no Twig by default. The Form type — the package's primary value proposition — still has no Laravel analogue. The new directory-listing feature adds a controller/route surface, which if anything deepens the Symfony HttpKernel coupling rather than reducing it.
Integration feasibility — Low as-is, moderate if reduced to a reference implementation. Of the three assets in the package — (1) the client-side chunking widget, (2) server-side chunk assembly logic, (3) Symfony Form/DI plumbing — only (2) has portable value, and that assessment is unchanged by this release. Porting remains ~5–8 engineer-days against ~3–5 days to build chunked upload natively on a maintained foundation. The alpha release does not improve portability; it adds new server-side surface (directory listing) that we would have to either port or explicitly strip, increasing scope.
Technical risk — Still High, but the axes have shifted. The prior assessment's single largest objection — a dead project — is now materially weakened; two objections are unchanged; one is new.
2.0.0-alpha11 implies sustained development and, by implication, a modernized PHP/Symfony baseline (a major bump from a 2019-era 1.x almost certainly drops PHP 5.6/7.x and Symfony 2/3 constraints). However, alpha11 means eleven pre-release iterations and no stable API. We would be pinning a moving target. Adopting an alpha upload path means upgrade churn, undocumented breaking changes between alphas, and no semver guarantee — for a component that gates customer data ingestion. "Actively developed" and "safe to depend on" are not the same claim.Key questions
upload_max_filesize tuning suffice? (Unchanged — still the highest-leverage question, and still the one most likely to make this entire evaluation moot.)alpha11 close to RC, or is this the start of a long series?pion/laravel-chunk-upload, Uppy + Companion, or the tus protocol.Stack fit — Mismatched at every layer, unchanged. Symfony HttpKernel, DI semantics, Form component, Twig, jQuery. A compatibility shim remains technically possible and remains a bad trade: a permanent dual-framework seam for one feature. The 2.0 modernization, if it modernizes toward Symfony 6/7, moves the package further from Laravel's idioms, not closer.
Migration path — Do not install the bundle. Treat it as reference material only, and now with slightly better reference value since the 2.0 code is presumably modern PHP:
POST /uploads/{id}/chunks/{index}), idempotent by chunk hash, assembling via S3 multipart upload where possible — S3 multipart removes the assembly loop entirely.Compatibility — Improved on paper: 2.0 almost certainly targets a supported PHP/Symfony baseline, removing the EOL-runtime objection that was previously decisive. But that improvement accrues to Symfony consumers, not to us. For Laravel, the forward-compatibility problem is unchanged, and it is now compounded by an unstable pre-release API. There is still no path that does not involve either a fork or a rewrite.
Sequencing
Maintenance — Better than the prior read, but not good enough to change the decision. The project is alive, which removes the "unbounded orphaned-code obligation" framing — we would at least have an upstream to track. But upstream is an alpha series: no stability guarantee, no LTS, breaking changes plausible between alpha11 and alpha12. A fork is still strictly worse — GPL obligations plus the burden of rebasing against a moving pre-release upstream. A native/alternative implementation remains ordinary product code we already know how to maintain.
Support — Marginally improved via an active maintainer, but still effectively none. No evidence of downstream adoption means no Stack Overflow corpus, no issue history to mine, no vendor. Every incident remains first-principles debugging. For a feature that gates customer data ingestion, that is still an unacceptable support posture — and "the maintainer is active on GitHub" is not a support contract.
Scaling — Unchanged and still the sharpest architectural objection. The package's model assumes local temp storage for chunk parts: multi-node deployments need sticky sessions or a shared volume, and horizontal autoscaling breaks silently. The 2.0 directory-listing feature does nothing to address this and may add another filesystem-coupled read path. Contrast with S3 multipart / tus, which are stateless per-request and scale horizontally by construction. Reassembly still concentrates memory and disk I/O on the app tier.
Failure modes
composer update. The runtime-incompatibility failure mode from PHP 5.6/7.x is likely retired by 2.0 — that specific risk is genuinely reduced.Ramp-up — Deceptively low for a demo, deceptively high for production, and the gap is now wider rather than narrower: the code is modern enough to look trustworthy at a glance, while the alpha status, absent community validation, and new listing surface mean the hardening work is not smaller than it was. The knowledge required to harden it is still exactly the knowledge required to rewrite it. Recommendation: reject — unchanged in direction, updated in reasoning. The project is no longer dead, which removes the strongest single argument against it, but that argument is replaced by "pre-release, unvalidated, GPL, wrong framework." Build on a maintained primitive; the effort delta remains near zero and the risk reduction substantial. Revisit only on a 2.0.0 stable release with Legal clearance.
How can I help you explore Laravel packages today?