original_string: public function connect()
      {
          if ($this->_connection) {
              return true;
          }
          $config = $this->_config;
  
          if (isset($config['persistent']) && $config['persistent']) {
              throw new \InvalidArgumentException('Config setting "persistent" cannot be set to true, as the Sqlserver PDO driver does not support PDO::ATTR_PERSISTENT');
          }
  
          $config['flags'] += [
              PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
          ];
  
          if (!empty($config['encoding'])) {
              $config['flags'][PDO::SQLSRV_ATTR_ENCODING] = $config['encoding'];
          }
          $port = '';
          if (strlen($config['port'])) {
              $port = ',' . $config['port'];
          }
  
          $dsn = "sqlsrv:Server={$config['host']}{$port};Database={$config['database']};MultipleActiveResultSets=false";
          if ($config['app'] !== null) {
              $dsn .= ";APP={$config['app']}";
          }
          if ($config['connectionPooling'] !== null) {
              $dsn .= ";ConnectionPooling={$config['connectionPooling']}";
          }
          if ($config['failoverPartner'] !== null) {
              $dsn .= ";Failover_Partner={$config['failoverPartner']}";
          }
          if ($config['loginTimeout'] !== null) {
              $dsn .= ";LoginTimeout={$config['loginTimeout']}";
          }
          if ($config['multiSubnetFailover'] !== null) {
              $dsn .= ";MultiSubnetFailover={$config['multiSubnetFailover']}";
          }
          $this->_connect($dsn, $config);
  
          $connection = $this->getConnection();
          if (!empty($config['init'])) {
              foreach ((array)$config['init'] as $command) {
                  $connection->exec($command);
              }
          }
          if (!empty($config['settings']) && is_array($config['settings'])) {
              foreach ($config['settings'] as $key => $value) {
                  $connection->exec("SET {$key} {$value}");
              }
          }
          if (!empty($config['attributes']) && is_array($config['attributes'])) {
              foreach ($config['attributes'] as $key => $value) {
                  $connection->setAttribute($key, $value);
              }
          }
  
          return true;
      }
code: public function connect()
      {
          if ($this->_connection) {
              return true;
          }
          $config = $this->_config;
  
          if (isset($config['persistent']) && $config['persistent']) {
              throw new \InvalidArgumentException('Config setting "persistent" cannot be set to true, as the Sqlserver PDO driver does not support PDO::ATTR_PERSISTENT');
          }
  
          $config['flags'] += [
              PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
          ];
  
          if (!empty($config['encoding'])) {
              $config['flags'][PDO::SQLSRV_ATTR_ENCODING] = $config['encoding'];
          }
          $port = '';
          if (strlen($config['port'])) {
              $port = ',' . $config['port'];
          }
  
          $dsn = "sqlsrv:Server={$config['host']}{$port};Database={$config['database']};MultipleActiveResultSets=false";
          if ($config['app'] !== null) {
              $dsn .= ";APP={$config['app']}";
          }
          if ($config['connectionPooling'] !== null) {
              $dsn .= ";ConnectionPooling={$config['connectionPooling']}";
          }
          if ($config['failoverPartner'] !== null) {
              $dsn .= ";Failover_Partner={$config['failoverPartner']}";
          }
          if ($config['loginTimeout'] !== null) {
              $dsn .= ";LoginTimeout={$config['loginTimeout']}";
          }
          if ($config['multiSubnetFailover'] !== null) {
              $dsn .= ";MultiSubnetFailover={$config['multiSubnetFailover']}";
          }
          $this->_connect($dsn, $config);
  
          $connection = $this->getConnection();
          if (!empty($config['init'])) {
              foreach ((array)$config['init'] as $command) {
                  $connection->exec($command);
              }
          }
          if (!empty($config['settings']) && is_array($config['settings'])) {
              foreach ($config['settings'] as $key => $value) {
                  $connection->exec("SET {$key} {$value}");
              }
          }
          if (!empty($config['attributes']) && is_array($config['attributes'])) {
              foreach ($config['attributes'] as $key => $value) {
                  $connection->setAttribute($key, $value);
              }
          }
  
          return true;
      }
code_tokens: public function connect ( ) { if ( $ this -> _connection ) { return true ; } $ config = $ this -> _config ; if ( isset ( $ config [ 'persistent' ] ) && $ config [ 'persistent' ] ) { throw new \ InvalidArgumentException ( 'Config setting "persistent" cannot be set to true, as the Sqlserver PDO driver does not support PDO::ATTR_PERSISTENT' ) ; } $ config [ 'flags' ] += [ PDO :: ATTR_EMULATE_PREPARES => false , PDO :: ATTR_ERRMODE => PDO :: ERRMODE_EXCEPTION ] ; if ( ! empty ( $ config [ 'encoding' ] ) ) { $ config [ 'flags' ] [ PDO :: SQLSRV_ATTR_ENCODING ] = $ config [ 'encoding' ] ; } $ port = '' ; if ( strlen ( $ config [ 'port' ] ) ) { $ port = ',' . $ config [ 'port' ] ; } $ dsn = "sqlsrv:Server={$config['host']}{$port};Database={$config['database']};MultipleActiveResultSets=false" ; if ( $ config [ 'app' ] !== null ) { $ dsn .= ";APP={$config['app']}" ; } if ( $ config [ 'connectionPooling' ] !== null ) { $ dsn .= ";ConnectionPooling={$config['connectionPooling']}" ; } if ( $ config [ 'failoverPartner' ] !== null ) { $ dsn .= ";Failover_Partner={$config['failoverPartner']}" ; } if ( $ config [ 'loginTimeout' ] !== null ) { $ dsn .= ";LoginTimeout={$config['loginTimeout']}" ; } if ( $ config [ 'multiSubnetFailover' ] !== null ) { $ dsn .= ";MultiSubnetFailover={$config['multiSubnetFailover']}" ; } $ this -> _connect ( $ dsn , $ config ) ; $ connection = $ this -> getConnection ( ) ; if ( ! empty ( $ config [ 'init' ] ) ) { foreach ( ( array ) $ config [ 'init' ] as $ command ) { $ connection -> exec ( $ command ) ; } } if ( ! empty ( $ config [ 'settings' ] ) && is_array ( $ config [ 'settings' ] ) ) { foreach ( $ config [ 'settings' ] as $ key => $ value ) { $ connection -> exec ( "SET {$key} {$value}" ) ; } } if ( ! empty ( $ config [ 'attributes' ] ) && is_array ( $ config [ 'attributes' ] ) ) { foreach ( $ config [ 'attributes' ] as $ key => $ value ) { $ connection -> setAttribute ( $ key , $ value ) ; } } return true ; }
docstring: Establishes a connection to the database server.
  
  Please note that the PDO::ATTR_PERSISTENT attribute is not supported by
  the SQL Server PHP PDO drivers.  As a result you cannot use the
  persistent config option when connecting to a SQL Server  (for more
  information see: https://github.com/Microsoft/msphpsql/issues/65).
  
  @throws \InvalidArgumentException if an unsupported setting is in the driver config
  @return bool true on success
docstring_tokens: Establishes a connection to the database server .