ricbra/kissmetrics-bundle
Symfony bundle that integrates KISSmetrics analytics into your app, exposing the KISSmetrics client as a service so you can identify users and track events from controllers, services, or templates.
Architecture fit: Poor. Despite being filed under Laravel/PHP packages, ricbra/kissmetrics-bundle is a Symfony2 bundle, not a Laravel package. Its entire contribution is Symfony DI container wiring — a configuration node for the API key, a registered service, and bundle registration in AppKernel — around ricbra/php-kissmetrics-api. Laravel's service container, config repository, and package auto-discovery do not consume any of that. The only reusable asset is the underlying Kissmetrics PHP client, and even that must be assessed standalone.
Integration feasibility: Low as a direct dependency. Pulling a Symfony2-era bundle into a modern Laravel application invites Composer constraint conflicts (it pins symfony/symfony: ~2.x), autoloading mismatches, and container incompatibility. A viable path exists only by ignoring the bundle entirely: evaluate php-kissmetrics-api on its own, or — more realistically — implement a thin Laravel adapter against the Kissmetrics HTTP API using Http:: and the queue.
Technical risk: High. The signals are unambiguous: 1 star, 0 dependents, a composite score of ~0.005, a single maintainer, and targeting an EOL Symfony major version. Concretely that means no security response, no compatibility patches, legacy HTTP/TLS assumptions, and undocumented behavior that must be reverse-engineered from source. Kissmetrics' own account/API viability should also be confirmed — a dormant vendor plus a dormant SDK is a compounded dependency risk.
Key questions:
php-kissmetrics-api actually support, and do they run under our PHP/Laravel versions at all?Stack fit: Do not install the Symfony bundle in Laravel. Treat it as reference material for the expected Kissmetrics operations (identify, alias, record, set, clear) and the _k/_p/_n parameter conventions. The Laravel-native shape is a small AnalyticsClient interface, a config file backed by env vars, a service-provider binding, and queued jobs for delivery — with a no-op driver for local and test environments.
Migration path: Isolate analytics behind an application-level contract first, so no product code calls Kissmetrics directly. Implement the contract with a direct HTTP adapter (Laravel HTTP client + queue + retries) or, if the legacy client is retained, a forked-client adapter wrapped behind the same interface. Migrate call sites incrementally, beginning with low-risk, non-revenue events. If Kissmetrics is being replaced rather than adopted, the identical contract lets you swap the driver without touching instrumentation.
Compatibility: Pin and validate against the actual Laravel and PHP versions in use. Inspect Composer constraints for php-kissmetrics-api, its HTTP transport, and any Symfony components before attempting inclusion; the default expectation is that they will not resolve cleanly. Prefer Laravel's HTTP client, retry/backoff, and queue primitives over any legacy transport code from the bundle.
Sequencing:
Maintenance: High ownership burden relative to the value delivered. With no downstream dependents and a single maintainer, the team must assume it owns any fork or adapter outright. Pin versions, document the fork and its divergences, and put the dependency on a recurring security/compatibility review. This bundle should not be recorded as a maintained strategic dependency in the tech radar.
Support: Effectively none from the package community. Support is internal expertise plus whatever Kissmetrics API documentation exists; the TPM should budget for incident ownership, on-call coverage for analytics delivery failures, and direct vendor communication. Escalation paths must be defined before production, not after.
Scaling: Synchronous event calls couple request latency to analytics availability and will not survive high-volume event streams. All emission should go through queued jobs with batching where the API permits, backoff/retry, and dead-letter handling. Monitor queue depth, API latency, error rate, duplicate rate, and dropped-event counts as first-class SLOs — analytics loss is silent and corrupts downstream funnel and lifecycle decisions.
Failure modes: Kissmetrics API downtime, rate limiting, invalid or rotated credentials, network/TLS failures against an aging client, duplicate events on retry without idempotency, permanent loss after queue exhaustion, identity/alias mismatches producing split user histories, schema drift in event properties breaking cohorts, and PII leakage from unscrubbed properties. Each requires a defined mitigation — idempotency keys, DLQ, privacy review at the boundary — before production traffic.
Ramp-up: Low to implement a thin HTTP adapter against the documented Kissmetrics API; moderate if the legacy client must be forked and repaired for current PHP. The Symfony bundle itself offers essentially no reusable ramp-up value to a Laravel team, and reading its source is a short exercise rather than a learning investment. TPM effort is better spent on vendor viability, event governance, and building the interface-first replacement than on adapting the package.
How can I help you explore Laravel packages today?