/** * Add fields by properties without "Exclude" annotation */ protected function addFieldsByExcludeStrategy() { $properties = $this->getClassReflection()->getProperties(); $excludedAnnotations = $this->getExcludeAnnotations(); $columnsAnnotations = $this->getColumnAnnotations(); foreach ($properties as $property) { $name = $property->getName(); if (isset($excludedAnnotations[$name])) { continue; } $field = new Field($name); if (isset($columnsAnnotations[$name])) { $this->applyAnnotation($field, $columnsAnnotations[$name]); } $this->schema->addField($field); } }