Metaregistrar\EPP\metaregEppTransferExtendedRequest::__construct PHP Метод

__construct() публичный Метод

metaregEppTransferExtendedRequest constructor.
public __construct ( string $operation, eppDomain $object )
$operation string
$object eppDomain
    public function __construct($operation, eppDomain $object)
    {
        parent::__construct($operation, $object);
        $this->addExtension('xmlns:command-ext-domain', 'http://www.metaregistrar.com/epp/command-ext-domain-1.0');
        $domainChild = $this->createElement('command-ext-domain:domain');
        $transfer = $this->createElement('command-ext-domain:transfer');
        $ns = $this->createElement('command-ext-domain:ns');
        $nameservers = $object->getHosts();
        foreach ($nameservers as $nsRecord) {
            /**
             * @var eppHost $nsRecord
             */
            if ($nsRecord->getHostname()) {
                $hostObj = $this->createElement('command-ext-domain:hostObj', $nsRecord->getHostname());
                $ns->appendChild($hostObj);
            } else {
                throw new eppException("nsRecord has no hostname on metaregEppTransferExtendedRequest");
            }
        }
        $transfer->appendChild($ns);
        if ($object->getRegistrant()) {
            $registrant = $this->createElement('command-ext-domain:registrant', $object->getRegistrant());
        } else {
            throw new eppException("eppDomain object has no registrant on metaregEppTransferExtendedRequest");
        }
        $transfer->appendChild($registrant);
        $types = ['admin', 'tech', 'billing'];
        foreach ($types as $type) {
            if ($object->getContact($type)) {
                $contact = $this->createElement('command-ext-domain:contact', $object->getContact($type)->getContactHandle());
                $contact->setAttribute('type', $type);
                $transfer->appendChild($contact);
            } else {
                throw new eppException("eppDomain object has no contact of type {$type} on metaregEppTransferExtendedRequest");
            }
        }
        $domainChild->appendChild($transfer);
        $commandExt = $this->createElement('command-ext:command-ext');
        $commandExt->appendChild($domainChild);
        $this->getExtension()->appendChild($commandExt);
        $this->addSessionId();
    }
metaregEppTransferExtendedRequest