/** * @param Connection $db * @param \OLAP\Fact $object * @param Cube $sender */ public function __construct(Connection $db, \OLAP\Fact $object, Cube $sender = null) { parent::__construct($db, $object, $sender); $this->dimensions = []; foreach ($this->object()->getDimensions() as $dimension) { $class = $this->dimensionClass(); $this->dimensions[$dimension->getName()] = new $class($this->db(), $dimension, $this); } if ($parent = $this->getParent()) { Event\Ruler::getInstance()->addListener(new Event\Listener(Event\Type::EVENT_SET_DATA, [$this, 'onParentSetData'], $parent->getTableName())); Event\Ruler::getInstance()->addListener(new Event\Listener(Event\Type::EVENT_TRUNCATE_FACT, [$this, 'onTruncate'], $parent->getTableName())); } }
/** * @param Connection $db * @param \OLAP\Cube $object * @param Base $sender */ public function __construct(Connection $db, \OLAP\Cube $object, Base $sender = null) { parent::__construct($db, $object, $sender); $defaultDrill = null; $this->facts = []; foreach ($this->object()->getFacts() as $fact) { $class = Fact::class; if ($fact->isSpecial()) { $class = $this->getSpecialFact($fact); } if (!$defaultDrill && $fact->isDefaultDrill()) { $defaultDrill = $fact->getName(); } $this->facts[$fact->getName()] = new $class($this->db(), $fact, $this); } $this->drill = $defaultDrill; $this->dataType = new Type($this->db(), $this->object()->getDataType()); }
/** * @param Connection $db * @param mixed $object * @param Fact $sender */ public function __construct(Connection $db, \OLAP\Dimension $object, Fact $sender = null) { parent::__construct($db, $object, $sender); $this->type = new Type($this->db(), $this->object()->getType(), $this); }