예제 #1
0
파일: Engine.php 프로젝트: aazon/sfm
 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);
 }