- Is lingoda/langfuse-bundle a Laravel package?
- No. The -bundle suffix, Bundle class, DependencyInjection directory, and services.yaml config are Symfony conventions, and Laravel has no bundle or extension mechanism. For Laravel, treat langfuse/langfuse-php as the real dependency and write a small service provider rather than expecting install-and-go support.
- How do I install and configure the Langfuse Symfony bundle?
- Install it with composer require lingoda/langfuse-bundle, enable the bundle in your Symfony kernel or bundles.php, and provide the Langfuse host, public key, and secret key through bundle configuration and environment variables. The value is mostly DI wiring and defaults over the PHP SDK, so review the config schema and services.yaml to see exactly which clients are registered. Confirm the required Symfony and PHP versions in composer.json before upgrading.
- How do I use Langfuse with Laravel if this bundle is Symfony-only?
- Require langfuse/langfuse-php, bind a small TracerPort interface to a LangfuseTracer implementation, and bind a NullTracer in local and CI environments. Keep domain code behind that interface so you control flush semantics, HTTP timeouts, and failure handling. This is usually 50 to 150 lines and avoids inheriting a Symfony-specific config schema.
- Which Langfuse PHP SDK or ingestion API does this bundle wrap?
- The repository is best understood as a thin Symfony configuration and wiring layer over langfuse/langfuse-php, with the SDK doing the actual ingestion. Verify this in composer.json and the service definitions before adopting it, because it determines whether you can drop the bundle and keep the SDK. Also check whether it targets Langfuse's v2 batch ingestion endpoint or the v3 OpenTelemetry-based path, since that affects future migration cost.
- How does flushing work in PHP-FPM, and will Langfuse tracing slow down requests?
- Langfuse ingestion is HTTP-based, so the production risk is not whether PHP can emit traces but when the client flushes them. In PHP-FPM, a synchronous flush on every request can add latency and fail noisily if Langfuse is unavailable, so look for batching, queue deferral, sampling, and sensible timeouts. If the bundle only flushes synchronously, wrap it or use the SDK behind your own interface and flush at shutdown or via a queue.
- Does the bundle support Langfuse prompt management and scoring?
- The overview advertises prompt management with version references and scoring or feedback hooks for evaluations. These are likely convenience wrappers over Langfuse API calls rather than novel logic, so confirm which methods are exposed and whether prompt fetching is cached or fails open. Adopt prompt management last, after tracing is stable, because it adds a runtime dependency on Langfuse availability.
- Does it support sampling, PII redaction, and config-driven disable?
- Check the bundle's config schema for sampling rate, PII masking or redaction hooks, and a global enable or disable switch, since these are essential for production and regulated data. If they are missing, implement them in your TracerPort wrapper or at the SDK or client level rather than forking the bundle immediately. A config-driven no-op mode is also useful for local development and incident response.
- How can I test LLM tracing without sending data to Langfuse in CI?
- Bind a NullTracer or no-op implementation of your tracing interface in test and CI environments, and inject a fake PSR-18 client if you need to assert payloads. Avoid calling the bundle or SDK directly from domain code so tests do not require Langfuse credentials or network access. Also disable ingestion explicitly in phpunit configuration to prevent accidental telemetry from test runs.
- Is lingoda/langfuse-bundle safe for production given its low adoption and future release date?
- Treat it cautiously: one star, zero dependents, single-vendor provenance, and release metadata showing a 2026-10-08 date are all signals to verify on Packagist before use. Confirm CI status, test coverage, semver posture, and whether Lingoda responds to issues. The MIT license and small wiring layer mean you can fork or vendor it, but pilot it in a spike branch rather than on a critical path.
- What are the alternatives to this bundle for LLM observability in PHP?
- The main alternatives are using langfuse/langfuse-php directly with a thin Laravel or framework service provider, or emitting OpenTelemetry traces via OTLP to a collector that forwards to Langfuse. The OTel path is more setup but vendor-neutral and reusable across PHP, Node, and Python services, which matters if your AI workloads are polyglot. Adopt the Symfony bundle only if you run Symfony or want it as a reference for config defaults and payload shapes.