NAPTRAdapter.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace MGModule\DNSManager2\mgLibs\custom\dns\submodules\RCodeZero\Adapters;
  3. use MGModule\DNSManager2\mgLibs\custom\dns\record\type\NAPTR;
  4. use MGModule\DNSManager2\mgLibs\custom\dns\record\type\NS;
  5. use MGModule\DNSManager2\mgLibs\custom\dns\record\type\RecordTypeAbstract;
  6. use MGModule\DNSManager2\mgLibs\custom\helpers\IdnaHelper;
  7. class NAPTRAdapter extends AbstractRCodeZeroAdapter
  8. {
  9. /**
  10. * @param string $content
  11. */
  12. public function createRdata( $content )
  13. {
  14. $contentArray = explode(' ', $content);
  15. $this->rdata = new NAPTR();
  16. $this->rdata->order = $contentArray[0];
  17. $this->rdata->preference = $contentArray[1];
  18. $this->rdata->flags = trim( $contentArray[2],'"');
  19. $this->rdata->services = trim( $contentArray[3],'"');
  20. $this->rdata->regexp = trim( $contentArray[4],'"');
  21. $this->rdata->replacement = $this->contentToRelative(IdnaHelper::idnaDecode($contentArray[5]));
  22. }
  23. /**
  24. * @param NAPTR $rdata
  25. * @return mixed
  26. */
  27. public function parseContentToApiFormat( $rdata )
  28. {
  29. $content = [
  30. $rdata->order,
  31. $rdata->preference,
  32. ('"'.trim( $rdata->flags,'"').'"'),
  33. ('"'.trim( $rdata->services,'"').'"'),
  34. ('"'.trim( $rdata->regexp,'"').'"'),
  35. $this->contentToAbsolute(IdnaHelper::idnaEncode($rdata->replacement))
  36. ];
  37. return implode(' ', $content);
  38. }
  39. }