08: Registrar - #8
Open
nikolaystrikhar wants to merge 3 commits into
Open
Conversation
Registration order decides load order, and nothing said so where a host would read it. A host registering an add-on before the plugin it extends gets a class-not-found fatal at plugins_loaded. Also explain on the contract why reset() is on it: a container-bound singleton registrar survives a Loader reset, so an implementation that no-ops reset() leaks registrations between boots.
… foreign registrar
nikolaystrikhar
force-pushed
the
07-sub-plugin
branch
from
August 6, 2026 14:22
b10ecc7 to
8c84385
Compare
nikolaystrikhar
force-pushed
the
08-registrar
branch
from
August 6, 2026 14:22
62f5859 to
73d7de8
Compare
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.
Adds the sub-plugin registry and its
Registrar_Interfacecontract.Stacked on #7.
all()returns insertion order andLoader::load_all()require_onces in that order, so registering an add-on before the sub-plugin whose class it extends is a fatal atplugins_loaded. The README says so now, and two tests pin the order.