/** * {@inheritdoc} */ public function initialize(BindingType $type) { if ($this->typeName !== $type->getName()) { throw new InvalidArgumentException(sprintf('The passed type "%s" does not match the configured type "%s".', $type->getName(), $this->typeName)); } if (!$type->acceptsBinding($this)) { throw BindingNotAcceptedException::forBindingClass($type->getName(), get_class($this)); } // Merge default parameter values of the type $this->assertParameterValuesValid($this->userParameterValues, $type); $this->type = $type; $this->parameterValues = array_replace($type->getParameterValues(), $this->userParameterValues); ksort($this->parameterValues); }
public function testUnrestrictedBindingClasses() { $type = new BindingType(Foo::clazz); $this->assertTrue($type->acceptsBinding(self::RESOURCE_BINDING)); $this->assertTrue($type->acceptsBinding(self::CLASS_BINDING)); $this->assertSame(array(), $type->getAcceptedBindings()); }