vendor/pimcore/pimcore/lib/Routing/DataObjectRoute.php line 27

Open in your IDE?
  1. <?php
  2. /**
  3.  * Pimcore
  4.  *
  5.  * This source file is available under two different licenses:
  6.  * - GNU General Public License version 3 (GPLv3)
  7.  * - Pimcore Commercial License (PCL)
  8.  * Full copyright and license information is available in
  9.  * LICENSE.md which is distributed with this source code.
  10.  *
  11.  *  @copyright  Copyright (c) Pimcore GmbH (http://www.pimcore.org)
  12.  *  @license    http://www.pimcore.org/license     GPLv3 and PCL
  13.  */
  14. namespace Pimcore\Routing;
  15. use Pimcore\Model\DataObject\Concrete;
  16. use Pimcore\Model\DataObject\Data\UrlSlug;
  17. use Pimcore\Model\Site;
  18. use Symfony\Cmf\Component\Routing\RouteObjectInterface;
  19. use Symfony\Component\Routing\Route;
  20. /**
  21.  * @internal
  22.  */
  23. final class DataObjectRoute extends Route implements RouteObjectInterface
  24. {
  25.     /**
  26.      * @var Concrete|null
  27.      */
  28.     protected ?Concrete $object;
  29.     /**
  30.      * @var UrlSlug|null
  31.      */
  32.     protected ?UrlSlug $slug;
  33.     /**
  34.      * @var Site|null
  35.      */
  36.     protected ?Site $site;
  37.     /**
  38.      * @return Concrete|null
  39.      */
  40.     public function getObject(): ?Concrete
  41.     {
  42.         return $this->object;
  43.     }
  44.     /**
  45.      * @param Concrete $object
  46.      *
  47.      * @return $this
  48.      */
  49.     public function setObject(Concrete $object): self
  50.     {
  51.         $this->object $object;
  52.         return $this;
  53.     }
  54.     /**
  55.      * @return UrlSlug|null
  56.      */
  57.     public function getSlug(): ?UrlSlug
  58.     {
  59.         return $this->slug;
  60.     }
  61.     /**
  62.      * @param UrlSlug $slug
  63.      *
  64.      * @return $this
  65.      */
  66.     public function setSlug(UrlSlug $slug): self
  67.     {
  68.         $this->slug $slug;
  69.         return $this;
  70.     }
  71.     /**
  72.      * @return Site|null
  73.      */
  74.     public function getSite(): ?Site
  75.     {
  76.         return $this->site;
  77.     }
  78.     /**
  79.      * @param Site|null $site
  80.      *
  81.      * @return $this
  82.      */
  83.     public function setSite(?Site $site): self
  84.     {
  85.         $this->site $site;
  86.         return $this;
  87.     }
  88.     /**
  89.      * {@inheritdoc}
  90.      */
  91.     public function getContent(): ?object
  92.     {
  93.         return null;
  94.     }
  95.     /**
  96.      * {@inheritdoc}
  97.      */
  98.     public function getRouteKey(): ?string
  99.     {
  100.         if ($this->object) {
  101.             return sprintf('data_object_%d_%d_%s'$this->object->getId(), $this->site?->getId(), $this->getPath());
  102.         }
  103.         return null;
  104.     }
  105. }