Verzeichnisstruktur phpBB-3.3.16


Veröffentlicht
27.04.2026

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

      (Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

TwigFilter.php

Zuletzt modifiziert: 01.05.2026, 11:26 - Dateigröße: 3.54 KiB


 001  <?php
 002   
 003  /*
 004   * This file is part of Twig.
 005   *
 006   * (c) Fabien Potencier
 007   *
 008   * For the full copyright and license information, please view the LICENSE
 009   * file that was distributed with this source code.
 010   */
 011   
 012  namespace Twig;
 013   
 014  use Twig\Node\Expression\FilterExpression;
 015  use Twig\Node\Node;
 016   
 017  /**
 018   * Represents a template filter.
 019   *
 020   * @final since Twig 2.4.0
 021   *
 022   * @author Fabien Potencier <fabien@symfony.com>
 023   *
 024   * @see https://twig.symfony.com/doc/templates.html#filters
 025   */
 026  class TwigFilter
 027  {
 028      private $name;
 029      private $callable;
 030      private $options;
 031      private $arguments = [];
 032   
 033      /**
 034       * Creates a template filter.
 035       *
 036       * @param string        $name     Name of this filter
 037       * @param callable|null $callable A callable implementing the filter. If null, you need to overwrite the "node_class" option to customize compilation.
 038       * @param array         $options  Options array
 039       */
 040      public function __construct(string $name, $callable = null, array $options = [])
 041      {
 042          if (__CLASS__ !== static::class) {
 043              @trigger_error('Overriding '.__CLASS__.' is deprecated since Twig 2.4.0 and the class will be final in 3.0.', \E_USER_DEPRECATED);
 044          }
 045   
 046          $this->name = $name;
 047          $this->callable = $callable;
 048          $this->options = array_merge([
 049              'needs_environment' => false,
 050              'needs_context' => false,
 051              'is_variadic' => false,
 052              'is_safe' => null,
 053              'is_safe_callback' => null,
 054              'pre_escape' => null,
 055              'preserves_safety' => null,
 056              'node_class' => FilterExpression::class,
 057              'deprecated' => false,
 058              'alternative' => null,
 059          ], $options);
 060      }
 061   
 062      public function getName()
 063      {
 064          return $this->name;
 065      }
 066   
 067      /**
 068       * Returns the callable to execute for this filter.
 069       *
 070       * @return callable|null
 071       */
 072      public function getCallable()
 073      {
 074          return $this->callable;
 075      }
 076   
 077      public function getNodeClass()
 078      {
 079          return $this->options['node_class'];
 080      }
 081   
 082      public function setArguments($arguments)
 083      {
 084          $this->arguments = $arguments;
 085      }
 086   
 087      public function getArguments()
 088      {
 089          return $this->arguments;
 090      }
 091   
 092      public function needsEnvironment()
 093      {
 094          return $this->options['needs_environment'];
 095      }
 096   
 097      public function needsContext()
 098      {
 099          return $this->options['needs_context'];
 100      }
 101   
 102      public function getSafe(Node $filterArgs)
 103      {
 104          if (null !== $this->options['is_safe']) {
 105              return $this->options['is_safe'];
 106          }
 107   
 108          if (null !== $this->options['is_safe_callback']) {
 109              return $this->options['is_safe_callback']($filterArgs);
 110          }
 111      }
 112   
 113      public function getPreservesSafety()
 114      {
 115          return $this->options['preserves_safety'];
 116      }
 117   
 118      public function getPreEscape()
 119      {
 120          return $this->options['pre_escape'];
 121      }
 122   
 123      public function isVariadic()
 124      {
 125          return $this->options['is_variadic'];
 126      }
 127   
 128      public function isDeprecated()
 129      {
 130          return (bool) $this->options['deprecated'];
 131      }
 132   
 133      public function getDeprecatedVersion()
 134      {
 135          return $this->options['deprecated'];
 136      }
 137   
 138      public function getAlternative()
 139      {
 140          return $this->options['alternative'];
 141      }
 142  }
 143   
 144  // For Twig 1.x compatibility
 145  class_alias('Twig\TwigFilter', 'Twig_SimpleFilter', false);
 146   
 147  class_alias('Twig\TwigFilter', 'Twig_Filter');
 148   
 149  // Ensure that the aliased name is loaded to keep BC for classes implementing the typehint with the old aliased name.
 150  class_exists('Twig\Node\Node');
 151