public static function Connection()
 {
     if (self::$connection) {
         return self::$connection;
     }
     $config = self::config();
     $consumer_key = $config->consumer_key;
     $consumer_secret = $config->consumer_secret;
     $oauth_token = $config->oauth_token;
     $oauth_token_secret = $config->oauth_token_secret;
     if (empty($consumer_key) || empty($consumer_secret) || empty($oauth_token) || empty($oauth_token_secret)) {
         throw new Exception(__METHOD__ . '(): Twitter credentials do not exist in the configuration.');
     }
     self::$connection = new TwitterOAuth($consumer_key, $consumer_secret, $oauth_token, $oauth_token_secret);
     self::$connection->setTimeouts(30, 30);
     //Test the connection
     $response = self::$connection->get('account/verify_credentials');
     if (self::Error()) {
         throw new Exception(__METHOD__ . '(): Connection failed. ' . self::ErrorMessage($response));
     }
     return self::$connection;
 }