Verzeichnisstruktur phpBB-3.2.0
- Veröffentlicht
- 06.01.2017
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. |
|
(Beispiel Datei-Icons)
|
Auf das Icon klicken um den Quellcode anzuzeigen |
Expression.php
001 <?php
002
003 /*
004 * This file is part of the Symfony package.
005 *
006 * (c) Fabien Potencier <fabien@symfony.com>
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 Symfony\Component\Finder\Expression;
013
014 @trigger_error('The '.__NAMESPACE__.'\Expression class is deprecated since version 2.8 and will be removed in 3.0.', E_USER_DEPRECATED);
015
016 /**
017 * @author Jean-François Simon <contact@jfsimon.fr>
018 */
019 class Expression implements ValueInterface
020 {
021 const TYPE_REGEX = 1;
022 const TYPE_GLOB = 2;
023
024 /**
025 * @var ValueInterface
026 */
027 private $value;
028
029 /**
030 * @param string $expr
031 *
032 * @return Expression
033 */
034 public static function create($expr)
035 {
036 return new self($expr);
037 }
038
039 /**
040 * @param string $expr
041 */
042 public function __construct($expr)
043 {
044 try {
045 $this->value = Regex::create($expr);
046 } catch (\InvalidArgumentException $e) {
047 $this->value = new Glob($expr);
048 }
049 }
050
051 /**
052 * @return string
053 */
054 public function __toString()
055 {
056 return $this->render();
057 }
058
059 /**
060 * {@inheritdoc}
061 */
062 public function render()
063 {
064 return $this->value->render();
065 }
066
067 /**
068 * {@inheritdoc}
069 */
070 public function renderPattern()
071 {
072 return $this->value->renderPattern();
073 }
074
075 /**
076 * @return bool
077 */
078 public function isCaseSensitive()
079 {
080 return $this->value->isCaseSensitive();
081 }
082
083 /**
084 * @return int
085 */
086 public function getType()
087 {
088 return $this->value->getType();
089 }
090
091 /**
092 * {@inheritdoc}
093 */
094 public function prepend($expr)
095 {
096 $this->value->prepend($expr);
097
098 return $this;
099 }
100
101 /**
102 * {@inheritdoc}
103 */
104 public function append($expr)
105 {
106 $this->value->append($expr);
107
108 return $this;
109 }
110
111 /**
112 * @return bool
113 */
114 public function isRegex()
115 {
116 return self::TYPE_REGEX === $this->value->getType();
117 }
118
119 /**
120 * @return bool
121 */
122 public function isGlob()
123 {
124 return self::TYPE_GLOB === $this->value->getType();
125 }
126
127 /**
128 * @return Glob
129 *
130 * @throws \LogicException
131 */
132 public function getGlob()
133 {
134 if (self::TYPE_GLOB !== $this->value->getType()) {
135 throw new \LogicException('Regex can\'t be transformed to glob.');
136 }
137
138 return $this->value;
139 }
140
141 /**
142 * @return Regex
143 */
144 public function getRegex()
145 {
146 return self::TYPE_REGEX === $this->value->getType() ? $this->value : $this->value->toRegex();
147 }
148 }
149