- <?php
- /*
-  * This file is part of EC-CUBE
-  *
-  * Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
-  *
-  * http://www.ec-cube.co.jp/
-  *
-  * For the full copyright and license information, please view the LICENSE
-  * file that was distributed with this source code.
-  */
- namespace Eccube\Twig;
- use Eccube\Event\TemplateEvent;
- use Symfony\Component\EventDispatcher\EventDispatcherInterface;
- use Twig\Source;
- class Template extends \Twig\Template
- {
-     /**
-      * {@inheritdoc}
-      *
-      * @throws \Twig\Error\LoaderError
-      * @throws \Twig\Error\SyntaxError
-      */
-     public function display(array $context, array $blocks = [])
-     {
-         $globals = $this->env->getGlobals();
-         if (isset($globals['event_dispatcher']) && strpos($this->getTemplateName(), '__string_template__') !== 0) {
-             /** @var EventDispatcherInterface $eventDispatcher */
-             $eventDispatcher = $globals['event_dispatcher'];
-             $originCode = $this->env->getLoader()->getSourceContext($this->getTemplateName())->getCode();
-             $event = new TemplateEvent($this->getTemplateName(), $originCode, $context);
-             $eventDispatcher->dispatch($event, $this->getTemplateName());
-             if ($event->getSource() !== $originCode) {
-                 $newTemplate = $this->env->createTemplate($event->getSource());
-                 $newTemplate->display($event->getParameters(), $blocks);
-             } else {
-                 parent::display($event->getParameters(), $blocks);
-             }
-         } else {
-             parent::display($context, $blocks);
-         }
-     }
-     public function getTemplateName()
-     {
-         // Templateのキャッシュ作成時に動的に作成されるメソッド
-         // デバッグツールバーでエラーが発生するため空文字を返しておく。
-         // @see https://github.com/EC-CUBE/ec-cube/issues/4529
-         return '';
-     }
-     public function getDebugInfo()
-     {
-         // Templateのキャッシュ作成時に動的に作成されるメソッド
-         return [];
-     }
-     protected function doDisplay(array $context, array $blocks = [])
-     {
-         // Templateのキャッシュ作成時に動的に作成されるメソッド
-     }
-     public function getSourceContext()
-     {
-         // FIXME Twig\Loader\FilesystemLoader の実装を持ってきたが,これで問題ないか要確認
-         return new Source('', $this->getTemplateName(), '');
-     }
- }
-