ÿØÿà JFIF    ÿÛ „ ( %!1!%*+...983,7(-.- PKk]9! Symfony.phpnu[ Composer.phpnu[path = (new WhitespacePathNormalizer())->normalizePath($this->path); } catch (PathTraversalDetected) { $this->path = '/'; } } public function getId(): string { return static::ID; } public function getName(): string { return static::NAME; } public function getPath(): string { return $this->path; } public function getVersion(): ?string { return $this->version; } public function getApplication(): ?string { return $this->application; } public function jsonSerialize(): array { return [ 'id' => $this->getId(), 'name' => $this->getName(), 'path' => $this->getPath(), 'version' => $this->getVersion(), 'application' => $this->getApplication(), ]; } public static function createById( string $id, ?string $path = null, ?string $version = null, ?string $application = null ): MatchResultInterface { $classname = match ($id) { CakePHP::ID => CakePHP::class, CodeIgniter::ID => CodeIgniter::class, Composer::ID => Composer::class, DotNet::ID => DotNet::class, Drupal::ID => Drupal::class, Joomla::ID => Joomla::class, Laravel::ID => Laravel::class, NodeJs::ID => NodeJs::class, Php::ID => Php::class, Prestashop::ID => Prestashop::class, Python::ID => Python::class, Ruby::ID => Ruby::class, Symfony::ID => Symfony::class, Typo3::ID => Typo3::class, Wordpress::ID => Wordpress::class, Yii::ID => Yii::class, Sitejet::ID => Sitejet::class, WebPresenceBuilder::ID => WebPresenceBuilder::class, Sitepro::ID => Sitepro::class, Duda::ID => Duda::class, Siteplus::ID => Siteplus::class, default => null, }; if (!$classname) { return new EmptyMatchResult(); } return new $classname(path: $path ?? '', version: $version, application: $application); } } PKk]䟥 Sitepro.phpnu[ ] Composer.phpnu[PKk]zJ R Sitejet.phpnu[PKk] C CakePHP.phpnu[PKk]͙K4Ruby.phpnu[PKk]zDuda.phpnu[PKk]WL MatchResult.phpnu[PKk]䟥 Sitepro.phpnu[PKk]-"U Python.phpnu[PKk]wEmptyMatchResult.phpnu[PKk]Ȼ' Wordpress.phpnu[PKk] CodeIgniter.phpnu[PKk] { !Laravel.phpnu[PKk]JS "Siteplus.phpnu[PK#"