| Server IP : 198.38.94.13 / Your IP : 216.73.217.33 Web Server : Apache System : Linux d4744.dxb1.stableserver.net 5.14.0-611.49.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 21 16:39:08 EDT 2026 x86_64 User : revivere ( 1140) PHP Version : 8.2.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /opt/cpanel/ea-wappspector/src/Matchers/ |
Upload File : |
<?php
namespace Plesk\Wappspector\Matchers;
use League\Flysystem\Filesystem;
use League\Flysystem\FilesystemException;
use Plesk\Wappspector\MatchResult\EmptyMatchResult;
use Plesk\Wappspector\MatchResult\MatchResultInterface;
trait UpLevelMatcherTrait
{
abstract protected function doMatch(Filesystem $fs, string $path): MatchResultInterface;
public function match(Filesystem $fs, string $path): MatchResultInterface
{
$matcher = $this->safeScanDir($fs, $path);
if ($matcher instanceof EmptyMatchResult) {
$matcher = $this->safeScanDir($fs, rtrim($path) . '/../');
}
return $matcher;
}
private function safeScanDir(Filesystem $fs, string $path): MatchResultInterface
{
try {
$result = $this->doMatch($fs, $path);
} catch (FilesystemException) {
// skip dir if it is inaccessible
$result = new EmptyMatchResult();
}
return $result;
}
}