From: Andrey Kutejko Date: Sat, 17 Aug 2013 08:00:41 +0000 (+0300) Subject: ordering table property X-Git-Tag: 0.6~36 X-Git-Url: https://git.andy128k.dev/?a=commitdiff_plain;h=1157baa52e287654ea98acfa03ca383ec170cc27;p=ipf-legacy-orm.git ordering table property --- diff --git a/ipf/orm/import/builder.php b/ipf/orm/import/builder.php index 362de0b..a97b476 100644 --- a/ipf/orm/import/builder.php +++ b/ipf/orm/import/builder.php @@ -14,6 +14,15 @@ class IPF_ORM_Import_Builder return $export; } + private static function varExportList($list) + { + $export = array(); + foreach ($list as $var) { + $export[] = self::varExport($var); + } + return 'array('.implode(', ', $export).')'; + } + private function buildTableDefinition(array $definition) { if (isset($definition['inheritance']['type']) && ($definition['inheritance']['type'] == 'simple' || $definition['inheritance']['type'] == 'column_aggregation')) { @@ -34,6 +43,9 @@ class IPF_ORM_Import_Builder if (isset($definition['columns']) && is_array($definition['columns']) && !empty($definition['columns'])) $ret[] = $this->buildColumns($definition['columns']); + if (isset($definition['ordering']) && is_array($definition['ordering']) && !empty($definition['ordering'])) + $ret[] = ' $table->setOrdering('.self::varExportList($definition['ordering']).');'; + if (isset($definition['indexes']) && is_array($definition['indexes']) && !empty($definition['indexes'])) foreach ($definition['indexes'] as $indexName => $definitions) $ret[] = " \$table->addIndex('" . $indexName . "', " . self::varExport($definitions) . ');'; diff --git a/ipf/orm/import/schema.php b/ipf/orm/import/schema.php index 3f7e073..9b345ad 100644 --- a/ipf/orm/import/schema.php +++ b/ipf/orm/import/schema.php @@ -21,6 +21,7 @@ class IPF_ORM_Import_Schema 'inheritance', 'detect_relations', 'listeners', + 'ordering', ), 'column' => array( 'name', diff --git a/ipf/orm/table.php b/ipf/orm/table.php index 3392628..af2c781 100644 --- a/ipf/orm/table.php +++ b/ipf/orm/table.php @@ -30,6 +30,8 @@ class IPF_ORM_Table extends IPF_ORM_Configurable implements Countable 'subclasses' => array(), ); + protected $_ordering = null; + protected $_parser; protected $_templates = array(); @@ -871,6 +873,16 @@ class IPF_ORM_Table extends IPF_ORM_Configurable implements Countable $tpl->setTableDefinition($this); } + public function setOrdering($ordering) + { + $this->_ordering = $ordering; + } + + public function getOrdering() + { + return $this->_ordering; + } + public function bindQueryParts(array $queryParts) { $this->_options['queryParts'] = $queryParts;