Conversation
chore: Add release script
docs: Add release notes
The package can now be installed and tested without PHP or Composer on the host, matching the setup used by sibling packages. Common workflows are exposed as make targets.
Discovery logging now goes through an injected logger with a configurable channel and minimum level (warning by default), so consuming applications no longer get debug noise in their logs and can route or silence plugin engine output independently of application logging. A missing plugins directory now means no plugins: it is treated as a normal state logged at debug instead of producing a warning on every request, and a discovery scan emits a single summary line instead of one line per directory entry. The configured plugins path is now honored instead of being hardcoded.
Discovery results can now be compiled to a cache file that is loaded on boot, removing the filesystem scan and manifest parsing from every request. Deploys opt in the same way they cache configuration and routes, and clearing the cache returns to live discovery. Enabling, disabling, or rediscovering plugins refreshes an existing cache so it never goes stale.
These files predate the linter check and were failing it, blocking CI on any branch. No behavior change.
Bumps the package to 1.1.0 with changelog entries for configurable logging, the compiled plugin cache, and the dockerized development environment. Generalizes the package description and drops the stale unreleased notes that duplicated the 1.0.0 entry.
feat: Add configurable logging with channel and level filtering
Code Review SummaryRelease 1.1.0 introduces significant performance and observability improvements, specifically a plugin caching system and granular logging control. 🚀 Key Improvements
💡 Minor Suggestions
|
| public function log($level, string|\Stringable $message, array $context = []): void | ||
| { | ||
| // Unknown levels pass through so the inner logger can decide how to handle them | ||
| $severity = static::SEVERITY[strtolower((string) $level)] ?? PHP_INT_MAX; |
There was a problem hiding this comment.
Defaulting to PHP_INT_MAX for unknown levels might cause unexpected behavior if a custom level is intended to be 'low priority'. While standard levels are handled, explicitly documenting this behavior or allowing a default level for unknown types would be safer.
Suggested change
| $severity = static::SEVERITY[strtolower((string) $level)] ?? PHP_INT_MAX; | |
| $severity = static::SEVERITY[strtolower((string) $level)] ?? -1; |
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.
No description provided.