Mercurial > hg > isophonics-drupal-site
diff core/modules/hal/src/LinkManager/LinkManagerBase.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 1fec387a4317 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/hal/src/LinkManager/LinkManagerBase.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,58 @@ +<?php + +namespace Drupal\hal\LinkManager; + +/** + * Defines an abstract base-class for HAL link manager objects. + */ +abstract class LinkManagerBase { + + /** + * Link domain used for type links URIs. + * + * @var string + */ + protected $linkDomain; + + /** + * Config factory service. + * + * @var \Drupal\Core\Config\ConfigFactoryInterface + */ + protected $configFactory; + + /** + * The request stack. + * + * @var \Symfony\Component\HttpFoundation\RequestStack + */ + protected $requestStack; + + /** + * {@inheritdoc} + */ + public function setLinkDomain($domain) { + $this->linkDomain = rtrim($domain, '/'); + return $this; + } + + /** + * Gets the link domain. + * + * @return string + * The link domain. + */ + protected function getLinkDomain() { + if (empty($this->linkDomain)) { + if ($domain = $this->configFactory->get('hal.settings')->get('link_domain')) { + $this->linkDomain = rtrim($domain, '/'); + } + else { + $request = $this->requestStack->getCurrentRequest(); + $this->linkDomain = $request->getSchemeAndHttpHost() . $request->getBasePath(); + } + } + return $this->linkDomain; + } + +}