gatewayTransport ?? new gateway_shelly_transport($this->manager(), $explicitLocalOverride); } if ($override === edge_gateway_manager::TRANSPORT_MODE_CLOUD) { return $this->cloudTransport ?? new cloud_shelly_transport(); } $mode = $this->manager()->getDepartmentTransportMode($departmentId); if ($mode === edge_gateway_manager::TRANSPORT_MODE_GATEWAY) { return $this->gatewayTransport ?? new gateway_shelly_transport($this->manager()); } return $this->cloudTransport ?? new cloud_shelly_transport(); } private function manager(): edge_gateway_manager { return $this->edgeGatewayManager ?? new edge_gateway_manager(); } }