ok
Direktori : /home2/selectio/public_html/3-idiots/vendor/doctrine/dbal/src/Driver/IBMDB2/ |
Current File : /home2/selectio/public_html/3-idiots/vendor/doctrine/dbal/src/Driver/IBMDB2/DataSourceName.php |
<?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); } }