403Webshell
Server IP : 103.161.17.216  /  Your IP : 216.73.216.1
Web Server : nginx/1.18.0
System : Linux tipsysaigoncharming 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User : www-data ( 33)
PHP Version : 7.4.3-4ubuntu2.29
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/app.ansachsongkhoe.net/vendor/windwalker/renderer/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/app.ansachsongkhoe.net/vendor/windwalker/renderer/TwigRenderer.php
<?php declare(strict_types=1);
/**
 * Part of Windwalker project.
 *
 * @copyright  Copyright (C) 2019 LYRASOFT.
 * @license    LGPL-2.0-or-later
 */

namespace Windwalker\Renderer;

use Windwalker\Renderer\Twig\GlobalContainer;
use Windwalker\Renderer\Twig\TwigFilesystemLoader;
use Windwalker\Structure\Structure;

/**
 * Class PhpRenderer
 *
 * @since 2.0
 */
class TwigRenderer extends AbstractEngineRenderer
{
    /**
     * Property twig.
     *
     * @var  \Twig_Environment
     */
    protected $engine = null;

    /**
     * Property loader.
     *
     * @var  \Twig_LoaderInterface
     */
    protected $loader = null;

    /**
     * Property extensions.
     *
     * @var  \Twig_ExtensionInterface[]
     */
    protected $extensions = [];

    /**
     * Property config.
     *
     * @var  Structure|array
     */
    protected $config = [];

    /**
     * Property debugExtension.
     *
     * @var  \Twig_Extension_Debug
     */
    protected $debugExtension = null;

    /**
     * render
     *
     * @param string       $file
     * @param array|object $data
     *
     * @throws  \UnexpectedValueException
     * @return  string
     */
    public function render($file, $data = [])
    {
        $file = pathinfo($file, PATHINFO_EXTENSION) === 'twig' ? $file : $file . '.twig';

        $this->extensions = array_merge($this->extensions, (array) $this->config->get('extensions', []));

        return $this->getEngine()->render($file, $data);
    }

    /**
     * getLoader
     *
     * @return  \Twig_LoaderInterface
     */
    public function getLoader()
    {
        if (!$this->loader) {
            if ($this->config->get('path_separator')) {
                $this->loader = new TwigFilesystemLoader(
                    iterator_to_array(clone $this->getPaths()),
                    $this->config->get('path_separator')
                );
            } else {
                $this->loader = new \Twig_Loader_Filesystem(iterator_to_array(clone $this->getPaths()));
            }
        }

        return $this->loader;
    }

    /**
     * setLoader
     *
     * @param   \Twig_LoaderInterface $loader
     *
     * @return  TwigRenderer  Return self to support chaining.
     */
    public function setLoader(\Twig_LoaderInterface $loader)
    {
        $this->loader = $loader;

        return $this;
    }

    /**
     * addExtension
     *
     * @param \Twig_ExtensionInterface $extension
     *
     * @return  static
     */
    public function addExtension(\Twig_ExtensionInterface $extension)
    {
        $this->extensions[] = $extension;

        return $this;
    }

    /**
     * getTwig
     *
     * @param bool $new
     *
     * @return  \Twig_Environment
     */
    public function getEngine($new = false)
    {
        if (!($this->engine instanceof \Twig_Environment) || $new) {
            $this->engine = new \Twig_Environment($this->getLoader(), $this->config->toArray());

            foreach (GlobalContainer::getExtensions() as $extension) {
                $this->engine->addExtension(clone $extension);
            }

            foreach ($this->extensions as $extension) {
                $this->engine->addExtension($extension);
            }

            foreach (GlobalContainer::getGlobals() as $name => $value) {
                $this->engine->addGlobal($name, $value);
            }

            if ($this->config->get('debug')) {
                $this->engine->addExtension($this->getDebugExtension());
            }
        }

        return $this->engine;
    }

    /**
     * setTwig
     *
     * @param   \Twig_Environment $twig
     *
     * @return  TwigRenderer  Return self to support chaining.
     */
    public function setEngine($twig)
    {
        if (!($twig instanceof \Twig_Environment)) {
            throw new \InvalidArgumentException('Engine object should be Twig_environment');
        }

        $this->engine = $twig;

        return $this;
    }

    /**
     * Method to get property DebugExtension
     *
     * @return  \Twig_Extension_Debug
     */
    public function getDebugExtension()
    {
        if (!$this->debugExtension) {
            $this->debugExtension = new \Twig_Extension_Debug();
        }

        return $this->debugExtension;
    }

    /**
     * Method to set property debugExtension
     *
     * @param   \Twig_ExtensionInterface $debugExtension
     *
     * @return  static  Return self to support chaining.
     */
    public function setDebugExtension(\Twig_ExtensionInterface $debugExtension)
    {
        $this->debugExtension = $debugExtension;

        return $this;
    }

    /**
     * Method to get property Extensions
     *
     * @return  \Twig_ExtensionInterface[]
     */
    public function getExtensions()
    {
        return $this->extensions;
    }

    /**
     * Method to set property extensions
     *
     * @param   \Twig_ExtensionInterface[] $extensions Twig extenions
     *
     * @return  static  Return self to support chaining.
     */
    public function setExtensions($extensions)
    {
        $this->extensions = $extensions;

        return $this;
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit