vendor/ezsystems/ezplatform-kernel/eZ/Publish/Core/MVC/Symfony/SiteAccess.php line 15

Open in your IDE?
  1. <?php
  2. /**
  3.  * @copyright Copyright (C) Ibexa AS. All rights reserved.
  4.  * @license For full copyright and license information view LICENSE file distributed with this source code.
  5.  */
  6. namespace eZ\Publish\Core\MVC\Symfony;
  7. use eZ\Publish\API\Repository\Values\ValueObject;
  8. use JsonSerializable;
  9. /**
  10.  * Base struct for a siteaccess representation.
  11.  */
  12. class SiteAccess extends ValueObject implements JsonSerializable
  13. {
  14.     public const DEFAULT_MATCHING_TYPE 'default';
  15.     /**
  16.      * Name of the siteaccess.
  17.      *
  18.      * @var string
  19.      */
  20.     public $name;
  21.     /** @var \eZ\Publish\Core\MVC\Symfony\SiteAccessGroup[] */
  22.     public $groups = [];
  23.     /**
  24.      * The matching type that has been used to discover the siteaccess.
  25.      * Contains the matcher class FQN, or 'default' if fell back to the default siteaccess.
  26.      *
  27.      * @var string
  28.      */
  29.     public $matchingType;
  30.     /**
  31.      * The matcher instance that has been used to discover the siteaccess.
  32.      *
  33.      * @var \eZ\Publish\Core\MVC\Symfony\SiteAccess\Matcher
  34.      */
  35.     public $matcher;
  36.     /**
  37.      * The name of the provider from which Site Access comes.
  38.      *
  39.      * @var string|null
  40.      */
  41.     public $provider;
  42.     public function __construct(
  43.         string $name,
  44.         string $matchingType self::DEFAULT_MATCHING_TYPE,
  45.         $matcher null,
  46.         ?string $provider null
  47.     ) {
  48.         $this->name $name;
  49.         $this->matchingType $matchingType;
  50.         $this->matcher $matcher;
  51.         $this->provider $provider;
  52.     }
  53.     public function __toString()
  54.     {
  55.         return "$this->name (matched by '$this->matchingType')";
  56.     }
  57.     public function jsonSerialize()
  58.     {
  59.         $matcher is_object($this->matcher) ? get_class($this->matcher) : null;
  60.         return [
  61.             'name' => $this->name,
  62.             'matchingType' => $this->matchingType,
  63.             'matcher' => $matcher,
  64.             'provider' => $this->provider,
  65.         ];
  66.     }
  67. }