PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
| Dir : /opt/cpanel/ea-wappspector/src/Matchers/ |
| Server: Linux host100322.itwesthosting.com 3.10.0-1160.144.1.el7.tuxcare.els4.x86_64 #1 SMP Tue Apr 7 08:40:40 UTC 2026 x86_64 IP: 144.91.64.173 |
| Dir : //opt/cpanel/ea-wappspector/src/Matchers/Siteplus.php |
<?php
declare(strict_types=1);
namespace Plesk\Wappspector\Matchers;
use League\Flysystem\Filesystem;
use Plesk\Wappspector\Helper\InspectorHelper;
use Plesk\Wappspector\MatchResult\EmptyMatchResult;
use Plesk\Wappspector\MatchResult\MatchResultInterface;
use Plesk\Wappspector\MatchResult\Siteplus as MatchResult;
class Siteplus implements MatcherInterface
{
private const PUBLISH_DIR_PATH = '/bundle/publish';
public function match(Filesystem $fs, string $path): MatchResultInterface
{
$rTrimPath = rtrim($path, '/');
$inspectorHelper = new InspectorHelper();
if (!$inspectorHelper->fileContainsString($fs, $rTrimPath . '/index.html', 'edit.site')) {
return new EmptyMatchResult();
}
if (!$fs->directoryExists($rTrimPath . self::PUBLISH_DIR_PATH)) {
return new EmptyMatchResult();
}
$publishDirList = $fs->listContents($rTrimPath . self::PUBLISH_DIR_PATH, false);
// do not check if the item is a directory as on the server when the files a copied the type of the
// directory is determined as 'file'.
// By default, there should be just 1 directory in the publish directory
$versionDirPath = $publishDirList->toArray()[0]['path'] ?? null;
if ($versionDirPath === null) {
return new EmptyMatchResult();
}
return $inspectorHelper->fileContainsString($fs, $versionDirPath . '/bundle.js', 'siteplus')
? new MatchResult($rTrimPath, $this->getSiteplusVersion($versionDirPath))
: new EmptyMatchResult();
}
private function getSiteplusVersion(string $versionDirPath): string
{
// get the last part of the path
$versionDirPathParts = explode('/', $versionDirPath);
return end($versionDirPathParts);
}
}