Repository navigation
refactor: require pollora/discovery instead of shipping it - #461
Merged
Merged
Conversation
Two ports, InstanceResolverInterface and DiscoveryRegistrarInterface, replace the container in the engine, the instance pool and the reflection cache; DiscoveryCacheManager takes its driver and logger, and the Laravel provider builds them. Adds a PSR-16 cache driver, an architecture test for the part that becomes pollora/discovery, and fixes the benchmarks' memory measurement.
The engine, its contracts, the cache and #[SkipDiscovery] now come from pollora/discovery, with the same class names. The framework keeps the Laravel side: provider, commands, registrar, adapters, and the post type and taxonomy support.
ogorzalka
changed the base branch from
feat/discovery-decoupling
to
release/v13.36.0
October 12, 2026 09:53
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.
Second step of the discovery extraction: the framework requires
pollora/discovery(v0.1.0 on Packagist) instead of shipping it. Builds on #460, whose commit it carries: it targetsrelease/v13.36.0directly because CI only runs on pull requests tomain,developandrelease/**. Merge #460 first; this one then shows its own commit only.What moves to the package
The engine and its services (
DiscoveryEngine,DiscoveryCacheManager,InstancePool,ReflectionCache), the contracts and models (Domain/*),DiscoveryManager, the resolvers,Psr16DiscoverCacheDriverand#[SkipDiscovery]— with their unit tests and the benchmarks, which now run in the package's CI with a memory bound. Class names do not change.What stays in the framework
What needs Laravel:
DiscoveryServiceProvider,discovery:run/discovery:clear,DiscoveryRegistrar,ServiceProviderDiscovery, the Laravel adapters (LaravelInstanceResolver,LaravelDiscoveryCacheManagerFactory,LaravelDiscoveryCache), andHasConfiguringSupport/ConfigurableDiscoveryInterface, which build post types and taxonomies throughpollora/entity. They keep their namespaces: Composer resolvesPollora\Discovery\*in the package first, then in the framework'ssrc/.Constraint
pollora/discovery: ^0.1 || ^1.0. The package is tagged 1.0.0 with the framework release, and the constraint becomes^1.0then.Checks