public function testUnshiftsInReverseOrder() { $meths = $this->getFunctions(); $builder = new HandlerStack(); $builder->setHandler($meths[1]); $builder->unshift($meths[2]); $builder->unshift($meths[3]); $builder->unshift($meths[4]); $composed = $builder->resolve(); $this->assertEquals('Hello - test321', $composed('test')); $this->assertEquals([['c', 'test'], ['b', 'test3'], ['a', 'test32']], $meths[0]); }
private function configureDeveloperModeHandler(HandlerStack $handlerStack) { $developerModeEnabled = $this->developerMode; $handlerStack->remove('wechatClient:developerMode'); $handlerStack->unshift(function (callable $handler) use($developerModeEnabled) { return function (RequestInterface $request, array $options = []) use($handler, $developerModeEnabled) { if ($developerModeEnabled) { $mapping = ['api.weixin.qq.com' => 'api.devcentral.co.za', 'api.wechat.com' => 'api.devcentral.co.za']; $uri = $request->getUri(); if (isset($mapping[$uri->getHost()])) { $uri = $uri->withHost($mapping[$uri->getHost()]); } $request = $request->withUri($uri); } return $handler($request, $options); }; }, 'wechatClient:developerMode'); }
/** * Add any middleware required. * * @param HandlerStack $handlerStack */ protected function configureHandlerStack(HandlerStack $handlerStack) { $handlerStack->unshift($this->getApiKeyMiddleware()); }