prefix = (string) $prefix; } /** * {@inheritdoc} */ public function classToTableName($className) { return strtolower($this->prefix . substr($className, strrpos($className, '\\') + 1)); } /** * {@inheritdoc} */ public function propertyToColumnName($propertyName, $className = null) { return $propertyName; } /** * {@inheritdoc} */ public function referenceColumnName() { return 'id'; } /** * {@inheritdoc} */ public function joinColumnName($propertyName) { return $propertyName . '_' . $this->referenceColumnName(); } /** * {@inheritdoc} */ public function joinTableName($sourceEntity, $targetEntity, $propertyName = null) { // for join table we don't want to have both table concatenated AND prefixed // we just want the whole table to prefixed once // ie: not "wallabag_entry_wallabag_tag" but "wallabag_entry_tag" $target = substr($targetEntity, strrpos($targetEntity, '\\') + 1); return strtolower($this->classToTableName($sourceEntity) . '_' .$target); } /** * {@inheritdoc} */ public function joinKeyColumnName($entityName, $referencedColumnName = null) { return strtolower($this->classToTableName($entityName) . '_' .($referencedColumnName ?: $this->referenceColumnName())); } }