Sindbad~EG File Manager

Current Path : /opt/nginxhttpd_/src/DataTransformer/
Upload File :
Current File : //opt/nginxhttpd_/src/DataTransformer/ServerSelector.php

<?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