/** * {@inheritDoc} */ public function readExtendedMetadata(ClassMetadata $meta, array &$config) { $class = $meta->getReflectionClass(); // property annotations $config['fields'] = array(); $config['fields_delete'] = array(); foreach ($class->getProperties() as $property) { if ($meta->isMappedSuperclass && !$property->isPrivate() || $meta->isInheritedField($property->name) || isset($meta->associationMappings[$property->name]['inherited'])) { continue; } $field = null; if ($file = $this->reader->getPropertyAnnotation($property, self::FILE)) { $field['name'] = $property->getName(); $field['dir'] = CMSCore::init()->getUploadsDir() . '/' . $file->dir; if (!$meta->hasField($field['name'])) { throw new InvalidMappingException("Unable to find timestampable [{$field}] as mapped property in entity - {$meta->name}"); } } // if ($fileDelete = $this->reader->getPropertyAnnotation($property, self::FILE_DELETE)) { // // $config['fields_delete'][] = $property->getName(); // // } if ($field) { $config['fields'][] = $field; } } }
public function __construct($dir, $originalName) { $dir = CMSCore::init()->getUploadsDir() . '/' . $dir; parent::__construct($dir, $originalName); }