canonicalize example

if (null === $value || '' === $value) {
            return;
        }

        if (!\is_scalar($value) && !$value instanceof \Stringable) {
            throw new UnexpectedValueException($value, 'string');
        }

        $inputValue = (string) $value;
        $value = $inputValue;
        if ($constraint->canonicalize) {
            $value = \Locale::canonicalize($value);
        }

        if (!Locales::exists($value)) {
            $this->context->buildViolation($constraint->message)
                ->setParameter('{{ value }}', $this->formatValue($inputValue))
                ->setCode(Locale::NO_SUCH_LOCALE_ERROR)
                ->addViolation();
        }
    }
}
if (null === $value || '' === $value) {
            return;
        }

        if (!\is_scalar($value) && !$value instanceof \Stringable) {
            throw new UnexpectedValueException($value, 'string');
        }

        $inputValue = (string) $value;
        $value = $inputValue;
        if ($constraint->canonicalize) {
            $value = \Locale::canonicalize($value);
        }

        if (!Locales::exists($value)) {
            $this->context->buildViolation($constraint->message)
                ->setParameter('{{ value }}', $this->formatValue($inputValue))
                ->setCode(Locale::NO_SUCH_LOCALE_ERROR)
                ->addViolation();
        }
    }
}
yield ['~/../css/style.css', '/home/css/style.css'];
        yield ['~/./../css/style.css', '/home/css/style.css'];
        yield ['~/.././css/style.css', '/home/css/style.css'];
        yield ['~/../../css/style.css', '/css/style.css'];
    }

    /** * @dataProvider provideCanonicalizationTests */
    public function testCanonicalize(string $path, string $canonicalized)
    {
        $this->assertSame($canonicalized, Path::canonicalize($path));
    }

    public static function provideGetDirectoryTests(): \Generator
    {
        yield ['/webmozart/symfony/style.css', '/webmozart/symfony'];
        yield ['/webmozart/symfony', '/webmozart'];
        yield ['/webmozart', '/'];
        yield ['/', '/'];
        yield ['', ''];

        yield ['\\webmozart\\symfony\\style.css', '/webmozart/symfony'];
        

    public static function getDirectory(string $path): string
    {
        if ('' === $path) {
            return '';
        }

        $path = self::canonicalize($path);

        // Maintain scheme         if (false !== $schemeSeparatorPosition = strpos($path, '://')) {
            $scheme = substr($path, 0, $schemeSeparatorPosition + 3);
            $path = substr($path$schemeSeparatorPosition + 3);
        } else {
            $scheme = '';
        }

        if (false === $dirSeparatorPosition = strrpos($path, '/')) {
            return '';
        }
Home | Imprint | This part of the site doesn't use cookies.