<?php
namespace BitApps\WPKit\Shortcode;
use RuntimeException;
/**
* A forwarder class for actions and filters.
*
* @method static void doShortcode( $content, $ignoreHtml = false )
* @method static void addShortcode($tag, callable $callback)
* @method static void removeShortcode($tag)
* @method static bool shortcodeExists($tag)
* @method static bool hasShortcode($content, $tag)
*/
final class Shortcode
{
private static $_wrapper;
public function __construct()
{
if (!isset(self::$_wrapper)) {
self::$_wrapper = new ShortcodeWrapper();
}
}
public function __call($method, $parameters)
{
if (method_exists($this->getInstance(), $method)) {
return \call_user_func_array([$this->getInstance(), $method], $parameters);
}
throw new RuntimeException('Undefined method [' . $method . '] called on ' . __CLASS__ . ' class.');
}
public static function __callStatic($method, $parameters)
{
return (new static())->{$method}(...$parameters);
}
public function getInstance()
{
return self::$_wrapper;
}
}