vendor/pimcore/pimcore/lib/Routing/DocumentRoute.php line 21

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 Enterprise License (PEL)
  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 PEL
  13.  */
  14. namespace Pimcore\Routing;
  15. use Pimcore\Model\Document;
  16. use Symfony\Cmf\Component\Routing\RouteObjectInterface;
  17. use Symfony\Component\Routing\Route;
  18. class DocumentRoute extends Route implements RouteObjectInterface
  19. {
  20.     /**
  21.      * @var Document
  22.      */
  23.     protected $document;
  24.     /**
  25.      * @return Document
  26.      */
  27.     public function getDocument()
  28.     {
  29.         return $this->document;
  30.     }
  31.     /**
  32.      * @param Document $document
  33.      *
  34.      * @return $this
  35.      */
  36.     public function setDocument($document)
  37.     {
  38.         $this->document $document;
  39.         return $this;
  40.     }
  41.     /**
  42.      * Get the content document this route entry stands for. If non-null,
  43.      * the ControllerClassMapper uses it to identify a controller and
  44.      * the content is passed to the controller.
  45.      *
  46.      * If there is no specific content for this url (i.e. its an "application"
  47.      * page), may return null.
  48.      *
  49.      * @return object the document or entity this route entry points to
  50.      */
  51.     public function getContent()
  52.     {
  53.         return $this->getDocument();
  54.     }
  55.     /**
  56.      * Get the route name.
  57.      *
  58.      * Normal symfony routes do not know their name, the name is only known
  59.      * from the route collection. In the CMF, it is possible to use route
  60.      * documents outside of collections, and thus useful to have routes provide
  61.      * their name.
  62.      *
  63.      * There are no limitations to allowed characters in the name.
  64.      *
  65.      * @return string|null the route name or null to use the default name
  66.      *                     (e.g. from route collection if known)
  67.      */
  68.     public function getRouteKey()
  69.     {
  70.         if ($this->document) {
  71.             return sprintf('document_%d'$this->document->getId());
  72.         }
  73.     }
  74. }