Skip to content

Compiler

Everything under Quiote\Routing\Compiler.

ClassDescription
AttributeRouteScannerDiscovers #[Route] attributes on action classes under one or more module directories and builds a RoutePlan from them.
CompiledMatcherDumperBack-end that dumps a RouteCollection to a Symfony CompiledUrlMatcher blob (the same technique Symfony’s own router uses: a static-prefix tree + merged regexes emitted as plain PHP, so matching is opcache-native instead of iterating/compiling the collection at runtime).
ModuleActionDiscoveryFilesystem discovery of every {Module}/Actions/**\/*Action.php file under one or more module directories, independent of whether the action carries a #[Route] attribute.
ModuleActionEntryOne {Module}/Actions/...Action.php file found by ModuleActionDiscovery, before any attempt to load or reflect it.
RouteCollectionBuilderRuntime back-end: turns a RoutePlan into the [RouteCollection, meta] pair Routing::build() already expects (the same pair the committed Routing/Generated/*Routes::addRoutes() files produce).
RouteCollectionIntrospectorThe inverse of RouteCollectionBuilder: lifts the live RouteCollection a configured Routing service exposes back into the routing IR.
RouteDefinitionFormat-independent description of one route, whatever front-end produced it (today: a #[Route] attribute; later, possibly routing.xml or a programmatic builder).
RoutePlanThe routing IR: an ordered set of RouteDefinitions gathered from one or more sources (today: an AttributeRouteScanner pass).
RoutingIrDumperDumps/loads the routing IR (a RoutePlan’s RouteDefinitions) as an opcache-friendly return [...] PHP artifact, so AttributeRouting::build() can skip AttributeRouteScanner’s live scan (recursive glob() per module Actions/ tree, require_once + ReflectionClass per action class) on every Routing construction — a per-request cost under classic PHP-FPM.
TriadDiagnosticsScannerDiagnoses the Action/View/Template triad convention (Actions/{Action}Action.php <-> Views/{Action}{ViewName}View.php <-> Templates/{Action}{ViewName}.php) for every action ModuleActionDiscovery finds, independent of whether the action is ever actually routed to.
TriadViewResolverShared Action -> View -> Template resolution for the triad convention (Actions/{Action}Action.php <-> Views/{Action}{ViewName}View.php <-> Templates/{Action}{ViewName}.php), used by both TriadDiagnosticsScanner (which only needs existence) and Quiote\Introspection\AppIntrospectionCompiler (which needs the resolved file paths for the introspection artifact), so the naming convention is decoded in exactly one place.