private function givenIHaveRegisteredAListener_For($listener, $event) { $this->caught->set($listener, new Liste()); $caught = $this->caught; $this->dispatcher->addListener($event, function ($event) use($caught, $listener) { /** @var $caught Map */ /** @var $list Liste */ $list = $caught->get($listener); $list->append($event); }); }
protected function determineHeaders($server) { $headers = new Map(); foreach (self::$headerKeys as $headerKey => $serverKey) { if (array_key_exists($serverKey, $server)) { $headers->set($headerKey, $server[$serverKey]); } } return $headers; }
private function getHeaders() { $headers = new Map(); foreach (self::$headers as $header) { if ($this->environment->getHeaders()->has($header)) { $headers->set($header, $this->environment->getHeaders()->get($header)); } } return $headers; }
private function accumulate(Map $acc, BaseProperty $property) { if (!$acc->has($property->name())) { $acc->set($property->name(), $property); } else { $multi = $acc->get($property->name()); if (!$multi instanceof property\MultiProperty) { $multi = new property\MultiProperty($this->factory, $property); $multi->add($acc->get($property->name())); $acc->set($property->name(), $multi); } $multi->add($property); } }
protected function wrapUrl(Element $element, $target) { $target = Url::fromString($target); $box = $this->name; if ($element->getAttribute('target')) { $box = $element->getAttribute('target')->getValue(); if (substr($box, 0, 7) == '_parent') { $remaining = substr($element->getAttribute('target')->getValue(), strlen('_parent')); $element->setAttribute('target', $remaining); if (!$remaining) { $element->getAttributes()->removeElement($element->getAttribute('target')); } return $target; } else { if (substr($box, 0, 1) == '_') { return $target; } } $element->getAttributes()->removeElement($element->getAttribute('target')); } $wrapped = Url::fromString(''); $wrapped->setFragment($target->getFragment()); $params = new Map(); if ($box === $this->exception) { $wrapped->setPath($target->getPath()); if ($wrapped->getPath()->isEmpty()) { $wrapped->setPath($this->path); } foreach ($target->getParameters() as $key => $value) { if (substr($key, 0, strlen(self::$PREFIX)) == self::$PREFIX) { $params->set($key, $value); } else { $wrapped->getParameters()->set($key, $value); } } } else { if ($target->getPath()->toString()) { $params->set(Box::$TARGET_KEY, $target->getPath()->toString()); } $params->merge($target->getParameters()); } foreach ($this->state as $name => $state) { if ($name !== self::$PREFIX . $box) { $wrapped->getParameters()->set($name, $state); } } if ($box !== $this->exception) { $wrapped->getParameters()->set(self::$PREFIX . $box, $params); $wrapped->getParameters()->set(Box::$PRIMARY_TARGET_KEY, $box); } else { if ($wrapped->getParameters()->has(Box::$PRIMARY_TARGET_KEY)) { if (!$params->isEmpty()) { $wrapped->getParameters()->set(self::$PREFIX . $box, $params); } if ($wrapped->getParameters()->has(Box::$PRIMARY_TARGET_KEY)) { $wrapped->getParameters()->remove(Box::$PRIMARY_TARGET_KEY); } if ($wrapped->getParameters()->has(Box::$TARGET_KEY)) { $wrapped->getParameters()->remove(Box::$TARGET_KEY); } } } return $wrapped; }
/** * @param Set $keys * @return Map with only the given keys */ public function select(Set $keys) { $selection = new Map(); foreach ($keys as $key) { if ($this->has($key)) { $selection->set($key, $this->get($key)); } } return $selection; }
private function set(Map $map, $key, $value) { $cabBeCasted = !is_object($value) || method_exists($value, '__toString'); if ($cabBeCasted && strlen((string) $value) <= self::MAX_PARAM_LENGTH) { $map->set($key, $value); } }