/** * Create zone * * @return string */ protected function _createZone() { $content = array(); $records = array_merge(array($this->_collection->getSoa()), $this->_collection->getValues()); foreach ($records as $record) { /** @var $record AbstractResourceRecord */ $template = $this->_loadTemplate($record->getType()); $variables = $this->_searchVariables($template); foreach ($variables as $var) { $replace = call_user_func(array($record, sprintf('get%s', ucfirst($var)))); $template = str_replace('%' . $var . '%', $replace, $template); } $content[] = $template; } return join('', $content); }
/** * Transform ZoneCollection to DnsResourceModel Array * * @param ZoneCollection $value * * @return array */ public function transform($value) { if ($value instanceof ZoneCollection) { $arr = array(); $position = 0; foreach ($value->getValues() as $rr) { /** @var $rr AbstractResourceRecord */ $dnsResourceModel = new DnsResourceModel(); $dnsResourceModel->setName($rr->getName())->setTtl($rr->getTtl())->setType($rr->getType())->setRdata($rr->getRdata())->setPosition($position); $arr[] = $dnsResourceModel; $position++; } return $arr; } else { return $value; } }