Sindbad~EG File Manager
<?php
namespace App\DataTransformer;
use App\Parser\ServerModeParser;
class ServerSelector implements DataTransformerInterface
{
public function __construct(
protected ServerModeParser $serverModeParser,
protected array $portsConfig,
protected string $defaultServerMode,
protected bool $disableOpenLitespeed
){}
public function transform(array $d, $k = null): array
{
$domain = $d['serverName'];
if(array_key_exists('homeDir', $d)){
$this->serverModeParser->parse($d['homeDir']);
$configType = $this->serverModeParser->get($d['homeDir'], $domain);
}else{
$configType = $this->defaultServerMode;
}
if($this->disableOpenLitespeed && in_array($configType, ['lsws', 'lsws-apache'])){
$configType = 'apache';
}
$d['configType'] = $configType;
$d['httpPort'] = $this->portsConfig[$configType]['http'];
$d['httpsPort'] = $this->portsConfig[$configType]['https'];
return [$d, $k];
}
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists