zendframework/zend-file
Zend File is a legacy Zend Framework component for working with files, offering file transfer adapters for HTTP and FTP uploads, filename filters, and validators for checking file size, extension, and MIME type.
Recommendation: do not adopt; if already present, plan removal. This package does not support any forward-looking product decision. It supports three defensive decisions:
| Capability needed | Native/supported option | zend-file? |
|---|---|---|
| Receive & store uploads | UploadedFile, Storage facade |
Redundant |
| Validate size / MIME / extension | Laravel validation rules (file, mimes, max) |
Redundant |
| Rename / route to disk or bucket | storeAs(), Flysystem adapters |
Redundant |
| MIME sniffing | symfony/mime, fileinfo |
Older, unmaintained |
| Chunked / resumable / direct-to-S3 | Laravel + Flysystem / multipart upload | Not supported |
| Virus scanning, image processing | Dedicated services | Out of scope |
Be precise about what "consider" means here — consideration for removal/containment, almost never for adoption.
Consider it only if:
Look elsewhere (i.e., do not adopt) when:
UploadedFile, Storage, and validation rules. Zero new dependencies, zero new risk.laminas/laminas-file is the successor, but treat it as a migration bridge, not a destination; confirm its maintenance status before relying on it.symfony/mime, fileinfo, an image library, and a scanning service respectively.Decision rule: if a proposal names this package, the burden of proof is on adoption, and it is very unlikely to be met. The realistic outcome of the evaluation is a one-line ticket: "replace with framework-native upload handling."
To executives (30 seconds): This is an abandoned open-source library for handling file uploads — archived, no release since 2019, effectively no community (12 stars). It duplicates functionality we already own in our framework, so it adds maintenance and security exposure while adding zero product capability. My recommendation is to not adopt it and, if it is in our codebase today, to schedule its removal. Cost to remove is small; cost to keep is an unpatched library on a security-sensitive path.
To engineering (the ask): Don't introduce it. Audit the dependency tree for it and for zendframework/* packages generally. Where found, replace with native UploadedFile / Storage / validation — typically a small, well-understood refactor for standard upload flows, and only non-trivial if we've built custom adapters or filters on top of it. Flag anything that touches uploads and is EOL as a security item with a ticket, an owner, and a date.
The one-line framing to reuse: "It's not a dependency decision — it's a technical-debt decision. We already have this capability, better maintained and already paid for."
How can I help you explore Laravel packages today?