diff --git a/src/LeanMapper/Reflection/EntityReflection.php b/src/LeanMapper/Reflection/EntityReflection.php index 7690e03..e43dcbf 100644 --- a/src/LeanMapper/Reflection/EntityReflection.php +++ b/src/LeanMapper/Reflection/EntityReflection.php @@ -179,6 +179,12 @@ private function parseProperties() foreach (AnnotationsParser::parseAnnotationValues($annotationType, $member->getDocComment()) as $definition) { $property = PropertyFactory::createFromAnnotation($annotationType, $definition, $member, $this->mapper); // collision check + if (isset($this->properties[$property->getName()])) { + throw new InvalidStateException( + "Duplicated property '{$property->getName()}' in entity {$this->getName()}. Please fix property name." + ); + } + $column = $property->getColumn(); if ($column !== null and $property->isWritable()) { if (isset($columns[$column])) { diff --git a/tests/LeanMapper/Entity.propertyCollision.phpt b/tests/LeanMapper/Entity.propertyCollision.phpt new file mode 100644 index 0000000..2993c13 --- /dev/null +++ b/tests/LeanMapper/Entity.propertyCollision.phpt @@ -0,0 +1,78 @@ +