protected function configure(array $config = [])
    {
        $resolver = new OptionsResolver();
        $resolver->setDefaults($this->config);
        $resolver->setDefault('stream_context', function (Options $options) {
            return stream_context_create($options['stream_context_options'], $options['stream_context_param']);
        });

        $resolver->setDefault('timeout', ini_get('default_socket_timeout') * 1000);

        $resolver->setAllowedTypes('stream_context_options', 'array');
        $resolver->setAllowedTypes('stream_context_param', 'array');
        $resolver->setAllowedTypes('stream_context', 'resource');
        $resolver->setAllowedTypes('ssl', ['bool', 'null']);

        return $resolver->resolve($config);
    }
protected function configure(array $config = [])
    {
        $resolver = new OptionsResolver();
        $resolver->setDefaults($this->config);
        $resolver->setDefault('stream_context', function (Options $options) {
            return stream_context_create($options['stream_context_options'], $options['stream_context_param']);
        });

        $resolver->setDefault('timeout', ini_get('default_socket_timeout') * 1000);

        $resolver->setAllowedTypes('stream_context_options', 'array');
        $resolver->setAllowedTypes('stream_context_param', 'array');
        $resolver->setAllowedTypes('stream_context', 'resource');
        $resolver->setAllowedTypes('ssl', ['bool', 'null']);

        return $resolver->resolve($config);
    }
protected function configure ( array $ config = [ ] ) { $ resolver = new OptionsResolver ( ) ; $ resolver -> setDefaults ( $ this -> config ) ; $ resolver -> setDefault ( 'stream_context' , function ( Options $ options ) { return stream_context_create ( $ options [ 'stream_context_options' ] , $ options [ 'stream_context_param' ] ) ; } ) ; $ resolver -> setDefault ( 'timeout' , ini_get ( 'default_socket_timeout' ) * 1000 ) ; $ resolver -> setAllowedTypes ( 'stream_context_options' , 'array' ) ; $ resolver -> setAllowedTypes ( 'stream_context_param' , 'array' ) ; $ resolver -> setAllowedTypes ( 'stream_context' , 'resource' ) ; $ resolver -> setAllowedTypes ( 'ssl' , [ 'bool' , 'null' ] ) ; return $ resolver -> resolve ( $ config ) ; }
Return configuration for the socket client.

@param array $config Configuration from user

@return array Configuration resolved
Return configuration for the socket client .