Support (routing, chrome, dynamic pages)
Sample documentation (demo only)
This is an incomplete, outdated docs snapshot shipped with the playground — screenshots were removed on purpose.
For the full, current manuals go to voodflow.com/docs.
Voodflow\Voodbuilder\Support\ChromeLayoutRenderer
- File:
Support/ChromeLayoutRenderer.php - Kind:
class - Responsibility: Splits a chrome layout around the content slot and hydrates menus/branding.
Methods
public function render(ChromeLayout $layout, bool $canvasPreview = false): array- Render stored markup for the current context.
public function splitAroundContentSlot(string $html): array- Split Around Content Slot.
protected function loadDocument(string $html): DOMDocument- Load Document.
protected function findContentSlot(DOMDocument $document): ?DOMElement- Find Content Slot.
Voodflow\Voodbuilder\Support\ChromeLayoutResolver
- File:
Support/ChromeLayoutResolver.php - Kind:
class - Responsibility: Resolves Editor chrome layouts (header/footer shell) per content channel.
Methods
public static function enabled(): bool- Enabled.
public static function activeLayout(): ?ChromeLayout- Active Layout.
public static function resolveForChannel(?string $channelId): ?ChromeLayout- Resolve For Channel.
public static function forgetCache(?string $channelId = null): void- Performs
forgetCacheside effects.
- Performs
protected static function tableExists(): bool- Table Exists.
public static function peerChannelIds(string $channelId): array- Peer Channel Ids.
protected static function resolveLayoutIdForChannel(?string $channelId): ?string- Resolve Layout Id For Channel.
protected static function firstSpecificLayoutForChannel($layouts, string $channelId): ?ChromeLayout- First Specific Layout For Channel.
Voodflow\Voodbuilder\Support\ContentChannelRegistry
- File:
Support/ContentChannelRegistry.php - Kind:
class - Responsibility: Content Channel Registry.
Methods
public function bootFromConfig(): void- Performs
bootFromConfigside effects.
- Performs
public function registerFromArray(string $id, array $definition): self- Register From Array.
public function register(PublicContentChannel $channel): self- Register routes, blocks, channels, and bindings for this module.
public function has(string $id): bool- Boolean predicate
has.
- Boolean predicate
public function get(string $id): ?PublicContentChannel- Get.
public function all(): array- All.
public function matchesCurrentRequest(): ?PublicContentChannel- Matches Current Request.
public function search(string $term, int $limitPerChannel = 20): array- Search.
Voodflow\Voodbuilder\Support\DynamicPages\AbstractDynamicPageProvider
- File:
Support/DynamicPages/AbstractDynamicPageProvider.php - Kind:
class - Implements:
DynamicPageProvider - Responsibility: Base dynamic page provider with safe defaults for optional contract methods.
Methods
public function channelId(): string- Content-channel id this provider owns.
public function channelLabel(): string- Admin label for the dynamic-page channel.
public function claimableRoutes(): array- Laravel route names this provider can claim → admin labels.
public function entityKeys(): array- Keys in the entity bag passed to DynamicPageResolver.
public function currentBindingSourceId(): string- Binding source id for this channel’s
.currentcontext.
- Binding source id for this channel’s
public function normalizeRouteName(string $routeName): string- Map a matched route name to the logical claimable key.
public function previewUrl(?SitePage $page = null): ?string- Example public URL for Filament / editor preview.
public function previewEntities(?SitePage $page = null): array- Sample entities when no request context is bound.
public function resolveRouteEntitiesFromSlugs(array $slugs): array- Resolve Route Entities From Slugs.
public function editorRouteEntityPatterns(): array- Editor Route Entity Patterns.
protected function routePatternsForPrefix(string $prefix, array $entityKeys): array- Build editor pathname patterns for /{prefix}/{slug} and optional /events/{event}.
protected function singleSlugPatternsForPrefix(string $prefix, string $entityKey): array- Single-segment slug pattern (e.g. /events/{event}).
Voodflow\Voodbuilder\Support\DynamicPages\DynamicPageBindingCatalog
- File:
Support/DynamicPages/DynamicPageBindingCatalog.php - Kind:
class - Responsibility: Maps dynamic SitePage channels to editor binding source ids (.current).
Methods
public static function currentSourceIds(?SitePage $page): array- Current Source Ids.
Voodflow\Voodbuilder\Support\DynamicPages\DynamicPagePreviewEntityResolver
- File:
Support/DynamicPages/DynamicPagePreviewEntityResolver.php - Kind:
class - Responsibility: Resolves dynamic route entities for editor binding preview (including AJAX).
Methods
public static function entitiesForEditorPreview(SitePage $page, ?Request $request = null): array- Entities For Editor Preview.
public static function slugBagFromModels(array $entities): array- Slug Bag From Models.
public static function slugBagFromRequestContext(): array- Slug Bag From Request Context.
Voodflow\Voodbuilder\Support\DynamicPages\DynamicPagePreviewMatcher
- File:
Support/DynamicPages/DynamicPagePreviewMatcher.php - Kind:
class - Responsibility: Heuristics to pick a preview record from SitePage metadata (title, slug).
Methods
public static function slugCandidates(?SitePage $page): array- Slug Candidates.
public static function titleCandidate(?SitePage $page): ?string- Title Candidate.
Voodflow\Voodbuilder\Support\DynamicPages\DynamicPageRegistry
- File:
Support/DynamicPages/DynamicPageRegistry.php - Kind:
class - Responsibility: Registry of companion dynamic page providers.
Methods
public function register(DynamicPageProvider $provider): self- Register routes, blocks, channels, and bindings for this module.
public function get(string $channelId): ?DynamicPageProvider- Get.
public function all(): array- All.
public function channelOptions(): array- Channel Options.
public function routeOptions(string $channelId): array- Route Options.
public function editorRouteEntityPatterns(): array- Editor Route Entity Patterns.
Voodflow\Voodbuilder\Support\DynamicPages\DynamicPageRelatedBindingSourceRegistry
- File:
Support/DynamicPages/DynamicPageRelatedBindingSourceRegistry.php - Kind:
class - Responsibility: Optional extra ".current" binding sources for a dynamic page channel.
Methods
public function register(string $channelId, string $sourceId, callable $when): void- Performs
registerside effects.
- Performs
public function sourceIdsFor(string $channelId, SitePage $page): array- Source Ids For.
Voodflow\Voodbuilder\Support\DynamicPages\DynamicPageRequestContext
- File:
Support/DynamicPages/DynamicPageRequestContext.php - Kind:
class - Responsibility: Request-scoped bag for the active dynamic SitePage template + route entities.
Methods
public static function bind( SitePage $page, string $channel, array $entities = [], bool $editorPreview = false, ): void- Performs
bindside effects.
- Performs
public static function flush(): void- Performs
flushside effects.
- Performs
public static function page(): ?SitePage- Eloquent relation
page.
- Eloquent relation
public static function channel(): ?string- Channel.
public static function entities(): array- Entities.
public static function entity(string $key): ?Model- Entity.
public static function primaryEntity(): ?Model- Primary entity: first non-null value in the bag (stable insertion order).
public static function isEditorPreview(): bool- Boolean predicate
isEditorPreview.
- Boolean predicate
public static function isBound(): bool- Boolean predicate
isBound.
- Boolean predicate
Voodflow\Voodbuilder\Support\DynamicPages\DynamicPageResolver
- File:
Support/DynamicPages/DynamicPageResolver.php - Kind:
class - Responsibility: Resolve a published dynamic SitePage template and render it instead of Blade.
Methods
public static function maybeRender( string $channel, string $routeName, array $entities = [], ?Request $request = null, ): ?View- Maybe Render.
public static function findTemplate(string $channel, string $routeName, ?string $locale = null): ?SitePage- Find Template.
public static function schemaReady(): bool- Schema Ready.
Voodflow\Voodbuilder\Support\DynamicPages\DynamicPageSeo
- File:
Support/DynamicPages/DynamicPageSeo.php - Kind:
class - Responsibility: Pick the best SEO subject when a dynamic SitePage template wraps route entities.
Methods
public static function subject(SitePage $page, array $entities): Model- Prefer the most specific bound entity that exposes SEO (HasSEO / getDynamicSEOData), otherwise fall back to the template page.
Voodflow\Voodbuilder\Support\DynamicPages\RendersDynamicSitePage
- File:
Support/DynamicPages/RendersDynamicSitePage.php - Kind:
trait - Responsibility: Companion controllers: claim a dynamic SitePage template when published.
Methods
protected function renderDynamicSitePage(string $channel, string $routeName, array $entities = []): ?View- Render Dynamic Site Page.
Voodflow\Voodbuilder\Support\ReservedPathRegistry
- File:
Support/ReservedPathRegistry.php - Kind:
class - Responsibility: First-segment URL prefixes that site-page catch-all routes must not claim.
Methods
public function reserve(string ...$prefixes): void- Performs
reserveside effects.
- Performs
public function all(): array- All.
Voodflow\Voodbuilder\Support\SitePageResolver
- File:
Support/SitePageResolver.php - Kind:
class - Responsibility: Site Page Resolver.
Methods
public static function clearSchemaCache(): void- Performs
clearSchemaCacheside effects.
- Performs
public static function hasLocalizationColumns(): bool- Boolean predicate
hasLocalizationColumns.
- Boolean predicate
public static function publishedFromSlug(string $slug): SitePage- Published From Slug.
public static function publishedForMenu(string $slug): ?SitePage- Published For Menu.
public static function localizationEnabled(): bool- Localization Enabled.
public static function preferredLocale(): string- Preferred Locale.
Voodflow\Voodbuilder\Support\SitePageRoutes
- File:
Support/SitePageRoutes.php - Kind:
class - Responsibility: Registers public site-page catch-alls after companion reserved prefixes are known.
Methods
public static function register(): void- Performs
registerside effects.
- Performs
Voodflow\Voodbuilder\Support\SitePageViewData
- File:
Support/SitePageViewData.php - Kind:
class - Responsibility: Site Page View Data.
Methods
public static function make(SitePage $page, array $extra = []): array- Make.
Voodflow\Voodbuilder\Support\SubThemeRegistry
- File:
Support/SubThemeRegistry.php - Kind:
class - Responsibility: Sub Theme Registry.
Methods
public function bootFromConfig(): void- Performs
bootFromConfigside effects.
- Performs
public static function packageSubThemeDefinitions(): array- Bundled themes from the package config. The host app's published
config/voodbuilder.phpreplaces merged config, so appsub_themesmust not
- Bundled themes from the package config. The host app's published
public function register(string $id, array $definition): self- $config = require $path; $themes = $config['sub_themes'] ?? [];
public function unregister(string $id): void- Performs
unregisterside effects.
- Performs
public function exists(string $id): bool- Exists.
public function options(): array- Options.
public function optionsByType(SubThemeType $type): array- Options By Type.
public function optionsForCapability(SubThemeCapability $capability, ?string $includeId = null): array- Options For Capability.
public function marketingOptions(?string $includeId = null): array- Marketing Options.
public function contentOptions(?string $includeId = null): array- Content Options.
public function capabilities(string $id): array- Capability identifiers contributed or required by this module.
public function supportsCapability(string $id, SubThemeCapability $capability): bool- Supports Capability.
public function type(string $id): ?SubThemeType- Type.
public function idsByType(SubThemeType $type): array- Ids By Type.
public function label(string $id): string- Human-readable label shown in the admin/editor UI.
public function description(string $id): ?string- Description.
public function layout(string $themeId, string $layout): ?string- Layout.
public function resolveLayout(string $themeId, string $layout, array $alternates = []): ?string- Resolve Layout.
public function cssPath(string $themeId): ?string- Css Path.
public function chrome(string $id): array- Chrome.
public function ids(): array- Ids.
Voodflow\Voodbuilder\Support\VoodbuilderPaths
- File:
Support/VoodbuilderPaths.php - Kind:
class - Responsibility: Voodbuilder Paths.
Methods
public static function packagePath(): string- Package Path.
public static function viteSourcePath(): string- Root used for Vite input paths / manifest lookups.
public static function themeCssAbsolutePath(): string- Theme Css Absolute Path.
public static function themeCssRelativePath(): string- Theme Css Relative Path.
public static function defaultViteEntries(): array- Default Vite Entries.
public static function editorViteEntry(): string- Editor Vite Entry.
public static function editorCssEntry(): string- Editor Css Entry.
public static function editorBlockPreviewCssEntry(): string- Editor Block Preview Css Entry.
public static function editorTabsCssEntry(): string- Editor Tabs Css Entry.
public static function editorFormsCssEntry(): string- Editor Forms Css Entry.
public static function viteInputEntries(): array- Vite Input Entries.
public static function editorCanvasStyleEntries(): array- Editor Canvas Style Entries.
public static function isVendorInstall(): bool- Boolean predicate
isVendorInstall.
- Boolean predicate
public static function viteManifestKeys(string $entry): array- Manifest keys to try for a Vite entry (vendor mirror ↔ packages path-repo).
public static function relativeToBasePath(string $absolutePath): string- Relative To Base Path.