Add more sanitisation options
This commit is contained in:
parent
159a52b8a1
commit
1cc1c79f56
2 changed files with 22 additions and 4 deletions
|
|
@ -267,7 +267,7 @@ class Model extends Entity
|
|||
*/
|
||||
public function getTableSanitised()
|
||||
{
|
||||
return $this->getZenderator()->sanitiseTableName($this->getTable());
|
||||
return $this->getZenderator()->sanitiseTableName($this->getTable(),$this->database);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -283,10 +283,28 @@ class Zenderator
|
|||
throw new SchemaToAdaptorException("Could not translate {$schemaName} to an appropriate dbName");
|
||||
}
|
||||
|
||||
public function sanitiseTableName($tableName)
|
||||
public function sanitiseTableName($tableName, $database = 'default')
|
||||
{
|
||||
if (isset($this->config['database'], $this->config['database']['remove_prefix'])) {
|
||||
if (substr($tableName, 0, strlen($this->config['database']['remove_prefix'])) == $this->config['database']['remove_prefix']) {
|
||||
# Take the Alias directly
|
||||
if(self::$benzineConfig->has("benzine/databases/{$database}/table_options/{$tableName}/alias")){
|
||||
return self::$benzineConfig->get("benzine/databases/{$database}/table_options/{$tableName}/alias");
|
||||
}
|
||||
|
||||
# Take the specific transformer next
|
||||
if(self::$benzineConfig->has("benzine/databases/{$database}/table_options/{$tableName}/transform")){
|
||||
$transform = self::$benzineConfig->get("benzine/databases/{$database}/table_options/{$tableName}/transform");
|
||||
return $this->$transform->transform($tableName);
|
||||
}
|
||||
|
||||
# Take the shared transformer after that
|
||||
if(self::$benzineConfig->has("benzine/databases/{$database}/table_options/_/transform")){
|
||||
$transform = self::$benzineConfig->get("benzine/databases/{$database}/table_options/_/transform");
|
||||
return $this->$transform->transform($tableName);
|
||||
}
|
||||
|
||||
# Simply remove the prefix
|
||||
if (self::$benzineConfig->get("benzine/databases/remove_prefix")) {
|
||||
if (substr($tableName, 0, strlen(self::$benzineConfig->get("benzine/databases/remove_prefix"))) == self::$benzineConfig->get("benzine/databases/remove_prefix")) {
|
||||
return substr($tableName, 2);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue