mirror of
https://github.com/dg/dibi.git
synced 2025-08-05 21:58:10 +02:00
DibiDatabaseInfo: provides substitutions
This commit is contained in:
@@ -85,6 +85,7 @@ class DibiDatabaseInfo extends DibiObject
|
|||||||
*/
|
*/
|
||||||
public function getTable($name)
|
public function getTable($name)
|
||||||
{
|
{
|
||||||
|
$name = DibiTranslator::substitute($name);
|
||||||
$this->init();
|
$this->init();
|
||||||
$l = strtolower($name);
|
$l = strtolower($name);
|
||||||
if (isset($this->tables[$l])) {
|
if (isset($this->tables[$l])) {
|
||||||
@@ -103,6 +104,7 @@ class DibiDatabaseInfo extends DibiObject
|
|||||||
*/
|
*/
|
||||||
public function hasTable($name)
|
public function hasTable($name)
|
||||||
{
|
{
|
||||||
|
$name = DibiTranslator::substitute($name);
|
||||||
$this->init();
|
$this->init();
|
||||||
return isset($this->tables[strtolower($name)]);
|
return isset($this->tables[strtolower($name)]);
|
||||||
}
|
}
|
||||||
@@ -227,6 +229,7 @@ class DibiTableInfo extends DibiObject
|
|||||||
*/
|
*/
|
||||||
public function getColumn($name)
|
public function getColumn($name)
|
||||||
{
|
{
|
||||||
|
$name = DibiTranslator::substitute($name);
|
||||||
$this->initColumns();
|
$this->initColumns();
|
||||||
$l = strtolower($name);
|
$l = strtolower($name);
|
||||||
if (isset($this->columns[$l])) {
|
if (isset($this->columns[$l])) {
|
||||||
@@ -245,6 +248,7 @@ class DibiTableInfo extends DibiObject
|
|||||||
*/
|
*/
|
||||||
public function hasColumn($name)
|
public function hasColumn($name)
|
||||||
{
|
{
|
||||||
|
$name = DibiTranslator::substitute($name);
|
||||||
$this->initColumns();
|
$this->initColumns();
|
||||||
return isset($this->columns[strtolower($name)]);
|
return isset($this->columns[strtolower($name)]);
|
||||||
}
|
}
|
||||||
@@ -396,6 +400,7 @@ class DibiResultInfo extends DibiObject
|
|||||||
*/
|
*/
|
||||||
public function getColumn($name)
|
public function getColumn($name)
|
||||||
{
|
{
|
||||||
|
$name = DibiTranslator::substitute($name);
|
||||||
$this->initColumns();
|
$this->initColumns();
|
||||||
$l = strtolower($name);
|
$l = strtolower($name);
|
||||||
if (isset($this->names[$l])) {
|
if (isset($this->names[$l])) {
|
||||||
@@ -414,6 +419,7 @@ class DibiResultInfo extends DibiObject
|
|||||||
*/
|
*/
|
||||||
public function hasColumn($name)
|
public function hasColumn($name)
|
||||||
{
|
{
|
||||||
|
$name = DibiTranslator::substitute($name);
|
||||||
$this->initColumns();
|
$this->initColumns();
|
||||||
return isset($this->names[strtolower($name)]);
|
return isset($this->names[strtolower($name)]);
|
||||||
}
|
}
|
||||||
|
@@ -564,11 +564,7 @@ final class DibiTranslator extends DibiObject
|
|||||||
*/
|
*/
|
||||||
private function delimite($value)
|
private function delimite($value)
|
||||||
{
|
{
|
||||||
if (strpos($value, ':') !== FALSE) { // provide substitution
|
$parts = explode('.', self::substitute($value));
|
||||||
$value = preg_replace_callback('#:([^:\s]*):#', array(__CLASS__, 'subCb'), $value);
|
|
||||||
}
|
|
||||||
|
|
||||||
$parts = explode('.', $value);
|
|
||||||
foreach ($parts as & $value) {
|
foreach ($parts as & $value) {
|
||||||
$value = $value === '*' ? '*' : $this->driver->escape($value, dibi::IDENTIFIER);
|
$value = $value === '*' ? '*' : $this->driver->escape($value, dibi::IDENTIFIER);
|
||||||
}
|
}
|
||||||
@@ -577,6 +573,20 @@ final class DibiTranslator extends DibiObject
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides substitution.
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public static function substitute($value)
|
||||||
|
{
|
||||||
|
if (strpos($value, ':') !== FALSE) { // provide substitution
|
||||||
|
return preg_replace_callback('#:([^:\s]*):#', array(__CLASS__, 'subCb'), $value);
|
||||||
|
}
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Substitution callback.
|
* Substitution callback.
|
||||||
* @param array
|
* @param array
|
||||||
|
Reference in New Issue
Block a user