From 2a2ae534596ca14b0fc3c24c5a51a7d3dce8cc6c Mon Sep 17 00:00:00 2001 From: Andrey Kutejko Date: Sat, 27 Jul 2013 21:04:35 +0300 Subject: [PATCH] rafactor definition of subclasses --- ipf/orm/import/builder.php | 5 +++-- ipf/orm/record/abstract.php | 9 --------- ipf/orm/table.php | 10 ++++++++++ 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/ipf/orm/import/builder.php b/ipf/orm/import/builder.php index cf027a2..f6b234f 100644 --- a/ipf/orm/import/builder.php +++ b/ipf/orm/import/builder.php @@ -45,8 +45,9 @@ class IPF_ORM_Import_Builder if (isset($definition['options']) && is_array($definition['options']) && !empty($definition['options'])) $ret[] = $this->buildOptions($definition['options']); - if (isset($definition['inheritance']['subclasses']) && ! empty($definition['inheritance']['subclasses'])) - $ret[] = " ".'$this->setSubClasses('. self::varExport($definition['inheritance']['subclasses']).');'; + if (isset($definition['inheritance']['subclasses']) && !empty($definition['inheritance']['subclasses'])) { + $ret[] = " ".'$table->setSubClasses('. self::varExport($definition['inheritance']['subclasses']).');'; + } $ret[] = ' }'; diff --git a/ipf/orm/record/abstract.php b/ipf/orm/record/abstract.php index 1a1cbf7..15183d6 100644 --- a/ipf/orm/record/abstract.php +++ b/ipf/orm/record/abstract.php @@ -22,15 +22,6 @@ abstract class IPF_ORM_Record_Abstract extends IPF_ORM_Access $this->_table->setOption('inheritanceMap', $map); } - public function setSubclasses($map) - { - if (isset($map[get_class($this)])) { - $this->_table->setOption('inheritanceMap', $map[get_class($this)]); - return; - } - $this->_table->setOption('subclasses', array_keys($map)); - } - public function attribute($attr, $value) { if ($value == null) { diff --git a/ipf/orm/table.php b/ipf/orm/table.php index a6a5828..f938222 100644 --- a/ipf/orm/table.php +++ b/ipf/orm/table.php @@ -585,6 +585,16 @@ class IPF_ORM_Table extends IPF_ORM_Configurable implements Countable return isset($this->_columnNames[$fieldName]); } + public function setSubClasses(array $map) + { + $class = $this->getComponentName(); + if (isset($map[$class])) { + $this->setOption('inheritanceMap', $map[$class]); + } else { + $this->setOption('subclasses', array_keys($map)); + } + } + public function setConnection(IPF_ORM_Connection $conn) { $this->_conn = $conn; -- 2.49.0