1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90:
<?php
namespace SAREhub\Commons\Misc;
/**
* Helper builder for DSN string format: <transport>://endpoint
*/
class Dsn
{
/** @var string */
private $transport;
/** @var string */
private $endpoint;
/**
* Sets INPROC transport type
* @return Dsn
*/
public static function inproc()
{
return (new self())->transport('inproc');
}
/**
* Sets IPC transport type
* @return Dsn
*/
public static function ipc()
{
return (new self())->transport('ipc');
}
/**
* Sets TCP transport type
* @return Dsn
*/
public static function tcp()
{
return (new self())->transport('tcp');
}
/**
* Sets custom transport type
* @param $type
* @return $this
*/
public function transport($type)
{
$this->transport = $type;
return $this;
}
/**
* @return string
*/
public function getTransport()
{
return $this->transport;
}
/**
* Sets address for dsn
* @param string $endpoint
* @return $this
*/
public function endpoint($endpoint)
{
$this->endpoint = $endpoint;
return $this;
}
/**
* @return string
*/
public function getEndpoint()
{
return $this->endpoint;
}
/**
* Returns string in DSN format <transport>://endpoint
* @return string
*/
public function __toString()
{
return $this->transport . '://' . $this->endpoint;
}
}