Merged
Conversation
Complete restructuring of the PHP SDK with: - Hub/Client/Scope state management - Integration plugin system (error, exception, fatal, request, environment) - Composable transport layer (HTTP + OTLP + batch with circuit breaker) - W3C trace context propagation and span support - Breadcrumb system with circular buffer - DSN parsing support - Procedural API facade (\LogTide\init(), captureException(), etc.) - Monolog handlers (log forwarding + breadcrumbs) - PSR-15 middleware - HttpClient abstraction (Guzzle + cURL fallback)
- Laravel: ServiceProvider, Facade, middleware, log channel, DB/cache/queue breadcrumbs - Symfony: Bundle, DI configuration, request/console event subscribers, Doctrine integration - Slim: PSR-15 middleware with trace context, error middleware - WordPress: Plugin class with hooks, DB query/HTTP API breadcrumbs Also updates root composer.json to monorepo structure with path repositories and phpunit.xml with per-package test suites.
Remove the old single-file LogTideClient and all associated models, middleware, enums and tests. The new monorepo package structure under packages/ replaces everything. Update README to document the new architecture, all packages, and usage examples for each framework integration.
- Add missing $service param to ClientInterface::captureLog - Use JSON_THROW_ON_ERROR in HttpTransport and OtlpHttpTransport - Fix unsafe preg_match on class names in ignore_exceptions - Remove dead code in Event::createError (was immediately overwritten) - Reset static $registered in FatalErrorListenerIntegration::teardown - Fix Scope level override dead condition (Event level is never null) - Add type coercion in Options::fromArray for env-sourced string values - Add max buffer size check to BatchTransport::sendSpans - Use hexdec() for traceparent flags parsing
Core tests: Dsn, Options, Event, EventHint, Breadcrumb, BreadcrumbBuffer, CircuitBreaker, ErrorSerializer, Scope, Hub, Client, ClientBuilder, BatchTransport, Span, PropagationContext, LogtideSdk, IntegrationRegistry, LogtideHandler, BreadcrumbHandler. Framework tests: Symfony Configuration, RequestSubscriber, ConsoleSubscriber, SymfonyIntegration, DoctrineIntegration, Slim LogtideMiddleware, LogtideErrorMiddleware. Fix PHP 8.5 compatibility: replace callable property types with Closure/mixed.
…e and framework integrations
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces a major restructuring of the project into a Composer monorepo, adds a new Laravel integration package, and establishes comprehensive CI/CD workflows. The changes include new documentation, improved configuration, and updated repository metadata to reflect the new structure and capabilities.
Monorepo Restructuring and Metadata Updates
packages/*and updating the rootcomposer.jsonto reflect the new structure, autoloading, and repository paths. [1] [2]composer.jsonto match the new monorepo setup. [1] [2]New Laravel Integration Package
logtide/logtide-laravelpackage with its owncomposer.json, configuration file (config/logtide.php), and a comprehensive README describing features, installation, and usage. [1] [2] [3]Continuous Integration and Publishing Workflows
Documentation and Contribution Guidelines
CONTRIBUTING.mdto describe the monorepo structure, testing, code style, and pull request process, including new scripts and package layout. [1] [2]Monorepo and Core Infrastructure
packages/*and updating autoloading and repository paths incomposer.json. [1] [2]Laravel Integration
logtide/logtide-laravelpackage with Laravel-specific service provider, middleware, log channel, facade, configuration, and documentation. [1] [2] [3]CI/CD and Automation
Documentation and Contribution Process
CONTRIBUTING.mdto explain the monorepo structure, testing, code style, and PR process, and to reflect new scripts and paths. [1] [2]Repository Metadata and URLs
logtide-php). [1] [2]