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

Cookie Consent Bundle Laravel Package

fairlane/cookie-consent-bundle

A Symfony bundle for adding cookie consent to your site, giving you a simple way to present consent options and manage cookie permissions. Useful for GDPR-style compliance, though it's a small, low-activity package best reviewed before relying on it in production. Check the source for supported feat...

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — still the blocking question, and now unverified rather than settled. The new 1.0.0 release notes contain a single line: Initial release. That is the entire evidence base. It does not state the framework, the PHP constraint, the Symfony component version, the feature set, the license, or the maintainer. The prior assessment's core finding — that fairlane/cookie-consent-bundle is a Symfony Bundle (HttpKernel Bundle subclass, DependencyInjection/*Extension, Twig templates) and therefore not auto-wirable under Laravel — cannot be confirmed or retired from these notes. Two readings are live, and they carry very different consequences:

  • Re-publication of the same artifact. A 1.0.0 "initial release" landing roughly eight years after the previously observed 2017-11-11 tag is a classic signature of a rewritten history, a namespace transfer, or a repo reset. That is a supply-chain signal, not a feature signal.
  • A genuinely new package under the same name. If the name has been reused, the prior Symfony-bundle analysis may not describe the current tree at all — and equally, the prior risk analysis may not either. Either way the old assessment cannot be carried forward as fact.

Until the tag is pulled and diffed, architecture fit is unresolved. Do not let a version number stand in for a compatibility review.

Integration feasibility — no improvement demonstrated. "Initial release" is not a feature announcement, a deprecation notice, or a breaking-change disclosure. Nothing in the release indicates the package has moved off Symfony 2.8/3.x and PHP 5.6–7.1 onto PHP 8.1+ and Symfony 6/7, which is the gate for any modern Laravel install. Equally, nothing confirms it has not. The composer require outcome is now an open question that must be answered with the actual composer.json constraints rather than inferred from age. Note also that a 1.0.0 tag is a semver stability claim; shipping one with a one-line changelog and no described public surface is a governance smell independent of the technical merits.

Technical risk — unchanged in substance, with two additions. The compliance-surface risk documented previously is untouched by this release: a version bump does not add a server-side consent ledger, timestamped/versioned records, revocation flow, category granularity, or pre-consent script gating. If anything, the absence of any described change means the GDPR Art. 7(1) and ePrivacy Art. 5(3) gaps should be assumed present until disproven. Two risks are new:

  • Provenance and ownership. An "initial release" after dormancy requires a diff review against the last known good tag, confirmation the git history is continuous (not squash-reset), and ideally a signed tag. Unexplained tree changes in a compliance-adjacent dependency are the worst place to extend trust.
  • Warning suppression. A recent release will typically clear abandoned-package flags in composer audit, Dependabot, and SCA dashboards. The tooling signal improves while the actual risk is flat. This is a false green, and it is more dangerous than the previous red, because it removes the prompt for a human to look.

Key questions to resolve before any decision:

  • What are the composer.json PHP and Symfony constraints in the 1.0.0 tag, and do they permit PHP 8.1+ / Symfony 6–7?
  • Is the package still a Symfony Bundle, or has it been restructured (Laravel provider, framework-agnostic core)? This single answer determines whether the prior assessment survives.
  • What is the diff between the last pre-dormancy state and 1.0.0? Is the git history continuous, and is the tag signed?
  • Is the maintainer identity the same as the historical one, and is there a security contact or disclosure policy?
  • What is the license, and does it permit forking and internal maintenance?
  • How is consent persisted — client cookie only, or a server-side record? Is it versioned against policy text?
  • Does it block non-essential scripts pre-consent, or only render a banner? What is the mechanism?
  • What category granularity and i18n support exist, and is there any test suite?
  • Have stars/dependents/score moved since the prior snapshot, or is the release the only change?

Integration Approach

Stack fit — hold at "reference source, not a dependency" until the diff says otherwise. The 1.0.0 release supplies no basis to promote this to an installable dependency, but it does require you to re-verify rather than restate the Symfony/Laravel mismatch. The effort to shim Symfony's DI into a Laravel service provider remains disproportionate; a clean reimplementation of the consent-category model is still the cheaper path on any reading.

Migration path — unchanged, pending step 0. Two routes, chosen on compliance posture not engineering preference:

  • Build (Laravel-native): spatie/laravel-cookie-consent or whitecube/laravel-cookie-consent for banner and middleware, plus a custom consent-ledger table and an explicit script-gating layer. Best when the DPO accepts a first-party, self-hosted record store.
  • Buy (CMP): Cookiebot, OneTrust, Usercentrics, or Osano. Best when TCF v2.2 strings, Consent Mode signals, geo-detection, and vendor audit reporting are in scope. Higher licence cost, near-zero maintenance.

Compatibility. Treat compatibility as unmeasured. Read the 1.0.0 composer.json directly and close out the PHP 8.1+ question with quoted constraints rather than inference from the release date. If the constraints are still legacy, the "just install it" option is closed with evidence. If they are modern, that is a material change and the assessment needs a second pass — a constraint bump alone still does not deliver the ledger or the blocking layer.

Sequencing. 0. Provenance review (new, gates everything else): pull the tag, diff against the last known state, inspect composer.json, check history continuity and tag signature, confirm maintainer identity and license. Timebox to half a day; it is cheap and it decides whether the rest of the sequence is worth running.

  1. DPO/legal sign-off on categories, retention, and what constitutes a valid consent record.
  2. Data model: consent ledger (subject, timestamp, policy version, category set, IP/UA if justified, revocation events).
  3. Blocking layer: gate tag manager and third-party scripts before banner interaction — the part this class of package historically gets wrong.
  4. Banner UI and preference centre (Blade, not Twig).
  5. Revocation and re-consent triggers tied to policy-version bumps.
  6. Automated regression tests asserting no non-essential cookie is set pre-consent.
  7. Runbook and named ownership.

Operational Impact

Maintenance. Still effectively fork-and-own, but the characterization shifts. "No release since 2017" was a clean, legible signal. A single content-free 1.0.0 is a weaker signal in both directions: it does not establish a commit cadence, a release process, a deprecation policy, or a security response capability, yet it reads as activity. Require evidence of sustained cadence — more than one release, issues triaged, a stated support window — before crediting upstream maintenance. Absent that, the burden remains entirely internal.

Support. No evidence of issue triage, disclosure process, or CVE history is added by this release. A fresh 1.0.0 may attract new adopters who read the version number as maturity; plan for that in any internal guidance you publish. Named internal ownership remains mandatory — an orphaned component on a regulated surface with no owner is a governance finding.

Scaling. Unchanged. Cookie-only consent storage still cannot answer "which users consented to which categories under which policy version" for an audit, a DSAR, or a regulator enquiry. Client-side-only blocking still degrades under tag-manager sprawl, where newly added scripts bypass the gate silently.

Failure modes.

  • False green (new, highest priority): the recent release clears abandoned-package and SCA warnings, removing the prompt to review a component whose compliance risk is unchanged.
  • Provenance failure (new): an unexplained post-dormancy tree change, history rewrite, or namespace reuse injects code you have not reviewed into a regulated surface.
  • Silent compliance failure: banner displays, scripts fire anyway — worst outcome, because it looks compliant.
  • Stale consent: unversioned cookie means users who consented to a superseded policy are treated as current.
  • Framework failure: bundle never registers under Laravel; services missing, Twig templates unrenderable, class-not-found at boot.
  • Unbounded cookie persistence: no expiry policy, consent markers retained indefinitely without re-asking.

Ramp-up. Low engineering ramp (small codebase, readable in a day) and high compliance ramp (legal review, DPO interviews, cross-jurisdiction sign-off). The new provenance review adds roughly half an engineer-day and should be done first, because it can end the evaluation cheaply. The long pole remains governance, not code.

TPM recommendation. Do not adopt as a dependency. The status moves from "confirmed no-go" to "no-go pending a half-day provenance check" — a content-free 1.0.0 is not evidence of modernization, and a recent release date is not evidence of health. Run the diff and constraint review to close out the framework question with quoted facts, then hold the prior position: treat the repository as a low-cost design reference at most, and fund either a maintained Laravel-native consent implementation with a server-side audit ledger, or a commercial CMP if TCF/Consent Mode support is in scope. Route the decision through the DPO before committing engineering time — this is a compliance-risk call, not a build-versus-buy one, and this release changes none of the inputs that made it so.

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.
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
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