Extend functionality based on module needs

This commit is contained in:
Dennis Eichhorn 2018-09-15 13:30:51 +02:00
parent 84d64ed53f
commit 4e66128ea4
4 changed files with 21 additions and 4 deletions

View File

@ -138,6 +138,18 @@ final class InfoManager
return $this->info;
}
/**
* Get info data.
*
* @return int
*
* @since 1.0.0
*/
public function getId() : int
{
return $this->info['name']['id'] ?? 0;
}
/**
* Get info data.
*

View File

@ -151,20 +151,21 @@ final class ArrayUtils
*
* @param mixed $needle Needle for search
* @param array $haystack Haystack for search
* @param mixed $key Key that has to match (optional)
*
* @return bool
*
* @since 1.0.0
*/
public static function inArrayRecursive($needle, array $haystack) : bool
public static function inArrayRecursive($needle, array $haystack, $key = null) : bool
{
$found = false;
foreach ($haystack as $item) {
if ($item === $needle) {
foreach ($haystack as $k => $item) {
if ($item === $needle && ($key === null || $key === $k)) {
return true;
} elseif (\is_array($item)) {
$found = self::inArrayRecursive($needle, $item);
$found = self::inArrayRecursive($needle, $item, $key);
if ($found) {
return true;

View File

@ -27,6 +27,7 @@ class InfoManagerTest extends \PHPUnit\Framework\TestCase
$jarray = \json_decode(file_get_contents(__DIR__ . '/info-test.json'), true);
self::assertEquals($jarray, $info->get());
self::assertEquals($jarray['name']['id'], $info->getId());
self::assertEquals($jarray['name']['internal'], $info->getInternalName());
self::assertEquals($jarray['name']['external'], $info->getExternalName());
self::assertEquals($jarray['category'], $info->getCategory());

View File

@ -64,6 +64,9 @@ class ArrayUtilsTest extends \PHPUnit\Framework\TestCase
];
self::assertTrue(ArrayUtils::inArrayRecursive('aba', $expected));
self::assertTrue(ArrayUtils::inArrayRecursive('2a', $expected));
self::assertTrue(ArrayUtils::inArrayRecursive('2a', $expected, 2));
self::assertFalse(ArrayUtils::inArrayRecursive('2a', $expected, 3));
self::assertFalse(ArrayUtils::inArrayRecursive('aba', ArrayUtils::unsetArray('a/ab', $expected, '/')));
}