support-2.0.x-dev/modules/support_ticket/src/ProxyClass/ParamConverter/SupportTicketPreviewConverter.php
modules/support_ticket/src/ProxyClass/ParamConverter/SupportTicketPreviewConverter.php
<?php
namespace Drupal\support_ticket\ProxyClass\ParamConverter;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Drupal\Core\ParamConverter\ParamConverterInterface;
use \Drupal\Core\DependencyInjection\DependencySerializationTrait;
use Symfony\Component\Routing\Route;
/**
* Allows for conversion preview.
*
* @see \Drupal\Component\ProxyBuilder
*/
class SupportTicketPreviewConverter implements ParamConverterInterface {
use DependencySerializationTrait;
/**
* The id of the original proxied service.
*
* @var string
*/
protected string $drupalProxyOriginalServiceId;
/**
* The real proxied service, after it was lazy loaded.
*
* @var \Drupal\support_ticket\ParamConverter\SupportTicketPreviewConverter
*/
protected $service;
/**
* The service container.
*
* @var \Symfony\Component\DependencyInjection\ContainerInterface
*/
protected ContainerInterface $container;
/**
* Constructs a ProxyClass Drupal proxy object.
*
* @param \Symfony\Component\DependencyInjection\ContainerInterface $container
* The container.
* @param string $drupal_proxy_original_service_id
* The service ID of the original service.
*/
public function __construct(ContainerInterface $container, string $drupal_proxy_original_service_id) {
$this->container = $container;
$this->drupalProxyOriginalServiceId = $drupal_proxy_original_service_id;
}
/**
* Lazy loads the real service from the container.
*
* @return object
* Returns the constructed real service.
*/
protected function lazyLoadItself() {
if (!isset($this->service)) {
$this->service = $this->container->get($this->drupalProxyOriginalServiceId);
}
return $this->service;
}
/**
* {@inheritdoc}
*/
public function convert($value, $definition, $name, array $defaults) {
return $this->lazyLoadItself()->convert($value, $definition, $name, $defaults);
}
/**
* {@inheritdoc}
*
* @var \Symfony\Component\Routing\Route
*/
public function applies($definition, $name, Route $route) {
return $this->lazyLoadItself()->applies($definition, $name, $route);
}
}
