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

Doctrine Cache Extension Bundle Laravel Package

openclassrooms/doctrine-cache-extension-bundle

A Symfony bundle from OpenClassrooms that integrates Doctrine Cache extension capabilities, providing configuration and services to simplify caching for Doctrine-based applications. It helps wire cache providers and related services into Symfony projects.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. This is a Symfony 2-era bundle (Symfony2 Bundle extending doctrine cache capabilities). Its structure is the classic pre-Flex pattern: a *Bundle class, a DependencyInjection/*Extension, a compiler pass, and a bundle config tree registered in app/AppKernel.php. It layers on top of doctrine/cache 1.x. That places it firmly inside a Symfony 2.7/2.8 application that still treats Doctrine's cache as its caching abstraction — a stack where the kernel is AppKernel, config is YAML under app/config/, and bundles are registered manually. It does not fit Symfony 3.4+, Symfony 4/5/6/7, Flex recipes, autowiring-first service definitions, or anything built on symfony/cache (CacheItemPoolInterface, cache.app, cache.adapter.*).

Integration feasibility. Low. Composer resolution will almost certainly fail on a modern PHP 8.1+ / Symfony 6+ matrix because doctrine/cache 2.0 removed the concrete adapters this bundle extends, and Symfony's DI component has moved several method signatures and deprecation boundaries since 2.8. Realistic floor is something like PHP 5.5–7.1, Symfony ^2.7, doctrine/doctrine-bundle ^1.6, doctrine/cache ^1.5. Any evaluation should start by reading composer.json require/suggest blocks, because that single file is the go/no-go artifact.

Technical risk. High, and concentrated in supply-chain rather than code quality:

  • EOL everywhere. Symfony 2.8 lost security support in November 2018; doctrine/cache 1.x is formally abandoned with symfony/cache named as the replacement. Pulling this bundle transitively pins an unpatched tree.
  • Zero signal. 0 stars, 0 dependents, no stated release history — there is no evidence of review, CI, or anyone having run it in production recently. No CVE watchers, no issue triage.
  • Opaque scope. The description ("extending doctrine cache capabilities") does not say what it extends. Until you read the source you cannot tell whether it adds named cache regions, invalidation listeners, key namespacing, or a warmer — and those have very different blast radii.

Key questions for the author/owner.

  1. What exact capability does the extension add — regions, namespacing, invalidation hooks, warmers, or a specific adapter?
  2. What Symfony / Doctrine / PHP versions are declared in composer.json, and is there a tested matrix?
  3. Is there an actively maintained fork or internal version at OpenClassrooms, or is the GitHub repo the only source of truth?
  4. What is the license, and does it permit vendoring/forking if we must keep the behavior?
  5. Does an equivalent already exist in symfony/cache (namespaced pools, cache.adapter.redis, tag-aware invalidation) or in doctrine/orm's second-level cache config?
  6. If this is a new build: why is this package being considered at all rather than reimplementing the behavior natively?

Integration Approach

Stack fit. Only viable on a legacy Symfony 2 application that is itself already pinned to EOL components. If the host application is on Symfony 3.4+, 4.x, 5.x, 6.x, or 7.x, the answer is a hard no — the effort to back-port the bundle exceeds the effort to write the feature directly against symfony/cache by an order of magnitude.

Migration path. Two distinct scenarios, with different recommendations:

  • Greenfield / modernizing app: do not add the dependency. Reimplement the behavior as a PSR-6 cache pool — a decorator around CacheItemPoolInterface, a custom cache.adapter.* service, or a namespaced pool via framework.cache.pools — and treat this package only as a design reference.
  • Brownfield Symfony 2 app already using it: don't widen the dependency. If the repo goes dark, vendor the bundle into src/ (or a private Satis/Composer path repo) at a pinned commit, and schedule extraction of its behavior into an app-local service so the eventual Symfony upgrade isn't blocked by it.

Compatibility. Verify concretely rather than trusting the description: clone, run composer why-not against the target Symfony/PHP constraint, and spin a throwaway container on the oldest PHP the app supports. Expect failures from removed PHP functions, deprecated DI method signatures, and doctrine/cache 2.x's removed adapters. Also check that the bundle's compiler pass doesn't collide with DoctrineBundle's cache configuration keys.

Sequencing (if it must be evaluated seriously).

  1. Inventory — grep the codebase for the bundle's service IDs and config keys; count call sites.
  2. Capability extraction — one paragraph: what does the bundle actually do for us, in terms of behavior, not implementation.
  3. Prototype the equivalent against symfony/cache (or native Doctrine second-level cache config) in a spike branch.
  4. Parallel run in staging behind a feature flag; compare hit rates, key namespaces, and invalidation timing.
  5. Cut over DI config and cache warmers, then remove the dependency and its transitive doctrine/cache 1.x pin.
  6. Delete the spike branch — the deliverable is the reimplementation, not the package.

Operational Impact

Maintenance. Effectively zero upstream. No releases, no issue triage, no security response — and because the package has 0 dependents, there is no crowd of co-maintainers to notice breakage. Ownership transfers entirely to the adopting team on day one. Budget it as forked code, not as a dependency.

Support. Community support is nonexistent. Symfony 2-era knowledge is still findable, but this specific bundle will have no Stack Overflow corpus, no blog posts, no migration guides. Debugging means reading the bundle source and the Symfony 2 DI container dump — plan for that.

Scaling. The bundle inherits scaling characteristics from whichever Doctrine cache adapter it configures (APCu, Redis, Memcached, file). The things that actually bite at scale are not the bundle's to solve: cache stampedes on warmup, hot-key contention in Redis, eviction policy mismatch, and — most likely here — key namespace collisions if the extension adds per-region keys and multiple app instances share one Redis. Multi-tenant or blue/green deployment topologies need a version-namespaced prefix; confirm the bundle gives you a hook for that before committing.

Failure modes.

  • Silent degradation — adapter unavailable falls back to in-memory/no-op, and nothing pages anyone until latency SLOs drift.
  • DI compile failure on version skew — the bundle's compiler pass or extension config tree rejects an unfamiliar DoctrineBundle schema.
  • Stale entries post-deploy — no namespace/version bump means invalidation bugs surface only after a release, which is the worst possible time.
  • Warmup blocking — if the extension participates in cache:warmup, a cold Redis or a slow adapter turns deploy into an outage.
  • PHP fatals from removed function calls when someone upgrades the runtime without auditing the pinned tree.

Ramp-up. Reading the bundle is cheap — it's small, and a senior Symfony developer will grasp it in a few hours. The expensive part is validation: proving it works under your PHP, Symfony, and Doctrine versions, under your cache topology, and under your deploy sequencing. Realistic budget is 1–2 engineer-days for a go/no-go decision, and the honest expected outcome of that spend is "reimplement it against symfony/cache." Recommend treating this package as documentation of a pattern rather than as an installable component.

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.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
cgv/localized-resource