1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
<?php
namespace hji\common\utils;
use hji\membership\extension\abstracts\Component;
/**
* Class Paths - SINGLETON
*
* USAGE:
*
* Invoke the class as a singleton via dependency injector:
*
* $paths = $this->di()->get('hji\\common\\utils\\Paths');
* $paths->setPath('folder', 'path/to/handle/folder);
*
* $folderPath = $paths->getPath('folder);
* $folderUrl = $paths->getUrl('folder);
*
*
* To use in other plugins, simply extend the class
* and pass $pathDirPath to the current plugin.
* Invoke as indicated above.
*
* EXTENSION EXAMPLE:
*
* class Paths extends \hji\common\utils\Paths
* {
* function __construct($pluginFile)
* {
* parent::__construct($pluginFile);
* }
* }
*
* @since 2.2.2
* @package hji\common\utils
*/
class Paths extends Component
{
private $slug;
private $paths;
/**
* Absolute path to the plugin's file.
*
* @param $pluginFile
*/
function __construct($pluginFile)
{
$this->slug = basename(dirname($pluginFile));
$this->dir = plugin_dir_path($pluginFile);
$this->url = plugin_dir_url($pluginFile);
}
function getSlug()
{
return $this->slug;
}
function setPath($key, $relativePath)
{
$this->paths[$key] = trim($relativePath ,'/');
}
function getPath($key)
{
if (isset($this->paths[$key]))
{
return $this->dir . $this->paths[$key];
}
else
{
trigger_error("Path for {$key} doesn't exist.", E_USER_ERROR);
}
}
// TODO: maybe trailing slash all urls - it makes more sense this way
function getUrl($key)
{
if (isset($this->paths[$key]))
{
return $this->url . $this->paths[$key];
}
else
{
trigger_error("Url for {$key} doesn't exist.", E_USER_ERROR);
}
}
}