Change self to static, change private to protected

When we use self instead of static values cannot be overloaded in children classes. Especially line 88 is important.

Lets assume following situation:

class MyClient extends \ElasticSearch\Client
{
    public function myFunction()
    {
        echo 'It works!';
    }
}

$client = MyClient::connection($config);
$client->myFunction(); //it will work only if we replace self to static

Also I've changed private to protected, because it can be helpful if we want to extend the class. Is any special reason to make values private?