diff --git a/lib/Doctrine/Connection.php b/lib/Doctrine/Connection.php index cc0a56c4b..1e33e5971 100644 --- a/lib/Doctrine/Connection.php +++ b/lib/Doctrine/Connection.php @@ -900,12 +900,12 @@ abstract class Doctrine_Connection extends Doctrine_Configurable implements Coun $class = $name . 'Table'; if (class_exists($class) && in_array('Doctrine_Table', class_parents($class))) { - $table = new $class($name, $this); + $table = new $class($name, $this, true); } else { - $table = new Doctrine_Table($name, $this); + $table = new Doctrine_Table($name, $this, true); } - $this->tables[$name] = $table; + $this->tables[$name] = $table; return $table; } diff --git a/lib/Doctrine/Table.php b/lib/Doctrine/Table.php index 526e41037..4c432492e 100644 --- a/lib/Doctrine/Table.php +++ b/lib/Doctrine/Table.php @@ -176,7 +176,7 @@ class Doctrine_Table extends Doctrine_Configurable implements Countable * @param string $name the name of the component * @param Doctrine_Connection $conn the connection associated with this table */ - public function __construct($name, Doctrine_Connection $conn) + public function __construct($name, Doctrine_Connection $conn, $initDefinition = false) { $this->_conn = $conn; @@ -185,15 +185,17 @@ class Doctrine_Table extends Doctrine_Configurable implements Countable $this->_options['name'] = $name; $this->_parser = new Doctrine_Relation_Parser($this); - $record = $this->initDefinition($name); - - $this->initIdentifier(); - - $record->setUp(); - - // if tree, set up tree - if ($this->isTree()) { - $this->getTree()->setUp(); + if ($initDefinition) { + $record = $this->initDefinition($name); + + $this->initIdentifier(); + + $record->setUp(); + + // if tree, set up tree + if ($this->isTree()) { + $this->getTree()->setUp(); + } } $this->_filters[] = new Doctrine_Record_Filter_Standard(); $this->_repository = new Doctrine_Table_Repository($this);