Implemented Priority for componentPaths.
This commit is contained in:
parent
436e270710
commit
f364245d90
|
@ -45,7 +45,7 @@ trait ComponentPathsTrait
|
|||
*
|
||||
* @var array $componentPaths
|
||||
*/
|
||||
protected $componentPaths = array();
|
||||
protected $componentPaths = [];
|
||||
|
||||
/**
|
||||
* Set the directories. Automatically gets invoked if componentPaths are added by FuzeWorks\Configurator.
|
||||
|
@ -54,42 +54,47 @@ trait ComponentPathsTrait
|
|||
*/
|
||||
public function setDirectories(array $componentPaths)
|
||||
{
|
||||
$this->componentPaths = array_merge($this->componentPaths, $componentPaths);
|
||||
$this->componentPaths = $componentPaths;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a path where objects for this component can be found
|
||||
*
|
||||
* @param string $componentPath
|
||||
* @param int $priority
|
||||
*/
|
||||
public function addComponentPath($componentPath)
|
||||
public function addComponentPath($componentPath, $priority = Priority::NORMAL)
|
||||
{
|
||||
if (!in_array($componentPath, $this->componentPaths))
|
||||
{
|
||||
$this->componentPaths[] = $componentPath;
|
||||
}
|
||||
if (!isset($this->componentPaths[$priority]))
|
||||
$this->componentPaths[$priority] = [];
|
||||
|
||||
if (!in_array($componentPath, $this->componentPaths[$priority]))
|
||||
$this->componentPaths[$priority][] = $componentPath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a path where objects for this component can be found
|
||||
*
|
||||
* @param string $componentPath
|
||||
* @param int $priority
|
||||
*/
|
||||
public function removeComponentPath($componentPath)
|
||||
public function removeComponentPath($componentPath, $priority = Priority::NORMAL)
|
||||
{
|
||||
if (($key = array_search($componentPath, $this->componentPaths)) !== false)
|
||||
{
|
||||
unset($this->componentPaths[$key]);
|
||||
}
|
||||
if (!isset($this->componentPaths[$priority]))
|
||||
return;
|
||||
|
||||
if (($key = array_search($componentPath, $this->componentPaths[$priority])) !== false)
|
||||
unset($this->componentPaths[$priority][$key]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a list of all current componentPaths
|
||||
*
|
||||
* @param int $priority
|
||||
* @return array of paths where objects for this component can be found
|
||||
*/
|
||||
public function getComponentPaths(): array
|
||||
public function getComponentPaths($priority = Priority::NORMAL): array
|
||||
{
|
||||
return $this->componentPaths;
|
||||
return (isset($this->componentPaths[$priority]) ? $this->componentPaths[$priority] : []);
|
||||
}
|
||||
}
|
|
@ -66,11 +66,6 @@ class Config
|
|||
*/
|
||||
public static $configOverrides = [];
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->componentPaths = Core::$appDirs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve a config file object
|
||||
*
|
||||
|
@ -81,20 +76,24 @@ class Config
|
|||
*/
|
||||
public function getConfig(string $configName, array $configPaths = []): ConfigORM
|
||||
{
|
||||
// First determine what directories to use
|
||||
$directories = (empty($configPaths) ? $this->componentPaths : $configPaths);
|
||||
|
||||
// Determine the config name
|
||||
$configName = strtolower($configName);
|
||||
|
||||
|
||||
// If it's already loaded, return the existing object
|
||||
if (isset($this->cfg[$configName]))
|
||||
{
|
||||
return $this->cfg[$configName];
|
||||
}
|
||||
|
||||
// First determine what directories to use
|
||||
$paths = [];
|
||||
if (!empty($configPaths))
|
||||
$paths[3] = $configPaths;
|
||||
else
|
||||
$paths = $this->componentPaths;
|
||||
|
||||
// Otherwise try and load a new one
|
||||
$this->cfg[$configName] = $this->loadConfigFile($configName, $directories);
|
||||
$this->cfg[$configName] = $this->loadConfigFile($configName, $paths);
|
||||
return $this->cfg[$configName];
|
||||
}
|
||||
|
||||
|
@ -148,29 +147,34 @@ class Config
|
|||
|
||||
// If cancelled, load empty config
|
||||
if ($event->isCancelled())
|
||||
{
|
||||
return new ConfigORM();
|
||||
}
|
||||
|
||||
// Cycle through all directories
|
||||
foreach ($event->configPaths as $configPath)
|
||||
// Cycle through all priorities if they exist
|
||||
for ($i=Priority::getHighestPriority(); $i<=Priority::getLowestPriority(); $i++)
|
||||
{
|
||||
// If file exists, load it and break the loop
|
||||
$file = $configPath . DS . 'config.'.strtolower($event->configName).'.php';
|
||||
if (file_exists($file))
|
||||
if (!isset($event->configPaths[$i]))
|
||||
continue;
|
||||
|
||||
// Cycle through all directories
|
||||
foreach ($event->configPaths[$i] as $configPath)
|
||||
{
|
||||
// Load object
|
||||
$configORM = (new ConfigORM())->load($file);
|
||||
|
||||
// Override config values if they exist
|
||||
if (isset(self::$configOverrides[$event->configName]))
|
||||
// If file exists, load it and break the loop
|
||||
$file = $configPath . DS . 'config.'.strtolower($event->configName).'.php';
|
||||
if (file_exists($file))
|
||||
{
|
||||
foreach (self::$configOverrides[$event->configName] as $configKey => $configValue)
|
||||
$configORM->{$configKey} = $configValue;
|
||||
}
|
||||
// Load object
|
||||
$configORM = (new ConfigORM())->load($file);
|
||||
|
||||
// Return object
|
||||
return $configORM;
|
||||
// Override config values if they exist
|
||||
if (isset(self::$configOverrides[$event->configName]))
|
||||
{
|
||||
foreach (self::$configOverrides[$event->configName] as $configKey => $configValue)
|
||||
$configORM->{$configKey} = $configValue;
|
||||
}
|
||||
|
||||
// Return object
|
||||
return $configORM;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -75,7 +75,7 @@ class Configurator
|
|||
*
|
||||
* @var array of directories
|
||||
*/
|
||||
protected $directories = ['app' => []];
|
||||
protected $directories = [];
|
||||
|
||||
/**
|
||||
* Array of ComponentClass methods to be invoked once ComponentClass is loaded
|
||||
|
@ -124,12 +124,20 @@ class Configurator
|
|||
* Add a directory to FuzeWorks
|
||||
*
|
||||
* @param string $directory
|
||||
* @param string $category Optional. Defaults to 'app
|
||||
* @param string $category Optional
|
||||
* @param int $priority
|
||||
* @return $this
|
||||
*/
|
||||
public function addDirectory(string $directory, string $category = 'app'): Configurator
|
||||
public function addDirectory(string $directory, string $category, $priority = Priority::NORMAL): Configurator
|
||||
{
|
||||
$this->directories[$category][] = $directory;
|
||||
if (!isset($this->directories[$category]))
|
||||
$this->directories[$category] = [];
|
||||
|
||||
if (!isset($this->directories[$category][$priority]))
|
||||
$this->directories[$category][$priority] = [];
|
||||
|
||||
if (!in_array($directory, $this->directories[$category][$priority]))
|
||||
$this->directories[$category][$priority][] = $directory;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
@ -318,7 +326,6 @@ class Configurator
|
|||
// First set all the fixed directories
|
||||
Core::$tempDir = $this->parameters['tempDir'];
|
||||
Core::$logDir = $this->parameters['logDir'];
|
||||
Core::$appDirs = $this->directories['app'];
|
||||
|
||||
// Then prepare the debugger
|
||||
$debug = ($this->parameters['debugEnabled'] && $this->parameters['debugMatch'] ? true : false);
|
||||
|
@ -366,14 +373,14 @@ class Configurator
|
|||
}
|
||||
}
|
||||
|
||||
// And add all directories to the components
|
||||
foreach ($this->directories as $component => $directories) {
|
||||
// Add directories to Components
|
||||
foreach ($this->directories as $component => $priorityArray)
|
||||
{
|
||||
Logger::logDebug("Adding directories for '" . $component . "'");
|
||||
if ($component == 'app')
|
||||
continue;
|
||||
|
||||
if (method_exists($container->{$component}, 'setDirectories'))
|
||||
$container->{$component}->setDirectories($directories);
|
||||
{
|
||||
$container->{$component}->setDirectories($priorityArray);
|
||||
}
|
||||
}
|
||||
|
||||
$container->init();
|
||||
|
|
|
@ -71,8 +71,6 @@ class Core
|
|||
|
||||
public static $logDir;
|
||||
|
||||
public static $appDirs = [];
|
||||
|
||||
/**
|
||||
* The HTTP status code of the current request
|
||||
*
|
||||
|
|
|
@ -69,11 +69,6 @@ class Helpers
|
|||
*/
|
||||
protected $helpers = [];
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->componentPaths = Core::$appDirs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Load a helper.
|
||||
*
|
||||
|
@ -81,14 +76,14 @@ class Helpers
|
|||
* or from one of the helperPaths (which you can add).
|
||||
*
|
||||
* @param string $helperName Name of the helper
|
||||
* @param array $helperDirectories
|
||||
* @param array $helperPaths
|
||||
* @return bool Whether the helper was successfully loaded (true if yes)
|
||||
* @throws HelperException
|
||||
*/
|
||||
public function load(string $helperName, array $helperDirectories = []): bool
|
||||
public function load(string $helperName, array $helperPaths = []): bool
|
||||
{
|
||||
// Determine what directories should be checked
|
||||
$helperPaths = (empty($helperDirectories) ? $this->componentPaths : $helperDirectories);
|
||||
$helperPaths = (empty($helperPaths) ? $this->componentPaths : [3 => $helperPaths]);
|
||||
|
||||
// Check it is already loaded
|
||||
if (isset($this->helpers[$helperName]))
|
||||
|
@ -115,27 +110,33 @@ class Helpers
|
|||
}
|
||||
|
||||
// Iterate over helperPaths and attempt to load if helper exists
|
||||
foreach ($event->helperPaths as $helperPath)
|
||||
for ($i=Priority::getHighestPriority(); $i<=Priority::getLowestPriority(); $i++)
|
||||
{
|
||||
$file = $helperPath . DS . $event->helperName . '.php';
|
||||
$subfile = $helperPath . DS . $event->helperName . DS . $event->helperName . '.php';
|
||||
if (file_exists($file))
|
||||
{
|
||||
// Load and register
|
||||
include_once($file);
|
||||
$this->helpers[$event->helperName] = true;
|
||||
Logger::log("Loaded helper '".$event->helperName."'");
|
||||
return true;
|
||||
}
|
||||
if (!isset($event->helperPaths[$i]))
|
||||
continue;
|
||||
|
||||
// If php file not in main directory, check subdirectories
|
||||
elseif (file_exists($subfile))
|
||||
foreach ($event->helperPaths[$i] as $helperPath)
|
||||
{
|
||||
// Load and register
|
||||
include_once($subfile);
|
||||
$this->helpers[$event->helperName] = true;
|
||||
Logger::log("Loaded helper '".$event->helperName."''");
|
||||
return true;
|
||||
$file = $helperPath . DS . $event->helperName . '.php';
|
||||
$subfile = $helperPath . DS . $event->helperName . DS . $event->helperName . '.php';
|
||||
if (file_exists($file))
|
||||
{
|
||||
// Load and register
|
||||
include_once($file);
|
||||
$this->helpers[$event->helperName] = true;
|
||||
Logger::log("Loaded helper '".$event->helperName."'");
|
||||
return true;
|
||||
}
|
||||
|
||||
// If php file not in main directory, check subdirectories
|
||||
elseif (file_exists($subfile))
|
||||
{
|
||||
// Load and register
|
||||
include_once($subfile);
|
||||
$this->helpers[$event->helperName] = true;
|
||||
Logger::log("Loaded helper '".$event->helperName."''");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -72,7 +72,6 @@ class Libraries
|
|||
public function __construct()
|
||||
{
|
||||
$this->factory = Factory::getInstance();
|
||||
$this->componentPaths = Core::$appDirs;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -112,11 +111,11 @@ class Libraries
|
|||
*
|
||||
* @param string $libraryName
|
||||
* @param array $parameters
|
||||
* @param array $altDirectories
|
||||
* @param array $libraryPaths
|
||||
* @return object
|
||||
* @throws LibraryException
|
||||
*/
|
||||
public function get(string $libraryName, array $parameters = [], array $altDirectories = [])
|
||||
public function get(string $libraryName, array $parameters = [], array $libraryPaths = [])
|
||||
{
|
||||
// Test for empty string
|
||||
if (empty($libraryName))
|
||||
|
@ -136,24 +135,30 @@ class Libraries
|
|||
return $this->initLibrary($libraryName, $this->libraryClasses[$libraryNameLowerCase], $parameters);
|
||||
|
||||
// Try and load from the alternate directory if provided
|
||||
$paths = (empty($altDirectories) ? $this->componentPaths : $altDirectories);
|
||||
$libraryPaths = (empty($libraryPaths) ? $this->componentPaths : [3 => $libraryPaths]);
|
||||
|
||||
// Try and find the library in the libraryPaths
|
||||
foreach ($paths as $path)
|
||||
for ($i=Priority::getHighestPriority(); $i<=Priority::getLowestPriority(); $i++)
|
||||
{
|
||||
// First look if a .php file exists in the libraryPath
|
||||
$classFile = $path . DS . $libraryFilename . '.php';
|
||||
if (file_exists($classFile))
|
||||
{
|
||||
require_once($classFile);
|
||||
return $this->initLibrary($libraryName, $libraryClassname);
|
||||
}
|
||||
if (!isset($libraryPaths[$i]))
|
||||
continue;
|
||||
|
||||
$classFile = $path . DS . $libraryFilename . DS . $libraryFilename . '.php';
|
||||
if (file_exists($classFile))
|
||||
foreach ($libraryPaths[$i] as $path)
|
||||
{
|
||||
require_once($classFile);
|
||||
return $this->initLibrary($libraryName, $libraryClassname);
|
||||
// First look if a .php file exists in the libraryPath
|
||||
$classFile = $path . DS . $libraryFilename . '.php';
|
||||
if (file_exists($classFile))
|
||||
{
|
||||
require_once($classFile);
|
||||
return $this->initLibrary($libraryName, $libraryClassname);
|
||||
}
|
||||
|
||||
$classFile = $path . DS . $libraryFilename . DS . $libraryFilename . '.php';
|
||||
if (file_exists($classFile))
|
||||
{
|
||||
require_once($classFile);
|
||||
return $this->initLibrary($libraryName, $libraryClassname);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -95,7 +95,6 @@ class Plugins
|
|||
public function __construct()
|
||||
{
|
||||
$this->cfg = Factory::getInstance()->config->plugins;
|
||||
$this->componentPaths = Core::$appDirs;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -104,49 +103,55 @@ class Plugins
|
|||
public function loadHeadersFromPluginPaths()
|
||||
{
|
||||
// Cycle through all pluginPaths
|
||||
foreach ($this->componentPaths as $pluginPath) {
|
||||
|
||||
// If directory does not exist, skip it
|
||||
if (!file_exists($pluginPath) || !is_dir($pluginPath))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
for ($i=Priority::getHighestPriority(); $i<=Priority::getLowestPriority(); $i++)
|
||||
{
|
||||
if (!isset($this->componentPaths[$i]))
|
||||
continue;
|
||||
|
||||
// Fetch the contents of the path
|
||||
$pluginPathContents = array_diff(scandir($pluginPath), array('..', '.'));
|
||||
|
||||
// Now go through each entry in the plugin folder
|
||||
foreach ($pluginPathContents as $pluginFolder) {
|
||||
// @codeCoverageIgnoreStart
|
||||
if (!is_dir($pluginPath . DS . $pluginFolder))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
// @codeCoverageIgnoreEnd
|
||||
foreach ($this->componentPaths[$i] as $pluginPath) {
|
||||
|
||||
// If a header file exists, use it
|
||||
$file = $pluginPath . DS . $pluginFolder . DS . 'header.php';
|
||||
$pluginFolder = ucfirst($pluginFolder);
|
||||
$className = '\FuzeWorks\Plugins\\'.$pluginFolder.'Header';
|
||||
if (file_exists($file))
|
||||
{
|
||||
// Load the header file
|
||||
require_once($file);
|
||||
$header = new $className();
|
||||
if (!$header instanceof iPluginHeader)
|
||||
// If directory does not exist, skip it
|
||||
if (!file_exists($pluginPath) || !is_dir($pluginPath))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// Fetch the contents of the path
|
||||
$pluginPathContents = array_diff(scandir($pluginPath), array('..', '.'));
|
||||
|
||||
// Now go through each entry in the plugin folder
|
||||
foreach ($pluginPathContents as $pluginFolder) {
|
||||
// @codeCoverageIgnoreStart
|
||||
if (!is_dir($pluginPath . DS . $pluginFolder))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
// @codeCoverageIgnoreEnd
|
||||
|
||||
// Load the header
|
||||
$this->loadHeader($header);
|
||||
}
|
||||
// If a header file exists, use it
|
||||
$file = $pluginPath . DS . $pluginFolder . DS . 'header.php';
|
||||
$pluginFolder = ucfirst($pluginFolder);
|
||||
$className = '\FuzeWorks\Plugins\\'.$pluginFolder.'Header';
|
||||
if (file_exists($file))
|
||||
{
|
||||
// Load the header file
|
||||
require_once($file);
|
||||
$header = new $className();
|
||||
if (!$header instanceof iPluginHeader)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// If it doesn't exist, skip it
|
||||
continue;
|
||||
}
|
||||
// Load the header
|
||||
$this->loadHeader($header);
|
||||
}
|
||||
|
||||
}
|
||||
// If it doesn't exist, skip it
|
||||
continue;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -47,9 +47,6 @@ foreach ($logs as $log) {
|
|||
} elseif ($log['type'] == 'ERROR') {
|
||||
$string .= '<div style="' . ($layer == 0 ? 'padding-left: 21px;' : '') . 'font-size: 11pt; background-color:#f56954;">[' . $log['type'] . ']' . (!empty($log['context']) && is_string($log['context']) ? '<u>[' . $log['context'] . ']</u>' : '') . ' ' . $log['message'] . '
|
||||
<span style="float: right">' . (!empty($log['logFile']) ? $log['logFile'] : '') . ' : ' . (!empty($log['logLine']) ? $log['logLine'] : '') . '(' . round($log['runtime'] * 1000, 4) . ' ms)</span></div>';
|
||||
} elseif ($log['type'] == 'EXCEPTION') {
|
||||
$string .= '<div style="' . ($layer == 0 ? 'padding-left: 21px;' : '') . 'font-size: 11pt; background-color:#f56954;">[' . $log['type'] . ']' . (!empty($log['context']) && is_string($log['context']) ? '<u>[' . $log['context'] . ']</u>' : '') . ' ' . $log['message'] . '
|
||||
<span style="float: right">' . (!empty($log['logFile']) ? $log['logFile'] : '') . ' : ' . (!empty($log['logLine']) ? $log['logLine'] : '') . '(' . round($log['runtime'] * 1000, 4) . ' ms)</span></div>';
|
||||
} elseif ($log['type'] == 'WARNING') {
|
||||
$string .= '<div style="' . ($layer == 0 ? 'padding-left: 21px;' : '') . 'font-size: 11pt; background-color:#f39c12;">[' . $log['type'] . ']' . (!empty($log['context']) && is_string($log['context']) ? '<u>[' . $log['context'] . ']</u>' : '') . ' ' . $log['message'] . '
|
||||
<span style="float: right">' . (!empty($log['logFile']) ? $log['logFile'] : '') . ' : ' . (!empty($log['logLine']) ? $log['logLine'] : '') . '(' . round($log['runtime'] * 1000, 4) . ' ms)</span></div>';
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
* @version Version 1.2.0
|
||||
*/
|
||||
namespace FuzeWorks\Component;
|
||||
use FuzeWorks\ComponentPathsTrait;
|
||||
use FuzeWorks\Configurator;
|
||||
use FuzeWorks\Factory;
|
||||
use FuzeWorks\iComponent;
|
||||
|
@ -46,7 +47,7 @@ class TestAddComponentDirectoryComponent implements iComponent
|
|||
return ['testaddcomponentdirectory' => 'FuzeWorks\Component\TestAddComponentDirectory'];
|
||||
}
|
||||
|
||||
public function onAddComponent(Configurator $configurator): Configurator
|
||||
public function onAddComponent(Configurator $configurator)
|
||||
{
|
||||
return $configurator;
|
||||
}
|
||||
|
@ -64,11 +65,7 @@ class TestAddComponentDirectoryComponent implements iComponent
|
|||
|
||||
class TestAddComponentDirectory
|
||||
{
|
||||
public $variable = 5;
|
||||
public $directories = [];
|
||||
use ComponentPathsTrait;
|
||||
|
||||
public function setDirectories(array $directories)
|
||||
{
|
||||
$this->directories = $directories;
|
||||
}
|
||||
public $variable = 5;
|
||||
}
|
|
@ -34,5 +34,5 @@
|
|||
* @version Version 1.2.0
|
||||
*/
|
||||
return array(
|
||||
'key' => 'value'
|
||||
);
|
||||
'key' => 'value'
|
||||
);
|
|
@ -64,14 +64,28 @@ class configTest extends CoreTestAbstract
|
|||
|
||||
/**
|
||||
* @depends testGetConfigClass
|
||||
* @covers \FuzeWorks\Config::getConfig
|
||||
* @covers \FuzeWorks\Config::loadConfigFile
|
||||
*/
|
||||
public function testLoadConfig()
|
||||
{
|
||||
$this->assertInstanceOf('FuzeWorks\ConfigORM\ConfigORM', $this->config->getConfig('error'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testLoadConfig
|
||||
* @covers \FuzeWorks\Config::getConfig
|
||||
* @covers \FuzeWorks\Config::loadConfigFile
|
||||
*/
|
||||
public function testLoadConfigWithAltDirectory()
|
||||
{
|
||||
$config = $this->config->getConfig('TestLoadConfigWithAltDirectory', ['test'.DS.'config'.DS.'TestLoadConfigWithAltDirectory'.DS.'SubDirectory']);
|
||||
$this->assertEquals('value', $config->key);
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testLoadConfig
|
||||
* @covers \FuzeWorks\Config::loadConfigFile
|
||||
* @expectedException FuzeWorks\Exception\ConfigException
|
||||
*/
|
||||
public function testFileNotFound()
|
||||
|
@ -81,6 +95,7 @@ class configTest extends CoreTestAbstract
|
|||
|
||||
/**
|
||||
* @depends testLoadConfig
|
||||
* @covers \FuzeWorks\Config::loadConfigFile
|
||||
*/
|
||||
public function testLoadConfigCancel()
|
||||
{
|
||||
|
@ -97,6 +112,7 @@ class configTest extends CoreTestAbstract
|
|||
|
||||
/**
|
||||
* @depends testLoadConfig
|
||||
* @covers \FuzeWorks\Config::loadConfigFile
|
||||
*/
|
||||
public function testLoadConfigIntercept()
|
||||
{
|
||||
|
@ -152,44 +168,8 @@ class configTest extends CoreTestAbstract
|
|||
}
|
||||
|
||||
/**
|
||||
* @expectedException FuzeWorks\Exception\ConfigException
|
||||
* @covers \FuzeWorks\Config::getConfig
|
||||
*/
|
||||
public function testAddComponentPathFail()
|
||||
{
|
||||
// Now test if the config can be loaded (hint: it can not)
|
||||
$this->config->getConfig('testAddComponentPath');
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testAddComponentPathFail
|
||||
*/
|
||||
public function testaddComponentPath()
|
||||
{
|
||||
// Add the configPath
|
||||
$this->config->addComponentPath('test'.DS.'config'.DS.'TestAddComponentPath');
|
||||
|
||||
// And try to load it again
|
||||
$this->assertInstanceOf('FuzeWorks\ConfigORM\ConfigORM', $this->config->getConfig('testAddComponentPath'));
|
||||
}
|
||||
|
||||
public function testremoveComponentPath()
|
||||
{
|
||||
// Test if the path does NOT exist
|
||||
$this->assertFalse(in_array('test'.DS.'config'.DS.'TestRemoveComponentPath', $this->config->getComponentPaths()));
|
||||
|
||||
// Add it
|
||||
$this->config->addComponentPath('test'.DS.'config'.DS.'TestRemoveComponentPath');
|
||||
|
||||
// Assert if it's there
|
||||
$this->assertTrue(in_array('test'.DS.'config'.DS.'TestRemoveComponentPath', $this->config->getComponentPaths()));
|
||||
|
||||
// Remove it
|
||||
$this->config->removeComponentPath('test'.DS.'config'.DS.'TestRemoveComponentPath');
|
||||
|
||||
// And test if it's gone again
|
||||
$this->assertFalse(in_array('test'.DS.'config'.DS.'TestRemoveComponentPath', $this->config->getComponentPaths()));
|
||||
}
|
||||
|
||||
public function testSameConfigObject()
|
||||
{
|
||||
$config = $this->config->getConfig('testsameconfigobject', array('test'.DS.'config'.DS.'TestSameConfigObject'));
|
||||
|
@ -206,15 +186,4 @@ class configTest extends CoreTestAbstract
|
|||
$this->assertEquals($config2->key, 'other_value');
|
||||
}
|
||||
|
||||
public function testSetDirectories()
|
||||
{
|
||||
// Add the directory
|
||||
$directory = 'test' . DS . 'config';
|
||||
$this->config->setDirectories([$directory]);
|
||||
|
||||
// Assert expectations
|
||||
$expected = array_merge(\FuzeWorks\Core::$appDirs, [$directory]);
|
||||
$this->assertEquals($expected, $this->config->getComponentPaths());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -63,7 +63,6 @@ class configuratorTest extends CoreTestAbstract
|
|||
|
||||
public function tearDown()
|
||||
{
|
||||
Core::$appDirs = [dirname(__DIR__) . '/application'];
|
||||
Core::$tempDir = dirname(__DIR__) . '/temp';
|
||||
Core::$logDir = dirname(__DIR__) . '/temp';
|
||||
}
|
||||
|
@ -192,22 +191,6 @@ class configuratorTest extends CoreTestAbstract
|
|||
$this->configurator->setTempDirectory('not_exist');
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testCreateContainer
|
||||
*/
|
||||
public function testAddAppDirectory()
|
||||
{
|
||||
// Create mock filesystem
|
||||
vfsStream::setup('testAddAppDirectory');
|
||||
|
||||
// Add the directory
|
||||
$this->assertInstanceOf('FuzeWorks\Configurator', $this->configurator->addDirectory(vfsStream::url('testAddAppDirectory')));
|
||||
|
||||
// Create container and test if properly set
|
||||
$this->configurator->createContainer();
|
||||
$this->assertEquals(Core::$appDirs, [vfsStream::url('testAddAppDirectory')]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testCreateContainer
|
||||
* @depends testAddComponent
|
||||
|
@ -232,7 +215,7 @@ class configuratorTest extends CoreTestAbstract
|
|||
$this->assertEquals(5, $container->testaddcomponentdirectory->variable);
|
||||
|
||||
// Verify directory is set
|
||||
$this->assertEquals($container->testaddcomponentdirectory->directories, [vfsStream::url('testAddComponentDirectory')]);
|
||||
$this->assertEquals([vfsStream::url('testAddComponentDirectory')], $container->testaddcomponentdirectory->getComponentPaths());
|
||||
}
|
||||
|
||||
/* ---------------------------------- Deferred Invocation --------------------------------------- */
|
||||
|
|
|
@ -48,11 +48,19 @@ class coreTest extends CoreTestAbstract
|
|||
// Assert
|
||||
$this->assertTrue(class_exists('FuzeWorks\Core'));
|
||||
$this->assertTrue(class_exists('FuzeWorks\Config'));
|
||||
$this->assertTrue(class_exists('FuzeWorks\Logger'));
|
||||
$this->assertTrue(class_exists('FuzeWorks\Configurator'));
|
||||
$this->assertTrue(trait_exists('FuzeWorks\ComponentPathsTrait'));
|
||||
$this->assertTrue(class_exists('FuzeWorks\DeferredComponentClass'));
|
||||
$this->assertTrue(class_exists('FuzeWorks\Event'));
|
||||
$this->assertTrue(class_exists('FuzeWorks\Events'));
|
||||
$this->assertTrue(class_exists('FuzeWorks\Factory'));
|
||||
$this->assertTrue(class_exists('FuzeWorks\Helpers'));
|
||||
$this->assertTrue(interface_exists('FuzeWorks\iComponent'));
|
||||
$this->assertTrue(interface_exists('FuzeWorks\iPluginHeader'));
|
||||
$this->assertTrue(class_exists('FuzeWorks\Libraries'));
|
||||
$this->assertTrue(class_exists('FuzeWorks\Logger'));
|
||||
$this->assertTrue(class_exists('FuzeWorks\Plugins'));
|
||||
$this->assertTrue(class_exists('FuzeWorks\Priority'));
|
||||
}
|
||||
|
||||
public function testIsPHP()
|
||||
|
|
|
@ -55,7 +55,7 @@ class helperTest extends CoreTestAbstract
|
|||
{
|
||||
// Prepare class
|
||||
$this->helpers = new Helpers();
|
||||
$this->helpers->setDirectories(['test' . DS . 'helpers']);
|
||||
$this->helpers->setDirectories([3 => ['test' . DS . 'helpers']]);
|
||||
}
|
||||
|
||||
public function testGetHelpersClass()
|
||||
|
@ -94,6 +94,22 @@ class helperTest extends CoreTestAbstract
|
|||
$this->assertTrue(function_exists('testLoadHelperWithoutSubdirectory'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testLoadHelper
|
||||
* @covers \FuzeWorks\Helpers::load
|
||||
*/
|
||||
public function testLoadHelperWithAltDirectory()
|
||||
{
|
||||
$this->assertFalse(function_exists('testLoadHelperWithAltDirectory'));
|
||||
|
||||
$this->assertTrue($this->helpers->load(
|
||||
'TestLoadHelperWithAltDirectory',
|
||||
['test' . DS . 'helpers' . DS . 'TestLoadHelperWithAltDirectory' . DS . 'SubDirectory']
|
||||
));
|
||||
|
||||
$this->assertTrue(function_exists('testLoadHelperWithAltDirectory'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testLoadHelper
|
||||
* @covers \FuzeWorks\Helpers::load
|
||||
|
@ -149,71 +165,4 @@ class helperTest extends CoreTestAbstract
|
|||
// Test if the function exists now
|
||||
$this->assertTrue(function_exists('testGetHelper'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException FuzeWorks\Exception\HelperException
|
||||
* @covers \FuzeWorks\Helpers::load
|
||||
*/
|
||||
public function testAddComponentPathFail()
|
||||
{
|
||||
// First test if the function is not loaded yet
|
||||
$this->assertFalse(function_exists('testAddComponentPathFunction'));
|
||||
|
||||
// Now test if the helper can be loaded (hint: it can not)
|
||||
$this->helpers->load('TestAddComponentPathFail');
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testAddComponentPathFail
|
||||
* @covers \FuzeWorks\Helpers::addComponentPath
|
||||
* @covers \FuzeWorks\Helpers::getComponentPaths
|
||||
*/
|
||||
public function testAddComponentPath()
|
||||
{
|
||||
// Add the componentPath
|
||||
$this->helpers->addComponentPath('test'.DS.'helpers'.DS.'TestAddComponentPath');
|
||||
|
||||
// And try to load it again
|
||||
$this->assertTrue($this->helpers->load('TestAddComponentPath'));
|
||||
|
||||
// And test if the function is loaded
|
||||
$this->assertTrue(function_exists('testAddComponentPathFunction'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers \FuzeWorks\Helpers::removeComponentPath
|
||||
* @covers \FuzeWorks\Helpers::getComponentPaths
|
||||
*/
|
||||
public function testRemoveComponentPath()
|
||||
{
|
||||
// Test if the path does NOT exist
|
||||
$this->assertFalse(in_array('test'.DS.'helpers'.DS.'TestRemoveComponentPath', $this->helpers->getComponentPaths()));
|
||||
|
||||
// Add it
|
||||
$this->helpers->addComponentPath('test'.DS.'helpers'.DS.'TestRemoveComponentPath');
|
||||
|
||||
// Assert if it's there
|
||||
$this->assertTrue(in_array('test'.DS.'helpers'.DS.'TestRemoveComponentPath', $this->helpers->getComponentPaths()));
|
||||
|
||||
// Remove it
|
||||
$this->helpers->removeComponentPath('test'.DS.'helpers'.DS.'TestRemoveComponentPath');
|
||||
|
||||
// And test if it's gone again
|
||||
$this->assertFalse(in_array('test'.DS.'helpers'.DS.'TestRemoveComponentPath', $this->helpers->getComponentPaths()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers \FuzeWorks\Helpers::setDirectories
|
||||
* @covers \FuzeWorks\Helpers::getComponentPaths
|
||||
*/
|
||||
public function testSetDirectories()
|
||||
{
|
||||
// Add the directory
|
||||
$directory = 'test' . DS . 'helpers';
|
||||
$this->helpers->setDirectories([$directory]);
|
||||
|
||||
// Assert expectations
|
||||
$expected = array_merge(\FuzeWorks\Core::$appDirs, ['test' . DS . 'helpers', $directory]);
|
||||
$this->assertEquals($expected, $this->helpers->getComponentPaths());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -57,7 +57,7 @@ class libraryTest extends CoreTestAbstract
|
|||
$this->libraries = new Libraries();
|
||||
|
||||
// And then set all paths
|
||||
$this->libraries->setDirectories(['test'.DS.'libraries']);
|
||||
$this->libraries->setDirectories([3 => ['test'.DS.'libraries']]);
|
||||
}
|
||||
|
||||
public function testLibrariesClass()
|
||||
|
@ -65,67 +65,6 @@ class libraryTest extends CoreTestAbstract
|
|||
$this->assertInstanceOf('FuzeWorks\Libraries', $this->libraries);
|
||||
}
|
||||
|
||||
/* ---------------------------------- ComponentPaths ---------------------------------------------- */
|
||||
|
||||
/**
|
||||
* @depends testLibrariesClass
|
||||
*/
|
||||
public function testSetDirectories()
|
||||
{
|
||||
// Test initial
|
||||
$initial = array_merge(Core::$appDirs, ['test'.DS.'libraries']);
|
||||
$this->assertEquals($initial, $this->libraries->getComponentPaths());
|
||||
|
||||
// Add path
|
||||
$newPath = 'addPath';
|
||||
$this->libraries->setDirectories([$newPath]);
|
||||
$initial[] = $newPath;
|
||||
$this->assertEquals($initial, $this->libraries->getComponentPaths());
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException FuzeWorks\Exception\LibraryException
|
||||
*/
|
||||
public function testAddComponentPathFail()
|
||||
{
|
||||
// First test if the library is not loaded yet
|
||||
$this->assertFalse(class_exists('TestAddComponentPathFail', false));
|
||||
|
||||
// Now test if the library can be loaded (hint: it can not)
|
||||
$this->libraries->get('TestAddComponentPathFail');
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testAddComponentPathFail
|
||||
*/
|
||||
public function testAddComponentPath()
|
||||
{
|
||||
// Add the componentPath
|
||||
$this->libraries->removeComponentPath('test'.DS.'libraries');
|
||||
$this->libraries->addComponentPath('test'.DS.'libraries'.DS.'TestAddComponentPath');
|
||||
|
||||
// And try to load it again
|
||||
$this->assertInstanceOf('Application\Library\TestAddComponentPath', $this->libraries->get('TestAddComponentPath'));
|
||||
}
|
||||
|
||||
public function testRemoveComponentPath()
|
||||
{
|
||||
// Test if the path does NOT exist
|
||||
$this->assertFalse(in_array('test'.DS.'libraries'.DS.'TestRemoveComponentPath', $this->libraries->getComponentPaths()));
|
||||
|
||||
// Add it
|
||||
$this->libraries->addComponentPath('test'.DS.'libraries'.DS.'TestRemoveComponentPath');
|
||||
|
||||
// Assert if it's there
|
||||
$this->assertTrue(in_array('test'.DS.'libraries'.DS.'TestRemoveComponentPath', $this->libraries->getComponentPaths()));
|
||||
|
||||
// Remove it
|
||||
$this->libraries->removeComponentPath('test'.DS.'libraries'.DS.'TestRemoveComponentPath');
|
||||
|
||||
// And test if it's gone again
|
||||
$this->assertFalse(in_array('test'.DS.'libraries'.DS.'TestRemoveComponentPath', $this->libraries->getComponentPaths()));
|
||||
}
|
||||
|
||||
/* ---------------------------------- Load library from directories ------------------- */
|
||||
|
||||
/**
|
||||
|
@ -186,7 +125,7 @@ class libraryTest extends CoreTestAbstract
|
|||
// Prepare the config file
|
||||
$libraryName = 'TestGetLibraryParametersFromConfig';
|
||||
$libraryDir = 'test'.DS.'libraries'.DS.'TestGetLibraryParametersFromConfig';
|
||||
$config = Factory::getInstance()->config->getConfig(strtolower($libraryName), [$libraryDir]);
|
||||
Factory::getInstance()->config->getConfig(strtolower($libraryName), [$libraryDir]);
|
||||
|
||||
// Load the library
|
||||
$lib = $this->libraries->get('TestGetLibraryParametersFromConfig');
|
||||
|
|
|
@ -180,48 +180,6 @@ class pluginTest extends CoreTestAbstract
|
|||
$this->plugins->get('testRunInvalidDirectory');
|
||||
}
|
||||
|
||||
public function testAddComponentPath()
|
||||
{
|
||||
// Add the componentPath
|
||||
$this->plugins->addComponentPath('test'.DS.'plugins'.DS.'TestAddComponentPath');
|
||||
|
||||
// And try to load it again
|
||||
$this->plugins->loadHeadersFromPluginPaths();
|
||||
$this->assertInstanceOf('Application\Plugin\ActualPlugin', $this->plugins->get('ActualPlugin'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testAddComponentPath
|
||||
*/
|
||||
public function testRemoveComponentPath()
|
||||
{
|
||||
// Test if the path does NOT exist
|
||||
$this->assertFalse(in_array('test'.DS.'plugins'.DS.'testRemoveComponentPath', $this->plugins->getComponentPaths()));
|
||||
|
||||
// Add it
|
||||
$this->plugins->addComponentPath('test'.DS.'plugins'.DS.'testRemoveComponentPath');
|
||||
|
||||
// Assert if it's there
|
||||
$this->assertTrue(in_array('test'.DS.'plugins'.DS.'testRemoveComponentPath', $this->plugins->getComponentPaths()));
|
||||
|
||||
// Remove it
|
||||
$this->plugins->removeComponentPath('test'.DS.'plugins'.DS.'testRemoveComponentPath');
|
||||
|
||||
// And test if it's gone again
|
||||
$this->assertFalse(in_array('test'.DS.'plugins'.DS.'testRemoveComponentPath', $this->plugins->getComponentPaths()));
|
||||
}
|
||||
|
||||
public function testSetDirectories()
|
||||
{
|
||||
// Add the directory
|
||||
$appDir = Core::$appDirs[0];
|
||||
$directory = 'test' . DS . 'helpers';
|
||||
$expected = [$appDir, 'test'.DS.'plugins', $directory];
|
||||
$this->plugins->setDirectories([$directory]);
|
||||
|
||||
$this->assertEquals($expected, $this->plugins->getComponentPaths());
|
||||
}
|
||||
|
||||
public function tearDown()
|
||||
{
|
||||
$factory = Factory::getInstance();
|
||||
|
|
|
@ -33,11 +33,12 @@
|
|||
*
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
if ( ! function_exists('testAddComponentPathFunction'))
|
||||
|
||||
if ( ! function_exists('testLoadHelperWithAltDirectory'))
|
||||
{
|
||||
|
||||
function testAddComponentPathFunction($someParameter)
|
||||
{
|
||||
return 'SomeResult';
|
||||
}
|
||||
function testLoadHelperWithAltDirectory($someParameter)
|
||||
{
|
||||
return 'SomeResult';
|
||||
}
|
||||
}
|
|
@ -1,40 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* FuzeWorks Framework Core.
|
||||
*
|
||||
* The FuzeWorks PHP FrameWork
|
||||
*
|
||||
* Copyright (C) 2013-2019 TechFuze
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* @author TechFuze
|
||||
* @copyright Copyright (c) 2013 - 2019, TechFuze. (http://techfuze.net)
|
||||
* @license https://opensource.org/licenses/MIT MIT License
|
||||
*
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 1.2.0
|
||||
*
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
namespace Application\Library;
|
||||
|
||||
class TestAddComponentPath {
|
||||
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* FuzeWorks Framework Core.
|
||||
*
|
||||
* The FuzeWorks PHP FrameWork
|
||||
*
|
||||
* Copyright (C) 2013-2019 TechFuze
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* @author TechFuze
|
||||
* @copyright Copyright (c) 2013 - 2019, TechFuze. (http://techfuze.net)
|
||||
* @license https://opensource.org/licenses/MIT MIT License
|
||||
*
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 1.2.0
|
||||
*
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
namespace Application\Plugin;
|
||||
|
||||
class ActualPlugin
|
||||
{
|
||||
|
||||
}
|
|
@ -1,50 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* FuzeWorks Framework Core.
|
||||
*
|
||||
* The FuzeWorks PHP FrameWork
|
||||
*
|
||||
* Copyright (C) 2013-2019 TechFuze
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* @author TechFuze
|
||||
* @copyright Copyright (c) 2013 - 2019, TechFuze. (http://techfuze.net)
|
||||
* @license https://opensource.org/licenses/MIT MIT License
|
||||
*
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 1.2.0
|
||||
*
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
namespace FuzeWorks\Plugins;
|
||||
use FuzeWorks\iPluginHeader;
|
||||
|
||||
class ActualPluginHeader implements iPluginHeader
|
||||
{
|
||||
|
||||
public function getName(): string
|
||||
{
|
||||
return "ActualPlugin";
|
||||
}
|
||||
|
||||
public function init()
|
||||
{
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue