getName(); if (isset(self::$creationStack[$class])) { trigger_error("Circular annotation reference on '$class'", E_USER_ERROR); return; } self::$creationStack[$class] = true; foreach ($data as $key => $value) { $this->$key = $value; } unset(self::$creationStack[$class]); } private function createName($target) { if ($target instanceof ReflectionMethod) { return $target->getDeclaringClass()->getName().'::'.$target->getName(); } else if ($target instanceof ReflectionProperty) { return $target->getDeclaringClass()->getName().'::$'.$target->getName(); } else { return $target->getName(); } } //protected function checkConstraints($target) {} }