Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Dms Bundle Laravel Package

erichard/dms-bundle

Symfony bundle for adding document management to your app: organize files in folder trees, persist document metadata with Doctrine, and integrate uploads, listings, and file access into your existing Symfony project.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — fundamental mismatch. Despite being catalogued as a Laravel/PHP package, erichard/dms-bundle is a Symfony 2 bundle, not a Laravel package. Laravel has no bundle mechanism; bundles depend on Symfony\Component\HttpKernel\Bundle\Bundle, DI Extension classes, ConfigurationInterface config trees, and compiler passes that only exist in the Symfony full-stack framework. Laravel's container is Illuminate, not Symfony's. There is no drop-in path — the package would have to be re-architected as a Laravel package (service provider + publishable config/migrations) before it could be evaluated on merit.

Era and viability signals. Symfony 2 has been end-of-life since November 2018 (2.8 LTS). The bundle targets PHP 5.x/7.0-era constraints that will conflict with Laravel 10/11's PHP 8.1+ floor. The catalogued signals are contradictory — 0 stars, 0 dependents, quality score 0, but an opportunity score of 4.16. Treat the opportunity score as unvalidated; the objective adoption and maintenance signals say "abandoned."

Integration feasibility — low as-is. Realistically only three paths exist: (1) do not integrate and use Laravel-native equivalents; (2) treat the bundle as a design reference and port the domain model; (3) run it as an isolated Symfony sidecar behind an API. Path 3 carries a full dead-framework operational burden for a component with zero downstream users, which is hard to justify.

Technical risk — high. A DMS is a high-trust surface: file uploads, storage paths, document ACLs, metadata, and retrieval. Shipping an unmaintained 2015-vintage upload/storage component into a modern stack creates unpatched CVE exposure and no upstream remediation path. The risk is concentrated in exactly the areas where correctness matters most.

Key questions to resolve before any decision:

  • What capability do we actually need — file attachment, versioning, metadata/taxonomy, full-text search, previews/thumbnails, retention, or workflow/approval?
  • Do we need the bundle's abstractions (document entities, storage adapters) or just the concept of a DMS?
  • Is there a regulatory driver (retention, audit trail, e-signature) that changes build-vs-buy?
  • Who owns the Symfony 2 knowledge if we go the sidecar route, and for how long?

Integration Approach

Stack fit — do not force it. The pragmatic recommendation is reject direct integration and evaluate Laravel-native replacements against the same requirement set: spatie/laravel-medialibrary for attachments and conversions, Laravel's Filesystem/Flysystem for storage abstraction, Laravel Scout with Meilisearch or Typesense for document search, and a policy-based ACL layer on top. These cover the majority of what a Symfony 2 DMS bundle delivered, with active maintenance.

Migration path (if the port is chosen). There is no mechanical migration. It is a re-implementation: map bundle entities to Eloquent models and migrations, translate the storage abstraction to Flysystem disks, replace Symfony config trees with config/dms.php, and rebuild the DI wiring as a service provider with bound interfaces. Budget this as a small greenfield build informed by the original schema, not as an integration task.

Compatibility. Pin nothing and expect conflicts — the bundle's PHP and Symfony constraints will not resolve alongside a current Laravel lockfile. Composer will either refuse the install or force a downgrade of shared Symfony components (HttpFoundation, Console, Translation), which Laravel itself depends on. That is a hard blocker, not a nuisance.

Sequencing.

  1. Requirements decomposition — enumerate DMS capabilities actually needed this quarter vs. next year.
  2. Build-vs-buy spike — timebox an evaluation of Laravel-native alternatives against that list.
  3. Decision gate — port the domain model only if a capability gap is proven.
  4. If porting: schema and storage design first, then ACL, then search, then conversions/previews.
  5. If sidecar is mandated: containerize, define the API contract, and treat it as a legacy system from day one with a sunset plan.

Operational Impact

Maintenance. Effectively zero upstream. No security patches, no PHP 8 compatibility work, no issue triage. Every future framework upgrade becomes our problem to solve by forking. For a component touching file uploads and access control, that is a standing liability rather than a deferred cost.

Support. No vendor, no meaningful community (0 dependents means no downstream bug reports or shared fixes). Internal ownership must be assigned explicitly if adopted — otherwise it becomes orphaned infrastructure inside our own estate.

Scaling. A DMS scales on object storage, CDN delivery, and a search index, not on the bundle. Whatever we choose, plan for S3-compatible storage, signed URL delivery, async thumbnail/OCR processing on a queue, and a dedicated search backend. None of this is provided by the bundle in a way that survives the Symfony 2 constraint.

Failure modes to design against.

  • Orphaned files and storage bloat from missing lifecycle/cleanup jobs.
  • Permission leakage via direct storage URLs that bypass policy checks.
  • No virus/malware scanning on upload — a common gap in packages of this vintage.
  • Unbounded synchronous processing of large documents blocking request workers.
  • Silent divergence between database metadata and storage state on partial failures.

Ramp-up. The team would spend ramp-up time on Symfony 2 idioms — bundle extension conventions, compiler passes, XML/YAML service definitions — that have no transferable value to a Laravel codebase. That is negative-ROI learning. Ramp-up on a Laravel-native alternative is measured in days; on this bundle, in weeks, with obsolete knowledge as the output.

Recommendation. Do not integrate. Use the package as a requirements checklist for a Laravel-native DMS composition, and re-baseline the opportunity score against actual capability coverage before allocating engineering time.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core