public function testIgnoreUnknown() { $classObject = new ClassObject(); $classObject->setIgnoreUnknown(true); $this->assertEquals(true, $classObject->canIgnoreUnknown()); }
/** * Creates a basic ClassObject instance, and sets the config properties on the class * @param \ReflectionClass $class The reflected class to create the ClassObject instance from * @return ClassObject */ protected function createClassObject(\ReflectionClass $class) { $classObject = new ClassObject(); /** @var MarshallConfig $config */ $config = $this->reader->getClassAnnotation($class, '\\PhpJsonMarshaller\\Annotations\\MarshallConfig'); if (isset($config)) { if ($config->validate()) { $classObject->setIgnoreUnknown($config->canIgnoreUnknown()); } } return $classObject; }
/** * Create an instance of a new class * @param string $classString * @param ClassObject $decodedClass * @param array $assocArray * @return object */ protected function createClass($classString, $decodedClass, $assocArray) { $constructorParams = $decodedClass->getConstructorParams(); if (count($constructorParams) === 0) { return new $classString(); } $decodedParams = []; foreach ($constructorParams as $param) { $val = null; if (isset($assocArray[$param->getAnnotationName()])) { $val = $this->decodeValue($assocArray[$param->getAnnotationName()], $param->getPropertyType()); } $decodedParams[] = $val; } $reflectedClass = new \ReflectionClass($classString); return $reflectedClass->newInstanceArgs($decodedParams); }