src/Cms/CoreBundle/Model/Scenes/DashboardScene.php line 138

Open in your IDE?
  1. <?php
  2. namespace Cms\CoreBundle\Model\Scenes;
  3. use Cms\CoreBundle\Service\SceneRenderer;
  4. use Symfony\Component\DependencyInjection\ContainerInterface;
  5. /**
  6.  * Class DashboardScene
  7.  * @package Cms\CoreBundle\Model\Scenes
  8.  */
  9. abstract class DashboardScene extends AbstractScene
  10. {
  11.     /**
  12.      * @var string
  13.      */
  14.     private $template;
  15.     /**
  16.      * @var array
  17.      */
  18.     private $parameters;
  19.     /**
  20.      * @param string $template
  21.      * @param array $parameters
  22.      */
  23.     public function __construct($template, array $parameters = [])
  24.     {
  25.         $this->template $template;
  26.         $this->parameters $parameters;
  27.     }
  28.     /**
  29.      * @return string
  30.      */
  31.     public function getTemplate()
  32.     {
  33.         return $this->template;
  34.     }
  35.     /**
  36.      * @param string $template
  37.      * @return $this
  38.      */
  39.     public function setTemplate($template)
  40.     {
  41.         $this->template $template;
  42.         return $this;
  43.     }
  44.     /**
  45.      * @param string $key
  46.      * @return bool
  47.      */
  48.     public function hasParameter($key)
  49.     {
  50.         return array_key_exists($key$this->parameters);
  51.     }
  52.     /**
  53.      * @param string $key
  54.      * @return mixed
  55.      */
  56.     public function getParameter($key)
  57.     {
  58.         return $this->parameters[$key];
  59.     }
  60.     /**
  61.      * @return array
  62.      */
  63.     public function getParameters()
  64.     {
  65.         return $this->parameters;
  66.     }
  67.     /**
  68.      * @param string $key
  69.      * @param mixed $value
  70.      * @return $this
  71.      */
  72.     public function setParameter($key$value)
  73.     {
  74.         $this->parameters[$key] = $value;
  75.         return $this;
  76.     }
  77.     /**
  78.      * @param array $value
  79.      * @return $this
  80.      */
  81.     public function setParameters(array $value)
  82.     {
  83.         $this->parameters $value;
  84.         return $this;
  85.     }
  86.     /**
  87.      * @param string $key
  88.      * @return $this
  89.      */
  90.     public function eraseParameter($key)
  91.     {
  92.         if (isset($this->parameters[$key])) {
  93.             unset($this->parameters[$key]);
  94.         }
  95.         return $this;
  96.     }
  97.     /**
  98.      * @return $this
  99.      */
  100.     public function eraseParameters()
  101.     {
  102.         $this->parameters = [];
  103.         return $this;
  104.     }
  105.     /**
  106.      * {@inheritdoc}
  107.      */
  108.     public function isFileBased()
  109.     {
  110.         return true;
  111.     }
  112.     /**
  113.      * {@inheritdoc}
  114.      */
  115.     public function generateParameters(ContainerInterface $container$extras null)
  116.     {
  117.         // deps
  118.         /** @var SceneRenderer $sceneRenderer */
  119.         $sceneRenderer $container->get(SceneRenderer::class);
  120.         // render our template as a general scene
  121.         $content $sceneRenderer->subrender(new Scene(
  122.             $this->getTemplate(),
  123.             $this->getParameters()
  124.         ));
  125.         // done
  126.         return array(
  127.             'content' => $content,
  128.             'doc' => $this->getAssetsOrganizer(),
  129.         );
  130.     }
  131. }