. .
. , - , Symfony (AFAIK) Closure - , Guzzle.
service.yml :
m6web_guzzlehttp.guzzle.handlerstack.myclient:
class: GuzzleHttp\HandlerStack
factory: ['GuzzleHttp\HandlerStack', create]
retry_decider:
class: MyBundle\RetryDecider
factory: ['MyBundle\RetryDecider', createInstance]
retry_handler:
class: GuzzleHttp\Middleware
factory: ['GuzzleHttp\Middleware', retry]
arguments:
- '@retry_decider'
handlerstack_pushed:
parent: m6web_guzzlehttp.guzzle.handlerstack.myclient
calls:
- [push, ['@retry_handler']]
?
m6web_guzzlehttp.guzzle.handlerstack.myclient - - , .retry_decider - . Closure createInstance. , , YML.retry_handler - ,handlerstack_pushed - push() , .
Et voilà - , , .
:
<?php
namespace MyBundle;
class RetryDecider {
public static function createInstance() {
return function() {
};
}
}
- > handlerstack_pushed, .
, m6web_guzzlehttp.guzzle.handlerstack.myclient parameters.yml:
parameters:
baseHandlerStackService: m6web_guzzlehttp.guzzle.handlerstack.myclient
handlerstack_pushed:
handlerstack_pushed:
parent: "%baseHandlerStackService%"
calls:
- [push, ['@retry_handler']]
, ; -)