Linux cesa-www-main 6.1.0-49-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
Apache/2.4.68 (Debian)
Server IP : 10.218.0.2 & Your IP : 216.73.217.117
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
var /
www /
v3.cesa.co.za /
vendor /
twig /
string-extra /
Delete
Unzip
Name
Size
Permission
Date
Action
.htaccess
237
B
-r-xr-xr-x
2026-08-17 03:12
LICENSE
1.04
KB
-rwxrwxr-x
2025-12-02 14:45
README.md
778
B
-rwxrwxr-x
2025-12-02 14:45
StringExtension.php
3.04
KB
-rwxrwxr-x
2025-12-02 14:45
composer.json
895
B
-rwxrwxr-x
2025-12-02 14:45
Save
Rename
<?php /* * This file is part of Twig. * * (c) Fabien Potencier * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Twig\Extra\String; use Symfony\Component\String\AbstractUnicodeString; use Symfony\Component\String\Inflector\EnglishInflector; use Symfony\Component\String\Inflector\FrenchInflector; use Symfony\Component\String\Inflector\InflectorInterface; use Symfony\Component\String\Inflector\SpanishInflector; use Symfony\Component\String\Slugger\AsciiSlugger; use Symfony\Component\String\Slugger\SluggerInterface; use Symfony\Component\String\UnicodeString; use Twig\Error\RuntimeError; use Twig\Extension\AbstractExtension; use Twig\TwigFilter; final class StringExtension extends AbstractExtension { private $slugger; private $englishInflector; private $spanishInflector; private $frenchInflector; public function __construct(?SluggerInterface $slugger = null) { $this->slugger = $slugger ?: new AsciiSlugger(); } public function getFilters(): array { return [ new TwigFilter('u', [$this, 'createUnicodeString']), new TwigFilter('slug', [$this, 'createSlug']), new TwigFilter('plural', [$this, 'plural']), new TwigFilter('singular', [$this, 'singular']), ]; } public function createUnicodeString(?string $text): UnicodeString { return new UnicodeString($text ?? ''); } public function createSlug(string $string, string $separator = '-', ?string $locale = null): AbstractUnicodeString { return $this->slugger->slug($string, $separator, $locale); } /** * @return array|string */ public function plural(string $value, string $locale = 'en', bool $all = false) { if ($all) { return $this->getInflector($locale)->pluralize($value); } return $this->getInflector($locale)->pluralize($value)[0]; } /** * @return array|string */ public function singular(string $value, string $locale = 'en', bool $all = false) { if ($all) { return $this->getInflector($locale)->singularize($value); } return $this->getInflector($locale)->singularize($value)[0]; } private function getInflector(string $locale): InflectorInterface { switch ($locale) { case 'en': return $this->englishInflector ?? $this->englishInflector = new EnglishInflector(); case 'es': if (!class_exists(SpanishInflector::class)) { throw new RuntimeError('SpanishInflector is not available.'); } return $this->spanishInflector ?? $this->spanishInflector = new SpanishInflector(); case 'fr': return $this->frenchInflector ?? $this->frenchInflector = new FrenchInflector(); default: throw new \InvalidArgumentException(\sprintf('Locale "%s" is not supported.', $locale)); } } }