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

Knp Piwik Client Bundle Laravel Package

knplabs/knp-piwik-client-bundle

Symfony bundle that integrates the KNP Piwik client, letting you configure Piwik/Matomo analytics through bundle config and inject a ready-to-use tracker service. Adds Twig helpers and straightforward page-view and goal tracking to Symfony apps with minimal setup.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Headline finding: this is not a Laravel package, and there is no TPM case for adopting it. knplabs/knp-piwik-client-bundle is a Symfony2 bundle — a DI extension with a knp_piwik config tree and a knp_piwik.tracker service wrapping the Piwik (now Matomo) HTTP tracking API. Laravel has no bundle concept, so the framework-specific value is zero to our stack. The only reusable asset is a thin HTTP wrapper over piwik/piwik-php-tracker, and that library is itself superseded.

Architecture fit: Poor. Consuming the bundle means either installing Symfony's DI/config/http-kernel components next to Laravel's container, or discarding the bundle and instantiating the client by hand — in which case we are not adopting the package, we are adopting one class and carrying a dead dependency for nothing. Neither path creates architectural leverage.

Integration feasibility: Low. Two paths exist: (a) install and hand-wire, discarding the bundle scaffolding; (b) skip it entirely and call the Matomo Tracking/Reporting API with Laravel's Http client behind a small service class. Both work; neither requires the bundle. Path (b) is the one that fits our platform.

Technical risk: high.

  • Explicitly unmaintained and archived; KnpLabs is publicly soliciting a new maintainer. No security response, no PHP/framework compatibility work, ever.
  • Symfony2 is long EOL, and Piwik was renamed Matomo in 2018 — the API surface and auth patterns have moved on.
  • Symfony2-era Composer constraints will conflict with modern Laravel (PHP 8.1+, Symfony 6/7 components) and likely require --ignore-platform-reqs. That is a red flag, not a workaround.
  • 17 stars, 0 dependents: no production signal, no community validation, no fallback knowledge base.
  • Every CVE, PHP bump, and Matomo API drift becomes permanently ours to fix.

Key questions for the team:

  • What are we actually buying — an API client, or Symfony wiring we would throw away?
  • Is the requirement reporting-side (Reporting API queries) or tracking-side (server-side event submission)? The bundle targets the Piwik HTTP tracking API; confirm which we need before evaluating anything.
  • Which Matomo version and auth method (token_auth) do we target, and does the client's URL/parameter construction still match current Matomo?
  • Could matomo/matomo-php-tracker, a maintained reporting client, or a ~100-line Laravel Http wrapper meet the requirement?
  • If we ever fork, who owns it, what is the budget, and what is the exit trigger?

Integration Approach

Stack fit: Poor as a bundle, acceptable as reference code. Laravel's container, config/*.php repository, and HTTP client have no overlap with Symfony2 bundle extensions and YAML/XML service definitions. The bundle's contribution inside a Laravel app is effectively nil.

Migration path (ranked):

  1. Preferred: a small dedicated Laravel service class using the Http client against the Matomo Tracking/Reporting API, gated by a config file and an interface binding.
  2. An actively maintained Matomo PHP client that supports modern PHP and Composer.
  3. Vendor only the request-building logic if the bundle encodes non-obvious quirks — and only after 1 and 2 are ruled out under test.
  4. Install the bundle itself: not recommended under any timeline we control.

Compatibility: Expect hard conflicts. Symfony2-era constraints against Laravel 10/11 will either fail dependency resolution outright or require platform-req overrides. Even if it installs, the Piwik-era API path and response parsing may not match current Matomo. Treat "it installed" as the start of validation, not the end. The bundle's own config surface is authoritative in DependencyInjection/Configuration.php, not the README — plan for reading source rather than docs.

Sequencing:

  1. Requirements workshop: reporting queries vs. server-side tracking, expected volume, latency tolerance, privacy/data-residency constraints.
  2. Evaluate maintained alternatives (SDK vs. direct API) against that requirement.
  3. Prototype the thin Laravel service against a real Matomo instance, with contract tests and a fake for CI.
  4. Only if the bundle holds unique logic, extract it under test into our service rather than depending on the package.
  5. Record a formal "do not adopt" decision in the architecture log so it is not re-litigated next quarter.

Reference value only: if we have a legacy Symfony2 system already running this bundle, the bundle is the best available documentation of "what our current tracking behavior is." Use it to write a behavior spec, then rebuild against current Matomo APIs.

Operational Impact

Maintenance: Effectively total ownership from day one. Archived, unmaintained, and publicly seeking a maintainer means no upstream fixes, no security patches, no PHP or Laravel compatibility work. For a thin HTTP wrapper, that burden is disproportionate to the value delivered.

Support: None. No maintainer triage, no issue response, docs limited to a Symfony2-era README, 17 stars, 0 dependents. Internal knowledge sits with whoever built the integration — a bus factor of one. SCA tooling will flag an abandoned dependency and can block security review; budget time for that conversation or avoid it entirely.

Scaling: The bundle is not the scaling concern; Matomo is. Real limits come from API rate limits, token_auth handling, and query cost on wide date ranges. Under Laravel, the native HTTP client gives us timeouts, retries, connection reuse, and queue integration we would otherwise have to bolt on — and server-side tracking belongs on a queue, not on the request path, so a job-based design is the right shape regardless of client.

Failure modes:

  • Composer resolution failures at install and on every subsequent upgrade.
  • PHP/framework incompatibility surfacing at runtime rather than build time.
  • Silent Matomo API drift producing malformed requests or unparsed responses (worse: silently dropped events, which corrupt analytics-driven decisions).
  • token_auth leaking into logs or committed config — a security incident, not a bug.
  • SCA blocking releases because of an abandoned dependency.
  • Most expensive: pinning the application's PHP/Laravel/Symfony upgrade path to a package nobody maintains.

Ramp-up: Low effort to understand, negative return to adopt. Replicating the needed behavior against the Matomo HTTP API with Laravel's Http client plus tests is roughly half a day to a day of engineering, versus indefinite fork ownership, security review exceptions, and upgrade-path coupling.

TPM recommendation: do not adopt; treat as a reference implementation only. The scores (overall 0.50, opportunity 0.27) match the profile of an archived, single-framework, zero-adoption package. Choose a maintained Matomo client or a thin in-house wrapper behind an interface, keep server-side tracking off the request path, keep tokens in secrets management, and document the decision. If a legacy Symfony2 system depends on it today, that system's migration off Symfony2 and off this bundle is the roadmap item — not an enhancement of the bundle.

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.
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast