File "aware.php"
Full Path: /home/romayxjt/public_html/wp-content/plugins/vikbooking/admin/helpers/src/platform/aware.php
File size: 3.39 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* @package VikBooking
* @subpackage core
* @author E4J s.r.l.
* @copyright Copyright (C) 2021 E4J s.r.l. All Rights Reserved.
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
* @link https://vikwp.com
*/
// No direct access
defined('ABSPATH') or die('No script kiddies please!');
/**
* Declares all the helper methods that may differ between every supported platform.
*
* @since 1.5
*/
abstract class VBOPlatformAware implements VBOPlatformInterface
{
/**
* The platform URI handler.
*
* @var VBOPlatformUriInterface
*/
private $uri;
/**
* The platform mailer handler.
*
* @var VBOPlatformMailerInstance
*/
private $mailer;
/**
* The event dispatcher handler.
*
* @var VBOPlatformDispatcherInstance
*/
private $dispatcher;
/**
* Returns the URI helper instance.
*
* @return VBOPlatformUriInterface
*/
public function getUri()
{
if (is_null($this->uri))
{
// lazy creation
$this->uri = $this->createUri();
}
// make sure we have a valid instance
if (!$this->uri instanceof VBOPlatformUriInterface)
{
if (is_object($this->uri))
{
// extract class name from object
$t = get_class($this->uri);
}
else
{
// fetch the type of the property
$t = gettype($this->uri);
}
// nope, throw a "Not acceptable" 406 error
throw new UnexpectedValueException(sprintf('The [%s] object is not a valid URI instance', $t), 406);
}
return $this->uri;
}
/**
* Returns the mail sender instance.
*
* @return VBOPlatformMailerInterface
*/
public function getMailer()
{
if (is_null($this->mailer))
{
// lazy creation
$this->mailer = $this->createMailer();
}
// make sure we have a valid instance
if (!$this->mailer instanceof VBOPlatformMailerInterface)
{
if (is_object($this->mailer))
{
// extract class name from object
$t = get_class($this->mailer);
}
else
{
// fetch the type of the property
$t = gettype($this->mailer);
}
// nope, throw a "Not acceptable" 406 error
throw new UnexpectedValueException(sprintf('The [%s] object is not a valid mailer instance', $t), 406);
}
return $this->mailer;
}
/**
* Returns the event dispatcher instance.
*
* @return VBOPlatformDispatcherInterface
*
* @since 1.5.10
*/
public function getDispatcher()
{
if (is_null($this->dispatcher))
{
// lazy creation
$this->dispatcher = $this->createDispatcher();
}
// make sure we have a valid instance
if (!$this->dispatcher instanceof VBOPlatformDispatcherInterface)
{
if (is_object($this->dispatcher))
{
// extract class name from object
$t = get_class($this->dispatcher);
}
else
{
// fetch the type of the property
$t = gettype($this->dispatcher);
}
// nope, throw a "Not acceptable" 406 error
throw new UnexpectedValueException(sprintf('The [%s] object is not a valid dispatcher instance', $t), 406);
}
return $this->dispatcher;
}
/**
* Creates a new URI helper instance.
*
* @return VBOPlatformUriInterface
*/
abstract protected function createUri();
/**
* Creates a new mailer instance.
*
* @return VBOPlatformMailerInterface
*/
abstract protected function createMailer();
/**
* Creates a new event dispatcher instance.
*
* @return VBOPlatformDispatcherInterface
*
* @since 1.5.10
*/
abstract protected function createDispatcher();
}