404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@3.22.242.84: ~ $
<?php

declare(strict_types=1);

namespace Doctrine\DBAL\Driver\IBMDB2;

use SensitiveParameter;

use function implode;
use function sprintf;
use function strpos;

/**
 * IBM DB2 DSN
 */
final class DataSourceName
{
    private string $string;

    private function __construct(
        #[SensitiveParameter]
        string $string
    ) {
        $this->string = $string;
    }

    public function toString(): string
    {
        return $this->string;
    }

    /**
     * Creates the object from an array representation
     *
     * @param array<string,mixed> $params
     */
    public static function fromArray(
        #[SensitiveParameter]
        array $params
    ): self {
        $chunks = [];

        foreach ($params as $key => $value) {
            $chunks[] = sprintf('%s=%s', $key, $value);
        }

        return new self(implode(';', $chunks));
    }

    /**
     * Creates the object from the given DBAL connection parameters.
     *
     * @param array<string,mixed> $params
     */
    public static function fromConnectionParameters(
        #[SensitiveParameter]
        array $params
    ): self {
        if (isset($params['dbname']) && strpos($params['dbname'], '=') !== false) {
            return new self($params['dbname']);
        }

        $dsnParams = [];

        foreach (
            [
                'host'     => 'HOSTNAME',
                'port'     => 'PORT',
                'protocol' => 'PROTOCOL',
                'dbname'   => 'DATABASE',
                'user'     => 'UID',
                'password' => 'PWD',
            ] as $dbalParam => $dsnParam
        ) {
            if (! isset($params[$dbalParam])) {
                continue;
            }

            $dsnParams[$dsnParam] = $params[$dbalParam];
        }

        return self::fromArray($dsnParams);
    }
}

Filemanager

Name Type Size Permission Actions
Exception Folder 0755
Connection.php File 3.39 KB 0644
DataSourceName.php File 1.79 KB 0644
Driver.php File 1.06 KB 0644
Result.php File 2.25 KB 0644
Statement.php File 5.75 KB 0644