implement php 8.0 types

This commit is contained in:
Dennis Eichhorn 2020-12-03 22:39:56 +01:00
parent 2bfb2c1329
commit 0f1a799014
90 changed files with 363 additions and 506 deletions

View File

@ -109,7 +109,7 @@ class Account implements \JsonSerializable, ArrayableInterface
/**
* Groups.
*
* @var int[]
* @var Group[]
* @since 1.0.0
*/
protected array $groups = [];
@ -183,7 +183,7 @@ class Account implements \JsonSerializable, ArrayableInterface
* Every account can belong to multiple groups.
* These groups usually are used for permissions and categorize accounts.
*
* @return array Returns array of all groups
* @return Group[] Returns array of all groups
*
* @since 1.0.0
*/
@ -195,13 +195,13 @@ class Account implements \JsonSerializable, ArrayableInterface
/**
* Add group.
*
* @param mixed $group Group to add
* @param Group $group Group to add
*
* @return void
*
* @since 1.0.0
*/
public function addGroup($group) : void
public function addGroup(Group $group) : void
{
$this->groups[] = $group;
}

View File

@ -24,4 +24,15 @@ namespace phpOMS\Account;
*/
final class NullGroup extends Group
{
/**
* Constructor
*
* @param int $id Model id
*
* @since 1.0.0
*/
public function __construct(int $id = 0)
{
$this->id = $id;
}
}

View File

@ -81,7 +81,7 @@ class Point implements PointInterface
/**
* {@inheritdoc}
*/
public function setCoordinate(int $index, $value) : void
public function setCoordinate(int $index, int|float $value) : void
{
$this->coordinates[$index] = $value;
}

View File

@ -52,11 +52,11 @@ interface PointInterface
* Set the coordinate of the point
*
* @param int $index Index of the coordinate (e.g. 0 = x);
* @param mixed $value Value of the coordinate
* @param int|float $value Value of the coordinate
*
* @return void
*
* @since 1.0.0
*/
public function setCoordinate(int $index, $value) : void;
public function setCoordinate(int $index, int|float $value) : void;
}

View File

@ -104,7 +104,7 @@ class Backpack implements BackpackInterface
/**
* {@inheritdoc}
*/
public function addItem(ItemInterface $item, $quantity = 1) : void
public function addItem(ItemInterface $item, int|float $quantity = 1) : void
{
$this->items[] = ['item' => $item, 'quantity' => $quantity];
$this->value += $item->getValue() * $quantity;

View File

@ -65,11 +65,11 @@ interface BackpackInterface
* Add item to backpack
*
* @param ItemInterface $item Item
* @param mixed $quantity Quantity of the item
* @param int|float $quantity Quantity of the item
*
* @return void
*
* @since 1.0.0
*/
public function addItem(ItemInterface $item, $quantity = 1) : void;
public function addItem(ItemInterface $item, int|float $quantity = 1) : void;
}

View File

@ -190,13 +190,13 @@ class ApplicationAbstract
* Set values
*
* @param string $name Variable name
* @param string $value Variable value
* @param mixed $value Variable value
*
* @return void
*
* @since 1.0.0
*/
public function __set($name, $value) : void
public function __set(string $name, mixed $value) : void
{
if (!empty($this->{$name})) {
return;
@ -214,7 +214,7 @@ class ApplicationAbstract
*
* @since 1.0.0
*/
public function __get($name)
public function __get(string $name) : mixed
{
return isset($this->{$name}) ? $this->{$name} : null;
}

View File

@ -118,7 +118,7 @@ final class ApplicationInfo
*
* @since 1.0.0
*/
public function set(string $path, $data, string $delim = '/') : void
public function set(string $path, mixed $data, string $delim = '/') : void
{
if (!\is_scalar($data) && !\is_array($data) && !($data instanceof \JsonSerializable)) {
throw new \InvalidArgumentException('Type of $data "' . \gettype($data) . '" is not supported.');

View File

@ -99,7 +99,7 @@ final class ArticleCorrelationAffinity
*
* @since 1.0.0
*/
public function getAffinity($item, int $resultSize = 0) : array
public function getAffinity(mixed $item, int $resultSize = 0) : array
{
if (!isset($this->affinity[$item])) {
return [];

View File

@ -27,18 +27,18 @@ interface OptionsInterface
/**
* Is this key set.
*
* @param mixed $key Key to check for existence
* @param int|string $key Key to check for existence
*
* @return bool
*
* @since 1.0.0
*/
public function exists($key) : bool;
public function exists(int|string $key) : bool;
/**
* Updating or adding settings.
*
* @param mixed $key Unique option key
* @param int|string $key Unique option key
* @param mixed $value Option value
* @param bool $overwrite Overwrite existing value
*
@ -46,7 +46,7 @@ interface OptionsInterface
*
* @since 1.0.0
*/
public function setOption($key, $value, bool $overwrite = true) : bool;
public function setOption(int|string $key, mixed $value, bool $overwrite = true) : bool;
/**
* Updating or adding settings.
@ -63,11 +63,11 @@ interface OptionsInterface
/**
* Get option by key.
*
* @param mixed $key Unique option key
* @param int|string $key Unique option key
*
* @return mixed Option value
*
* @since 1.0.0
*/
public function getOption($key);
public function getOption(int|string $key) : mixed;
}

View File

@ -276,7 +276,7 @@ interface StreamInterface
*
* @since 1.0.0
*/
public function setCustomData(string $key, $value) : self;
public function setCustomData(string $key, mixed $value) : self;
/**
* Get custom data from the stream

View File

@ -150,7 +150,7 @@ abstract class ConnectionAbstract implements ConnectionInterface
*
* @since 1.0.0
*/
protected function dataType($value) : int
protected function dataType(mixed $value) : int
{
if (\is_int($value)) {
return CacheValueType::_INT;

View File

@ -301,7 +301,7 @@ final class FileCache extends ConnectionAbstract
*
* @since 1.0.0
*/
private function reverseValue(int $type, string $raw, int $expireEnd)
private function reverseValue(int $type, string $raw, int $expireEnd) : mixed
{
switch ($type) {
case CacheValueType::_INT:

View File

@ -253,7 +253,7 @@ final class RedisCache extends ConnectionAbstract
*
* @since 1.0.0
*/
private function build(mixed $value)
private function build(mixed $value) : mixed
{
$type = $this->dataType($value);
$raw = $this->cachify($value, $type);
@ -273,7 +273,7 @@ final class RedisCache extends ConnectionAbstract
*
* @since 1.0.0
*/
private function cachify(mixed $value, int $type)
private function cachify(mixed $value, int $type) : mixed
{
if ($type === CacheValueType::_INT || $type === CacheValueType::_STRING || $type === CacheValueType::_BOOL) {
return (string) $value;
@ -303,7 +303,7 @@ final class RedisCache extends ConnectionAbstract
*
* @since 1.0.0
*/
private function reverseValue(int $type, mixed $raw, int $start)
private function reverseValue(int $type, mixed $raw, int $start) : mixed
{
switch ($type) {
case CacheValueType::_INT:

View File

@ -94,7 +94,7 @@ final class CookieJar
*
* @since 1.0.0
*/
public function set(string $id, $value, int $expire = 86400, string $path = '/', string $domain = null, bool $secure = false, bool $httpOnly = true, bool $overwrite = true) : bool
public function set(string $id, mixed $value, int $expire = 86400, string $path = '/', string $domain = null, bool $secure = false, bool $httpOnly = true, bool $overwrite = true) : bool
{
if ($overwrite || !isset($this->cookies[$id])) {
$this->cookies[$id] = [

View File

@ -35,7 +35,7 @@ interface DataMapperInterface
*
* @since 1.0.0
*/
public static function create($obj);
public static function create(mixed $obj);
/**
* Update data.
@ -46,7 +46,7 @@ interface DataMapperInterface
*
* @since 1.0.0
*/
public static function update($obj);
public static function update(mixed $obj);
/**
* Delete data.
@ -57,7 +57,7 @@ interface DataMapperInterface
*
* @since 1.0.0
*/
public static function delete($obj);
public static function delete(mixed $obj);
/**
* Find data.
@ -90,5 +90,5 @@ interface DataMapperInterface
*
* @since 1.0.0
*/
public static function get($primaryKey);
public static function get(mixed $primaryKey);
}

View File

@ -193,7 +193,7 @@ abstract class ConnectionAbstract implements ConnectionInterface
*
* @since 1.0.0
*/
public function __get($name)
public function __get(string $name) : mixed
{
if ($name === 'con' && !isset($this->con)) {
$this->connect($this->dbdata);

View File

@ -340,7 +340,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
public static function withConditional(string $id, $value, array $models = [], string $comparison = '=') /** @todo: return : static */
public static function withConditional(string $id, mixed $value, array $models = [], string $comparison = '=') /** @todo: return : static */
{
self::$conditionals[$id] = [
'value' => $value,
@ -465,7 +465,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
public static function create($obj, int $relations = RelationType::ALL) : mixed
public static function create(mixed $obj, int $relations = RelationType::ALL) : mixed
{
if (!isset($obj)) {
return null;
@ -698,7 +698,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function setObjectId(\ReflectionClass $refClass, object $obj, $objId) : void
private static function setObjectId(\ReflectionClass $refClass, object $obj, mixed $objId) : void
{
$propertyName = static::$columns[static::$primaryField]['internal'];
$refProp = $refClass->getProperty($propertyName);
@ -726,7 +726,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
public static function createRelation(string $member, $id1, $id2) : bool
public static function createRelation(string $member, mixed $id1, mixed $id2) : bool
{
if (!isset(static::$hasMany[$member]) || !isset(static::$hasMany[$member]['external'])) {
return false;
@ -751,7 +751,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function createHasMany(\ReflectionClass $refClass, object $obj, $objId) : void
private static function createHasMany(\ReflectionClass $refClass, object $obj, mixed $objId) : void
{
foreach (static::$hasMany as $propertyName => $rel) {
if (!isset(static::$hasMany[$propertyName]['mapper'])) {
@ -873,7 +873,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function createHasManyArray(array &$obj, $objId) : void
private static function createHasManyArray(array &$obj, mixed $objId) : void
{
foreach (static::$hasMany as $propertyName => $rel) {
if (!isset(static::$hasMany[$propertyName]['mapper'])) {
@ -943,7 +943,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function createOwnsOne(string $propertyName, $obj) : mixed
private static function createOwnsOne(string $propertyName, mixed $obj) : mixed
{
if (!\is_object($obj)) {
return $obj;
@ -993,7 +993,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function createBelongsTo(string $propertyName, $obj) : mixed
private static function createBelongsTo(string $propertyName, mixed $obj) : mixed
{
if (!\is_object($obj)) {
return $obj;
@ -1040,7 +1040,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function createRelationTable(string $propertyName, array $objsIds, $objId) : void
private static function createRelationTable(string $propertyName, array $objsIds, mixed $objId) : void
{
if (empty($objsIds) || !isset(static::$hasMany[$propertyName]['external'])) {
return;
@ -1081,7 +1081,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function parseValue(string $type, $value = null) : mixed
private static function parseValue(string $type, mixed $value = null) : mixed
{
if ($value === null) {
return null;
@ -1120,7 +1120,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function updateHasMany(\ReflectionClass $refClass, object $obj, $objId, $depth = 1) : void
private static function updateHasMany(\ReflectionClass $refClass, object $obj, mixed $objId, int $depth = 1) : void
{
$objsIds = [];
@ -1208,7 +1208,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function updateHasManyArray(array &$obj, $objId, $depth = 1) : void
private static function updateHasManyArray(array &$obj, mixed $objId, int $depth = 1) : void
{
$objsIds = [];
@ -1273,11 +1273,11 @@ class DataMapperAbstract implements DataMapperInterface
* @param array $objsIds Object ids to insert
* @param mixed $objId Model to reference
*
* @return mixed
* @return void
*
* @since 1.0.0
*/
private static function updateRelationTable(array $objsIds, $objId) : mixed
private static function updateRelationTable(array $objsIds, mixed $objId) : void
{
$many = self::getHasManyRaw($objId);
@ -1306,7 +1306,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function deleteRelationTable(string $propertyName, array $objsIds, $objId) : void
private static function deleteRelationTable(string $propertyName, array $objsIds, mixed $objId) : void
{
if (empty($objsIds)
|| static::$hasMany[$propertyName]['table'] === static::$table
@ -1339,7 +1339,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function updateOwnsOne(string $propertyName, $obj, int $depth = 1) : mixed
private static function updateOwnsOne(string $propertyName, mixed $obj, int $depth = 1) : mixed
{
if (!\is_object($obj)) {
return $obj;
@ -1385,7 +1385,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function updateBelongsTo(string $propertyName, $obj, int $depth = 1) : mixed
private static function updateBelongsTo(string $propertyName, mixed $obj, int $depth = 1) : mixed
{
if (!\is_object($obj)) {
return $obj;
@ -1410,7 +1410,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function updateBelongsToArray(string $propertyName, $obj, int $depth = 1) : mixed
private static function updateBelongsToArray(string $propertyName, mixed $obj, int $depth = 1) : mixed
{
if (!\is_array($obj)) {
return $obj;
@ -1434,7 +1434,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function updateModel(object $obj, $objId, \ReflectionClass $refClass = null, int $depth = 1) : void
private static function updateModel(object $obj, mixed $objId, \ReflectionClass $refClass = null, int $depth = 1) : void
{
$query = new Builder(self::$db);
$query->update(static::$table)
@ -1508,7 +1508,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function updateModelArray(array $obj, $objId, int $depth = 1) : void
private static function updateModelArray(array $obj, mixed $objId, int $depth = 1) : void
{
$query = new Builder(self::$db);
$query->update(static::$table)
@ -1572,7 +1572,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
public static function update($obj, int $relations = RelationType::ALL, int $depth = 3) : mixed
public static function update(mixed $obj, int $relations = RelationType::ALL, int $depth = 3) : mixed
{
if (!isset($obj)) {
return null;
@ -1664,7 +1664,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function deleteHasMany(\ReflectionClass $refClass, object $obj, $objId) : void
private static function deleteHasMany(\ReflectionClass $refClass, object $obj, mixed $objId) : void
{
foreach (static::$hasMany as $propertyName => $rel) {
if (!isset(static::$hasMany[$propertyName]['mapper'])) {
@ -1731,7 +1731,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function deleteOwnsOne(string $propertyName, $obj) : mixed
private static function deleteOwnsOne(string $propertyName, mixed $obj) : mixed
{
if (!\is_object($obj)) {
return $obj;
@ -1761,7 +1761,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function deleteBelongsTo(string $propertyName, $obj) : mixed
private static function deleteBelongsTo(string $propertyName, mixed $obj) : mixed
{
if (!\is_object($obj)) {
return $obj;
@ -1784,7 +1784,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function deleteModel(object $obj, $objId, \ReflectionClass $refClass = null) : void
private static function deleteModel(object $obj, mixed $objId, \ReflectionClass $refClass = null) : void
{
$query = new Builder(self::$db);
$query->delete()
@ -1847,7 +1847,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
public static function delete($obj, int $relations = RelationType::REFERENCE) : mixed
public static function delete(mixed $obj, int $relations = RelationType::REFERENCE) : mixed
{
// @todo: only do this if RelationType !== NONE
if (\is_scalar($obj)) {
@ -1961,7 +1961,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
public static function populateManyToMany(array $result, &$obj, int $depth = 3) : void
public static function populateManyToMany(array $result, mixed &$obj, int $depth = 3) : void
{
$refClass = new \ReflectionClass($obj);
@ -2039,7 +2039,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
public static function populateOwnsOne(string $member, array $result, int $depth = 3, $default = null) : mixed
public static function populateOwnsOne(string $member, array $result, int $depth = 3, mixed $default = null) : mixed
{
/** @var self $mapper */
$mapper = static::$ownsOne[$member]['mapper'];
@ -2079,7 +2079,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
public static function populateOwnsOneArray(string $member, array $result, int $depth = 3, $default = null) : array
public static function populateOwnsOneArray(string $member, array $result, int $depth = 3, mixed $default = null) : array
{
/** @var self $mapper */
$mapper = static::$ownsOne[$member]['mapper'];
@ -2119,7 +2119,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
public static function populateBelongsTo(string $member, array $result, int $depth = 3, $default = null)
public static function populateBelongsTo(string $member, array $result, int $depth = 3, mixed $default = null) : mixed
{
/** @var self $mapper */
$mapper = static::$belongsTo[$member]['mapper'];
@ -2159,7 +2159,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
public static function populateBelongsToArray(string $member, array $result, int $depth = 3, $default = null) : array
public static function populateBelongsToArray(string $member, array $result, int $depth = 3, mixed $default = null) : array
{
/** @var self $mapper */
$mapper = static::$belongsTo[$member]['mapper'];
@ -2198,7 +2198,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
public static function populateAbstract(array $result, $obj, int $depth = 3)
public static function populateAbstract(array $result, mixed $obj, int $depth = 3) : mixed
{
$refClass = new \ReflectionClass($obj);
@ -2465,7 +2465,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
public static function countBeforePivot($pivot, string $column = null) : int
public static function countBeforePivot(mixed $pivot, string $column = null) : int
{
$query = new Builder(self::$db);
$query->where(static::$table . '.' . ($column !== null ? self::getColumnByMember($column) : static::$primaryField), '<', $pivot);
@ -2483,7 +2483,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
public static function countAfterPivot($pivot, string $column = null) : int
public static function countAfterPivot(mixed $pivot, string $column = null) : int
{
$query = new Builder(self::$db);
$query->where(static::$table . '.' . ($column !== null ? self::getColumnByMember($column) : static::$primaryField), '>', $pivot);
@ -2524,7 +2524,7 @@ class DataMapperAbstract implements DataMapperInterface
* @since 1.0.0
*/
public static function getAfterPivot(
$pivot,
mixed $pivot,
string $column = null,
int $limit = 50,
string $order = 'ASC',
@ -2559,7 +2559,7 @@ class DataMapperAbstract implements DataMapperInterface
* It should just return the closes elements "before" the pivot element.
*/
public static function getBeforePivot(
$pivot,
mixed $pivot,
string $column = null,
int $limit = 50,
string $order = 'ASC',
@ -2588,7 +2588,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
public static function get($primaryKey, int $relations = RelationType::ALL, int $depth = 3, string $ref = null, Builder $query = null)
public static function get(mixed $primaryKey, int $relations = RelationType::ALL, int $depth = 3, string $ref = null, Builder $query = null) : mixed
{
if ($depth < 1) {
return self::createNullModel($primaryKey);
@ -2649,7 +2649,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
public static function getArray($primaryKey, int $relations = RelationType::ALL, int $depth = 3, string $ref = null) : array
public static function getArray(mixed $primaryKey, int $relations = RelationType::ALL, int $depth = 3, string $ref = null) : array
{
if ($depth < 1) {
return $primaryKey;
@ -2712,7 +2712,7 @@ class DataMapperAbstract implements DataMapperInterface
* @since 1.0.0
* @todo by and for look the same, this cannot be correct.
*/
public static function getFor($forKey, string $for, int $relations = RelationType::ALL, int $depth = 3)
public static function getFor(mixed $forKey, string $for, int $relations = RelationType::ALL, int $depth = 3) : mixed
{
return self::get($forKey, $relations, $depth, $for);
}
@ -2730,7 +2730,7 @@ class DataMapperAbstract implements DataMapperInterface
* @since 1.0.0
* @todo by and for look the same, this cannot be correct.
*/
public static function getBy($byKey, string $by, int $relations = RelationType::ALL, int $depth = 3)
public static function getBy(mixed $byKey, string $by, int $relations = RelationType::ALL, int $depth = 3) : mixed
{
return self::get($byKey, $relations, $depth, $by);
}
@ -2747,7 +2747,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
public static function getForArray($refKey, string $ref, int $relations = RelationType::ALL, int $depth = 3)
public static function getForArray(mixed $refKey, string $ref, int $relations = RelationType::ALL, int $depth = 3) : mixed
{
return self::getArray($refKey, $relations, $depth, $ref);
}
@ -2764,7 +2764,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
public static function getByArray($byKey, string $by, int $relations = RelationType::ALL, int $depth = 3)
public static function getByArray(mixed $byKey, string $by, int $relations = RelationType::ALL, int $depth = 3) : mixed
{
return self::getArray($byKey, $relations, $depth, $by);
}
@ -2845,7 +2845,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
public static function getByParent($value, int $depth = 3) : array
public static function getByParent(mixed $value, int $depth = 3) : array
{
$query = self::getQuery();
$query->where(static::$table . '_' . $depth . '.' . static::$parent, '=', $value);
@ -2886,7 +2886,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
public static function getRandom(int $amount = 1, int $relations = RelationType::ALL, int $depth = 3)
public static function getRandom(int $amount = 1, int $relations = RelationType::ALL, int $depth = 3) : mixed
{
if ($depth < 1) {
return null;
@ -2910,7 +2910,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
public static function fillRelations($obj, int $relations = RelationType::ALL, int $depth = 3) : void
public static function fillRelations(mixed $obj, int $relations = RelationType::ALL, int $depth = 3) : void
{
if ($depth < 1
|| empty(static::$hasMany)
@ -2985,7 +2985,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
public static function getRaw($keys, int $relations = RelationType::ALL, int $depth = 3, string $ref = null, Builder $query = null) : array
public static function getRaw(mixed $keys, int $relations = RelationType::ALL, int $depth = 3, string $ref = null, Builder $query = null) : array
{
$comparison = \is_array($keys) && \count($keys) > 1 ? 'in' : '=';
$keys = $comparison === 'in' ? $keys : \reset($keys);
@ -3067,7 +3067,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
public static function getHasManyPrimaryKeys($refKey, string $ref) : array
public static function getHasManyPrimaryKeys(mixed $refKey, string $ref) : array
{
$query = new Builder(self::$db);
$query->select(static::$hasMany[$ref]['table'] . '.' . static::$hasMany[$ref]['self'])
@ -3092,7 +3092,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
public static function getHasManyRaw($primaryKey, int $relations = RelationType::ALL) : array
public static function getHasManyRaw(mixed $primaryKey, int $relations = RelationType::ALL) : array
{
$result = [];
$cachedTables = []; // used by conditionals
@ -3278,7 +3278,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function addInitialized(string $mapper, $id, object $obj = null, int $depth = 3) : void
private static function addInitialized(string $mapper, mixed $id, object $obj = null, int $depth = 3) : void
{
if (!isset(self::$initObjects[$mapper])) {
self::$initObjects[$mapper] = [];
@ -3303,7 +3303,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function addInitializedArray(string $mapper, $id, array $obj = null, int $depth = 3) : void
private static function addInitializedArray(string $mapper, mixed $id, array $obj = null, int $depth = 3) : void
{
if (!isset(self::$initArrays[$mapper])) {
self::$initArrays[$mapper] = [];
@ -3326,7 +3326,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function isInitialized(string $mapper, $id, int $depth = 3) : bool
private static function isInitialized(string $mapper, mixed $id, int $depth = 3) : bool
{
return !empty($id)
&& isset(self::$initObjects[$mapper], self::$initObjects[$mapper][$id])
@ -3345,7 +3345,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function isInitializedArray(string $mapper, $id, int $depth = 3) : bool
private static function isInitializedArray(string $mapper, mixed $id, int $depth = 3) : bool
{
return !empty($id)
&& isset(self::$initArrays[$mapper], self::$initArrays[$mapper][$id])
@ -3364,7 +3364,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function getInitialized(string $mapper, $id, int $depth)
private static function getInitialized(string $mapper, mixed $id, int $depth) : mixed
{
if (!self::isInitialized($mapper, $id, $depth)) {
return null;
@ -3384,7 +3384,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function getInitializedArray(string $mapper, $id, int $depth)
private static function getInitializedArray(string $mapper, mixed $id, int $depth) : mixed
{
if (!self::isInitializedArray($mapper, $id, $depth)) {
return null;
@ -3399,11 +3399,11 @@ class DataMapperAbstract implements DataMapperInterface
* @param string $mapper Mapper name
* @param mixed $id Object id
*
* @return mixed
* @return void
*
* @since 1.0.0
*/
private static function removeInitialized(string $mapper, $id)
private static function removeInitialized(string $mapper, mixed $id) : void
{
if (isset(self::$initObjects[$mapper][$id])) {
unset(self::$initObjects[$mapper][$id]);
@ -3417,11 +3417,11 @@ class DataMapperAbstract implements DataMapperInterface
/**
* Clear cache
*
* @return mixed
* @return void
*
* @since 1.0.0
*/
public static function clearCache()
public static function clearCache() : void
{
self::$initObjects = [];
self::$initArrays = [];
@ -3456,7 +3456,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function isNullModel($obj) : bool
private static function isNullModel(mixed $obj) : bool
{
return \is_object($obj) && \strpos(\get_class($obj), '\Null') !== false;
}
@ -3470,7 +3470,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function createNullModel($id = null)
private static function createNullModel(mixed $id = null) : mixed
{
$class = empty(static::$model) ? \substr(static::class, 0, -6) : static::$model;
$parts = \explode('\\', $class);
@ -3488,7 +3488,7 @@ class DataMapperAbstract implements DataMapperInterface
*
* @since 1.0.0
*/
private static function createBaseModel()
private static function createBaseModel() : mixed
{
$class = empty(static::$model) ? \substr(static::class, 0, -6) : static::$model;

View File

@ -1355,7 +1355,7 @@ class Builder extends BuilderAbstract
*
* @since 1.0.0
*/
public function orOn(string|array $columns, $operator = null, $values = null) : self
public function orOn(string|array $columns, string|array $operator = null, string|array $values = null) : self
{
return $this->on($columns, $operator, $values, 'or');
}
@ -1371,7 +1371,7 @@ class Builder extends BuilderAbstract
*
* @since 1.0.0
*/
public function andOn(string|array $columns, $operator = null, $values = null) : self
public function andOn(string|array $columns, string|array $operator = null, string|array $values = null) : self
{
return $this->on($columns, $operator, $values, 'and');
}
@ -1399,7 +1399,7 @@ class Builder extends BuilderAbstract
*
* @since 1.0.0
*/
public function execute()
public function execute() : mixed
{
$sth = $this->connection->con->prepare($this->toSql());
@ -1425,7 +1425,7 @@ class Builder extends BuilderAbstract
*
* @since 1.0.0
*/
public static function getBindParamType($value) : int
public static function getBindParamType(mixed $value) : int
{
if (\is_int($value)) {
return \PDO::PARAM_INT;
@ -1447,7 +1447,7 @@ class Builder extends BuilderAbstract
*
* @since 1.0.0
*/
public static function getPublicColumnName($column) : string
public static function getPublicColumnName(mixed $column) : string
{
if (\is_string($column)) {
return $column;

View File

@ -325,7 +325,7 @@ class Grammar extends GrammarAbstract
*
* @since 1.0.0
*/
protected function compileValue(Builder $query, $value) : string
protected function compileValue(Builder $query, mixed $value) : string
{
if (\is_string($value)) {
return $query->quote($value);
@ -389,7 +389,7 @@ class Grammar extends GrammarAbstract
*
* @since 1.0.0
*/
protected function compileOffset(Builder $query, $offset) : string
protected function compileOffset(Builder $query, int $offset) : string
{
return 'OFFSET ' . $offset;
}
@ -508,7 +508,7 @@ class Grammar extends GrammarAbstract
*
* @since 1.0.0
*/
protected function compileGroups(Builder $query, array $groups)
protected function compileGroups(Builder $query, array $groups) : string
{
$expression = '';
@ -587,7 +587,7 @@ class Grammar extends GrammarAbstract
*
* @since 1.0.0
*/
protected function compileInto(Builder $query, $table) : string
protected function compileInto(Builder $query, string $table) : string
{
return 'INSERT INTO ' . $this->compileSystem($table);
}

View File

@ -71,7 +71,7 @@ class FileSession implements SessionInterface
*
* @since 1.0.0
*/
public function __construct(int $liftetime = 3600, $sid = '', int $inactivityInterval = 0)
public function __construct(int $liftetime = 3600, string $sid = '', int $inactivityInterval = 0)
{
if (\session_id()) {
\session_write_close(); // @codeCoverageIgnore
@ -105,7 +105,7 @@ class FileSession implements SessionInterface
/**
* {@inheritdoc}
*/
public function set(string $key, $value, bool $overwrite = false) : bool
public function set(string $key, mixed $value, bool $overwrite = false) : bool
{
if (!$this->isLocked && ($overwrite || !isset($this->sessionData[$key]))) {
$this->sessionData[$key] = $value;
@ -119,7 +119,7 @@ class FileSession implements SessionInterface
/**
* {@inheritdoc}
*/
public function get(string $key)
public function get(string $key) : mixed
{
return $this->sessionData[$key] ?? null;
}

View File

@ -72,7 +72,7 @@ final class HttpSession implements SessionInterface
*
* @since 1.0.0
*/
public function __construct(int $liftetime = 3600, $sid = '', int $inactivityInterval = 0)
public function __construct(int $liftetime = 3600, string $sid = '', int $inactivityInterval = 0)
{
if (\session_id()) {
\session_write_close(); // @codeCoverageIgnore
@ -132,7 +132,7 @@ final class HttpSession implements SessionInterface
/**
* {@inheritdoc}
*/
public function set(string $key, $value, bool $overwrite = false) : bool
public function set(string $key, mixed $value, bool $overwrite = false) : bool
{
if (!$this->isLocked && ($overwrite || !isset($this->sessionData[$key]))) {
$this->sessionData[$key] = $value;
@ -146,7 +146,7 @@ final class HttpSession implements SessionInterface
/**
* {@inheritdoc}
*/
public function get(string $key)
public function get(string $key) : mixed
{
return $this->sessionData[$key] ?? null;
}

View File

@ -35,7 +35,7 @@ interface SessionInterface
*
* @since 1.0.0
*/
public function get(string $key);
public function get(string $key) : mixed;
/**
* Store session value by key.
@ -48,7 +48,7 @@ interface SessionInterface
*
* @since 1.0.0
*/
public function set(string $key, $value, bool $overwrite = false) : bool;
public function set(string $key, mixed $value, bool $overwrite = false) : bool;
/**
* Remove value from session by key.

View File

@ -62,12 +62,11 @@ final class Dispatcher implements DispatcherInterface
/**
* {@inheritdoc}
*/
public function dispatch($controller, ...$data) : array
public function dispatch(array|string|\Closure $controller, ...$data) : array
{
$views = [];
if (\is_array($controller)) {
if (isset($controller['dest'])) {
if (\is_array($controller) && isset($controller['dest'])) {
if (!empty($controller['data'])) {
$data = \array_merge(
empty($data) ? [] : $data,
@ -77,16 +76,13 @@ final class Dispatcher implements DispatcherInterface
$controller = $controller['dest'];
}
}
if (\is_string($controller)) {
$views += $this->dispatchString($controller, $data);
} elseif (\is_array($controller)) {
$views += $this->dispatchArray($controller, $data);
} elseif ($controller instanceof \Closure) {
$views[] = $this->dispatchClosure($controller, $data);
} else {
throw new \UnexpectedValueException('Unexpected controller type.');
$views[] = $this->dispatchClosure($controller, $data);
}
return $views;
@ -171,7 +167,7 @@ final class Dispatcher implements DispatcherInterface
*
* @since 1.0.0
*/
private function dispatchClosure(\Closure $controller, array $data = null)
private function dispatchClosure(\Closure $controller, array $data = null) : mixed
{
return $data === null ? $controller($this->app) : $controller($this->app, ...$data);
}

View File

@ -36,5 +36,5 @@ interface DispatcherInterface
*
* @since 1.0.0
*/
public function dispatch($controller, ...$data) : array;
public function dispatch(array|string|\Closure $controller, ...$data) : array;
}

View File

@ -70,7 +70,7 @@ final class EventManager implements \Countable
/**
* {@inheritdoc}
*/
public function dispatch($func, ...$data) : array
public function dispatch(array|string|\Closure $func, ...$data) : array
{
if (!($func instanceof \Closure)) {
return [];
@ -124,7 +124,7 @@ final class EventManager implements \Countable
* Attach new event
*
* @param string $group Name of the event (unique)
* @param mixed $callback Callback or route for the event
* @param string|\Closure $callback Callback or route for the event
* @param bool $remove Remove event after triggering it?
* @param bool $reset Reset event after triggering it? Remove must be false!
*
@ -132,7 +132,7 @@ final class EventManager implements \Countable
*
* @since 1.0.0
*/
public function attach(string $group, $callback, bool $remove = false, bool $reset = false) : bool
public function attach(string $group, string|\Closure $callback, bool $remove = false, bool $reset = false) : bool
{
if (!isset($this->callbacks[$group])) {
$this->callbacks[$group] = ['remove' => $remove, 'reset' => $reset, 'callbacks' => []];
@ -155,7 +155,7 @@ final class EventManager implements \Countable
*
* @since 1.0.0
*/
public function triggerSimilar(string $group, string $id = '', $data = null) : bool
public function triggerSimilar(string $group, string $id = '', mixed $data = null) : bool
{
$groupIsRegex = \stripos($group, '/') === 0;
$idIsRegex = \stripos($id, '/') === 0;
@ -216,7 +216,7 @@ final class EventManager implements \Countable
*
* @since 1.0.0
*/
public function trigger(string $group, string $id = '', $data = null) : bool
public function trigger(string $group, string $id = '', mixed $data = null) : bool
{
if (!isset($this->callbacks[$group])) {
return false;

View File

@ -147,14 +147,14 @@ final class L11nManager
* @param string $code Language code
* @param string $module Module name
* @param string $theme Theme
* @param mixed $translation Text
* @param string $translation Text
* @param null|string $app App name
*
* @return string In case the language element couldn't be found 'ERROR' will be returned
*
* @since 1.0.0
*/
public function getText(string $code, string $module, string $theme, $translation, string $app = null) : string
public function getText(string $code, string $module, string $theme, string $translation, string $app = null) : string
{
if (isset($this->language[$code][$module][$translation])) {
return $this->language[$code][$module][$translation];
@ -189,13 +189,13 @@ final class L11nManager
* @param string $code Language code
* @param string $module Module name
* @param string $theme Theme
* @param mixed $translation Text
* @param string $translation Text
*
* @return string In case the language element couldn't be found 'ERROR' will be returned
*
* @since 1.0.0
*/
public function getHtml(string $code, string $module, string $theme, $translation) : string
public function getHtml(string $code, string $module, string $theme, string $translation) : string
{
return \htmlspecialchars($this->getText($code, $module, $theme, $translation));
}
@ -211,7 +211,7 @@ final class L11nManager
*
* @since 1.0.0
*/
public function getNumeric(Localization $l11n, $numeric, string $format = null) : string
public function getNumeric(Localization $l11n, int|float $numeric, string $format = null) : string
{
return \number_format(
$numeric,

View File

@ -278,7 +278,7 @@ final class Money implements \Serializable
*
* @since 1.0.0
*/
public function mult($value) : self
public function mult(int|float $value) : self
{
$this->value = (int) ($this->value * $value);
@ -294,7 +294,7 @@ final class Money implements \Serializable
*
* @since 1.0.0
*/
public function div($value) : self
public function div(int|float $value) : self
{
$this->value = (int) ($this->value / $value);
@ -324,7 +324,7 @@ final class Money implements \Serializable
*
* @since 1.0.0
*/
public function pow($value) : self
public function pow(int|float $value) : self
{
$this->value = (int) ($this->value ** $value);

View File

@ -368,7 +368,7 @@ final class FileLogger implements LoggerInterface
*
* @since 1.0.0
*/
public function countLogs()
public function countLogs() : array
{
$levels = [];

View File

@ -376,45 +376,37 @@ class Matrix implements \ArrayAccess, \Iterator
/**
* Subtract right.
*
* @param mixed $value Value
* @param int|float|self $value Value
*
* @return Matrix
*
* @throws \InvalidArgumentException
*
* @since 1.0.0
*/
public function sub($value) : self
public function sub(int|float|self $value) : self
{
if ($value instanceof self) {
return $this->add($value->mult(-1));
} elseif (!\is_string($value) && \is_numeric($value)) {
return $this->add(-$value);
if (\is_numeric($value)) {
return $this->addScalar(-$value);
}
throw new \InvalidArgumentException('Type');
return $this->add($value->mult(-1));
}
/**
* Add right.
*
* @param mixed $value Value
* @param int|float|self $value Value
*
* @return Matrix
*
* @throws \InvalidArgumentException
*
* @since 1.0.0
*/
public function add($value) : self
public function add(int|float|self $value) : self
{
if ($value instanceof self) {
return $this->addMatrix($value);
} elseif (!\is_string($value) && \is_numeric($value)) {
if (\is_numeric($value)) {
return $this->addScalar($value);
}
throw new \InvalidArgumentException();
return $this->addMatrix($value);
}
/**
@ -424,8 +416,6 @@ class Matrix implements \ArrayAccess, \Iterator
*
* @return Matrix
*
* @throws \Exception
*
* @since 1.0.0
*/
private function addMatrix(self $matrix) : self
@ -476,15 +466,13 @@ class Matrix implements \ArrayAccess, \Iterator
/**
* Add scalar.
*
* @param mixed $scalar Scalar
* @param int|float $scalar Scalar
*
* @return Matrix
*
* @throws \Exception
*
* @since 1.0.0
*/
private function addScalar($scalar) : self
private function addScalar(int|float $scalar) : self
{
$newMatrixArr = $this->matrix;
@ -503,23 +491,19 @@ class Matrix implements \ArrayAccess, \Iterator
/**
* Multiply right.
*
* @param mixed $value Factor
* @param int|float|self $value Factor
*
* @return Matrix
*
* @throws \InvalidArgumentException
*
* @since 1.0.0
*/
public function mult($value) : self
public function mult(int|float|self $value) : self
{
if ($value instanceof self) {
return $this->multMatrix($value);
} elseif (!\is_string($value) && \is_numeric($value)) {
if (\is_numeric($value)) {
return $this->multScalar($value);
}
throw new \InvalidArgumentException('Type');
return $this->multMatrix($value);
}
/**
@ -529,8 +513,6 @@ class Matrix implements \ArrayAccess, \Iterator
*
* @return Matrix
*
* @throws \Exception
*
* @since 1.0.0
*/
private function multMatrix(self $matrix) : self
@ -566,15 +548,13 @@ class Matrix implements \ArrayAccess, \Iterator
/**
* Multiply matrix.
*
* @param mixed $scalar Scalar value
* @param int|float $scalar Scalar value
*
* @return Matrix
*
* @throws \Exception
*
* @since 1.0.0
*/
private function multScalar($scalar) : self
private function multScalar(int|float $scalar) : self
{
$newMatrixArr = $this->matrix;

View File

@ -45,13 +45,13 @@ final class Vector extends Matrix
* Set vector value
*
* @param int $m Position to set
* @param mixed $value Value to set
* @param int|float $value Value to set
*
* @return void
*
* @since 1.0.0
*/
public function setV(int $m, $value) : void
public function setV(int $m, int|float $value) : void
{
parent::set($m , 0, $value);
}

View File

@ -217,23 +217,19 @@ final class Complex
/**
* Add opperator
*
* @param mixed $value Value to add
* @param int|float|self $value Value to add
*
* @return Complex
*
* @throws \InvalidArgumentException This exception is thrown if the argument has an invalid type
*
* @since 1.0.0
*/
public function add($value) : self
public function add(int|float|self $value) : self
{
if (\is_numeric($value)) {
return $this->addScalar($value);
} elseif ($value instanceof self) {
return $this->addComplex($value);
}
throw new \InvalidArgumentException();
return $this->addComplex($value);
}
/**
@ -253,13 +249,13 @@ final class Complex
/**
* Add opperator
*
* @param mixed $val Value to add
* @param int|float $val Value to add
*
* @return Complex
*
* @since 1.0.0
*/
private function addScalar($val) : self
private function addScalar(int|float $val) : self
{
return new self($this->re + $val, $this->im);
}
@ -267,23 +263,19 @@ final class Complex
/**
* Sub opperator
*
* @param mixed $value Value to sub
* @param int|float|self $value Value to sub
*
* @return Complex
*
* @throws \InvalidArgumentException This exception is thrown if the argument has an invalid type
*
* @since 1.0.0
*/
public function sub($value) : self
public function sub(int|float|self $value) : self
{
if (\is_numeric($value)) {
return $this->subScalar($value);
} elseif ($value instanceof self) {
return $this->subComplex($value);
}
throw new \InvalidArgumentException();
return $this->subComplex($value);
}
/**
@ -303,13 +295,13 @@ final class Complex
/**
* Sub opperator
*
* @param mixed $val Value to sub
* @param int|float $val Value to sub
*
* @return Complex
*
* @since 1.0.0
*/
private function subScalar($val) : self
private function subScalar(int|float $val) : self
{
return new self($this->re - $val, $this->im);
}
@ -317,23 +309,19 @@ final class Complex
/**
* Mult opperator
*
* @param mixed $value Value to mult
* @param int|float|self $value Value to mult
*
* @return Complex
*
* @throws \InvalidArgumentException This exception is thrown if the argument has an invalid type
*
* @since 1.0.0
*/
public function mult($value) : self
public function mult(int|float|self $value) : self
{
if (\is_numeric($value)) {
return $this->multScalar($value);
} elseif ($value instanceof self) {
return $this->multComplex($value);
}
throw new \InvalidArgumentException();
return $this->multComplex($value);
}
/**
@ -356,13 +344,13 @@ final class Complex
/**
* Mult opperator
*
* @param mixed $val Value to mult
* @param int|float $val Value to mult
*
* @return Complex
*
* @since 1.0.0
*/
private function multScalar($val) : self
private function multScalar(int|float $val) : self
{
return new self($this->re * $val, $this->im * $val);
}
@ -370,7 +358,7 @@ final class Complex
/**
* Div opperator
*
* @param mixed $value Value to div
* @param int|float|self $value Value to div
*
* @return Complex
*
@ -378,15 +366,13 @@ final class Complex
*
* @since 1.0.0
*/
public function div($value) : self
public function div(int|float|self $value) : self
{
if (\is_numeric($value)) {
return $this->divScalar($value);
} elseif ($value instanceof self) {
return $this->divComplex($value);
}
throw new \InvalidArgumentException();
return $this->divComplex($value);
}
/**
@ -409,13 +395,13 @@ final class Complex
/**
* Div opperator
*
* @param mixed $val Value to div
* @param int|float $val Value to div
*
* @return Complex
*
* @since 1.0.0
*/
private function divScalar($val) : self
private function divScalar(int|float $val) : self
{
return new self($this->re / $val, $this->im / $val);
}

View File

@ -43,7 +43,7 @@ final class Integer
*
* @since 1.0.0
*/
public static function isInteger($value) : bool
public static function isInteger(mixed $value) : bool
{
return \is_int($value);
}

View File

@ -43,7 +43,7 @@ final class Natural
*
* @since 1.0.0
*/
public static function isNatural($value) : bool
public static function isNatural(mixed $value) : bool
{
return \is_int($value) && $value >= 0;
}

View File

@ -33,7 +33,7 @@ interface OperationInterface
*
* @since 1.0.0
*/
public function add($x);
public function add(mixed $x);
/**
* Subtract value.
@ -44,7 +44,7 @@ interface OperationInterface
*
* @since 1.0.0
*/
public function sub($x);
public function sub(mixed $x);
/**
* Right multiplicate value.
@ -55,7 +55,7 @@ interface OperationInterface
*
* @since 1.0.0
*/
public function mult($x);
public function mult(mixed $x);
/**
* Right devision value.
@ -66,7 +66,7 @@ interface OperationInterface
*
* @since 1.0.0
*/
public function div($x);
public function div(mixed $x);
/**
* Power of value.
@ -77,7 +77,7 @@ interface OperationInterface
*
* @since 1.0.0
*/
public function pow($p);
public function pow(mixed $p);
/**
* Abs of value.
@ -86,5 +86,5 @@ interface OperationInterface
*
* @since 1.0.0
*/
public function abs();
public function abs() : mixed;
}

View File

@ -73,15 +73,17 @@ final class Evaluator
/**
* Parse value.
*
* @param mixed $value Value to parse
* @param int|float|string $value Value to parse
*
* @return mixed
* @return int|float
*
* @since 1.0.0
*/
private static function parseValue($value)
private static function parseValue(int|float|string $value) : int|float
{
return !\is_string($value) ? $value : (\stripos($value, '.') === false ? (int) $value : (float) $value);
return !\is_string($value)
? $value
: (\stripos($value, '.') === false ? (int) $value : (float) $value);
}
/**

View File

@ -319,7 +319,7 @@ final class MeasureOfDispersion
*
* @since 1.0.0
*/
public static function meanDeviation(array $x, float $mean = null, $offset = 0) : float
public static function meanDeviation(array $x, float $mean = null, int $offset = 0) : float
{
$mean = $mean !== null ? $mean : Average::arithmeticMean($x);
$sum = 0.0;
@ -362,7 +362,7 @@ final class MeasureOfDispersion
*
* @since 1.0.0
*/
public static function meanAbsoluteDeviation(array $x, float $mean = null, $offset = 0) : float
public static function meanAbsoluteDeviation(array $x, float $mean = null, int $offset = 0) : float
{
$mean = $mean !== null ? $mean : Average::arithmeticMean($x);
$sum = 0.0;

View File

@ -65,7 +65,7 @@ final class CauchyDistribution
*
* @since 1.0.0
*/
public static function getMode($x0) : float
public static function getMode(float $x0) : float
{
return $x0;
}

View File

@ -94,7 +94,7 @@ final class ParetoDistribution
*
* @since 1.0.0
*/
public static function getMode($xm) : float
public static function getMode(float $xm) : float
{
return $xm;
}

View File

@ -100,13 +100,13 @@ final class ConsoleHeader extends HeaderAbstract
/**
* Remove header by ID.
*
* @param mixed $key Header key
* @param string $key Header key
*
* @return bool
*
* @since 1.0.0
*/
public function remove($key) : bool
public function remove(string $key) : bool
{
if ($this->isLocked) {
return false;

View File

@ -70,13 +70,13 @@ final class ConsoleResponse extends ResponseAbstract implements RenderableInterf
/**
* Remove response by ID.
*
* @param mixed $id Response ID
* @param string $id Response ID
*
* @return bool
*
* @since 1.0.0
*/
public function remove($id) : bool
public function remove(string $id) : bool
{
if (isset($this->response[$id])) {
unset($this->response[$id]);

View File

@ -171,13 +171,13 @@ final class HttpHeader extends HeaderAbstract
/**
* Remove header by ID.
*
* @param mixed $key Header key
* @param string $key Header key
*
* @return bool
*
* @since 1.0.0
*/
public function remove($key) : bool
public function remove(string $key) : bool
{
if ($this->isLocked) {
return false;

View File

@ -64,13 +64,13 @@ final class HttpResponse extends ResponseAbstract implements RenderableInterface
/**
* Remove response by ID.
*
* @param mixed $id Response ID
* @param string $id Response ID
*
* @return bool
*
* @since 1.0.0
*/
public function remove($id) : bool
public function remove(string $id) : bool
{
if (isset($this->response[$id])) {
unset($this->response[$id]);

View File

@ -77,13 +77,13 @@ abstract class RequestAbstract implements MessageInterface
/**
* Get data.
*
* @param mixed $key Data key
* @param string $key Data key
*
* @return mixed
*
* @since 1.0.0
*/
public function getData($key = null)
public function getData(string $key = null) : mixed
{
if ($key === null) {
return $this->data;
@ -97,13 +97,13 @@ abstract class RequestAbstract implements MessageInterface
/**
* Get data.
*
* @param mixed $key Data key
* @param string $key Data key
*
* @return array
*
* @since 1.0.0
*/
public function getDataJson($key) : array
public function getDataJson(string $key) : array
{
$key = \mb_strtolower($key);
@ -119,14 +119,14 @@ abstract class RequestAbstract implements MessageInterface
/**
* Get data.
*
* @param mixed $key Data key
* @param string $key Data key
* @param string $delim Data delimiter
*
* @return array
*
* @since 1.0.0
*/
public function getDataList($key, string $delim = ',') : array
public function getDataList(string $key, string $delim = ',') : array
{
$key = \mb_strtolower($key);
@ -171,13 +171,13 @@ abstract class RequestAbstract implements MessageInterface
/**
* Check if has data.
*
* @param mixed $key Data key
* @param string $key Data key
*
* @return bool
*
* @since 1.0.0
*/
public function hasData($key) : bool
public function hasData(string $key) : bool
{
return isset($this->data[$key]);
}
@ -185,7 +185,7 @@ abstract class RequestAbstract implements MessageInterface
/**
* Set request data.
*
* @param mixed $key Data key
* @param string $key Data key
* @param mixed $value Value
* @param bool $overwrite Overwrite data
*
@ -193,7 +193,7 @@ abstract class RequestAbstract implements MessageInterface
*
* @since 1.0.0
*/
public function setData($key, $value, bool $overwrite = false) : bool
public function setData(string $key, mixed $value, bool $overwrite = false) : bool
{
if (!$this->lock) {
$key = \mb_strtolower($key);

View File

@ -49,7 +49,7 @@ abstract class ResponseAbstract implements \JsonSerializable, MessageInterface
*
* @since 1.0.0
*/
public function get($id)
public function get(mixed $id) : mixed
{
return $this->response[$id] ?? null;
}
@ -65,7 +65,7 @@ abstract class ResponseAbstract implements \JsonSerializable, MessageInterface
*
* @since 1.0.0
*/
public function set($key, $response, bool $overwrite = false) : void
public function set(mixed $key, mixed $response, bool $overwrite = false) : void
{
// This is not working since the key contains :: from http://
//$this->response = ArrayUtils::setArray((string) $key, $this->response, $response, ':', $overwrite);

View File

@ -37,7 +37,7 @@ final class FormElementGenerator
*
* @since 1.0.0
*/
public static function generate(array $json, $value = null, array $lang = []) : string
public static function generate(array $json, mixed $value = null, array $lang = []) : string
{
if (!isset($json['type'])) {
return 'INVALID';
@ -67,7 +67,7 @@ final class FormElementGenerator
*
* @since 1.0.0
*/
private static function generateInput(array $json, $value = null, array $lang = []) : string
private static function generateInput(array $json, mixed $value = null, array $lang = []) : string
{
$element = '<input';
foreach ($json['attributes'] as $attribute => $val) {
@ -96,7 +96,7 @@ final class FormElementGenerator
*
* @since 1.0.0
*/
private static function generateSelect(array $json, $value = null, array $lang = []) : string
private static function generateSelect(array $json, mixed $value = null, array $lang = []) : string
{
$element = '<select';
foreach ($json['attributes'] as $attribute => $val) {
@ -126,7 +126,7 @@ final class FormElementGenerator
*
* @since 1.0.0
*/
private static function generateTextarea(array $json, $value = null) : string
private static function generateTextarea(array $json, mixed $value = null) : string
{
$element = '<textarea';
foreach ($json['attributes'] as $attribute => $val) {

View File

@ -238,7 +238,7 @@ abstract class ModuleAbstract
*
* @since 1.0.0
*/
protected function fillJsonRawResponse(RequestAbstract $request, ResponseAbstract $response, $obj) : void
protected function fillJsonRawResponse(RequestAbstract $request, ResponseAbstract $response, mixed $obj) : void
{
$response->header->set('Content-Type', MimeType::M_JSON . '; charset=utf-8', true);
$response->set($request->uri->__toString(), $obj);
@ -257,7 +257,7 @@ abstract class ModuleAbstract
*
* @since 1.0.0
*/
protected function createModel(int $account, $obj, string $mapper, string $trigger, string $ip) : void
protected function createModel(int $account, mixed $obj, string $mapper, string $trigger, string $ip) : void
{
$this->app->eventManager->triggerSimilar('PRE:Module:' . static::MODULE_NAME . '-' . $trigger . '-create', '', $obj);
$id = $mapper::create($obj);

View File

@ -37,7 +37,7 @@ abstract class Enum
*
* @since 1.0.0
*/
public static function isValidValue($value) : bool
public static function isValidValue(mixed $value) : bool
{
$constants = self::getConstants();
@ -65,7 +65,7 @@ abstract class Enum
*
* @since 1.0.0
*/
public static function getRandom()
public static function getRandom() : mixed
{
$constants = self::getConstants();
$keys = \array_keys($constants);

View File

@ -73,7 +73,7 @@ abstract class EnumArray
*
* @since 1.0.0
*/
public static function isValidValue($value) : bool
public static function isValidValue(mixed $value) : bool
{
return \in_array($value, static::$constants, true);
}
@ -89,7 +89,7 @@ abstract class EnumArray
*
* @since 1.0.0
*/
public static function get($key)
public static function get(mixed $key) : mixed
{
if (!isset(static::$constants[$key])) {
throw new \OutOfBoundsException('Key "' . $key . '" is not valid.');
@ -117,7 +117,7 @@ abstract class EnumArray
*
* @since 1.0.0
*/
public static function getRandom()
public static function getRandom() : mixed
{
$keys = \array_keys(static::$constants);

View File

@ -64,7 +64,7 @@ class Heap
*
* @since 1.0.0
*/
public function insort($x, int $lo = 0) : void
public function insort(mixed $x, int $lo = 0) : void
{
$hi = \count($this->nodes);
@ -89,7 +89,7 @@ class Heap
*
* @since 1.0.0
*/
public function push($item) : void
public function push(mixed $item) : void
{
$this->nodes[] = $item;
$this->siftDown(0, \count($this->nodes) - 1);
@ -102,7 +102,7 @@ class Heap
*
* @since 1.0.0
*/
public function pop()
public function pop() : mixed
{
$last = \array_pop($this->nodes);
if (empty($this->nodes)) {
@ -123,7 +123,7 @@ class Heap
*
* @since 1.0.0
*/
public function peek()
public function peek() : mixed
{
return $this->nodes[0];
}
@ -137,7 +137,7 @@ class Heap
*
* @since 1.0.0
*/
public function contains($item) : bool
public function contains(mixed $item) : bool
{
foreach ($this->nodes as $key => $node) {
if (\is_scalar($item)) {
@ -161,7 +161,7 @@ class Heap
*
* @since 1.0.0
*/
public function replace($new)
public function replace(mixed $new) : mixed
{
$old = $this->nodes[0];
$this->nodes[0] = $new;
@ -179,7 +179,7 @@ class Heap
*
* @since 1.0.0
*/
public function pushpop($item)
public function pushpop(mixed $item) : mixed
{
if (!empty($this->nodes) && ($this->compare)($this->nodes[0], $item) < 0) {
$temp = $item;
@ -220,7 +220,7 @@ class Heap
*
* @since 1.0.0
*/
public function update($item) : bool
public function update(mixed $item) : bool
{
$pos = null;
foreach ($this->nodes as $key => $node) {

View File

@ -82,13 +82,13 @@ class Graph
/**
* Get graph node
*
* @param mixed $key Node key
* @param int|string $key Node key
*
* @return null|Node
*
* @since 1.0.0
*/
public function getNode(mixed $key) : ?Node
public function getNode(int|string $key) : ?Node
{
return $this->nodes[$key] ?? null;
}
@ -111,13 +111,13 @@ class Graph
/**
* Graph has node
*
* @param mixed $key Node key
* @param int|string $key Node key
*
* @return bool
*
* @since 1.0.0
*/
public function hasNode($key) : bool
public function hasNode(int|string $key) : bool
{
return isset($this->nodes[$key]);
}
@ -543,14 +543,14 @@ class Graph
/**
* Get longest path between two nodes.
*
* @param mixed $node1 Graph node
* @param mixed $node2 Graph node
* @param int|string $node1 Graph node
* @param int|string $node2 Graph node
*
* @return Node[]
*
* @since 1.0.0
*/
public function longestPathBetweenNodes($node1, $node2) : array
public function longestPathBetweenNodes(int|string $node1, int|string $node2) : array
{
if (!($node1 instanceof Node)) {
$node1 = $this->getNode($node1);

View File

@ -56,7 +56,7 @@ class Node
*
* @since 1.0.0
*/
public function __construct(string $id, $data = null)
public function __construct(string $id, mixed $data = null)
{
$this->id = $id;
$this->data = $data;
@ -81,7 +81,7 @@ class Node
*
* @since 1.0.0
*/
public function getData()
public function getData() : mixed
{
return $this->data;
}
@ -95,7 +95,7 @@ class Node
*
* @since 1.0.0
*/
public function setData($data) : void
public function setData(mixed $data) : void
{
$this->data = $data;
}

View File

@ -83,7 +83,7 @@ final class MultiMap implements \Countable
*
* @since 1.0.0
*/
public function add(array $keys, $value, bool $overwrite = false) : bool
public function add(array $keys, mixed $value, bool $overwrite = false) : bool
{
$id = \count($this->values);
$inserted = false;
@ -176,13 +176,13 @@ final class MultiMap implements \Countable
/**
* Get data.
*
* @param mixed $key Key used to identify value
* @param int|string|array $key Key used to identify value
*
* @return mixed
*
* @since 1.0.0
*/
public function get($key)
public function get(int|string|array $key) : mixed
{
if ($this->keyType === KeyType::SINGLE) {
return $this->getSingle($key);
@ -194,13 +194,13 @@ final class MultiMap implements \Countable
/**
* Get data.
*
* @param mixed $key Key used to identify value
* @param int|string $key Key used to identify value
*
* @return mixed
*
* @since 1.0.0
*/
private function getSingle($key)
private function getSingle(int|string $key) : mixed
{
return isset($this->keys[$key]) ? $this->values[$this->keys[$key]] ?? null : null;
}
@ -208,13 +208,13 @@ final class MultiMap implements \Countable
/**
* Get data.
*
* @param mixed $key Key used to identify value
* @param int|string|array $key Key used to identify value
*
* @return mixed
*
* @since 1.0.0
*/
private function getMultiple($key)
private function getMultiple(int|string|array $key) : mixed
{
if (\is_array($key)) {
if ($this->orderType === OrderType::LOOSE) {
@ -239,14 +239,14 @@ final class MultiMap implements \Countable
/**
* Set existing key with data.
*
* @param mixed $key Key used to identify value
* @param int|string|array $key Key used to identify value
* @param mixed $value Value to store
*
* @return bool
*
* @since 1.0.0
*/
public function set($key, $value) : bool
public function set(int|string|array $key, mixed $value) : bool
{
if ($this->keyType === KeyType::MULTIPLE && \is_array($key)) {
return $this->setMultiple($key, $value);
@ -258,14 +258,14 @@ final class MultiMap implements \Countable
/**
* Set existing key with data.
*
* @param mixed $key Key used to identify value
* @param int|string|array $key Key used to identify value
* @param mixed $value Value to store
*
* @return bool
*
* @since 1.0.0
*/
private function setMultiple($key, $value) : bool
private function setMultiple(int|string|array $key, mixed $value) : bool
{
if ($this->orderType !== OrderType::STRICT) {
/** @var array<string[]> $permutation */
@ -286,14 +286,14 @@ final class MultiMap implements \Countable
/**
* Set existing key with data.
*
* @param mixed $key Key used to identify value
* @param int|string $key Key used to identify value
* @param mixed $value Value to store
*
* @return bool
*
* @since 1.0.0
*/
private function setSingle($key, $value) : bool
private function setSingle(int|string $key, mixed $value) : bool
{
if (isset($this->keys[$key])) {
$this->values[$this->keys[$key]] = $value;
@ -307,13 +307,13 @@ final class MultiMap implements \Countable
/**
* Remove value and all sibling keys based on key.
*
* @param mixed $key Key used to identify value
* @param int|string|array $key Key used to identify value
*
* @return bool
*
* @since 1.0.0
*/
public function remove($key) : bool
public function remove(int|string|array $key) : bool
{
if ($this->keyType === KeyType::MULTIPLE && \is_array($key)) {
return $this->removeMultiple($key);
@ -325,13 +325,13 @@ final class MultiMap implements \Countable
/**
* Remove value and all sibling keys based on key.
*
* @param mixed $key Key used to identify value
* @param int|string|array $key Key used to identify value
*
* @return bool
*
* @since 1.0.0
*/
private function removeMultiple($key) : bool
private function removeMultiple(int|string|array $key) : bool
{
if ($this->orderType !== OrderType::LOOSE) {
return $this->remove(\implode(':', $key));
@ -355,13 +355,13 @@ final class MultiMap implements \Countable
/**
* Remove value and all sibling keys based on key.
*
* @param mixed $key Key used to identify value
* @param int|string $key Key used to identify value
*
* @return bool
*
* @since 1.0.0
*/
private function removeSingle($key) : bool
private function removeSingle(int|string $key) : bool
{
if (isset($this->keys[$key])) {
$id = $this->keys[$key];
@ -381,14 +381,14 @@ final class MultiMap implements \Countable
*
* Both keys need to exist in the multimap.
*
* @param mixed $old Old key
* @param mixed $new New key
* @param int|string|array $old Old key
* @param int|string|array $new New key
*
* @return bool
*
* @since 1.0.0
*/
public function remap($old, $new) : bool
public function remap(int|string|array $old, int|string|array $new) : bool
{
if ($this->keyType === KeyType::MULTIPLE) {
return false;
@ -410,13 +410,13 @@ final class MultiMap implements \Countable
*
* This only removes the value if no other key exists for this value.
*
* @param mixed $key Key used to identify value
* @param int|string|array $key Key used to identify value
*
* @return bool
*
* @since 1.0.0
*/
public function removeKey($key) : bool
public function removeKey(int|string|array $key) : bool
{
if ($this->keyType === KeyType::MULTIPLE) {
return false;
@ -430,13 +430,13 @@ final class MultiMap implements \Countable
*
* This only removes the value if no other key exists for this value.
*
* @param mixed $key Key used to identify value
* @param int|string $key Key used to identify value
*
* @return bool
*
* @since 1.0.0
*/
private function removeKeySingle($key) : bool
private function removeKeySingle(int|string $key) : bool
{
if (isset($this->keys[$key])) {
unset($this->keys[$key]);
@ -452,13 +452,13 @@ final class MultiMap implements \Countable
/**
* Get all sibling keys.
*
* @param mixed $key Key to find siblings for
* @param int|string|array $key Key to find siblings for
*
* @return array
*
* @since 1.0.0
*/
public function getSiblings($key) : array
public function getSiblings(int|string|array $key) : array
{
if ($this->keyType === KeyType::MULTIPLE) {
return $this->getSiblingsMultiple($key);
@ -470,13 +470,13 @@ final class MultiMap implements \Countable
/**
* Get all sibling keys.
*
* @param mixed $key Key to find siblings for
* @param int|string|array $key Key to find siblings for
*
* @return array
*
* @since 1.0.0
*/
public function getSiblingsMultiple($key) : array
public function getSiblingsMultiple(int|string|array $key) : array
{
if ($this->orderType === OrderType::LOOSE) {
$key = \is_array($key) ? $key : [$key];
@ -490,13 +490,13 @@ final class MultiMap implements \Countable
/**
* Get all sibling keys.
*
* @param mixed $key Key to find siblings for
* @param int|string $key Key to find siblings for
*
* @return array
*
* @since 1.0.0
*/
private function getSiblingsSingle($key) : array
private function getSiblingsSingle(int|string $key) : array
{
$siblings = [];

View File

@ -80,7 +80,7 @@ class PriorityQueue implements \Countable, \Serializable
*
* @since 1.0.0
*/
public function insert($data, float $priority = 1.0) : int
public function insert(mixed $data, float $priority = 1.0) : int
{
do {
$key = \mt_rand();

View File

@ -59,7 +59,7 @@ class Directory extends FileAbstract implements DirectoryInterface
*
* @since 1.0.0
*/
public static function ftpConnect(HttpUri $http)
public static function ftpConnect(HttpUri $http) : mixed
{
$con = \ftp_connect($http->host, $http->port, 10);

View File

@ -75,7 +75,7 @@ class File extends FileAbstract implements FileInterface
*
* @since 1.0.0
*/
public static function ftpConnect(HttpUri $http)
public static function ftpConnect(HttpUri $http) : mixed
{
$con = \ftp_connect($http->host, $http->port, 10);

View File

@ -88,7 +88,7 @@ final class ArrayUtils
*
* @since 1.0.0
*/
public static function setArray(string $path, array $data, $value, string $delim = '/', bool $overwrite = false) : array
public static function setArray(string $path, array $data, mixed $value, string $delim = '/', bool $overwrite = false) : array
{
$pathParts = \explode($delim, \trim($path, $delim));
$current = &$data;
@ -129,7 +129,7 @@ final class ArrayUtils
*
* @since 1.0.0
*/
public static function getArray(string $path, array $data, string $delim = '/')
public static function getArray(string $path, array $data, string $delim = '/') : mixed
{
$pathParts = \explode($delim, \trim($path, $delim));
$current = $data;
@ -160,7 +160,7 @@ final class ArrayUtils
*
* @since 1.0.0
*/
public static function inArrayRecursive($needle, array $haystack, $key = null) : bool
public static function inArrayRecursive(mixed $needle, array $haystack, $key = null) : bool
{
$found = false;
@ -356,7 +356,7 @@ final class ArrayUtils
*
* @since 1.0.0
*/
public static function arraySumRecursive(array $array)
public static function arraySumRecursive(array $array) : mixed
{
return \array_sum(self::arrayFlatten($array));
}

View File

@ -223,7 +223,7 @@ abstract class C128Abstract
*
* @since 1.0.0
*/
public function get()
public function get() : mixed
{
$codeString = static::$CODE_START . $this->generateCodeString() . static::$CODE_END;
@ -321,7 +321,7 @@ abstract class C128Abstract
*
* @since 1.0.0
*/
protected function createImage(string $codeString)
protected function createImage(string $codeString) : mixed
{
$dimensions = $this->calculateDimensions($codeString);
$image = \imagecreate($dimensions['width'], $dimensions['height']);

View File

@ -33,7 +33,7 @@ interface EncodingInterface
*
* @since 1.0.0
*/
public static function encode($source);
public static function encode(mixed $source);
/**
* Dedecodes text
@ -44,5 +44,5 @@ interface EncodingInterface
*
* @since 1.0.0
*/
public static function decode($decoded);
public static function decode(mixed $decoded);
}

View File

@ -341,7 +341,7 @@ class Repository
*
* @since 1.0.0
*/
public function commit(Commit $commit, $all = true) : string
public function commit(Commit $commit, bool $all = true) : string
{
return \implode("\n", $this->run('commit ' . ($all ? '-av' : '-v') . ' -m ' . \escapeshellarg($commit->getMessage())));
}

View File

@ -33,7 +33,7 @@ interface CsvInterface
*
* @since 1.0.0
*/
public function exportCsv($path) : void;
public function exportCsv(string $path) : void;
/**
* Import Csv.
@ -44,5 +44,5 @@ interface CsvInterface
*
* @since 1.0.0
*/
public function importCsv($path) : void;
public function importCsv(string $path) : void;
}

View File

@ -33,7 +33,7 @@ interface JsonInterface
*
* @since 1.0.0
*/
public function exportJson($path) : void;
public function exportJson(string $path) : void;
/**
* Import Json.
@ -44,5 +44,5 @@ interface JsonInterface
*
* @since 1.0.0
*/
public function importJson($path) : void;
public function importJson(string $path) : void;
}

View File

@ -33,5 +33,5 @@ interface PdfInterface
*
* @since 1.0.0
*/
public function exportPdf($path) : void;
public function exportPdf(string $path) : void;
}

View File

@ -33,7 +33,7 @@ interface SpreadsheetInterface
*
* @since 1.0.0
*/
public function exportSpreadsheet($path) : void;
public function exportSpreadsheet(string $path) : void;
/**
* Import Spreadsheet.
@ -44,5 +44,5 @@ interface SpreadsheetInterface
*
* @since 1.0.0
*/
public function importSpreadsheet($path) : void;
public function importSpreadsheet(string $path) : void;
}

View File

@ -27,7 +27,7 @@ interface ArchiveInterface
/**
* Create archive.
*
* @param mixed $sources Files and directories to compress
* @param string|array $sources Files and directories to compress
* @param string $destination Output destination
* @param bool $overwrite Overwrite if destination is existing
*
@ -35,7 +35,7 @@ interface ArchiveInterface
*
* @since 1.0.0
*/
public static function pack($sources, string $destination, bool $overwrite = false) : bool;
public static function pack(string|array $sources, string $destination, bool $overwrite = false) : bool;
/**
* Unpack archive.

View File

@ -29,7 +29,7 @@ class Gz implements ArchiveInterface
/**
* {@inheritdoc}
*/
public static function pack($source, string $destination, bool $overwrite = false) : bool
public static function pack(string|array $source, string $destination, bool $overwrite = false) : bool
{
$destination = \str_replace('\\', '/', $destination);
if (!$overwrite && \is_file($destination) || !\is_file($source)) {

View File

@ -31,7 +31,7 @@ class Tar implements ArchiveInterface
/**
* {@inheritdoc}
*/
public static function pack($sources, string $destination, bool $overwrite = false) : bool
public static function pack(string|array $sources, string $destination, bool $overwrite = false) : bool
{
$destination = FileUtils::absolute(\str_replace('\\', '/', $destination));

View File

@ -31,7 +31,7 @@ class TarGz implements ArchiveInterface
/**
* {@inheritdoc}
*/
public static function pack($source, string $destination, bool $overwrite = false) : bool
public static function pack(string|array $source, string $destination, bool $overwrite = false) : bool
{
$destination = \str_replace('\\', '/', $destination);
if (!$overwrite && \is_file($destination)) {

View File

@ -31,7 +31,7 @@ class Zip implements ArchiveInterface
/**
* {@inheritdoc}
*/
public static function pack($sources, string $destination, bool $overwrite = false) : bool
public static function pack(string|array $sources, string $destination, bool $overwrite = false) : bool
{
$destination = FileUtils::absolute(\str_replace('\\', '/', $destination));

View File

@ -80,7 +80,7 @@ final class MbStringUtils
*
* @since 1.0.0
*/
public static function mb_startsWith(string $haystack, $needles) : bool
public static function mb_startsWith(string $haystack, string|array $needles) : bool
{
if (\is_string($needles)) {
$needles = [$needles];

View File

@ -63,7 +63,7 @@ class ArrayParser
*
* @since 1.0.0
*/
public static function parseVariable($value, int $depth = 1) : string
public static function parseVariable(mixed $value, int $depth = 1) : string
{
if (\is_array($value)) {
return self::serializeArray($value, $depth);

View File

@ -103,13 +103,13 @@ final class Permutation
* @param array|string $toPermute To permutate
* @param array $key Permutation keys
*
* @return mixed
* @return string|array
*
* @throws \OutOfBoundsException This exception is thrown if the permutation key is larger than the data to permute
*
* @since 1.0.0
*/
public static function permutate($toPermute, array $key)
public static function permutate(string|array $toPermute, array $key) : string|array
{
$length = \is_array($toPermute) ? \count($toPermute) : \strlen($toPermute);

View File

@ -191,7 +191,7 @@ final class StringUtils
*
* @since 1.0.0
*/
public static function stringify($element, $option = null) : ?string
public static function stringify(mixed $element, mixed $option = null) : ?string
{
if ($element instanceof \JsonSerializable || \is_array($element)) {
$encoded = \json_encode($element, $option !== null ? $option : 0);

View File

@ -47,7 +47,7 @@ final class TestUtils
*
* @since 1.0.0
*/
public static function setMember(object $obj, string $name, $value) : bool
public static function setMember(object $obj, string $name, mixed $value) : bool
{
$reflectionClass = new \ReflectionClass(\get_class($obj));
@ -80,7 +80,7 @@ final class TestUtils
*
* @since 1.0.0
*/
public static function getMember(object $obj, string $name)
public static function getMember(object $obj, string $name) : mixed
{
$reflectionClass = new \ReflectionClass($obj);

View File

@ -29,7 +29,7 @@ abstract class DateTime extends ValidatorAbstract
/**
* {@inheritdoc}
*/
public static function isValid($value, array $constraints = null) : bool
public static function isValid(mixed $value, array $constraints = null) : bool
{
return (bool) \strtotime($value);
}

View File

@ -30,7 +30,7 @@ abstract class Json extends ValidatorAbstract
/**
* {@inheritdoc}
*/
public static function isValid($value, array $constraints = null) : bool
public static function isValid(mixed $value, array $constraints = null) : bool
{
\json_decode($value);

View File

@ -29,7 +29,7 @@ final class BIC extends ValidatorAbstract
/**
* {@inheritdoc}
*/
public static function isValid($value, array $constraints = null) : bool
public static function isValid(mixed $value, array $constraints = null) : bool
{
return (bool) \preg_match('/^[a-z]{6}[0-9a-z]{2}([0-9a-z]{3})?\z/i', $value);
}

View File

@ -29,7 +29,7 @@ final class Iban extends ValidatorAbstract
/**
* {@inheritdoc}
*/
public static function isValid($value, array $constraints = null) : bool
public static function isValid(mixed $value, array $constraints = null) : bool
{
$value = \str_replace(' ', '', \strtolower($value));

View File

@ -39,7 +39,7 @@ abstract class Email extends ValidatorAbstract
/**
* {@inheritdoc}
*/
public static function isValid($value, array $constraints = null) : bool
public static function isValid(mixed $value, array $constraints = null) : bool
{
if (\filter_var($value, \FILTER_VALIDATE_EMAIL) === false) {
self::$msg = 'Invalid Email by filter_var standards';

View File

@ -39,7 +39,7 @@ abstract class Hostname extends ValidatorAbstract
/**
* {@inheritdoc}
*/
public static function isValid($value, array $constraints = null) : bool
public static function isValid(mixed $value, array $constraints = null) : bool
{
return \filter_var(\gethostbyname($value), \FILTER_VALIDATE_IP) !== false;
}

View File

@ -39,7 +39,7 @@ abstract class Ip extends ValidatorAbstract
/**
* {@inheritdoc}
*/
public static function isValid($value, array $constraints = null) : bool
public static function isValid(mixed $value, array $constraints = null) : bool
{
return \filter_var($value, \FILTER_VALIDATE_IP) !== false;
}
@ -53,7 +53,7 @@ abstract class Ip extends ValidatorAbstract
*
* @since 1.0.0
*/
public static function isValidIpv6($value) : bool
public static function isValidIpv6(mixed $value) : bool
{
return \filter_var($value, \FILTER_VALIDATE_IP, \FILTER_FLAG_IPV6) !== false;
}
@ -67,7 +67,7 @@ abstract class Ip extends ValidatorAbstract
*
* @since 1.0.0
*/
public static function isValidIpv4($value) : bool
public static function isValidIpv4(mixed $value) : bool
{
return \filter_var($value, \FILTER_VALIDATE_IP, \FILTER_FLAG_IPV4) !== false;
}

View File

@ -38,7 +38,7 @@ final class Validator extends ValidatorAbstract
*
* @since 1.0.0
*/
public static function isValid($var, array $constraints = null) : bool
public static function isValid(mixed $var, array $constraints = null) : bool
{
if ($constraints === null) {
return true;

View File

@ -34,7 +34,7 @@ interface ValidatorInterface
*
* @since 1.0.0
*/
public static function isValid($value, array $constraints = null);
public static function isValid(mixed $value, array $constraints = null);
/**
* Get most recent error string.

View File

@ -127,7 +127,7 @@ class View extends ViewAbstract
*
* @since 1.0.0
*/
public function getData(string $id)
public function getData(string $id) : mixed
{
return $this->data[$id] ?? null;
}
@ -142,7 +142,7 @@ class View extends ViewAbstract
*
* @since 1.0.0
*/
public function setData(string $id, $data) : void
public function setData(string $id, mixed $data) : void
{
$this->data[$id] = $data;
}
@ -177,7 +177,7 @@ class View extends ViewAbstract
*
* @since 1.0.0
*/
public function addData(string $id, $data) : bool
public function addData(string $id, mixed $data) : bool
{
if (isset($this->data[$id])) {
return false;
@ -191,7 +191,7 @@ class View extends ViewAbstract
/**
* Get translation.
*
* @param mixed $translation Text
* @param string $translation Text
* @param string $module Module name
* @param string $theme Theme name
*
@ -199,7 +199,7 @@ class View extends ViewAbstract
*
* @since 1.0.0
*/
public function getText($translation, string $module = null, string $theme = null) : string
public function getText(string $translation, string $module = null, string $theme = null) : string
{
if ($module === null && $this->module === null) {
$this->setModuleDynamically();

View File

@ -81,29 +81,29 @@ abstract class ViewAbstract implements RenderableInterface
/**
* Print html output.
*
* @param mixed $text Text
* @param string $text Text
*
* @return string
*
* @since 1.0.0
*/
public function printHtml($text) : string
public function printHtml(string $text) : string
{
return \htmlspecialchars((string) $text);
return \htmlspecialchars($text);
}
/**
* Print html output.
*
* @param mixed $text Text
* @param string $text Text
*
* @return string
*
* @since 1.0.0
*/
public static function html($text) : string
public static function html(string $text) : string
{
return \htmlspecialchars((string) $text);
return \htmlspecialchars($text);
}
/**
@ -123,11 +123,11 @@ abstract class ViewAbstract implements RenderableInterface
*
* @param string $id View ID
*
* @return false|View
* @return false|self
*
* @since 1.0.0
*/
public function getView(string $id)
public function getView(string $id) : bool|self
{
if (!isset($this->views[$id])) {
return false;

View File

@ -21,9 +21,9 @@ require_once __DIR__ . '/../../Autoloader.php';
class NumericElement implements SortableInterface
{
public $value = 0;
public int|float $value = 0;
public function __construct($value)
public function __construct(int|float $value)
{
$this->value = $value;
}
@ -38,12 +38,12 @@ class NumericElement implements SortableInterface
return $this->value === $obj->getValue();
}
public function getValue()
public function getValue() : int|float
{
return $this->value;
}
public static function max(array $list)
public static function max(array $list) : int|float
{
$values = [];
foreach ($list as $element) {
@ -53,7 +53,7 @@ class NumericElement implements SortableInterface
return \max($values);
}
public static function min(array $list)
public static function min(array $list) : int|float
{
$values = [];
foreach ($list as $element) {

View File

@ -192,18 +192,6 @@ class DispatcherTest extends \PHPUnit\Framework\TestCase
);
}
/**
* @testdox A invalid destination type throws UnexpectedValueException
* @covers phpOMS\Dispatcher\Dispatcher
* @group framework
*/
public function testInvalidDestination() : void
{
$this->expectException(\UnexpectedValueException::class);
$this->app->dispatcher->dispatch(true);
}
/**
* @testdox A invalid controller path throws a PathException
* @covers phpOMS\Dispatcher\Dispatcher

View File

@ -438,60 +438,6 @@ class MatrixTest extends \PHPUnit\Framework\TestCase
$id->get(99, 99);
}
/**
* @testdox Subtracting a invalid data type from a matrix throws a InvalidArgumentException
* @covers phpOMS\Math\Matrix\Matrix
* @group framework
*/
public function testInvalidSub() : void
{
$this->expectException(\InvalidArgumentException::class);
$id = new Matrix();
$id->setMatrix([
[1, 0],
[0, 1],
]);
$id->sub(true);
}
/**
* @testdox Adding a invalid data type from a matrix throws a InvalidArgumentException
* @covers phpOMS\Math\Matrix\Matrix
* @group framework
*/
public function testInvalidAdd() : void
{
$this->expectException(\InvalidArgumentException::class);
$id = new Matrix();
$id->setMatrix([
[1, 0],
[0, 1],
]);
$id->add(true);
}
/**
* @testdox Multiplying a invalid data type from a matrix throws a InvalidArgumentException
* @covers phpOMS\Math\Matrix\Matrix
* @group framework
*/
public function testInvalidMult() : void
{
$this->expectException(\InvalidArgumentException::class);
$id = new Matrix();
$id->setMatrix([
[1, 0],
[0, 1],
]);
$id->mult(true);
}
/**
* @testdox Adding a matrix with a different dimension to a matrix throws a InvalidDimensionException
* @covers phpOMS\Math\Matrix\Matrix

View File

@ -219,56 +219,4 @@ class ComplexTest extends \PHPUnit\Framework\TestCase
$cpl2 = new Complex(-1, 3);
self::assertEquals('1.04 + 1.44i', $cpl2->sqrt()->render());
}
/**
* @testdox A invalid type addition throws a InvalidArgumentException
* @covers phpOMS\Math\Number\Complex
* @group framework
*/
public function testInvalidAdd() : void
{
$this->expectException(\InvalidArgumentException::class);
$cpl = new Complex(4, 3);
$cpl->add(true);
}
/**
* @testdox A invalid type subtraction throws a InvalidArgumentException
* @covers phpOMS\Math\Number\Complex
* @group framework
*/
public function testInvalidSub() : void
{
$this->expectException(\InvalidArgumentException::class);
$cpl = new Complex(4, 3);
$cpl->sub(true);
}
/**
* @testdox A invalid type cannot multiplication throws a InvalidArgumentException
* @covers phpOMS\Math\Number\Complex
* @group framework
*/
public function testInvalidMult() : void
{
$this->expectException(\InvalidArgumentException::class);
$cpl = new Complex(4, 3);
$cpl->mult(true);
}
/**
* @testdox A invalid type division throws a InvalidArgumentException
* @covers phpOMS\Math\Number\Complex
* @group framework
*/
public function testInvalidDiv() : void
{
$this->expectException(\InvalidArgumentException::class);
$cpl = new Complex(4, 3);
$cpl->div(true);
}
}

View File

@ -130,7 +130,7 @@ class ErrorTest extends \PHPUnit\Framework\TestCase
$scaledErrors = Error::getScaledErrorArray($errors, $observed);
self::assertEqualsWithDelta(
Error::getMeanAbsoluteScaledError(ArrayUtils::powerInt($scaledErrors, 2)),
Error::getMeanAbsoluteScaledError(ArrayUtils::power($scaledErrors, 2)),
Error::getMeanSquaredScaledError($scaledErrors), 0.01
);
}