Compare commits
No commits in common. "master" and "1.2.0-RC5" have entirely different histories.
36
.drone.yml
36
.drone.yml
@ -1,36 +0,0 @@
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: test
|
||||
|
||||
steps:
|
||||
- name: composer
|
||||
image: composer:latest
|
||||
commands:
|
||||
- composer install
|
||||
|
||||
- name: php74test
|
||||
image: registry.i15.nl/i15/fuzephp:7.4-alpine
|
||||
commands:
|
||||
- docker-php-ext-enable xdebug
|
||||
- vendor/bin/phpunit -c test/phpunit.xml
|
||||
|
||||
- name: php80test
|
||||
image: registry.i15.nl/i15/fuzephp:8.0-alpine
|
||||
commands:
|
||||
- docker-php-ext-enable xdebug
|
||||
- vendor/bin/phpunit -c test/phpunit.xml
|
||||
|
||||
- name: php81test
|
||||
image: registry.i15.nl/i15/fuzephp:8.1-alpine
|
||||
commands:
|
||||
- docker-php-ext-enable xdebug
|
||||
- vendor/bin/phpunit -c test/phpunit.xml
|
||||
|
||||
- name: coverage
|
||||
image: registry.i15.nl/i15/fuzephp:8.0-alpine
|
||||
commands:
|
||||
- docker-php-ext-enable xdebug
|
||||
- vendor/bin/phpunit -c test/phpunit.xml --coverage-text
|
||||
|
||||
image_pull_secrets:
|
||||
- dockerconfig
|
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -3,4 +3,3 @@
|
||||
.gitlab-ci.yml export-ignore
|
||||
.travis.yml export-ignore
|
||||
test/ export-ignore
|
||||
docs/ export-ignore
|
82
.gitlab-ci.yml
Normal file
82
.gitlab-ci.yml
Normal file
@ -0,0 +1,82 @@
|
||||
before_script:
|
||||
# Install dependencies
|
||||
- set -xe
|
||||
- apt-get update -yqq
|
||||
- apt-get install git zip unzip -yqq
|
||||
|
||||
stages:
|
||||
- build
|
||||
- test
|
||||
- deploy
|
||||
|
||||
build:composer:
|
||||
image: php:7.2
|
||||
stage: build
|
||||
script:
|
||||
- curl -sS https://getcomposer.org/installer | php
|
||||
- php composer.phar install
|
||||
cache:
|
||||
key: "$CI_BUILD_REF_$CI_BUILD_REF_NAME"
|
||||
paths:
|
||||
- vendor/
|
||||
|
||||
test:7.1:
|
||||
stage: test
|
||||
image: php:7.1
|
||||
script:
|
||||
- vendor/bin/phpunit -c test/phpunit.xml
|
||||
cache:
|
||||
key: "$CI_BUILD_REF_$CI_BUILD_REF_NAME"
|
||||
paths:
|
||||
- vendor
|
||||
|
||||
test:7.2:
|
||||
stage: test
|
||||
image: php:7.2
|
||||
script:
|
||||
- vendor/bin/phpunit -c test/phpunit.xml
|
||||
cache:
|
||||
key: "$CI_BUILD_REF_$CI_BUILD_REF_NAME"
|
||||
paths:
|
||||
- vendor/
|
||||
|
||||
test:7.3:
|
||||
stage: test
|
||||
image: php:7.3
|
||||
script:
|
||||
- vendor/bin/phpunit -c test/phpunit.xml
|
||||
cache:
|
||||
key: "$CI_BUILD_REF_$CI_BUILD_REF_NAME"
|
||||
paths:
|
||||
- vendor/
|
||||
|
||||
test:coverage:
|
||||
stage: test
|
||||
image: php:7.2
|
||||
script:
|
||||
- pecl install xdebug
|
||||
- docker-php-ext-enable xdebug
|
||||
- vendor/bin/phpunit -c test/phpunit.xml --coverage-text
|
||||
cache:
|
||||
key: "$CI_BUILD_REF_$CI_BUILD_REF_NAME"
|
||||
paths:
|
||||
- vendor/
|
||||
|
||||
release:
|
||||
stage: deploy
|
||||
image: php:7.2
|
||||
only:
|
||||
- master
|
||||
script:
|
||||
- pecl install xdebug
|
||||
- docker-php-ext-enable xdebug
|
||||
- vendor/bin/phpunit -c test/phpunit.xml --coverage-text
|
||||
artifacts:
|
||||
name: "${CI_BUILD_NAME}_${CI_BUILD_REF_NAME}"
|
||||
paths:
|
||||
- build/
|
||||
expire_in: 3 weeks
|
||||
cache:
|
||||
key: "$CI_BUILD_REF_$CI_BUILD_REF_NAME"
|
||||
paths:
|
||||
- vendor/
|
12
.travis.yml
Normal file
12
.travis.yml
Normal file
@ -0,0 +1,12 @@
|
||||
language: php
|
||||
|
||||
php:
|
||||
- 7.1
|
||||
- 7.2
|
||||
- 7.3
|
||||
|
||||
script:
|
||||
- php vendor/bin/phpunit -v -c test/phpunit.xml --coverage-text
|
||||
|
||||
before_script:
|
||||
- composer install
|
@ -10,7 +10,7 @@ https://techfuze.net/fuzeworks
|
||||
Summary
|
||||
-------
|
||||
|
||||
FuzeWorks is a flexible PHP Framework made for the requirements of today's web.
|
||||
FuzeWorks is a flexible PHP Framework made for the requirements of todays web.
|
||||
For a summary of features, list of requirements, and installation instructions,
|
||||
please see the documentation in the ./doc/ folder or at http://techfuze.net/fuzeworks
|
||||
|
||||
|
@ -1,20 +1,25 @@
|
||||
{
|
||||
"name": "fuzeworks/core",
|
||||
"description": "FuzeWorks Framework Core",
|
||||
"homepage": "https://i15.nl/fuzeworks",
|
||||
"homepage": "https://techfuze.net/fuzeworks",
|
||||
"license": ["MIT"],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Abel Hoogeveen",
|
||||
"homepage": "https://i15.nl"
|
||||
"name": "TechFuze",
|
||||
"homepage": "https://techfuze.net"
|
||||
},
|
||||
{
|
||||
"name": "FuzeWorks Community",
|
||||
"homepage": "https://techfuze.net/fuzeworks/contributors"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": ">=7.4.0"
|
||||
"php": ">=7.1.0",
|
||||
"psr/log": "1.1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^9",
|
||||
"mikey179/vfsstream": "~1.6.0"
|
||||
"phpunit/phpunit": "^7",
|
||||
"mikey179/vfsstream": "1.1.*"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
|
@ -1,27 +0,0 @@
|
||||
FuzeWorks boot process
|
||||
|
||||
1.
|
||||
1.1 Temp/Log directory set
|
||||
1.2 Debug parameters set
|
||||
2.
|
||||
2.1 Define ENVIRONMENT
|
||||
2.2 Core::init()
|
||||
2.2.1 CWD Set
|
||||
2.2.2 CoreDir set
|
||||
2.2.3 Constants defined
|
||||
2.2.4 shutdown/error/exception handlers set
|
||||
2.3 new Factory()
|
||||
2.3.1 new Config, Logger, Events, Libraries, Helpers, Plugins
|
||||
3.
|
||||
3.1 Load Components
|
||||
3.1.1 setInstance of component
|
||||
3.1.2 run onCreateContainer()
|
||||
3.2 Add directories by category
|
||||
3.3 each component init()
|
||||
3.4 deferComponentClass invoke
|
||||
4.
|
||||
4.1 Factory::initFactory()
|
||||
4.1.1 enable/disable Events
|
||||
4.1.2 Plugins::loadHeadersFromPluginPaths()
|
||||
4.1.3 coreStartEvent()
|
||||
5. Return container
|
@ -31,7 +31,7 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 1.2.0
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
namespace FuzeWorks;
|
||||
@ -45,7 +45,7 @@ trait ComponentPathsTrait
|
||||
*
|
||||
* @var array $componentPaths
|
||||
*/
|
||||
protected array $componentPaths = [];
|
||||
protected $componentPaths = [];
|
||||
|
||||
/**
|
||||
* Set the directories. Automatically gets invoked if componentPaths are added by FuzeWorks\Configurator.
|
||||
@ -63,7 +63,7 @@ trait ComponentPathsTrait
|
||||
* @param string $componentPath
|
||||
* @param int $priority
|
||||
*/
|
||||
public function addComponentPath(string $componentPath, int $priority = Priority::NORMAL)
|
||||
public function addComponentPath($componentPath, $priority = Priority::NORMAL)
|
||||
{
|
||||
if (!isset($this->componentPaths[$priority]))
|
||||
$this->componentPaths[$priority] = [];
|
||||
@ -78,7 +78,7 @@ trait ComponentPathsTrait
|
||||
* @param string $componentPath
|
||||
* @param int $priority
|
||||
*/
|
||||
public function removeComponentPath(string $componentPath, int $priority = Priority::NORMAL)
|
||||
public function removeComponentPath($componentPath, $priority = Priority::NORMAL)
|
||||
{
|
||||
if (!isset($this->componentPaths[$priority]))
|
||||
return;
|
||||
@ -93,8 +93,8 @@ trait ComponentPathsTrait
|
||||
* @param int $priority
|
||||
* @return array of paths where objects for this component can be found
|
||||
*/
|
||||
public function getComponentPaths(int $priority = Priority::NORMAL): array
|
||||
public function getComponentPaths($priority = Priority::NORMAL): array
|
||||
{
|
||||
return $this->componentPaths[$priority] ?? [];
|
||||
return (isset($this->componentPaths[$priority]) ? $this->componentPaths[$priority] : []);
|
||||
}
|
||||
}
|
@ -31,7 +31,7 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
namespace FuzeWorks;
|
||||
@ -52,28 +52,24 @@ class Config
|
||||
{
|
||||
use ComponentPathsTrait;
|
||||
|
||||
public function __construct() {
|
||||
$this->addComponentPath(Core::$coreDir . DS . 'Config', Priority::LOWEST);
|
||||
}
|
||||
|
||||
/**
|
||||
* Array where all config files are saved while FuzeWorks runs
|
||||
*
|
||||
* @var array Array of all loaded config file ORM's
|
||||
*/
|
||||
protected array $cfg = [];
|
||||
protected $cfg = [];
|
||||
|
||||
/**
|
||||
* Array of config values that will be overridden
|
||||
*
|
||||
* @var array of config values
|
||||
*/
|
||||
public static array $configOverrides = [];
|
||||
public static $configOverrides = [];
|
||||
|
||||
/**
|
||||
* Retrieve a config file object
|
||||
*
|
||||
* @param string $configName Name of the config file. E.g. 'main'
|
||||
* @param string $configName Name of the config file. Eg. 'main'
|
||||
* @param array $configPaths Optional array of where to look for the config files
|
||||
* @return ConfigORM of the config file. Allows for easy reading and editing of the file
|
||||
* @throws ConfigException
|
||||
@ -96,7 +92,7 @@ class Config
|
||||
else
|
||||
$paths = $this->componentPaths;
|
||||
|
||||
// Otherwise, try and load a new one
|
||||
// Otherwise try and load a new one
|
||||
$this->cfg[$configName] = $this->loadConfigFile($configName, $paths);
|
||||
return $this->cfg[$configName];
|
||||
}
|
||||
@ -132,7 +128,7 @@ class Config
|
||||
/**
|
||||
* Determine whether the file exists and, if so, load the ConfigORM
|
||||
*
|
||||
* @param string $configName Name of the config file. E.g. 'main'
|
||||
* @param string $configName Name of the config file. Eg. 'main'
|
||||
* @param array $configPaths Required array of where to look for the config files
|
||||
* @return ConfigORM of the config file. Allows for easy reading and editing of the file
|
||||
* @throws ConfigException
|
||||
@ -154,7 +150,6 @@ class Config
|
||||
return new ConfigORM();
|
||||
|
||||
// Cycle through all priorities if they exist
|
||||
$configORM = new ConfigORM();
|
||||
for ($i=Priority::getHighestPriority(); $i<=Priority::getLowestPriority(); $i++)
|
||||
{
|
||||
if (!isset($event->configPaths[$i]))
|
||||
@ -166,12 +161,9 @@ class Config
|
||||
// If file exists, load it and break the loop
|
||||
$file = $configPath . DS . 'config.'.strtolower($event->configName).'.php';
|
||||
if (file_exists($file))
|
||||
$configORM->addFile($i, $file);
|
||||
}
|
||||
}
|
||||
|
||||
// And initialize the ORM
|
||||
$configORM->init();
|
||||
{
|
||||
// Load object
|
||||
$configORM = (new ConfigORM())->load($file);
|
||||
|
||||
// Override config values if they exist
|
||||
if (isset(self::$configOverrides[$event->configName]))
|
||||
@ -180,8 +172,29 @@ class Config
|
||||
$configORM->{$configKey} = $configValue;
|
||||
}
|
||||
|
||||
if ($configORM->loaded)
|
||||
// Return object
|
||||
return $configORM;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Try fallback
|
||||
$file = Core::$coreDir . DS . 'Config' . DS . 'config.' . $event->configName . '.php';
|
||||
if (file_exists($file))
|
||||
{
|
||||
// Load object
|
||||
$configORM = (new ConfigORM())->load($file);
|
||||
|
||||
// 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;
|
||||
}
|
||||
|
||||
throw new ConfigException("Could not load config. File $event->configName not found", 1);
|
||||
}
|
||||
|
@ -31,12 +31,11 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
namespace FuzeWorks\ConfigORM;
|
||||
use FuzeWorks\Exception\ConfigException;
|
||||
use FuzeWorks\Priority;
|
||||
|
||||
/**
|
||||
* ORM class for config files in PHP files.
|
||||
@ -49,61 +48,37 @@ use FuzeWorks\Priority;
|
||||
class ConfigORM extends ConfigORMAbstract
|
||||
{
|
||||
/**
|
||||
* The path to the highest priority filename.
|
||||
* The current filename.
|
||||
*
|
||||
* @var string filename
|
||||
*/
|
||||
protected string $file;
|
||||
private $file;
|
||||
|
||||
/**
|
||||
* Files the ConfigORM is built on
|
||||
* Load the ConfigORM file.
|
||||
*
|
||||
* @var array files
|
||||
* @param string $file
|
||||
* @return ConfigORM
|
||||
* @throws ConfigException
|
||||
*/
|
||||
protected array $files = [];
|
||||
|
||||
/**
|
||||
* Whether the ConfigORM is loaded or not.
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
public bool $loaded = false;
|
||||
|
||||
public function addFile(int $priority, string $file)
|
||||
public function load(string $file = ''): ConfigORM
|
||||
{
|
||||
if (!isset($this->files[$priority]))
|
||||
$this->files[$priority] = [];
|
||||
|
||||
$this->files[$priority][] = $file;
|
||||
if (empty($file))
|
||||
{
|
||||
throw new ConfigException('Could not load config file. No file provided', 1);
|
||||
}
|
||||
|
||||
public function init()
|
||||
elseif (file_exists($file))
|
||||
{
|
||||
// Set cfg
|
||||
$this->cfg = [];
|
||||
|
||||
for ($i = Priority::getLowestPriority(); $i >= Priority::getHighestPriority(); $i--) {
|
||||
|
||||
// If priority does not exist for this file, skip it
|
||||
if (!isset($this->files[$i]))
|
||||
continue;
|
||||
|
||||
// Pass over each file in this priority
|
||||
foreach ($this->files[$i] as $file) {
|
||||
// Read the contents
|
||||
$contents = (array) include $file;
|
||||
|
||||
// Merge them with the config as we know it
|
||||
$this->cfg = array_replace_recursive($this->cfg, $contents);
|
||||
|
||||
// And save the last file that we found (with the highest priority)
|
||||
$this->file = $file;
|
||||
$this->loaded = true;
|
||||
$this->cfg = (array) include $file;
|
||||
$this->originalCfg = $this->cfg;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new ConfigException('Could not load config file. Config file does not exist', 1);
|
||||
}
|
||||
|
||||
// When done, save originalCfg
|
||||
$this->originalCfg = $this->cfg;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -113,10 +88,6 @@ class ConfigORM extends ConfigORMAbstract
|
||||
*/
|
||||
public function commit(): bool
|
||||
{
|
||||
// If config has a lock file, don't write
|
||||
if (isset($this->cfg['lock']))
|
||||
throw new ConfigException("Could not write config file. $this->file is locked with the 'lock' key.");
|
||||
|
||||
// Write the changes
|
||||
if (is_writable($this->file)) {
|
||||
$config = var_export($this->cfg, true);
|
||||
|
@ -31,7 +31,7 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
namespace FuzeWorks\ConfigORM;
|
||||
@ -53,14 +53,14 @@ abstract class ConfigORMAbstract implements Iterator
|
||||
*
|
||||
* @var array Config file
|
||||
*/
|
||||
protected array $originalCfg = [];
|
||||
protected $originalCfg = [];
|
||||
|
||||
/**
|
||||
* The current state of a config file.
|
||||
*
|
||||
* @var array Config file
|
||||
*/
|
||||
protected array $cfg = [];
|
||||
protected $cfg = [];
|
||||
|
||||
/**
|
||||
* Revert to the original conditions of the config file.
|
||||
@ -98,7 +98,7 @@ abstract class ConfigORMAbstract implements Iterator
|
||||
* @return bool true on isset, false on not
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
public function __isset(string $name)
|
||||
public function __isset($name)
|
||||
{
|
||||
return isset($this->cfg[$name]);
|
||||
}
|
||||
@ -110,7 +110,7 @@ abstract class ConfigORMAbstract implements Iterator
|
||||
* @return mixed Value of the requested entry
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
public function __get(string $name)
|
||||
public function __get($name)
|
||||
{
|
||||
return $this->cfg[$name];
|
||||
}
|
||||
@ -122,7 +122,7 @@ abstract class ConfigORMAbstract implements Iterator
|
||||
* @return mixed Value of the requested entry
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
public function get(string $name)
|
||||
public function get($name)
|
||||
{
|
||||
return $this->cfg[$name];
|
||||
}
|
||||
@ -134,7 +134,7 @@ abstract class ConfigORMAbstract implements Iterator
|
||||
* @param mixed $value Value of the entry
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
public function __set(string $name, $value)
|
||||
public function __set($name, $value)
|
||||
{
|
||||
$this->cfg[$name] = $value;
|
||||
}
|
||||
@ -146,7 +146,7 @@ abstract class ConfigORMAbstract implements Iterator
|
||||
* @param mixed $value Value of the entry
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
public function set(string $name, $value)
|
||||
public function set($name, $value)
|
||||
{
|
||||
$this->cfg[$name] = $value;
|
||||
}
|
||||
@ -202,7 +202,7 @@ abstract class ConfigORMAbstract implements Iterator
|
||||
* Iterator method.
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
public function valid(): bool
|
||||
public function valid()
|
||||
{
|
||||
return key($this->cfg) !== null;
|
||||
}
|
||||
@ -212,7 +212,7 @@ abstract class ConfigORMAbstract implements Iterator
|
||||
*
|
||||
* @return array Config file
|
||||
*/
|
||||
public function toArray(): array
|
||||
public function toArray()
|
||||
{
|
||||
return $this->cfg;
|
||||
}
|
||||
|
@ -31,11 +31,10 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
namespace FuzeWorks;
|
||||
use Exception;
|
||||
use FuzeWorks\Exception\ConfiguratorException;
|
||||
use FuzeWorks\Exception\InvalidArgumentException;
|
||||
|
||||
@ -59,14 +58,14 @@ class Configurator
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected array $parameters = ['debugEnabled' => false];
|
||||
protected $parameters = ['debugEnabled' => false];
|
||||
|
||||
/**
|
||||
* Components that have been added to FuzeWorks
|
||||
*
|
||||
* @var iComponent[]
|
||||
*/
|
||||
protected array $components = [];
|
||||
protected $components = [];
|
||||
|
||||
/**
|
||||
* Directories that will be passed to FuzeWorks components.
|
||||
@ -75,14 +74,14 @@ class Configurator
|
||||
*
|
||||
* @var array of directories
|
||||
*/
|
||||
protected array $directories = [];
|
||||
protected $directories = [];
|
||||
|
||||
/**
|
||||
* Array of ComponentClass methods to be invoked once ComponentClass is loaded
|
||||
*
|
||||
* @var DeferredComponentClass[]
|
||||
*/
|
||||
protected array $deferredComponentClassMethods = [];
|
||||
protected $deferredComponentClassMethods = [];
|
||||
|
||||
const COOKIE_SECRET = 'fuzeworks-debug';
|
||||
|
||||
@ -129,7 +128,7 @@ class Configurator
|
||||
* @return $this
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
public function addDirectory(string $directory, string $category, int $priority = Priority::NORMAL): Configurator
|
||||
public function addDirectory(string $directory, string $category, $priority = Priority::NORMAL): Configurator
|
||||
{
|
||||
if (!file_exists($directory))
|
||||
throw new InvalidArgumentException("Could not add directory. Directory does not exist.");
|
||||
@ -173,7 +172,7 @@ class Configurator
|
||||
* @param mixed $parameters,... Parameters for the method to be invoked
|
||||
* @return DeferredComponentClass
|
||||
*/
|
||||
public function deferComponentClassMethod(string $componentClass, string $method, callable $callable = null): DeferredComponentClass
|
||||
public function deferComponentClassMethod(string $componentClass, string $method, callable $callable = null)
|
||||
{
|
||||
// Retrieve arguments
|
||||
$arguments = (func_num_args() > 3 ? array_slice(func_get_args(), 3) : []);
|
||||
@ -196,7 +195,7 @@ class Configurator
|
||||
* @return DeferredComponentClass
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
public function call(string $componentClass, string $method, callable $callable = null): DeferredComponentClass
|
||||
public function call(string $componentClass, string $method, callable $callable = null)
|
||||
{
|
||||
return call_user_func_array([$this, 'deferComponentClassMethod'], func_get_args());
|
||||
}
|
||||
@ -271,7 +270,8 @@ class Configurator
|
||||
public function enableDebugMode(): Configurator
|
||||
{
|
||||
$this->parameters['debugEnabled'] = true;
|
||||
$this->parameters['debugMatch'] = $this->parameters['debugMatch'] ?? true;
|
||||
$this->parameters['debugMatch'] = (isset($this->parameters['debugMatch']) ? $this->parameters['debugMatch'] : true);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
@ -301,11 +301,13 @@ class Configurator
|
||||
return $this;
|
||||
}
|
||||
|
||||
// Otherwise, we run the regular detectDebugMode from Tracy
|
||||
// Otherwise we run the regular detectDebugMode from Tracy
|
||||
$list = is_string($address)
|
||||
? preg_split('#[,\s]+#', $address)
|
||||
: (array) $address;
|
||||
$addr = $_SERVER['REMOTE_ADDR'] ?? php_uname('n');
|
||||
$addr = isset($_SERVER['REMOTE_ADDR'])
|
||||
? $_SERVER['REMOTE_ADDR']
|
||||
: php_uname('n');
|
||||
$secret = isset($_COOKIE[self::COOKIE_SECRET]) && is_string($_COOKIE[self::COOKIE_SECRET])
|
||||
? $_COOKIE[self::COOKIE_SECRET]
|
||||
: NULL;
|
||||
@ -334,7 +336,7 @@ class Configurator
|
||||
* When issue #101 is completed, this should be resolved.
|
||||
*
|
||||
* @return Factory
|
||||
* @throws Exception
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function createContainer(): Factory
|
||||
{
|
||||
@ -343,7 +345,7 @@ class Configurator
|
||||
Core::$logDir = $this->parameters['logDir'];
|
||||
|
||||
// Then prepare the debugger
|
||||
$debug = $this->parameters['debugEnabled'] && $this->parameters['debugMatch'];
|
||||
$debug = ($this->parameters['debugEnabled'] && $this->parameters['debugMatch'] ? true : false);
|
||||
|
||||
// Then load the framework
|
||||
$container = Core::init();
|
||||
@ -404,10 +406,6 @@ class Configurator
|
||||
$container->{$component}->setDirectories($priorityArray);
|
||||
}
|
||||
|
||||
// And add the fallback directory
|
||||
$container->config->addComponentPath(Core::$coreDir . DS . 'Config', Priority::LOWEST);
|
||||
|
||||
// Initialize and return the container
|
||||
$container->initFactory();
|
||||
Logger::stopLevel();
|
||||
return $container;
|
||||
|
@ -31,12 +31,11 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
namespace FuzeWorks;
|
||||
|
||||
use Exception;
|
||||
use FuzeWorks\Exception\CoreException;
|
||||
use FuzeWorks\Exception\EventException;
|
||||
|
||||
@ -56,7 +55,7 @@ class Core
|
||||
*
|
||||
* @var string Framework version
|
||||
*/
|
||||
public static string $version = '1.2.0';
|
||||
public static $version = '1.2.0';
|
||||
|
||||
/**
|
||||
* Working directory of the Framework.
|
||||
@ -65,39 +64,39 @@ class Core
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public static string $cwd;
|
||||
public static $cwd;
|
||||
|
||||
public static string $coreDir;
|
||||
public static $coreDir;
|
||||
|
||||
public static string $tempDir;
|
||||
public static $tempDir;
|
||||
|
||||
public static string $logDir;
|
||||
public static $logDir;
|
||||
|
||||
/**
|
||||
* Array of exception handlers, sorted by priority
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected static array $exceptionHandlers = [];
|
||||
protected static $exceptionHandlers = [];
|
||||
|
||||
/**
|
||||
* Array of error handlers, sorted by priority
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected static array $errorHandlers = [];
|
||||
protected static $errorHandlers = [];
|
||||
|
||||
/**
|
||||
* Array of all classMaps which can be autoloaded.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected static array $autoloadMap = [];
|
||||
protected static $autoloadMap = [];
|
||||
|
||||
/**
|
||||
* Initializes the core.
|
||||
*
|
||||
* @throws Exception
|
||||
* @throws \Exception
|
||||
*/
|
||||
public static function init(): Factory
|
||||
{
|
||||
@ -149,26 +148,6 @@ class Core
|
||||
Logger::stopLevel();
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve a variable name from the php environment, while also providing a fallback variable
|
||||
*
|
||||
* @param string $varName
|
||||
* @param string|null $default
|
||||
* @return array|string|null
|
||||
*/
|
||||
public static function getEnv(string $varName, string $default = null)
|
||||
{
|
||||
// First retrieve the environment variable
|
||||
$var = getenv($varName);
|
||||
|
||||
// If the environment variable doesn't exist, use the default one
|
||||
if ($var === FALSE)
|
||||
return $default;
|
||||
|
||||
// Otherwise, return the variable itself
|
||||
return $var;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the current running version of PHP is equal to the input string.
|
||||
*
|
||||
|
@ -31,7 +31,7 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
namespace FuzeWorks;
|
||||
@ -42,17 +42,17 @@ class DeferredComponentClass
|
||||
/**
|
||||
* @var string Name of the class to be invoked
|
||||
*/
|
||||
public string $componentClass;
|
||||
public $componentClass;
|
||||
|
||||
/**
|
||||
* @var string name of the method to be invoked
|
||||
*/
|
||||
public string $method;
|
||||
public $method;
|
||||
|
||||
/**
|
||||
* @var array arguments to invoke the method with
|
||||
*/
|
||||
public array $arguments = [];
|
||||
public $arguments = [];
|
||||
|
||||
/**
|
||||
* @var mixed return from the invoked method
|
||||
@ -62,7 +62,7 @@ class DeferredComponentClass
|
||||
/**
|
||||
* @var bool Whether the method has been invoked
|
||||
*/
|
||||
protected bool $invoked = false;
|
||||
protected $invoked = false;
|
||||
|
||||
/**
|
||||
* @var callable A callback to call when method has been invoked.
|
||||
|
@ -31,7 +31,7 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
namespace FuzeWorks;
|
||||
@ -46,7 +46,7 @@ namespace FuzeWorks;
|
||||
*/
|
||||
class Event
|
||||
{
|
||||
private bool $cancelled = false;
|
||||
private $cancelled = false;
|
||||
|
||||
/**
|
||||
* @return bool True if the event is cancelled, false if the event is not cancelled
|
||||
@ -59,7 +59,7 @@ class Event
|
||||
/**
|
||||
* @param bool $cancelled True if the event is cancelled, false if the event is not cancelled
|
||||
*/
|
||||
public function setCancelled(bool $cancelled)
|
||||
public function setCancelled($cancelled)
|
||||
{
|
||||
if ($cancelled == true) {
|
||||
$this->cancelled = true;
|
||||
|
@ -31,7 +31,7 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
namespace FuzeWorks\Event;
|
||||
@ -54,14 +54,14 @@ class ConfigGetEvent extends Event
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public string $configName;
|
||||
public $configName;
|
||||
|
||||
/**
|
||||
* The directories the config might be found in
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public array $configPaths;
|
||||
public $configPaths;
|
||||
|
||||
|
||||
public function init(string $configName, array $configPaths)
|
||||
|
@ -31,7 +31,7 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 1.2.0
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
namespace FuzeWorks\Event;
|
||||
@ -51,7 +51,7 @@ class HaltExecutionEvent extends Event
|
||||
/**
|
||||
* @var array Log
|
||||
*/
|
||||
public array $log;
|
||||
public $log;
|
||||
|
||||
public function init(array $log)
|
||||
{
|
||||
|
@ -31,7 +31,7 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
namespace FuzeWorks\Event;
|
||||
@ -54,14 +54,14 @@ class HelperLoadEvent extends Event
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public string $helperName;
|
||||
public $helperName;
|
||||
|
||||
/**
|
||||
* The directory of the helper that gets loaded
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public array $helperPaths;
|
||||
public $helperPaths;
|
||||
|
||||
|
||||
public function init(string $helperName, array $helperPaths)
|
||||
|
@ -31,7 +31,7 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 1.1.4
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
namespace FuzeWorks\Event;
|
||||
@ -51,14 +51,14 @@ class PluginGetEvent extends Event
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public string $pluginName;
|
||||
public $pluginName;
|
||||
|
||||
/**
|
||||
* Potential plugin to return instead. If set, the plugins class will return this object
|
||||
*
|
||||
* @var object|null
|
||||
* @var object
|
||||
*/
|
||||
public ?object $plugin = null;
|
||||
public $plugin = null;
|
||||
|
||||
public function init($pluginName)
|
||||
{
|
||||
@ -70,7 +70,7 @@ class PluginGetEvent extends Event
|
||||
*
|
||||
* @param object $plugin
|
||||
*/
|
||||
public function setPlugin(object $plugin)
|
||||
public function setPlugin($plugin)
|
||||
{
|
||||
$this->plugin = $plugin;
|
||||
}
|
||||
@ -80,7 +80,7 @@ class PluginGetEvent extends Event
|
||||
*
|
||||
* @return object|null $plugin
|
||||
*/
|
||||
public function getPlugin(): ?object
|
||||
public function getPlugin()
|
||||
{
|
||||
return $this->plugin;
|
||||
}
|
||||
|
@ -31,7 +31,7 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
namespace FuzeWorks;
|
||||
@ -66,7 +66,7 @@ class Events
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public static array $listeners = array();
|
||||
public static $listeners = array();
|
||||
|
||||
/**
|
||||
* Whether the event system is enabled or not.
|
||||
@ -129,7 +129,7 @@ class Events
|
||||
*
|
||||
* @throws EventException
|
||||
*/
|
||||
public static function removeListener(callable $callback, string $eventName, int $priority = Priority::NORMAL)
|
||||
public static function removeListener(callable $callback, string $eventName, $priority = Priority::NORMAL)
|
||||
{
|
||||
if (Priority::getPriority($priority) == false) {
|
||||
throw new EventException('Unknown priority '.$priority);
|
||||
@ -169,7 +169,7 @@ class Events
|
||||
$eventName = end($eventName);
|
||||
$event = $input;
|
||||
}
|
||||
// Otherwise, try to load an event based on the input string
|
||||
// Otherwise try to load an event based on the input string
|
||||
elseif (is_string($input))
|
||||
{
|
||||
$eventClass = ucfirst($input);
|
||||
@ -224,15 +224,15 @@ class Events
|
||||
//Check for listeners in this priority
|
||||
if (isset(self::$listeners[$eventName][$priority])) {
|
||||
$listeners = self::$listeners[$eventName][$priority];
|
||||
Logger::newLevel('Listeners with priority '.Priority::getPriority($priority));
|
||||
Logger::newLevel('Found listeners with priority '.Priority::getPriority($priority));
|
||||
//Fire the event to each listener
|
||||
foreach ($listeners as $callbackArray) {
|
||||
// @codeCoverageIgnoreStart
|
||||
$callback = $callbackArray[0];
|
||||
if (is_array($callback)) {
|
||||
Logger::newLevel('Firing '.get_class($callback[0]).'->'.$callback[1]);
|
||||
} elseif (is_callable($callback)) {
|
||||
if (is_callable($callback)) {
|
||||
Logger::newLevel('Firing function');
|
||||
} elseif (!is_string($callback[0])) {
|
||||
Logger::newLevel('Firing '.get_class($callback[0]).'->'.$callback[1]);
|
||||
} else {
|
||||
Logger::newLevel('Firing '.implode('->', $callback));
|
||||
}
|
||||
|
@ -31,7 +31,7 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
namespace FuzeWorks;
|
||||
@ -67,55 +67,56 @@ class Factory
|
||||
/**
|
||||
* The Factory instance that is shared by default when calling Factory::getInstance();
|
||||
*
|
||||
* @var Factory|null Default shared instance
|
||||
* @var Factory Default shared instance
|
||||
*/
|
||||
private static ?Factory $sharedFactoryInstance = null;
|
||||
private static $sharedFactoryInstance;
|
||||
|
||||
/**
|
||||
* Whether the Factory has been initialized or not
|
||||
*
|
||||
* @var bool $initialized
|
||||
*/
|
||||
private bool $initialized = false;
|
||||
private $initialized = false;
|
||||
|
||||
/**
|
||||
* Config Object
|
||||
* @var Config
|
||||
*/
|
||||
public Config $config;
|
||||
public $config;
|
||||
|
||||
/**
|
||||
* Logger Object
|
||||
* @var Logger
|
||||
*/
|
||||
public Logger $logger;
|
||||
public $logger;
|
||||
|
||||
/**
|
||||
* Events Object
|
||||
* @var Events
|
||||
*/
|
||||
public Events $events;
|
||||
public $events;
|
||||
|
||||
/**
|
||||
* Libraries Object
|
||||
* @var Libraries
|
||||
*/
|
||||
public Libraries $libraries;
|
||||
public $libraries;
|
||||
|
||||
/**
|
||||
* Helpers Object
|
||||
* @var Helpers
|
||||
*/
|
||||
public Helpers $helpers;
|
||||
public $helpers;
|
||||
|
||||
/**
|
||||
* Plugins Object
|
||||
* @var Plugins
|
||||
*/
|
||||
public Plugins $plugins;
|
||||
public $plugins;
|
||||
|
||||
/**
|
||||
* Factory instance constructor. Should only really be called once
|
||||
* @throws ConfigException
|
||||
* @throws FactoryException
|
||||
*/
|
||||
public function __construct()
|
||||
@ -139,8 +140,11 @@ class Factory
|
||||
// Otherwise, copy the existing instances
|
||||
$x = self::getInstance();
|
||||
foreach ($x as $key => $value)
|
||||
{
|
||||
$this->{$key} = $value;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -169,9 +173,6 @@ class Factory
|
||||
// Initialize all components
|
||||
foreach ($this as $component)
|
||||
{
|
||||
if (!is_object($component))
|
||||
continue;
|
||||
|
||||
if (method_exists($component, 'init'))
|
||||
$component->init();
|
||||
}
|
||||
@ -222,7 +223,7 @@ class Factory
|
||||
* @return Factory Instance
|
||||
* @throws FactoryException
|
||||
*/
|
||||
public function newInstance(string $className, string $namespace = 'FuzeWorks\\'): self
|
||||
public function newInstance($className, $namespace = 'FuzeWorks\\'): self
|
||||
{
|
||||
// Determine the class to load
|
||||
$instanceName = strtolower($className);
|
||||
@ -284,7 +285,7 @@ class Factory
|
||||
* @param mixed $object Object to replace the class with
|
||||
* @return Factory Instance
|
||||
*/
|
||||
public function setInstance(string $objectName, $object): self
|
||||
public function setInstance($objectName, $object): self
|
||||
{
|
||||
// Determine the instance name
|
||||
$instanceName = strtolower($objectName);
|
||||
@ -304,7 +305,7 @@ class Factory
|
||||
* @return Factory Factory Instance
|
||||
* @throws FactoryException
|
||||
*/
|
||||
public function removeInstance(string $className): self
|
||||
public function removeInstance($className): self
|
||||
{
|
||||
// Determine the instance name
|
||||
$instanceName = strtolower($className);
|
||||
@ -327,7 +328,7 @@ class Factory
|
||||
* @param $componentName
|
||||
* @return bool
|
||||
*/
|
||||
public function instanceIsset($componentName): bool
|
||||
public function instanceIsset($componentName)
|
||||
{
|
||||
return isset($this->{$componentName});
|
||||
}
|
||||
|
@ -31,7 +31,7 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
namespace FuzeWorks;
|
||||
@ -49,7 +49,7 @@ use FuzeWorks\Exception\HelperException;
|
||||
* Text Helpers perform various text formatting routines, Cookie Helpers set and read cookies,
|
||||
* File Helpers help you deal with files, etc.
|
||||
*
|
||||
* Unlike most other systems in FuzeWorks, Helpers are not written in an Object-Oriented format.
|
||||
* Unlike most other systems in FuzeWorks, Helpers are not written in an Object Oriented format.
|
||||
* They are simple, procedural functions. Each helper function performs one specific task, with no dependence on other functions.
|
||||
*
|
||||
* FuzeWorks does not load Helper Files by default, so the first step in using a Helper is to load it. Once loaded,
|
||||
@ -67,7 +67,7 @@ class Helpers
|
||||
*
|
||||
* @var array Array of loaded helperNames
|
||||
*/
|
||||
protected array $helpers = [];
|
||||
protected $helpers = [];
|
||||
|
||||
/**
|
||||
* Load a helper.
|
||||
@ -145,14 +145,14 @@ class Helpers
|
||||
|
||||
/**
|
||||
* Alias for load
|
||||
* @see load() for more details
|
||||
*
|
||||
* @param string $helperName Name of the helper
|
||||
* @param array $helperPaths
|
||||
* @return bool Whether the helper was successfully loaded (true if yes)
|
||||
* @throws HelperException
|
||||
*@see load() for more details
|
||||
*
|
||||
*/
|
||||
public function get(string $helperName, array $helperPaths = []): bool
|
||||
public function get($helperName, array $helperPaths = []): bool
|
||||
{
|
||||
return $this->load($helperName, $helperPaths);
|
||||
}
|
||||
|
@ -31,7 +31,7 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
namespace FuzeWorks;
|
||||
@ -40,6 +40,7 @@ use FuzeWorks\Exception\ConfigException;
|
||||
use FuzeWorks\Exception\CoreException;
|
||||
use FuzeWorks\Exception\LibraryException;
|
||||
use ReflectionClass;
|
||||
use ReflectionException;
|
||||
|
||||
class Libraries
|
||||
{
|
||||
@ -50,14 +51,14 @@ class Libraries
|
||||
*
|
||||
* @var array Library objects
|
||||
*/
|
||||
protected array $libraryObjects = [];
|
||||
protected $libraryObjects = [];
|
||||
|
||||
/**
|
||||
* Array of libraries with their classnames, so they can be easily loaded
|
||||
*
|
||||
* @var array Library classes
|
||||
*/
|
||||
protected array $libraryClasses = [];
|
||||
protected $libraryClasses = [];
|
||||
|
||||
/**
|
||||
* FuzeWorks Factory object. For internal use.
|
||||
@ -82,7 +83,7 @@ class Libraries
|
||||
* @param string $libraryName
|
||||
* @param object $libraryObject
|
||||
*/
|
||||
public function addLibraryObject(string $libraryName, object $libraryObject)
|
||||
public function addLibraryObject(string $libraryName, $libraryObject)
|
||||
{
|
||||
$this->libraryObjects[strtolower($libraryName)] = $libraryObject;
|
||||
}
|
||||
@ -96,7 +97,7 @@ class Libraries
|
||||
*/
|
||||
public function addLibraryClass(string $libraryName, string $libraryClass)
|
||||
{
|
||||
if (!class_exists($libraryClass, true))
|
||||
if (!class_exists($libraryClass, false))
|
||||
throw new LibraryException("Could not add library class. '" . $libraryClass . "' could not be loaded.", 1);
|
||||
|
||||
$this->libraryClasses[strtolower($libraryName)] = $libraryClass;
|
||||
@ -212,6 +213,8 @@ class Libraries
|
||||
$prefix = $classObject->getClassesPrefix();
|
||||
if (!is_null($filePath) && !is_null($prefix))
|
||||
Core::addAutoloadMap($prefix, $filePath);
|
||||
} catch (ReflectionException $e) {
|
||||
throw new LibraryException("Could not initiate library. ReflectionClass threw exception.");
|
||||
} catch (CoreException $e) {
|
||||
throw new LibraryException("Could not initiate library. Failed to add to autoloader.");
|
||||
}
|
||||
|
@ -31,15 +31,14 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
namespace FuzeWorks;
|
||||
|
||||
use Exception;
|
||||
use FuzeWorks\Exception\ConfigException;
|
||||
use FuzeWorks\Exception\EventException;
|
||||
use Throwable;
|
||||
use FuzeWorks\Exception\Exception;
|
||||
|
||||
/**
|
||||
* Logger Class.
|
||||
@ -58,21 +57,21 @@ class Logger {
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public static array $logs = [];
|
||||
public static $logs = [];
|
||||
|
||||
/**
|
||||
* whether to output the log after FuzeWorks has run.
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
private static bool $print_to_screen = false;
|
||||
private static $print_to_screen = false;
|
||||
|
||||
/**
|
||||
* Whether the Logger has been enabled or not
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
private static bool $isEnabled = false;
|
||||
private static $isEnabled = false;
|
||||
|
||||
/**
|
||||
* whether to output the log of the last entire request to a file after FuzeWorks has run.
|
||||
@ -93,21 +92,21 @@ class Logger {
|
||||
*
|
||||
* @var string Template name
|
||||
*/
|
||||
private static string $logger_template = 'logger_cli';
|
||||
private static $logger_template = 'logger_cli';
|
||||
|
||||
/**
|
||||
* whether to output the log after FuzeWorks has run, regardless of conditions.
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
public static bool $debug = false;
|
||||
public static $debug = false;
|
||||
|
||||
/**
|
||||
* List of all benchmark markpoints.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public static array $markPoints = [];
|
||||
public static $markPoints = [];
|
||||
|
||||
/**
|
||||
* Initiates the Logger.
|
||||
@ -189,8 +188,8 @@ class Logger {
|
||||
*/
|
||||
public static function enableHandlers()
|
||||
{
|
||||
Core::addErrorHandler(['\FuzeWorks\Logger', 'errorHandler']);
|
||||
Core::addExceptionHandler(['\FuzeWorks\Logger', 'exceptionHandler']);
|
||||
Core::addErrorHandler(['\FuzeWorks\Logger', 'errorHandler'], Priority::NORMAL);
|
||||
Core::addExceptionHandler(['\FuzeWorks\Logger', 'exceptionHandler'], Priority::NORMAL);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -201,8 +200,8 @@ class Logger {
|
||||
*/
|
||||
public static function disableHandlers()
|
||||
{
|
||||
Core::removeErrorHandler(['\FuzeWorks\Logger', 'errorHandler']);
|
||||
Core::removeExceptionHandler(['\FuzeWorks\Logger', 'exceptionHandler']);
|
||||
Core::removeErrorHandler(['\FuzeWorks\Logger', 'errorHandler'], Priority::NORMAL);
|
||||
Core::removeExceptionHandler(['\FuzeWorks\Logger', 'exceptionHandler'], Priority::NORMAL);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -266,7 +265,7 @@ class Logger {
|
||||
* @param int Line. The line on which the error occured.
|
||||
* @param array context. Some of the error's relevant variables
|
||||
*/
|
||||
public static function errorHandler(int $type = E_USER_NOTICE, $error = 'Undefined Error', $errFile = null, $errLine = null)
|
||||
public static function errorHandler($type = E_USER_NOTICE, $error = 'Undefined Error', $errFile = null, $errLine = null)
|
||||
{
|
||||
// Check type
|
||||
$thisType = self::getType($type);
|
||||
@ -280,21 +279,20 @@ class Logger {
|
||||
|
||||
/**
|
||||
* Exception handler
|
||||
* Will be triggered when an uncaught exception occurs. This function shows the error-message, and shuts down the script.
|
||||
* Will be triggered when an uncaught exception occures. This function shows the error-message, and shuts down the script.
|
||||
* Please note that most of the user-defined exceptions will be caught in the router, and handled with the error-controller.
|
||||
*
|
||||
* @param Throwable $exception The occurred exception.
|
||||
* @param Exception $exception The occured exception.
|
||||
* @param bool $haltExecution. Defaults to true
|
||||
*/
|
||||
public static function exceptionHandler(Throwable $exception, bool $haltExecution = true)
|
||||
public static function exceptionHandler($exception, bool $haltExecution = true)
|
||||
{
|
||||
$LOG = [
|
||||
'type' => $exception instanceof Exception ? "EXCEPTION" : "ERROR",
|
||||
$LOG = array('type' => 'EXCEPTION',
|
||||
'message' => $exception->getMessage(),
|
||||
'logFile' => $exception->getFile(),
|
||||
'logLine' => $exception->getLine(),
|
||||
'context' => $exception->getTraceAsString(),
|
||||
'runtime' => round(self::getRelativeTime(), 4),];
|
||||
'runtime' => round(self::getRelativeTime(), 4),);
|
||||
self::$logs[] = $LOG;
|
||||
|
||||
// And return a 500 because this error was fatal
|
||||
@ -377,7 +375,7 @@ class Logger {
|
||||
* @param string $name Marker name
|
||||
* @return void
|
||||
*/
|
||||
public static function mark(string $name)
|
||||
public static function mark($name)
|
||||
{
|
||||
$LOG = array('type' => 'BMARK',
|
||||
'message' => (!is_null($name) ? $name : ''),
|
||||
@ -390,30 +388,30 @@ class Logger {
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an information log entry.
|
||||
* Create a information log entry.
|
||||
*
|
||||
* @param string $msg The information to be logged
|
||||
* @param string|null $mod The name of the module
|
||||
* @param string|null $file The file where the log occurred
|
||||
* @param int|null $line The line where the log occurred
|
||||
* @param string $mod The name of the module
|
||||
* @param string $file The file where the log occurred
|
||||
* @param int $line The line where the log occurred
|
||||
*/
|
||||
public static function log(string $msg, string $mod = null, string $file = null, int $line = null)
|
||||
public static function log($msg, $mod = null, $file = null, $line = null)
|
||||
{
|
||||
self::logInfo($msg, $mod, $file, $line);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an information log entry.
|
||||
* Create a information log entry.
|
||||
*
|
||||
* @param string $msg The information to be logged
|
||||
* @param string|null $mod The name of the module
|
||||
* @param string|null $file The file where the log occurred
|
||||
* @param int|null $line The line where the log occurred
|
||||
* @param string $mod The name of the module
|
||||
* @param string $file The file where the log occurred
|
||||
* @param int $line The line where the log occurred
|
||||
*/
|
||||
public static function logInfo(string $msg, string $mod = null, string $file = null, int $line = null)
|
||||
public static function logInfo($msg, $mod = null, $file = null, $line = null)
|
||||
{
|
||||
$LOG = array('type' => 'INFO',
|
||||
'message' => ($msg),
|
||||
'message' => (!is_null($msg) ? $msg : ''),
|
||||
'logFile' => (!is_null($file) ? $file : ''),
|
||||
'logLine' => (!is_null($line) ? $line : ''),
|
||||
'context' => (!is_null($mod) ? $mod : ''),
|
||||
@ -423,17 +421,17 @@ class Logger {
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an information log entry.
|
||||
* Create a information log entry.
|
||||
*
|
||||
* @param string $msg The information to be logged
|
||||
* @param string|null $mod The name of the module
|
||||
* @param string|null $file The file where the log occurred
|
||||
* @param int|null $line The line where the log occurred
|
||||
* @param string $mod The name of the module
|
||||
* @param string $file The file where the log occurred
|
||||
* @param int $line The line where the log occurred
|
||||
*/
|
||||
public static function logDebug(string $msg, string $mod = null, string $file = null, int $line = null)
|
||||
public static function logDebug($msg, $mod = null, $file = null, $line = null)
|
||||
{
|
||||
$LOG = array('type' => 'DEBUG',
|
||||
'message' => ($msg),
|
||||
'message' => (!is_null($msg) ? $msg : ''),
|
||||
'logFile' => (!is_null($file) ? $file : ''),
|
||||
'logLine' => (!is_null($line) ? $line : ''),
|
||||
'context' => (!is_null($mod) ? $mod : ''),
|
||||
@ -446,14 +444,14 @@ class Logger {
|
||||
* Create a error log entry.
|
||||
*
|
||||
* @param string $msg The information to be logged
|
||||
* @param string|null $mod The name of the module
|
||||
* @param string|null $file The file where the log occurred
|
||||
* @param int|null $line The line where the log occurred
|
||||
* @param string $mod The name of the module
|
||||
* @param string $file The file where the log occurred
|
||||
* @param int $line The line where the log occurred
|
||||
*/
|
||||
public static function logError(string $msg, string $mod = null, string $file = null, int $line = null)
|
||||
public static function logError($msg, $mod = null, $file = null, $line = null)
|
||||
{
|
||||
$LOG = array('type' => 'ERROR',
|
||||
'message' => ($msg),
|
||||
'message' => (!is_null($msg) ? $msg : ''),
|
||||
'logFile' => (!is_null($file) ? $file : ''),
|
||||
'logLine' => (!is_null($line) ? $line : ''),
|
||||
'context' => (!is_null($mod) ? $mod : ''),
|
||||
@ -466,14 +464,14 @@ class Logger {
|
||||
* Create a warning log entry.
|
||||
*
|
||||
* @param string $msg The information to be logged
|
||||
* @param string|null $mod The name of the module
|
||||
* @param string|null $file The file where the log occurred
|
||||
* @param int|null $line The line where the log occurred
|
||||
* @param string $mod The name of the module
|
||||
* @param string $file The file where the log occurred
|
||||
* @param int $line The line where the log occurred
|
||||
*/
|
||||
public static function logWarning(string $msg, string $mod = null, string $file = null, int $line = null)
|
||||
public static function logWarning($msg, $mod = null, $file = null, $line = null)
|
||||
{
|
||||
$LOG = array('type' => 'WARNING',
|
||||
'message' => ($msg),
|
||||
'message' => (!is_null($msg) ? $msg : ''),
|
||||
'logFile' => (!is_null($file) ? $file : ''),
|
||||
'logLine' => (!is_null($line) ? $line : ''),
|
||||
'context' => (!is_null($mod) ? $mod : ''),
|
||||
@ -486,14 +484,14 @@ class Logger {
|
||||
* Create a new Level log entry. Used to categorise logs.
|
||||
*
|
||||
* @param string $msg The name of the new level
|
||||
* @param string|null $mod The name of the module
|
||||
* @param string|null $file The file where the log occurred
|
||||
* @param int|null $line The line where the log occurred
|
||||
* @param string $mod The name of the module
|
||||
* @param string $file The file where the log occurred
|
||||
* @param int $line The line where the log occurred
|
||||
*/
|
||||
public static function newLevel(string $msg, string $mod = null, string $file = null, int $line = null)
|
||||
public static function newLevel($msg, $mod = null, $file = null, $line = null)
|
||||
{
|
||||
$LOG = array('type' => 'LEVEL_START',
|
||||
'message' => ($msg),
|
||||
'message' => (!is_null($msg) ? $msg : ''),
|
||||
'logFile' => (!is_null($file) ? $file : ''),
|
||||
'logLine' => (!is_null($line) ? $line : ''),
|
||||
'context' => (!is_null($mod) ? $mod : ''),
|
||||
@ -505,12 +503,12 @@ class Logger {
|
||||
/**
|
||||
* Create a stop Level log entry. Used to close log categories.
|
||||
*
|
||||
* @param string|null $msg The name of the new level
|
||||
* @param string|null $mod The name of the module
|
||||
* @param string|null $file The file where the log occurred
|
||||
* @param int|null $line The line where the log occurred
|
||||
* @param string $msg The name of the new level
|
||||
* @param string $mod The name of the module
|
||||
* @param string $file The file where the log occurred
|
||||
* @param int $line The line where the log occurred
|
||||
*/
|
||||
public static function stopLevel(string $msg = null, string $mod = null, string $file = null, int $line = null)
|
||||
public static function stopLevel($msg = null, $mod = null, $file = null, $line = null)
|
||||
{
|
||||
$LOG = array('type' => 'LEVEL_STOP',
|
||||
'message' => (!is_null($msg) ? $msg : ''),
|
||||
@ -532,29 +530,42 @@ class Logger {
|
||||
*
|
||||
* @return string String representation
|
||||
*/
|
||||
public static function getType(int $type): string
|
||||
public static function getType($type): string
|
||||
{
|
||||
switch ($type) {
|
||||
case E_PARSE:
|
||||
case E_CORE_ERROR:
|
||||
case E_COMPILE_ERROR:
|
||||
case E_USER_ERROR:
|
||||
case E_STRICT:
|
||||
case E_RECOVERABLE_ERROR:
|
||||
case E_ERROR:
|
||||
return 'ERROR';
|
||||
case E_NOTICE:
|
||||
case E_CORE_WARNING:
|
||||
case E_COMPILE_WARNING:
|
||||
case E_USER_WARNING:
|
||||
case E_USER_NOTICE:
|
||||
case E_USER_DEPRECATED:
|
||||
case E_DEPRECATED:
|
||||
case E_WARNING:
|
||||
return 'WARNING';
|
||||
case E_PARSE:
|
||||
return 'ERROR';
|
||||
case E_NOTICE:
|
||||
return 'WARNING';
|
||||
case E_CORE_ERROR:
|
||||
return 'ERROR';
|
||||
case E_CORE_WARNING:
|
||||
return 'WARNING';
|
||||
case E_COMPILE_ERROR:
|
||||
return 'ERROR';
|
||||
case E_COMPILE_WARNING:
|
||||
return 'WARNING';
|
||||
case E_USER_ERROR:
|
||||
return 'ERROR';
|
||||
case E_USER_WARNING:
|
||||
return 'WARNING';
|
||||
case E_USER_NOTICE:
|
||||
return 'WARNING';
|
||||
case E_USER_DEPRECATED:
|
||||
return 'WARNING';
|
||||
case E_STRICT:
|
||||
return 'ERROR';
|
||||
case E_RECOVERABLE_ERROR:
|
||||
return 'ERROR';
|
||||
case E_DEPRECATED:
|
||||
return 'WARNING';
|
||||
}
|
||||
|
||||
return 'Unknown error: ' . $type;
|
||||
return $type = 'Unknown error: ' . $type;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -589,6 +600,8 @@ class Logger {
|
||||
private static function getRelativeTime(): float
|
||||
{
|
||||
$startTime = STARTTIME;
|
||||
return microtime(true) - $startTime;
|
||||
$time = microtime(true) - $startTime;
|
||||
|
||||
return $time;
|
||||
}
|
||||
}
|
@ -31,7 +31,7 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 1.1.4
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
namespace FuzeWorks;
|
||||
@ -41,6 +41,7 @@ use FuzeWorks\Exception\CoreException;
|
||||
use FuzeWorks\Exception\FactoryException;
|
||||
use FuzeWorks\Exception\PluginException;
|
||||
use ReflectionClass;
|
||||
use ReflectionException;
|
||||
|
||||
/**
|
||||
* Plugins Class.
|
||||
@ -71,7 +72,7 @@ class Plugins
|
||||
*
|
||||
* @var array Array of loaded plugins
|
||||
*/
|
||||
protected array $plugins = array();
|
||||
protected $plugins = array();
|
||||
|
||||
/**
|
||||
* Array of plugin header classes.
|
||||
@ -79,14 +80,14 @@ class Plugins
|
||||
*
|
||||
* @var array Array of loaded plugin header classes
|
||||
*/
|
||||
protected array $headers = array();
|
||||
protected $headers = array();
|
||||
|
||||
/**
|
||||
* Config file for the plugin system
|
||||
*
|
||||
* @var ConfigORM
|
||||
*/
|
||||
protected ConfigORM $cfg;
|
||||
protected $cfg;
|
||||
|
||||
/**
|
||||
* Called upon initialization of the Container
|
||||
@ -141,7 +142,11 @@ class Plugins
|
||||
// Load the header
|
||||
$this->loadHeader($header);
|
||||
}
|
||||
|
||||
// If it doesn't exist, skip it
|
||||
continue;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -192,12 +197,13 @@ class Plugins
|
||||
* Get a plugin.
|
||||
*
|
||||
* @param string $pluginName Name of the plugin
|
||||
* @param array|null $parameters Parameters to send to the __construct() method
|
||||
* @param array $parameters Parameters to send to the __construct() method
|
||||
* @return mixed Plugin on success, bool on cancellation
|
||||
* @throws Exception\EventException
|
||||
* @throws PluginException
|
||||
* @throws ReflectionException
|
||||
*/
|
||||
public function get(string $pluginName, array $parameters = null)
|
||||
public function get($pluginName, array $parameters = null)
|
||||
{
|
||||
if (empty($pluginName))
|
||||
throw new PluginException("Could not load plugin. No name provided", 1);
|
||||
@ -213,7 +219,7 @@ class Plugins
|
||||
elseif ($event->getPlugin() != null)
|
||||
return $event->getPlugin();
|
||||
|
||||
// Otherwise, just set the variables
|
||||
// Otherwise just set the variables
|
||||
$pluginName = $event->pluginName;
|
||||
|
||||
// Check if the plugin is already loaded and return directly
|
||||
|
@ -31,7 +31,7 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
namespace FuzeWorks;
|
||||
@ -90,22 +90,22 @@ abstract class Priority
|
||||
|
||||
/**
|
||||
* Returns the highest priority
|
||||
* This function is needed for executing in the right order.
|
||||
* This function is needed for executing in the right order,.
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public static function getHighestPriority(): int
|
||||
public static function getHighestPriority()
|
||||
{
|
||||
return self::MONITOR;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the lowest priority
|
||||
* This function is needed for executing in the right order.
|
||||
* This function is needed for executing in the right order,.
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public static function getLowestPriority(): int
|
||||
public static function getLowestPriority()
|
||||
{
|
||||
return self::LOWEST;
|
||||
}
|
||||
|
@ -31,12 +31,11 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 1.2.0
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
if (!function_exists('getColoredString'))
|
||||
{
|
||||
function getColoredString($string, $foreground_color, $background_color): string
|
||||
{
|
||||
function getColoredString($string, $foreground_color, $background_color) {
|
||||
|
||||
// Determine the color system
|
||||
$foreground_colors = array();
|
||||
|
@ -31,9 +31,11 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
use FuzeWorks\Config;
|
||||
use FuzeWorks\Core;
|
||||
use FuzeWorks\Logger;
|
||||
|
||||
// First set the working directory
|
||||
|
@ -31,7 +31,7 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 1.2.0
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
require_once(dirname(__DIR__) . '/vendor/autoload.php');
|
||||
|
||||
@ -45,7 +45,10 @@ $configurator->setLogDirectory(__DIR__ . '/temp');
|
||||
$configurator->setTimeZone('Europe/Amsterdam');
|
||||
|
||||
// Debug related
|
||||
$configurator->enableDebugMode();
|
||||
$configurator->enableDebugMode(true);
|
||||
$configurator->setDebugAddress('ALL');
|
||||
//$configurator->setDebugEmail('example@mail.com');
|
||||
|
||||
$container = $configurator->createContainer();
|
||||
return $container;
|
||||
|
||||
return $configurator->createContainer();
|
@ -31,7 +31,7 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 1.2.0
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
namespace FuzeWorks\Component;
|
||||
use FuzeWorks\Configurator;
|
||||
@ -56,7 +56,7 @@ class TestComponent implements iComponent
|
||||
return $configurator;
|
||||
}
|
||||
|
||||
public function onCreateContainer(Factory $container): Factory
|
||||
public function onCreateContainer(Factory $container)
|
||||
{
|
||||
return $container;
|
||||
}
|
||||
@ -64,5 +64,5 @@ class TestComponent implements iComponent
|
||||
|
||||
class Test
|
||||
{
|
||||
public int $variable = 5;
|
||||
public $variable = 5;
|
||||
}
|
@ -31,7 +31,7 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 1.2.0
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
namespace FuzeWorks\Component;
|
||||
use FuzeWorks\ComponentPathsTrait;
|
||||
@ -47,12 +47,12 @@ class TestAddComponentDirectoryComponent implements iComponent
|
||||
return ['testaddcomponentdirectory' => 'FuzeWorks\Component\TestAddComponentDirectory'];
|
||||
}
|
||||
|
||||
public function onAddComponent(Configurator $configurator): Configurator
|
||||
public function onAddComponent(Configurator $configurator)
|
||||
{
|
||||
return $configurator;
|
||||
}
|
||||
|
||||
public function onCreateContainer(Factory $container): Factory
|
||||
public function onCreateContainer(Factory $container)
|
||||
{
|
||||
return $container;
|
||||
}
|
||||
@ -67,5 +67,5 @@ class TestAddComponentDirectory
|
||||
{
|
||||
use ComponentPathsTrait;
|
||||
|
||||
public int $variable = 5;
|
||||
public $variable = 5;
|
||||
}
|
@ -31,7 +31,7 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 1.2.0
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
namespace FuzeWorks\Component;
|
||||
use FuzeWorks\Configurator;
|
||||
@ -56,7 +56,7 @@ class TestAddComponentFailComponent implements iComponent
|
||||
return $configurator;
|
||||
}
|
||||
|
||||
public function onCreateContainer(Factory $container): Factory
|
||||
public function onCreateContainer(Factory $container)
|
||||
{
|
||||
return $container;
|
||||
}
|
||||
@ -64,5 +64,5 @@ class TestAddComponentFailComponent implements iComponent
|
||||
|
||||
class TestAddComponentFail
|
||||
{
|
||||
public int $variable = 5;
|
||||
public $variable = 5;
|
||||
}
|
@ -1,42 +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
|
||||
*/
|
||||
|
||||
use FuzeWorks\Core;
|
||||
|
||||
return array(
|
||||
'testKey' => Core::getEnv('TESTKEY'),
|
||||
'otherKey' => Core::getEnv('OTHERKEY', 'somethingDefault')
|
||||
);
|
@ -1,37 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* FuzeWorksCore
|
||||
*
|
||||
* Copyright (C) 2013-2021 i15
|
||||
*
|
||||
* 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 i15
|
||||
* @copyright Copyright (c) 2013 - 2021, i15. (https://i15.nl)
|
||||
* @license https://opensource.org/licenses/MIT MIT License
|
||||
*
|
||||
* @since Version 1.0.0
|
||||
*
|
||||
* @version Version 1.3.2
|
||||
*/
|
||||
return array(
|
||||
'first' => 'world',
|
||||
'onlyInHigh' => 'highValue',
|
||||
'override' => 'firstValue'
|
||||
);
|
@ -1,36 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* FuzeWorksCore
|
||||
*
|
||||
* Copyright (C) 2013-2021 i15
|
||||
*
|
||||
* 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 i15
|
||||
* @copyright Copyright (c) 2013 - 2021, i15. (https://i15.nl)
|
||||
* @license https://opensource.org/licenses/MIT MIT License
|
||||
*
|
||||
* @since Version 1.0.0
|
||||
*
|
||||
* @version Version 1.3.2
|
||||
*/
|
||||
return array(
|
||||
'first' => 'hello',
|
||||
'onlyInLow' => 'lowValue'
|
||||
);
|
@ -31,13 +31,14 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use FuzeWorks\Events;
|
||||
use FuzeWorks\Factory;
|
||||
use FuzeWorks\Core;
|
||||
use FuzeWorks\Config;
|
||||
use FuzeWorks\LoggerTracyBridge;
|
||||
|
||||
/**
|
||||
* Class CoreTestAbstract.
|
||||
@ -49,7 +50,7 @@ abstract class CoreTestAbstract extends TestCase
|
||||
/**
|
||||
* Reset multiple components to their original state before running the next test
|
||||
*/
|
||||
public function tearDown(): void
|
||||
public function tearDown()
|
||||
{
|
||||
// Clear all events created by tests
|
||||
Events::$listeners = [];
|
||||
|
@ -31,12 +31,11 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
use FuzeWorks\Config;
|
||||
use FuzeWorks\Event\ConfigGetEvent;
|
||||
use FuzeWorks\Exception\ConfigException;
|
||||
use FuzeWorks\Priority;
|
||||
use FuzeWorks\Events;
|
||||
|
||||
@ -52,9 +51,9 @@ class configTest extends CoreTestAbstract
|
||||
/**
|
||||
* @var Config
|
||||
*/
|
||||
protected Config $config;
|
||||
protected $config;
|
||||
|
||||
public function setUp(): void
|
||||
public function setUp()
|
||||
{
|
||||
$this->config = new Config();
|
||||
}
|
||||
@ -91,10 +90,10 @@ class configTest extends CoreTestAbstract
|
||||
/**
|
||||
* @depends testLoadConfig
|
||||
* @covers ::loadConfigFile
|
||||
* @expectedException FuzeWorks\Exception\ConfigException
|
||||
*/
|
||||
public function testFileNotFound()
|
||||
{
|
||||
$this->expectException(ConfigException::class);
|
||||
$this->config->getConfig('notFound');
|
||||
}
|
||||
|
||||
@ -184,50 +183,11 @@ class configTest extends CoreTestAbstract
|
||||
$this->assertSame($config, $config2);
|
||||
|
||||
// First test the existing key
|
||||
$this->assertEquals('value', $config->key);
|
||||
$this->assertEquals($config->key, 'value');
|
||||
|
||||
// Change it and test if it's different now
|
||||
$config->key = 'other_value';
|
||||
$this->assertEquals('other_value', $config2->key);
|
||||
}
|
||||
|
||||
/**
|
||||
* @coversNothing
|
||||
*/
|
||||
public function testConfigWithEnvironmentVariables()
|
||||
{
|
||||
// First push the test variable
|
||||
putenv('TESTKEY=Superb');
|
||||
|
||||
// Load the config
|
||||
$config = $this->config->getConfig('testconfigwithenvironment', ['test'.DS.'config'.DS.'TestConfigWithEnvironment']);
|
||||
|
||||
// Check values
|
||||
$this->assertEquals('Superb', $config->get('testKey'));
|
||||
$this->assertEquals('somethingDefault', $config->get('otherKey'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers ::loadConfigFile
|
||||
* @depends testLoadConfigCoreOverride
|
||||
*/
|
||||
public function testCumulativeConfigFile()
|
||||
{
|
||||
// Add folders
|
||||
$this->config->addComponentPath('test'.DS.'config'.DS.'TestCumulativeConfigFile'.DS.'HighPriorityFolder', Priority::HIGH);
|
||||
$this->config->addComponentPath('test'.DS.'config'.DS.'TestCumulativeConfigFile'.DS.'LowPriorityFolder', Priority::LOW);
|
||||
|
||||
// And override a value
|
||||
Config::overrideConfig('cumulative', 'override', 'secondValue');
|
||||
|
||||
// Load the config
|
||||
$config = $this->config->get('cumulative');
|
||||
|
||||
// Check values
|
||||
$this->assertEquals("world", $config->get('first'));
|
||||
$this->assertEquals("highValue", $config->get('onlyInHigh'));
|
||||
$this->assertEquals("lowValue", $config->get('onlyInLow'));
|
||||
$this->assertEquals("secondValue", $config->get('override'));
|
||||
$this->assertEquals($config2->key, 'other_value');
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -31,13 +31,11 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 1.2.0
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
use FuzeWorks\Config;
|
||||
use FuzeWorks\Configurator;
|
||||
use FuzeWorks\Core;
|
||||
use FuzeWorks\Exception\ConfiguratorException;
|
||||
use FuzeWorks\Factory;
|
||||
use FuzeWorks\iComponent;
|
||||
use FuzeWorks\Logger;
|
||||
@ -54,9 +52,9 @@ class configuratorTest extends CoreTestAbstract
|
||||
/**
|
||||
* @var Configurator
|
||||
*/
|
||||
protected Configurator $configurator;
|
||||
protected $configurator;
|
||||
|
||||
public function setUp(): void
|
||||
public function setUp()
|
||||
{
|
||||
$this->configurator = new Configurator;
|
||||
$this->configurator->setTempDirectory(dirname(__DIR__) . '/temp');
|
||||
@ -64,7 +62,7 @@ class configuratorTest extends CoreTestAbstract
|
||||
$this->configurator->setTimeZone('Europe/Amsterdam');
|
||||
}
|
||||
|
||||
public function tearDown(): void
|
||||
public function tearDown()
|
||||
{
|
||||
parent::tearDown();
|
||||
|
||||
@ -134,6 +132,7 @@ class configuratorTest extends CoreTestAbstract
|
||||
* @depends testAddComponent
|
||||
* @covers ::addComponent
|
||||
* @covers ::createContainer
|
||||
* @expectedException FuzeWorks\Exception\ConfiguratorException
|
||||
*/
|
||||
public function testAddComponentFail()
|
||||
{
|
||||
@ -143,7 +142,6 @@ class configuratorTest extends CoreTestAbstract
|
||||
$this->configurator->addComponent($component);
|
||||
|
||||
// Create container and fail
|
||||
$this->expectException(ConfiguratorException::class);
|
||||
$this->configurator->createContainer();
|
||||
}
|
||||
|
||||
@ -177,11 +175,11 @@ class configuratorTest extends CoreTestAbstract
|
||||
/**
|
||||
* @depends testSetLogDirectory
|
||||
* @covers ::setLogDirectory
|
||||
* @expectedException \FuzeWorks\Exception\InvalidArgumentException
|
||||
*/
|
||||
public function testSetLogDirectoryNotDirectory()
|
||||
{
|
||||
// Set the directory
|
||||
$this->expectException(\FuzeWorks\Exception\InvalidArgumentException::class);
|
||||
$this->configurator->setLogDirectory('not_exist');
|
||||
}
|
||||
|
||||
@ -206,11 +204,11 @@ class configuratorTest extends CoreTestAbstract
|
||||
/**
|
||||
* @depends testSetTempDirectory
|
||||
* @covers ::setTempDirectory
|
||||
* @expectedException \FuzeWorks\Exception\InvalidArgumentException
|
||||
*/
|
||||
public function testSetTempDirectoryNotDirectory()
|
||||
{
|
||||
// Set the directory
|
||||
$this->expectException(\FuzeWorks\Exception\InvalidArgumentException::class);
|
||||
$this->configurator->setTempDirectory('not_exist');
|
||||
}
|
||||
|
||||
@ -247,10 +245,10 @@ class configuratorTest extends CoreTestAbstract
|
||||
/**
|
||||
* @depends testAddComponentDirectory
|
||||
* @covers ::addDirectory
|
||||
* @expectedException \FuzeWorks\Exception\InvalidArgumentException
|
||||
*/
|
||||
public function testAddComponentDirectoryNotExist()
|
||||
{
|
||||
$this->expectException(\FuzeWorks\Exception\InvalidArgumentException::class);
|
||||
$this->configurator->addDirectory('not_exist', 'irrelevant');
|
||||
}
|
||||
|
||||
@ -344,11 +342,11 @@ class configuratorTest extends CoreTestAbstract
|
||||
|
||||
/**
|
||||
* @depends testSetTimezone
|
||||
* @expectedException \FuzeWorks\Exception\InvalidArgumentException
|
||||
* @covers ::setTimeZone
|
||||
*/
|
||||
public function testSetTimezoneInvalid()
|
||||
{
|
||||
$this->expectException(\FuzeWorks\Exception\InvalidArgumentException::class);
|
||||
$this->configurator->setTimeZone('Europe/Amsterdamned');
|
||||
}
|
||||
|
||||
@ -381,7 +379,7 @@ class configuratorTest extends CoreTestAbstract
|
||||
$this->configurator->createContainer();
|
||||
|
||||
// Verify that the variable is set in the Config class
|
||||
$this->assertEquals(['test' => ['somekey' => 'somevalue']], Config::$configOverrides);
|
||||
$this->assertEquals(['test' => ['somekey' => 'somevalue']], \FuzeWorks\Config::$configOverrides);
|
||||
}
|
||||
|
||||
/* ---------------------------------- Debugging ------------------------------------------------- */
|
||||
@ -474,10 +472,10 @@ class configuratorTest extends CoreTestAbstract
|
||||
/**
|
||||
* @depends testEnableDebugMode
|
||||
* @covers ::setDebugAddress
|
||||
* @expectedException \FuzeWorks\Exception\InvalidArgumentException
|
||||
*/
|
||||
public function testSetDebugAddressInvalidArgument()
|
||||
{
|
||||
$this->expectException(\FuzeWorks\Exception\InvalidArgumentException::class);
|
||||
$this->configurator->setDebugAddress(null);
|
||||
}
|
||||
}
|
||||
@ -499,7 +497,7 @@ class MockComponent implements iComponent
|
||||
return $configurator;
|
||||
}
|
||||
|
||||
public function onCreateContainer(Factory $container): Factory
|
||||
public function onCreateContainer(Factory $container)
|
||||
{
|
||||
return $container;
|
||||
}
|
||||
|
@ -72,20 +72,4 @@ class coreTest extends CoreTestAbstract
|
||||
$this->assertTrue(Core::isPHP('1.2.0'));
|
||||
$this->assertFalse(Core::isphp('9999.9.9'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers ::getEnv
|
||||
*/
|
||||
public function testGetEnv()
|
||||
{
|
||||
// First push some test variables
|
||||
putenv('TESTGETENV=AFFIRMED');
|
||||
|
||||
// Then try and fetch using the method
|
||||
$this->assertEquals('AFFIRMED', Core::getEnv('TESTGETENV'));
|
||||
|
||||
// Also test variables that don't exist
|
||||
$this->assertNull(Core::getEnv('TESTNOTEXIST'));
|
||||
$this->assertEquals('replacement', Core::getEnv('TESTNOTEXISTTWO', 'replacement'));
|
||||
}
|
||||
}
|
||||
|
@ -31,9 +31,10 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 1.0.4
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
use FuzeWorks\Events;
|
||||
use FuzeWorks\Event;
|
||||
use FuzeWorks\Priority;
|
||||
|
||||
/**
|
||||
|
@ -31,12 +31,11 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
use FuzeWorks\Event;
|
||||
use FuzeWorks\Events;
|
||||
use FuzeWorks\Exception\EventException;
|
||||
use FuzeWorks\Priority;
|
||||
|
||||
/**
|
||||
@ -146,21 +145,21 @@ class eventsTest extends CoreTestAbstract
|
||||
|
||||
/**
|
||||
* @depends testFireEvent
|
||||
* @expectedException FuzeWorks\Exception\EventException
|
||||
* @covers ::fireEvent
|
||||
*/
|
||||
public function testInvalidTypeEvent()
|
||||
{
|
||||
$this->expectException(EventException::class);
|
||||
Events::fireEvent(array('x', 'y', 'z'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testFireEvent
|
||||
* @covers ::fireEvent
|
||||
* @expectedException FuzeWorks\Exception\EventException
|
||||
*/
|
||||
public function testInvalidClassEvent()
|
||||
{
|
||||
$this->expectException(EventException::class);
|
||||
Events::fireEvent('nonExistingEvent', 'x', 'y', 'z');
|
||||
}
|
||||
|
||||
@ -186,30 +185,30 @@ class eventsTest extends CoreTestAbstract
|
||||
/**
|
||||
* @depends testAddAndRemoveListener
|
||||
* @covers ::addListener
|
||||
* @expectedException FuzeWorks\Exception\EventException
|
||||
*/
|
||||
public function testAddInvalidPriorityListener()
|
||||
{
|
||||
$this->expectException(EventException::class);
|
||||
Events::addListener(function($event){}, 'mockEvent', 99);
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testAddAndRemoveListener
|
||||
* @covers ::addListener
|
||||
* @expectedException FuzeWorks\Exception\EventException
|
||||
*/
|
||||
public function testAddInvalidNameListener()
|
||||
{
|
||||
$this->expectException(EventException::class);
|
||||
Events::addListener(function($e) {}, '', Priority::NORMAL);
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testAddAndRemoveListener
|
||||
* @covers ::removeListener
|
||||
* @expectedException FuzeWorks\Exception\EventException
|
||||
*/
|
||||
public function testRemoveInvalidPriorityListener()
|
||||
{
|
||||
$this->expectException(EventException::class);
|
||||
Events::removeListener(function($event){}, 'mockEvent', 99);
|
||||
}
|
||||
|
||||
@ -229,7 +228,7 @@ class eventsTest extends CoreTestAbstract
|
||||
public function testRemoveUnsetListener()
|
||||
{
|
||||
Events::addListener(function($e) {}, 'mockEvent', Priority::NORMAL);
|
||||
$this->assertNull(Events::removeListener(function() {echo "Called"; }, 'mockEvent', Priority::NORMAL));
|
||||
$this->assertNull(Events::removeListener(function($x) {echo "Called"; }, 'mockEvent', Priority::NORMAL));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -31,7 +31,7 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
use FuzeWorks\Exception\Exception;
|
||||
@ -53,63 +53,83 @@ use FuzeWorks\Exception\ConfiguratorException;
|
||||
class exceptionTestTest extends CoreTestAbstract
|
||||
{
|
||||
|
||||
/**
|
||||
* @expectedException FuzeWorks\Exception\Exception
|
||||
*/
|
||||
public function testException()
|
||||
{
|
||||
$this->expectException(Exception::class);
|
||||
throw new Exception("Exception Test Run", 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException FuzeWorks\Exception\CoreException
|
||||
*/
|
||||
public function testCoreException()
|
||||
{
|
||||
$this->expectException(CoreException::class);
|
||||
throw new CoreException("Exception Test Run", 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException FuzeWorks\Exception\ConfigException
|
||||
*/
|
||||
public function testConfigException()
|
||||
{
|
||||
$this->expectException(ConfigException::class);
|
||||
throw new ConfigException("Exception Test Run", 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException FuzeWorks\Exception\EventException
|
||||
*/
|
||||
public function testEventException()
|
||||
{
|
||||
$this->expectException(EventException::class);
|
||||
throw new EventException("Exception Test Run", 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException FuzeWorks\Exception\FactoryException
|
||||
*/
|
||||
public function testFactoryException()
|
||||
{
|
||||
$this->expectException(FactoryException::class);
|
||||
throw new FactoryException("Exception Test Run", 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException FuzeWorks\Exception\HelperException
|
||||
*/
|
||||
public function testHelperException()
|
||||
{
|
||||
$this->expectException(HelperException::class);
|
||||
throw new HelperException("Exception Test Run", 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException FuzeWorks\Exception\InvalidArgumentException
|
||||
*/
|
||||
public function testInvalidArgumentException()
|
||||
{
|
||||
$this->expectException(InvalidArgumentException::class);
|
||||
throw new InvalidArgumentException("Exception Test Run", 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException FuzeWorks\Exception\LibraryException
|
||||
*/
|
||||
public function testLibraryException()
|
||||
{
|
||||
$this->expectException(LibraryException::class);
|
||||
throw new LibraryException("Exception Test Run", 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException FuzeWorks\Exception\LoggerException
|
||||
*/
|
||||
public function testLoggerException()
|
||||
{
|
||||
$this->expectException(LoggerException::class);
|
||||
throw new LoggerException("Exception Test Run", 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException FuzeWorks\Exception\ConfiguratorException
|
||||
*/
|
||||
public function testConfiguratorException()
|
||||
{
|
||||
$this->expectException(ConfiguratorException::class);
|
||||
throw new ConfiguratorException("Exception Test Run", 1);
|
||||
}
|
||||
|
||||
|
@ -31,7 +31,7 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
use FuzeWorks\Factory;
|
||||
@ -73,10 +73,10 @@ class factoryTest extends CoreTestAbstract
|
||||
/**
|
||||
* @depends testGetInstance
|
||||
* @covers ::getInstance
|
||||
* @expectedException \FuzeWorks\Exception\FactoryException
|
||||
*/
|
||||
public function testGetInstanceNotFound()
|
||||
{
|
||||
$this->expectException(FactoryException::class);
|
||||
Factory::getInstance('NotFound');
|
||||
}
|
||||
|
||||
@ -183,6 +183,7 @@ class factoryTest extends CoreTestAbstract
|
||||
/**
|
||||
* @depends testCanLoadFactory
|
||||
* @covers ::cloneInstance
|
||||
* @expectedException FuzeWorks\Exception\FactoryException
|
||||
*/
|
||||
public function testCloneInstanceWrongClassname()
|
||||
{
|
||||
@ -190,7 +191,6 @@ class factoryTest extends CoreTestAbstract
|
||||
$factory = new Factory;
|
||||
|
||||
// Attempt
|
||||
$this->expectException(FactoryException::class);
|
||||
$factory->cloneInstance('fake');
|
||||
}
|
||||
|
||||
@ -223,6 +223,7 @@ class factoryTest extends CoreTestAbstract
|
||||
/**
|
||||
* @depends testNewFactoryInstance
|
||||
* @covers ::newInstance
|
||||
* @expectedException FuzeWorks\Exception\FactoryException
|
||||
*/
|
||||
public function testFactoryNewInstanceNotExist()
|
||||
{
|
||||
@ -230,13 +231,13 @@ class factoryTest extends CoreTestAbstract
|
||||
$factory = new Factory;
|
||||
|
||||
// First, it does not exist
|
||||
$this->expectException(FactoryException::class);
|
||||
$factory->newInstance('fake');
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testNewFactoryInstance
|
||||
* @covers ::newInstance
|
||||
* @expectedException FuzeWorks\Exception\FactoryException
|
||||
*/
|
||||
public function testFactoryNewInstanceWrongNamespace()
|
||||
{
|
||||
@ -244,7 +245,6 @@ class factoryTest extends CoreTestAbstract
|
||||
$factory = new Factory;
|
||||
|
||||
// Second, it just fails
|
||||
$this->expectException(FactoryException::class);
|
||||
$factory->newInstance('helpers', 'Test\\');
|
||||
}
|
||||
|
||||
@ -278,6 +278,7 @@ class factoryTest extends CoreTestAbstract
|
||||
/**
|
||||
* @depends testRemoveInstance
|
||||
* @covers ::removeInstance
|
||||
* @expectedException FuzeWorks\Exception\FactoryException
|
||||
*/
|
||||
public function testRemoveInstanceNotExist()
|
||||
{
|
||||
@ -285,7 +286,6 @@ class factoryTest extends CoreTestAbstract
|
||||
$factory = new Factory;
|
||||
|
||||
// Test
|
||||
$this->expectException(FactoryException::class);
|
||||
$factory->removeInstance('fake');
|
||||
}
|
||||
|
||||
@ -308,7 +308,7 @@ class factoryTest extends CoreTestAbstract
|
||||
$this->assertEquals(5, $factory->test);
|
||||
}
|
||||
|
||||
public function tearDown(): void
|
||||
public function tearDown()
|
||||
{
|
||||
parent::tearDown();
|
||||
|
||||
|
@ -31,7 +31,7 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
use FuzeWorks\Priority;
|
||||
@ -50,9 +50,9 @@ class helperTest extends CoreTestAbstract
|
||||
/**
|
||||
* @var Helpers
|
||||
*/
|
||||
protected Helpers $helpers;
|
||||
protected $helpers;
|
||||
|
||||
public function setUp(): void
|
||||
public function setUp()
|
||||
{
|
||||
// Prepare class
|
||||
$this->helpers = new Helpers();
|
||||
|
@ -31,10 +31,10 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
use FuzeWorks\Exception\LibraryException;
|
||||
use FuzeWorks\Core;
|
||||
use FuzeWorks\Factory;
|
||||
use FuzeWorks\Libraries;
|
||||
|
||||
@ -50,9 +50,9 @@ class libraryTest extends CoreTestAbstract
|
||||
/**
|
||||
* @var Libraries
|
||||
*/
|
||||
protected Libraries $libraries;
|
||||
protected $libraries;
|
||||
|
||||
public function setUp(): void
|
||||
public function setUp()
|
||||
{
|
||||
// Load new libraries class
|
||||
$this->libraries = new Libraries();
|
||||
@ -110,10 +110,10 @@ class libraryTest extends CoreTestAbstract
|
||||
* @depends testGetLibraryFromDirectory
|
||||
* @covers ::get
|
||||
* @covers ::initLibrary
|
||||
* @expectedException FuzeWorks\Exception\LibraryException
|
||||
*/
|
||||
public function testGetLibraryFail()
|
||||
{
|
||||
$this->expectException(LibraryException::class);
|
||||
$this->libraries->get('FailLoadLibrary');
|
||||
}
|
||||
|
||||
@ -121,10 +121,10 @@ class libraryTest extends CoreTestAbstract
|
||||
* @depends testGetLibraryFromDirectory
|
||||
* @covers ::get
|
||||
* @covers ::initLibrary
|
||||
* @expectedException FuzeWorks\Exception\LibraryException
|
||||
*/
|
||||
public function testGetLibraryNoName()
|
||||
{
|
||||
$this->expectException(LibraryException::class);
|
||||
$this->libraries->get('');
|
||||
}
|
||||
|
||||
@ -132,10 +132,10 @@ class libraryTest extends CoreTestAbstract
|
||||
* @depends testGetLibraryFromDirectory
|
||||
* @covers ::get
|
||||
* @covers ::initLibrary
|
||||
* @expectedException FuzeWorks\Exception\LibraryException
|
||||
*/
|
||||
public function testGetLibraryNoClass()
|
||||
{
|
||||
$this->expectException(LibraryException::class);
|
||||
$this->libraries->get('TestGetLibraryNoClass');
|
||||
}
|
||||
|
||||
@ -167,10 +167,9 @@ class libraryTest extends CoreTestAbstract
|
||||
*/
|
||||
public function testAddLibraryObject()
|
||||
{
|
||||
$z = new stdClass();
|
||||
$this->libraries->addLibraryObject('TestAddLibraryObject', $z);
|
||||
$this->libraries->addLibraryObject('TestAddLibraryObject', 5);
|
||||
|
||||
$this->assertEquals($z, $this->libraries->get('TestAddLibraryObject'));
|
||||
$this->assertEquals(5, $this->libraries->get('TestAddLibraryObject'));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -189,10 +188,10 @@ class libraryTest extends CoreTestAbstract
|
||||
/**
|
||||
* @depends testAddLibraryClass
|
||||
* @covers ::addLibraryClass
|
||||
* @expectedException \FuzeWorks\Exception\LibraryException
|
||||
*/
|
||||
public function testAddLibraryClassFail()
|
||||
{
|
||||
$this->expectException(LibraryException::class);
|
||||
$this->libraries->addLibraryClass('LibraryClassFail', '\Case\Not\Exist');
|
||||
}
|
||||
|
||||
@ -215,14 +214,14 @@ class libraryTest extends CoreTestAbstract
|
||||
/**
|
||||
* @depends testAddLibraryWithAutoloader
|
||||
* @covers ::initLibrary
|
||||
* @expectedException \FuzeWorks\Exception\LibraryException
|
||||
*/
|
||||
public function testAddBadAutoloader()
|
||||
{
|
||||
$this->expectException(LibraryException::class);
|
||||
$this->assertInstanceOf('Application\Library\TestAddBadAutoloader', $this->libraries->get('TestAddBadAutoloader'));
|
||||
}
|
||||
|
||||
public function tearDown(): void
|
||||
public function tearDown()
|
||||
{
|
||||
parent::tearDown();
|
||||
|
||||
|
@ -31,7 +31,7 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
use FuzeWorks\Events;
|
||||
@ -47,11 +47,11 @@ use FuzeWorks\Exception\LoggerException;
|
||||
*/
|
||||
class loggerTest extends CoreTestAbstract
|
||||
{
|
||||
protected Logger $logger;
|
||||
protected $logger;
|
||||
|
||||
protected string $output;
|
||||
protected $output;
|
||||
|
||||
public function setUp(): void
|
||||
public function setUp()
|
||||
{
|
||||
Factory::getInstance()->config->get('error')->fuzeworks_error_reporting = false;
|
||||
Logger::$logs = array();
|
||||
@ -105,7 +105,7 @@ class loggerTest extends CoreTestAbstract
|
||||
E_STRICT => 'ERROR',
|
||||
E_RECOVERABLE_ERROR => 'ERROR',
|
||||
E_DEPRECATED => 'WARNING',
|
||||
0 => 'Unknown error: 0'
|
||||
'UNKNOWN' => 'Unknown error: UNKNOWN'
|
||||
);
|
||||
|
||||
foreach ($types as $errorType => $output) {
|
||||
@ -135,32 +135,12 @@ class loggerTest extends CoreTestAbstract
|
||||
Events::addListener(function($event){
|
||||
$event->setCancelled(true);
|
||||
$this->assertEquals('FAILURE', $event->log['message']);
|
||||
$this->assertEquals("EXCEPTION", $event->log['type']);
|
||||
}, 'haltExecutionEvent');
|
||||
|
||||
// Log the exception
|
||||
Logger::exceptionHandler($exception);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers ::exceptionHandler
|
||||
* @depends testExceptionHandler
|
||||
*/
|
||||
public function testErrorsToExceptionHandler()
|
||||
{
|
||||
// Create the error
|
||||
$error = new ParseError("FAILURE_ERROR");
|
||||
|
||||
// Prepare to intercept
|
||||
Events::addListener(function ($event) {
|
||||
$event->setCancelled(true);
|
||||
$this->assertEquals("FAILURE_ERROR", $event->log['message']);
|
||||
$this->assertEquals("ERROR", $event->log['type']);
|
||||
}, 'haltExecutionEvent');
|
||||
|
||||
Logger::exceptionHandler($error);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers ::log
|
||||
*/
|
||||
@ -231,7 +211,7 @@ class loggerTest extends CoreTestAbstract
|
||||
$this->assertFalse(Logger::isEnabled());
|
||||
}
|
||||
|
||||
public function tearDown(): void
|
||||
public function tearDown()
|
||||
{
|
||||
parent::tearDown();
|
||||
|
||||
|
@ -31,10 +31,10 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 1.1.4
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
use FuzeWorks\Exception\PluginException;
|
||||
use FuzeWorks\Core;
|
||||
use FuzeWorks\Factory;
|
||||
use FuzeWorks\Plugins;
|
||||
|
||||
@ -50,9 +50,9 @@ class pluginTest extends CoreTestAbstract
|
||||
/**
|
||||
* @var FuzeWorks\Plugins
|
||||
*/
|
||||
protected Plugins $plugins;
|
||||
protected $plugins;
|
||||
|
||||
public function setUp(): void
|
||||
public function setUp()
|
||||
{
|
||||
$this->plugins = new Plugins();
|
||||
$this->plugins->init();
|
||||
@ -106,10 +106,10 @@ class pluginTest extends CoreTestAbstract
|
||||
/**
|
||||
* @depends testLoadPlugin
|
||||
* @covers ::get
|
||||
* @expectedException FuzeWorks\Exception\PluginException
|
||||
*/
|
||||
public function testMissingHeader()
|
||||
{
|
||||
$this->expectException(PluginException::class);
|
||||
$this->plugins->get('testMissingHeader');
|
||||
}
|
||||
|
||||
@ -134,39 +134,39 @@ class pluginTest extends CoreTestAbstract
|
||||
/**
|
||||
* @depends testLoadPlugin
|
||||
* @covers ::get
|
||||
* @expectedException FuzeWorks\Exception\PluginException
|
||||
*/
|
||||
public function testMissingPlugin()
|
||||
{
|
||||
$this->expectException(PluginException::class);
|
||||
$this->plugins->get('testMissingPlugin');
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testMissingPlugin
|
||||
* @covers ::get
|
||||
* @expectedException FuzeWorks\Exception\PluginException
|
||||
*/
|
||||
public function testLoadHeaderNotIPluginHeader()
|
||||
{
|
||||
$this->expectException(PluginException::class);
|
||||
$this->plugins->get('TestLoadHeaderNotIPluginHeader');
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testLoadPlugin
|
||||
* @covers ::get
|
||||
* @expectedException FuzeWorks\Exception\PluginException
|
||||
*/
|
||||
public function testInvalidClass()
|
||||
{
|
||||
$this->expectException(PluginException::class);
|
||||
$this->plugins->get('testInvalidClass');
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers ::get
|
||||
* @expectedException FuzeWorks\Exception\PluginException
|
||||
*/
|
||||
public function testGetMissingName()
|
||||
{
|
||||
$this->expectException(PluginException::class);
|
||||
$this->plugins->get('');
|
||||
}
|
||||
|
||||
@ -174,12 +174,12 @@ class pluginTest extends CoreTestAbstract
|
||||
* @depends testLoadPlugin
|
||||
* @covers ::get
|
||||
* @covers ::loadHeadersFromPluginPaths
|
||||
* @expectedException FuzeWorks\Exception\PluginException
|
||||
*/
|
||||
public function testDisabledPlugin()
|
||||
{
|
||||
Factory::getInstance()->config->plugins->disabled_plugins = array('TestDisabledPlugin');
|
||||
$this->plugins->loadHeadersFromPluginPaths();
|
||||
$this->expectException(PluginException::class);
|
||||
$this->plugins->get('testDisabledPlugin');
|
||||
}
|
||||
|
||||
@ -187,16 +187,16 @@ class pluginTest extends CoreTestAbstract
|
||||
* @depends testLoadPlugin
|
||||
* @covers ::get
|
||||
* @covers ::loadHeadersFromPluginPaths
|
||||
* @expectedException FuzeWorks\Exception\PluginException
|
||||
*/
|
||||
public function testRunInvalidDirectory()
|
||||
{
|
||||
$this->plugins->addComponentPath('exists_not');
|
||||
$this->plugins->loadHeadersFromPluginPaths();
|
||||
$this->expectException(PluginException::class);
|
||||
$this->plugins->get('testRunInvalidDirectory');
|
||||
}
|
||||
|
||||
public function tearDown(): void
|
||||
public function tearDown()
|
||||
{
|
||||
parent::tearDown();
|
||||
|
||||
|
@ -31,7 +31,7 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 1.0.4
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
use FuzeWorks\Priority;
|
||||
|
||||
@ -62,12 +62,12 @@ class priorityTest extends CoreTestAbstract
|
||||
*/
|
||||
public function testGetPriority()
|
||||
{
|
||||
$this->assertEquals('Priority::LOWEST', Priority::getPriority(5));
|
||||
$this->assertEquals('Priority::LOW', Priority::getPriority(4));
|
||||
$this->assertEquals('Priority::NORMAL', Priority::getPriority(3));
|
||||
$this->assertEquals('Priority::HIGH', Priority::getPriority(2));
|
||||
$this->assertEquals('Priority::HIGHEST', Priority::getPriority(1));
|
||||
$this->assertEquals('Priority::MONITOR', Priority::getPriority(0));
|
||||
$this->assertEquals(Priority::getPriority(5), 'Priority::LOWEST');
|
||||
$this->assertEquals(Priority::getPriority(4), 'Priority::LOW');
|
||||
$this->assertEquals(Priority::getPriority(3), 'Priority::NORMAL');
|
||||
$this->assertEquals(Priority::getPriority(2), 'Priority::HIGH');
|
||||
$this->assertEquals(Priority::getPriority(1), 'Priority::HIGHEST');
|
||||
$this->assertEquals(Priority::getPriority(0), 'Priority::MONITOR');
|
||||
}
|
||||
|
||||
/**
|
||||
@ -83,7 +83,7 @@ class priorityTest extends CoreTestAbstract
|
||||
*/
|
||||
public function testHighestPriority()
|
||||
{
|
||||
$this->assertEquals(Priority::MONITOR, Priority::getHighestPriority());
|
||||
$this->assertEquals(Priority::getHighestPriority(), Priority::MONITOR);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -91,7 +91,7 @@ class priorityTest extends CoreTestAbstract
|
||||
*/
|
||||
public function testLowestPriority()
|
||||
{
|
||||
$this->assertEquals(Priority::LOWEST, Priority::getLowestPriority());
|
||||
$this->assertEquals(Priority::getLowestPriority(), Priority::LOWEST);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -31,7 +31,7 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 1.1.4
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
use FuzeWorks\Factory;
|
||||
use FuzeWorks\Events;
|
||||
@ -64,14 +64,11 @@ class pluginGetEventTest extends CoreTestAbstract
|
||||
{
|
||||
// Create mock listener
|
||||
Events::addListener(
|
||||
function($event){
|
||||
$z = new stdClass();
|
||||
$event->setPlugin($z);return $event;
|
||||
},
|
||||
function($event){$event->setPlugin('test_string');return $event;},
|
||||
'pluginGetEvent',
|
||||
Priority::NORMAL);
|
||||
|
||||
// And fire the event
|
||||
$this->assertInstanceOf('\stdClass', Factory::getInstance()->plugins->get('test'));
|
||||
$this->assertEquals('test_string', Factory::getInstance()->plugins->get('test'));
|
||||
}
|
||||
}
|
@ -31,13 +31,13 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
if ( ! function_exists('testCancelLoadHelper'))
|
||||
{
|
||||
|
||||
function testCancelLoadHelper(): string
|
||||
function testCancelLoadHelper($someParameter)
|
||||
{
|
||||
return 'SomeResult';
|
||||
}
|
||||
|
@ -31,13 +31,13 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
if ( ! function_exists('testGetHelper'))
|
||||
{
|
||||
|
||||
function testGetHelper(): string
|
||||
function testGetHelper($someParameter)
|
||||
{
|
||||
return 'SomeResult';
|
||||
}
|
||||
|
@ -31,12 +31,12 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 1.2.0
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
if ( ! function_exists('testHelperFunction'))
|
||||
{
|
||||
|
||||
function testHelperFunction(): string
|
||||
function testHelperFunction($someParameter)
|
||||
{
|
||||
return 'SomeResult';
|
||||
}
|
||||
|
@ -31,13 +31,13 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 1.2.0
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
if ( ! function_exists('testLoadHelperWithAltDirectory'))
|
||||
{
|
||||
|
||||
function testLoadHelperWithAltDirectory(): string
|
||||
function testLoadHelperWithAltDirectory($someParameter)
|
||||
{
|
||||
return 'SomeResult';
|
||||
}
|
||||
|
@ -31,13 +31,13 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
if ( ! function_exists('testLoadHelperWithoutSubdirectory'))
|
||||
{
|
||||
|
||||
function testLoadHelperWithoutSubdirectory(): string
|
||||
function testLoadHelperWithoutSubdirectory($someParameter)
|
||||
{
|
||||
return 'SomeResult';
|
||||
}
|
||||
|
@ -31,13 +31,13 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 0.0.1
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
|
||||
if ( ! function_exists('testReloadHelper'))
|
||||
{
|
||||
|
||||
function testReloadHelper(): string
|
||||
function testReloadHelper($someParameter)
|
||||
{
|
||||
return 'SomeResult';
|
||||
}
|
||||
|
@ -1,19 +1,36 @@
|
||||
<?xml version="1.0"?>
|
||||
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" bootstrap="autoload.php" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" stopOnError="false" stopOnFailure="false" stopOnIncomplete="false" stopOnSkipped="false" colors="false">
|
||||
<coverage processUncoveredFiles="false">
|
||||
<include>
|
||||
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.5/phpunit.xsd"
|
||||
bootstrap="autoload.php"
|
||||
convertErrorsToExceptions="true"
|
||||
convertNoticesToExceptions="true"
|
||||
convertWarningsToExceptions="true"
|
||||
stopOnError="false"
|
||||
stopOnFailure="false"
|
||||
stopOnIncomplete="false"
|
||||
stopOnSkipped="false"
|
||||
colors="false">
|
||||
|
||||
<testsuites>
|
||||
<testsuite name="Core Functionality">
|
||||
<directory>./</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
|
||||
<logging>
|
||||
<log type="json" target="../build/phpunit/logfile.json"/>
|
||||
<log type="junit" target="../build/phpunit/logfile.xml"/>
|
||||
<log type="testdox-html" target="../build/phpunit/testdox.html"/>
|
||||
<log type="testdox-text" target="../build/phpunit/testdox.txt"/>
|
||||
</logging>
|
||||
|
||||
<filter>
|
||||
<whitelist processUncoveredFilesFromWhitelist="false">
|
||||
<directory suffix=".php">../</directory>
|
||||
</include>
|
||||
<exclude>
|
||||
<directory suffix=".php">../vendor/</directory>
|
||||
<directory suffix=".php">../test/</directory>
|
||||
<directory suffix=".php">../src/Layout/</directory>
|
||||
<directory suffix=".php">../src/Config/</directory>
|
||||
</exclude>
|
||||
</coverage>
|
||||
<testsuites>
|
||||
<testsuite name="Core Suite">
|
||||
<directory>./</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
</whitelist>
|
||||
</filter>
|
||||
</phpunit>
|
@ -31,7 +31,7 @@
|
||||
* @link http://techfuze.net/fuzeworks
|
||||
* @since Version 1.2.0
|
||||
*
|
||||
* @version Version 1.3.0
|
||||
* @version Version 1.2.0
|
||||
*/
|
||||
namespace Application\Plugin;
|
||||
use FuzeWorks\iPluginHeader;
|
||||
@ -48,7 +48,7 @@ class TestGetPluginMethodHeader implements iPluginHeader
|
||||
{
|
||||
}
|
||||
|
||||
public function getPlugin(): string
|
||||
public function getPlugin()
|
||||
{
|
||||
return 'test_string';
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user