/** * @param \Doctrine\DBAL\Connection $conn * * @throws \Doctrine\DBAL\Sharding\ShardingException */ public function __construct(Connection $conn) { $this->conn = $conn; $params = $conn->getParams(); if (!isset($params['sharding']['federationName'])) { throw ShardingException::missingDefaultFederationName(); } if (!isset($params['sharding']['distributionKey'])) { throw ShardingException::missingDefaultDistributionKey(); } if (!isset($params['sharding']['distributionType'])) { throw ShardingException::missingDistributionType(); } $this->federationName = $params['sharding']['federationName']; $this->distributionKey = $params['sharding']['distributionKey']; $this->distributionType = $params['sharding']['distributionType']; $this->filteringEnabled = isset($params['sharding']['filteringEnabled']) ? (bool) $params['sharding']['filteringEnabled'] : false; }