public function __construct($prefixProject, SFM_Factory $factory, SFM_DAO $dao, array $meta, array $relations) { $this->factory = $factory; $this->naming = $factory->naming($prefixProject); $this->dao = $dao; $this->identityMap = $factory->identityMap(); /**@var SFM_Parser $parser */ $parser = $this->factory->parser($this); $this->meta = $parser->parseMeta($meta); $this->relations = $parser->parseRelations($relations); /**@var $relation SFM_Relation */ foreach ($this->relations as $relation) { foreach ($relation->getSides() as $side) { $this->assertMember($side->member); $this->meta[$side->member]['relations'][$side->complex] = $side; } } $arrDao = array(); foreach ($this->meta as $member => $arr) { $arrDao[$member] = $arr['dao']; } $this->dao->setNaming($this->naming); $this->dao->setConfig($arrDao); }