starting work on modernizing everything for v1.5

This commit is contained in:
Joby 2022-12-03 11:01:45 -07:00
parent 2c1b190b43
commit 949337ccbb
16 changed files with 104 additions and 49 deletions

14
.github/workflows/phpstan.yml vendored Normal file
View file

@ -0,0 +1,14 @@
name: phpstan
on: push
jobs:
phpstan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: php-actions/composer@v6
with:
dev: yes
- uses: php-actions/phpstan@v3
with:
memory_limit: 1G
args: --memory-limit 1G

11
.github/workflows/phpunit.yml vendored Normal file
View file

@ -0,0 +1,11 @@
name: phpunit
on: push
jobs:
phpunit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: php-actions/composer@v6
with:
dev: yes
- uses: php-actions/phpunit@v3

6
.gitignore vendored
View file

@ -1,2 +1,4 @@
/vendor/
composer.lock
/vendor
/composer.lock
/.phpunit.result.cache
/coverage

View file

@ -3,12 +3,15 @@
"description": "A library for working with multi-dimensional arrays through flattened keys",
"type": "library",
"license": "MIT",
"authors": [{
"name": "Joby Elliott",
"email": "joby@byjoby.com"
}],
"authors": [
{
"name": "Joby Elliott",
"email": "joby@byjoby.com"
}
],
"require-dev": {
"phpunit/phpunit": "^7.3"
"phpunit/phpunit": "^9.5",
"phpstan/phpstan": "^1.9"
},
"autoload": {
"psr-4": {
@ -21,12 +24,11 @@
}
},
"scripts": {
"test": [
"phpunit"
]
"test": "phpunit",
"stan": "phpstan"
},
"require": {
"php": ">=7.1",
"php": ">=8.1",
"mustangostang/spyc": "^0.6.3"
}
}

4
phpstan.neon Normal file
View file

@ -0,0 +1,4 @@
parameters:
level: 1
paths:
- src

View file

@ -1,7 +1,31 @@
<phpunit bootstrap="vendor/autoload.php">
<?xml version="1.0" encoding="UTF-8"?>
<phpunit
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
colors="true"
executionOrder="random"
failOnWarning="true"
failOnRisky="true"
failOnEmptyTestSuite="true"
beStrictAboutOutputDuringTests="true"
verbose="true"
bootstrap="vendor/autoload.php">
<php>
<ini name="display_errors" value="On" />
<ini name="error_reporting" value="-1" />
<ini name="xdebug.mode" value="coverage" />
</php>
<testsuites>
<testsuite name="All">
<directory>tests</directory>
<testsuite name="Tests">
<directory>tests/</directory>
</testsuite>
</testsuites>
</phpunit>
<coverage>
<include>
<directory suffix=".php">src</directory>
</include>
<report>
<html outputDirectory="coverage" lowUpperBound="50" highLowerBound="90" />
</report>
</coverage>
</phpunit>

View file

@ -1,5 +1,5 @@
<?php
/* Flatrr | https://gitlab.com/byjoby/flatrr | MIT License */
/* Flatrr | https://github.com/jobyone/flatrr | MIT License */
namespace Flatrr\Config;

View file

@ -1,5 +1,5 @@
<?php
/* Flatrr | https://gitlab.com/byjoby/flatrr | MIT License */
/* Flatrr | https://github.com/jobyone/flatrr | MIT License */
namespace Flatrr\Config;
interface ConfigInterface extends \ArrayAccess

View file

@ -1,5 +1,5 @@
<?php
/* Flatrr | https://gitlab.com/byjoby/flatrr | MIT License */
/* Flatrr | https://github.com/jobyone/flatrr | MIT License */
namespace Flatrr;
class FlatArray implements FlatArrayInterface

View file

@ -1,8 +1,16 @@
<?php
/* Flatrr | https://gitlab.com/byjoby/flatrr | MIT License */
/* Flatrr | https://github.com/jobyone/flatrr | MIT License */
namespace Flatrr;
interface FlatArrayInterface extends \ArrayAccess, \Iterator
use ArrayAccess;
use Iterator;
/**
* @extends ArrayAccess<string|mixed>
* @extends Iterator<string|mixed>
*/
interface FlatArrayInterface extends ArrayAccess, Iterator
{
public function set(?string $name, $value);
public function get(?string $name = null);

View file

@ -1,5 +1,5 @@
<?php
/* Flatrr | https://gitlab.com/byjoby/flatrr | MIT License */
/* Flatrr | https://github.com/jobyone/flatrr | MIT License */
namespace Flatrr;
@ -71,47 +71,47 @@ trait FlatArrayTrait
$this->flattenSearch($name, null, true);
}
public function offsetSet($name, $value)
public function offsetSet($name, $value): void
{
return $this->set($name, $value);
$this->set($name, $value);
}
public function offsetGet($name)
public function offsetGet($name): mixed
{
return $this->get($name);
}
public function offsetExists($name)
public function offsetExists($name): bool
{
return $this->flattenSearch($name) !== null;
}
public function offsetUnset($name)
public function offsetUnset($name): void
{
$this->unset($name);
}
public function rewind()
public function rewind(): void
{
return reset($this->_arrayData);
reset($this->_arrayData);
}
public function current()
public function current(): mixed
{
return current($this->_arrayData);
}
public function next()
public function next(): void
{
return next($this->_arrayData);
next($this->_arrayData);
}
public function key()
public function key(): null|string
{
return key($this->_arrayData);
}
public function valid()
public function valid(): bool
{
return isset($this->_arrayData[$this->key()]);
}

View file

@ -1,5 +1,5 @@
<?php
/* Flatrr | https://gitlab.com/byjoby/flatrr | MIT License */
/* Flatrr | https://github.com/jobyone/flatrr | MIT License */
namespace Flatrr;
@ -46,17 +46,7 @@ class SelfReferencingFlatArray extends FlatArray
return $this->filter(parent::shift($name));
}
public function rewind()
{
return $this->filter(parent::rewind());
}
public function next()
{
return $this->filter(parent::next());
}
public function current()
public function current(): mixed
{
return $this->filter(parent::current());
}

View file

@ -1,5 +1,5 @@
<?php
/* Flatrr | https://gitlab.com/byjoby/flatrr | MIT License */
/* Flatrr | https://github.com/jobyone/flatrr | MIT License */
declare(strict_types=1);
namespace Flatrr\Config;

View file

@ -1,5 +1,5 @@
<?php
/* Flatrr | https://gitlab.com/byjoby/flatrr | MIT License */
/* Flatrr | https://github.com/jobyone/flatrr | MIT License */
declare(strict_types=1);
namespace Flatrr;

View file

@ -1,5 +1,5 @@
<?php
/* Flatrr | https://gitlab.com/byjoby/flatrr | MIT License */
/* Flatrr | https://github.com/jobyone/flatrr | MIT License */
declare(strict_types=1);
namespace Flatrr;

View file

@ -1,5 +1,5 @@
<?php
/* Flatrr | https://gitlab.com/byjoby/flatrr | MIT License */
/* Flatrr | https://github.com/jobyone/flatrr | MIT License */
declare(strict_types=1);
namespace Flatrr;