Skip to content

View Models

The module provides several view models for handling Prismic content rendering and URL resolution.

Core View Models

DocumentResolver

Elgentos\PrismicIO\ViewModel\DocumentResolver

Handles document context and reference resolution.

LinkResolver

Elgentos\PrismicIO\ViewModel\LinkResolver

Resolves Prismic document links to Magento URLs.

HtmlSerializer

Elgentos\PrismicIO\ViewModel\HtmlSerializer

Handles custom HTML serialization for Rich Text content.

RouteResolver

Elgentos\PrismicIO\ViewModel\RouteResolver

Manages route resolution for Prismic documents.

Implementation

DocumentResolver

public function hasDocument(): bool
public function getDocument(): \stdClass
public function hasContext(string $documentReference, \stdClass $document = null): bool
public function getContext(string $documentReference, \stdClass $document = null)

LinkResolver

public function resolve($link): ?string
public function getStore(\stdClass $link): StoreInterface
public function resolveRouteUrl(\stdClass $link): ?string
public function resolveDirectPage(\stdClass $link): ?string

HtmlSerializer

public function serialize(BlockInterface $object, string $content): ?string

Usage Examples

Document Resolution

/** @var $documentResolver DocumentResolver */
if ($documentResolver->hasContext('data.title')) {
    $title = $documentResolver->getContext('data.title');
}
/** @var $linkResolver LinkResolver */
$url = $linkResolver->resolve($document);

Route Resolution

/** @var $routeResolver RouteResolver */
if ($routeResolver->hasRoute()) {
    $route = $routeResolver->getRoute();
}

Best Practices

  1. Document Handling
  2. Check document existence
  3. Handle missing contexts
  4. Use proper error handling

  5. Link Resolution

  6. Consider multi-store setup
  7. Handle missing routes
  8. Implement caching

  9. Route Management

  10. Validate routes
  11. Handle store-specific routes
  12. Document routing patterns