public function testCanRemoveMiddlewareByInstance() { $meths = $this->getFunctions(); $builder = new HandlerStack(); $builder->setHandler($meths[1]); $builder->push($meths[2]); $builder->push($meths[2]); $builder->push($meths[3]); $builder->push($meths[4]); $builder->push($meths[2]); $builder->remove($meths[3]); $composed = $builder->resolve(); $this->assertEquals('Hello - test1131', $composed('test')); }
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'); }
/** * @param callable $handler * * @return $this */ public function removeHandler(callable $handler) { $this->handlerStack->remove($handler); return $this; }