From ce39742ee923e5dcbb0b5ff28d4ae57262b1f7b8 Mon Sep 17 00:00:00 2001 From: Andreas Steiner Date: Mon, 10 Jun 2024 09:59:25 +0200 Subject: [PATCH 01/15] [TASK] #30517 Add magic function __call for get the mode with getMode() --- src/Settings.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Settings.php b/src/Settings.php index 6ffaa7e..7530859 100644 --- a/src/Settings.php +++ b/src/Settings.php @@ -352,8 +352,17 @@ class Settings implements \Iterator, \Countable { unset( $this->settings[$name] ); } - // }}} - + + public function __call(string $name, array $arguments) + { + $type = substr($name, 0, 3); + if ($type === 'get') { + $propertyName = lcfirst(substr($name , 3)); + return (is_array( $this->settings[$propertyName] )) + ? $this->create( $this->settings[$propertyName] ) + : $this->settings[$propertyName]; } + } + } /* jEdit buffer local properties {{{ From a3b096066153ca32d0c1d6a14f24d3c383e93286 Mon Sep 17 00:00:00 2001 From: Andreas Steiner Date: Mon, 10 Jun 2024 10:00:24 +0200 Subject: [PATCH 02/15] [CLEANUP] #30517 Remove unused line feeds and spaces --- src/Settings.php | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/Settings.php b/src/Settings.php index 7530859..fee1ede 100644 --- a/src/Settings.php +++ b/src/Settings.php @@ -29,7 +29,7 @@ namespace rabe\Util; class Settings implements \Iterator, \Countable { private const SITE = 0x01; - + private array $settings = []; private string $appPath = './'; @@ -68,7 +68,7 @@ class Settings implements \Iterator, \Countable public function appPath( ?string $path=null ) { if (! isset($path)) return $this->appPath; - + if ($this->pkgPath === $this->appPath) $this->pkgPath = $path; $this->appPath = $path; return $this; @@ -105,7 +105,7 @@ class Settings implements \Iterator, \Countable $this->modes += $modes; return $this; }// }}} - + // site() {{{ /** {{{ *///}}} @@ -114,7 +114,7 @@ class Settings implements \Iterator, \Countable $this->site = $site; return $this; }// }}} - + // load() method {{{ /** {{{ * Load the configuration from the files and merge them @@ -129,12 +129,12 @@ class Settings implements \Iterator, \Countable } else { - + $modes = $this->modes; - + // load Prefix.default.conf.php $defaultConf = $this->buildFileName( array_shift($modes) ); - + if ( file_exists($defaultConf) ) { $this->settings = require( $defaultConf ); @@ -145,17 +145,17 @@ class Settings implements \Iterator, \Countable throw new \Exception( "No settingsfile: $defaultConf" ); // throw new FileNotFoundException(); } - + // add modes from the drfault config file (no modes from other files are added) if (isset($this->settings['modes'])) { $this->addModes($this->settings['modes']); } - + // load local config without merging - we need it here for the mode $conf = $this->buildFileName(); $localConf = false; if (file_exists($conf)) $localConf = require($conf); - + // if a mode was set in the constructor do not overwrite it if (! isset($this->mode)) { // if a localConf Mode is set use it, or take the default conf mode @@ -163,7 +163,7 @@ class Settings implements \Iterator, \Countable } else { $this->settings['mode'] = $this->mode; } - + if ( isset($this->site) ) { $siteConf = $this->buildFileName(self::SITE); @@ -172,12 +172,12 @@ class Settings implements \Iterator, \Countable $localConf = array_replace_recursive($this->settings, require($siteConf)); } } - + // load and merge Prefix.mode.conf.php if ( isset( $this->modes[ $this->mode ] ) ) { $modeConf = $this->buildFileName( $this->modes[ $this->mode ] ); - + if ( file_exists($modeConf) ) { $this->settings = array_replace_recursive( $this->settings, require($modeConf) ); @@ -192,14 +192,14 @@ class Settings implements \Iterator, \Countable // log invalid mode throw new \Exception( "The mode '{$this->mode}' is not valid" ); } - + // merge Prefix.conf.php (localConf) if ($localConf !== false) { $this->settings = array_replace_recursive( $this->settings, $localConf ); } } - + // echo "
"; print_r( $this->settings ); echo "
"; return $this; }// }}} @@ -209,9 +209,9 @@ class Settings implements \Iterator, \Countable *///}}} public function mergeFile( ) { - + }// }}} - + // create() {{{ /** {{{ * Creates a copy of the Settingsobject without the configuration directives @@ -233,15 +233,15 @@ class Settings implements \Iterator, \Countable { $mode = ''; $path = $this->appPath.$this->confDir; - + if ($type === self::SITE) $path .= $this->site.'/'; - + if (is_string( $type ) &! empty( $type )) { $mode = "$type."; $path = $this->pkgPath.$this->confDir; } - + return $path.$this->filePrefix.$mode.$this->filePostfix; } // }}} @@ -324,7 +324,7 @@ class Settings implements \Iterator, \Countable count($this->settings); } // }}} - + // Magic getter/setter methods {{{ public function __set( $name, $value ) { @@ -367,4 +367,4 @@ class Settings implements \Iterator, \Countable /* jEdit buffer local properties {{{ * :folding=explicit:collapseFolds=1: -}}}*/ \ No newline at end of file +}}}*/ From 6f31664c05a29b1b996e6923ec64fce5e5b30455 Mon Sep 17 00:00:00 2001 From: Andreas Steiner Date: Wed, 24 Jul 2024 15:55:59 +0200 Subject: [PATCH 03/15] fix: #33454 Site config was not set in the correct order --- src/Settings.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Settings.php b/src/Settings.php index 6ffaa7e..52c4c06 100644 --- a/src/Settings.php +++ b/src/Settings.php @@ -169,7 +169,7 @@ class Settings implements \Iterator, \Countable $siteConf = $this->buildFileName(self::SITE); if (file_exists($siteConf)) { - $localConf = array_replace_recursive($this->settings, require($siteConf)); + $localConf = array_replace_recursive($localConf, require($siteConf)); } } @@ -177,7 +177,7 @@ class Settings implements \Iterator, \Countable if ( isset( $this->modes[ $this->mode ] ) ) { $modeConf = $this->buildFileName( $this->modes[ $this->mode ] ); - + if ( file_exists($modeConf) ) { $this->settings = array_replace_recursive( $this->settings, require($modeConf) ); From 42921d04567f55bbedf4321772a5ba7605692025 Mon Sep 17 00:00:00 2001 From: Andreas Steiner Date: Mon, 29 Jul 2024 11:41:28 +0200 Subject: [PATCH 04/15] fix: #33454 The localConf variable cannot be false by default; in which case the site test will fail --- src/Settings.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Settings.php b/src/Settings.php index 52c4c06..0d0089a 100644 --- a/src/Settings.php +++ b/src/Settings.php @@ -153,7 +153,7 @@ class Settings implements \Iterator, \Countable // load local config without merging - we need it here for the mode $conf = $this->buildFileName(); - $localConf = false; + $localConf = []; if (file_exists($conf)) $localConf = require($conf); // if a mode was set in the constructor do not overwrite it From 31735d869278542bae28436170af92ff280f3211 Mon Sep 17 00:00:00 2001 From: Andreas Steiner Date: Mon, 29 Jul 2024 12:53:02 +0200 Subject: [PATCH 05/15] fix: #33454 Fix construct and load test --- tests/SettingsTest.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/SettingsTest.php b/tests/SettingsTest.php index dd78e34..758bbb9 100644 --- a/tests/SettingsTest.php +++ b/tests/SettingsTest.php @@ -30,7 +30,7 @@ class SettingsTest extends TestCase public function testConstruct() { $cfg = new Settings(); - $this->assertNotEmpty($cfg); + $this->assertIsObject($cfg); } /** @@ -69,7 +69,7 @@ class SettingsTest extends TestCase { $cfg = new Settings(); $cfg = $this->appPath($cfg)->load(); - $this->assertNotEmpty($cfg); + $this->assertIsObject($cfg); return $cfg; } @@ -224,4 +224,4 @@ class SettingsTest extends TestCase /* jEdit buffer local properties {{{ * :folding=explicit:collapseFolds=1: -}}}*/ \ No newline at end of file +}}}*/ From d57c247860bf1639d2c4d00609acb4486195c8cd Mon Sep 17 00:00:00 2001 From: Andreas Steiner Date: Mon, 29 Jul 2024 18:32:11 +0200 Subject: [PATCH 06/15] feat: #33454 Addition of a test to check the correct loading order --- tests/SettingsTest.php | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/tests/SettingsTest.php b/tests/SettingsTest.php index 758bbb9..64ed411 100644 --- a/tests/SettingsTest.php +++ b/tests/SettingsTest.php @@ -129,7 +129,23 @@ class SettingsTest extends TestCase $this->assertEquals('site', $cfg->testFile); $this->assertEquals(42, $cfg->answer); } - + + /** + */ + public function testLoadingOrder() + { + $cfg = new Settings(); + $cfg = $this->appPath($cfg, 'order')->site('site')->load(); + + $this->assertEquals('default', $cfg->testFiles); + $this->assertEquals('conf', $cfg->testFiles2); + $this->assertEquals('site', $cfg->testFile); + $this->assertEquals(42, $cfg->answer); + + return $cfg; + } + + /** */ public function testTestingOverride() From a58fe8454f46c6d12a17624c5d4d0a08d879475f Mon Sep 17 00:00:00 2001 From: Andreas Steiner Date: Mon, 29 Jul 2024 18:44:48 +0200 Subject: [PATCH 07/15] fix: #33454 Add missing files for the correct loading order test --- tests/cfg/order/config/conf.php | 5 +++++ tests/cfg/order/config/default.conf.php | 4 ++++ tests/cfg/order/config/site/conf.php | 4 ++++ 3 files changed, 13 insertions(+) create mode 100644 tests/cfg/order/config/conf.php create mode 100644 tests/cfg/order/config/default.conf.php create mode 100644 tests/cfg/order/config/site/conf.php diff --git a/tests/cfg/order/config/conf.php b/tests/cfg/order/config/conf.php new file mode 100644 index 0000000..8ea09df --- /dev/null +++ b/tests/cfg/order/config/conf.php @@ -0,0 +1,5 @@ + 1, + 'testFile' => 'conf', + 'testFiles2' => 'conf' +]; diff --git a/tests/cfg/order/config/default.conf.php b/tests/cfg/order/config/default.conf.php new file mode 100644 index 0000000..1cdaca9 --- /dev/null +++ b/tests/cfg/order/config/default.conf.php @@ -0,0 +1,4 @@ + 'prod', + 'testFiles' => 'default', +]; diff --git a/tests/cfg/order/config/site/conf.php b/tests/cfg/order/config/site/conf.php new file mode 100644 index 0000000..54ad2b8 --- /dev/null +++ b/tests/cfg/order/config/site/conf.php @@ -0,0 +1,4 @@ + 42, + 'testFile' => 'site' +]; From 862addacd51402cf99e3cb40caa94f9eade3031f Mon Sep 17 00:00:00 2001 From: Andreas Steiner Date: Mon, 29 Jul 2024 18:32:11 +0200 Subject: [PATCH 08/15] feat: #33454 Addition of a test to check the correct loading order --- tests/SettingsTest.php | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/tests/SettingsTest.php b/tests/SettingsTest.php index dd78e34..3ca1403 100644 --- a/tests/SettingsTest.php +++ b/tests/SettingsTest.php @@ -129,7 +129,23 @@ class SettingsTest extends TestCase $this->assertEquals('site', $cfg->testFile); $this->assertEquals(42, $cfg->answer); } - + + /** + */ + public function testLoadingOrder() + { + $cfg = new Settings(); + $cfg = $this->appPath($cfg, 'order')->site('site')->load(); + + $this->assertEquals('default', $cfg->testFiles); + $this->assertEquals('conf', $cfg->testFiles2); + $this->assertEquals('site', $cfg->testFile); + $this->assertEquals(42, $cfg->answer); + + return $cfg; + } + + /** */ public function testTestingOverride() From 09549adf2bda481a4470bc76a68f52f1259f92db Mon Sep 17 00:00:00 2001 From: Andreas Steiner Date: Mon, 29 Jul 2024 18:44:48 +0200 Subject: [PATCH 09/15] fix: #33454 Add missing files for the correct loading order test --- tests/cfg/order/config/conf.php | 5 +++++ tests/cfg/order/config/default.conf.php | 4 ++++ tests/cfg/order/config/site/conf.php | 4 ++++ 3 files changed, 13 insertions(+) create mode 100644 tests/cfg/order/config/conf.php create mode 100644 tests/cfg/order/config/default.conf.php create mode 100644 tests/cfg/order/config/site/conf.php diff --git a/tests/cfg/order/config/conf.php b/tests/cfg/order/config/conf.php new file mode 100644 index 0000000..8ea09df --- /dev/null +++ b/tests/cfg/order/config/conf.php @@ -0,0 +1,5 @@ + 1, + 'testFile' => 'conf', + 'testFiles2' => 'conf' +]; diff --git a/tests/cfg/order/config/default.conf.php b/tests/cfg/order/config/default.conf.php new file mode 100644 index 0000000..1cdaca9 --- /dev/null +++ b/tests/cfg/order/config/default.conf.php @@ -0,0 +1,4 @@ + 'prod', + 'testFiles' => 'default', +]; diff --git a/tests/cfg/order/config/site/conf.php b/tests/cfg/order/config/site/conf.php new file mode 100644 index 0000000..54ad2b8 --- /dev/null +++ b/tests/cfg/order/config/site/conf.php @@ -0,0 +1,4 @@ + 42, + 'testFile' => 'site' +]; From 270e64fa36ebbe80eba430968884659be42eaf11 Mon Sep 17 00:00:00 2001 From: Andreas Steiner Date: Mon, 29 Jul 2024 12:53:02 +0200 Subject: [PATCH 10/15] fix: #33454 Fix construct and load test --- tests/SettingsTest.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/SettingsTest.php b/tests/SettingsTest.php index 3ca1403..64ed411 100644 --- a/tests/SettingsTest.php +++ b/tests/SettingsTest.php @@ -30,7 +30,7 @@ class SettingsTest extends TestCase public function testConstruct() { $cfg = new Settings(); - $this->assertNotEmpty($cfg); + $this->assertIsObject($cfg); } /** @@ -69,7 +69,7 @@ class SettingsTest extends TestCase { $cfg = new Settings(); $cfg = $this->appPath($cfg)->load(); - $this->assertNotEmpty($cfg); + $this->assertIsObject($cfg); return $cfg; } @@ -240,4 +240,4 @@ class SettingsTest extends TestCase /* jEdit buffer local properties {{{ * :folding=explicit:collapseFolds=1: -}}}*/ \ No newline at end of file +}}}*/ From b1ca44843b50b3af478ef6bdc6cb1339f760ec91 Mon Sep 17 00:00:00 2001 From: norb Date: Tue, 30 Jul 2024 14:37:57 +0200 Subject: [PATCH 11/15] fix: #33454 add config in default to be overwritten --- tests/cfg/order/config/default.conf.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/cfg/order/config/default.conf.php b/tests/cfg/order/config/default.conf.php index 1cdaca9..90020ca 100644 --- a/tests/cfg/order/config/default.conf.php +++ b/tests/cfg/order/config/default.conf.php @@ -1,4 +1,7 @@ 'prod', + 'answer' => 0, + 'testFile' => 'default', 'testFiles' => 'default', + 'testFiles2' => 'default' ]; From aaf4321f56cd805f7a79346f21a99e436226f7f7 Mon Sep 17 00:00:00 2001 From: norb Date: Mon, 11 Nov 2024 16:26:22 +0100 Subject: [PATCH 12/15] fix: deprecated Settings should be compatible with \Iterator --- src/Settings.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Settings.php b/src/Settings.php index 0d0089a..0f30031 100644 --- a/src/Settings.php +++ b/src/Settings.php @@ -270,7 +270,7 @@ class Settings implements \Iterator, \Countable * Rewind the Iterator to the first element * @link https://www.php.net/iterator.rewind */ - public function rewind() + public function rewind(): void { reset( $this->settings); } @@ -279,7 +279,7 @@ class Settings implements \Iterator, \Countable * Return the current element * @link https://www.php.net/iterator.current */ - public function current() + public function current(): mixed { return current( $this->settings ); } @@ -288,7 +288,7 @@ class Settings implements \Iterator, \Countable * Return the key of the current element * @link https://www.php.net/iterator.key */ - public function key() + public function key(): mixed { return key( $this->settings ); } @@ -297,16 +297,16 @@ class Settings implements \Iterator, \Countable * Move forward to next element * @link https://www.php.net/iterator.next */ - public function next() + public function next(): void { - return next( $this->settings ); + next( $this->settings ); } /** * Checks if current position is valid * @link https://www.php.net/iterator.valid */ - public function valid() + public function valid(): bool { $key = key( $this->settings ); return ($key !== null && $key !== false); From 415b8f1a8ecc0a97d9b2c4713e2d2f6a3e1492d3 Mon Sep 17 00:00:00 2001 From: norb Date: Mon, 11 Nov 2024 16:33:27 +0100 Subject: [PATCH 13/15] fix: deprecated Settings should be compatible with \Countable --- src/Settings.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Settings.php b/src/Settings.php index 0f30031..56e1b0f 100644 --- a/src/Settings.php +++ b/src/Settings.php @@ -319,9 +319,9 @@ class Settings implements \Iterator, \Countable * Count elements * @link https://www.php.net/countable.count.php */ - public function count() + public function count(): int { - count($this->settings); + return count($this->settings); } // }}} From 0184e757be19a2e2878110d216e594faa149d765 Mon Sep 17 00:00:00 2001 From: norb Date: Tue, 14 Jan 2025 17:11:56 +0100 Subject: [PATCH 14/15] feat: add cfg to vendor bin --- composer.json | 1 + 1 file changed, 1 insertion(+) diff --git a/composer.json b/composer.json index 336c8bf..5905b59 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,7 @@ { "name": "rabe/util-settings", "description": "Package for reading and writing configuration settings", + "bin": ["bin/cfg"], "license": "AGPL3", "authors": [ { From 65178d7ba2533fb8fc24f25dcee44449320f0b0a Mon Sep 17 00:00:00 2001 From: norb Date: Tue, 14 Jan 2025 17:12:28 +0100 Subject: [PATCH 15/15] task: update composer packages --- composer.lock | 265 ++++++++++++++++++++++++++------------------------ 1 file changed, 138 insertions(+), 127 deletions(-) diff --git a/composer.lock b/composer.lock index 671abee..5974213 100644 --- a/composer.lock +++ b/composer.lock @@ -498,30 +498,30 @@ "packages-dev": [ { "name": "doctrine/instantiator", - "version": "1.5.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" + "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", - "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", + "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^8.1" }, "require-dev": { - "doctrine/coding-standard": "^9 || ^11", + "doctrine/coding-standard": "^11", "ext-pdo": "*", "ext-phar": "*", - "phpbench/phpbench": "^0.16 || ^1", - "phpstan/phpstan": "^1.4", - "phpstan/phpstan-phpunit": "^1", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.30 || ^5.4" + "phpbench/phpbench": "^1.2", + "phpstan/phpstan": "^1.9.4", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^9.5.27", + "vimeo/psalm": "^5.4" }, "type": "library", "autoload": { @@ -548,7 +548,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.5.0" + "source": "https://github.com/doctrine/instantiator/tree/2.0.0" }, "funding": [ { @@ -564,20 +564,20 @@ "type": "tidelift" } ], - "time": "2022-12-30T00:15:36+00:00" + "time": "2022-12-30T00:23:10+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.11.1", + "version": "1.12.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" + "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/123267b2c49fbf30d78a7b2d333f6be754b94845", + "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845", "shasum": "" }, "require": { @@ -585,11 +585,12 @@ }, "conflict": { "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3,<3.2.2" + "doctrine/common": "<2.13.3 || >=3 <3.2.2" }, "require-dev": { "doctrine/collections": "^1.6.8", "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", @@ -615,7 +616,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" + "source": "https://github.com/myclabs/DeepCopy/tree/1.12.1" }, "funding": [ { @@ -623,29 +624,31 @@ "type": "tidelift" } ], - "time": "2023-03-08T13:26:56+00:00" + "time": "2024-11-08T17:47:46+00:00" }, { "name": "nikic/php-parser", - "version": "v4.15.4", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290" + "reference": "447a020a1f875a434d62f2a401f53b82a396e494" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/6bb5176bc4af8bcb7d926f88718db9b96a2d4290", - "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/447a020a1f875a434d62f2a401f53b82a396e494", + "reference": "447a020a1f875a434d62f2a401f53b82a396e494", "shasum": "" }, "require": { + "ext-ctype": "*", + "ext-json": "*", "ext-tokenizer": "*", - "php": ">=7.0" + "php": ">=7.4" }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^9.0" }, "bin": [ "bin/php-parse" @@ -653,7 +656,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.9-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -677,26 +680,27 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.4" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.4.0" }, - "time": "2023-03-05T19:49:14+00:00" + "time": "2024-12-30T11:07:19+00:00" }, { "name": "phar-io/manifest", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + "reference": "54750ef60c58e43759730615a392c31c80e23176" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", + "reference": "54750ef60c58e43759730615a392c31c80e23176", "shasum": "" }, "require": { "ext-dom": "*", + "ext-libxml": "*", "ext-phar": "*", "ext-xmlwriter": "*", "phar-io/version": "^3.0.1", @@ -737,9 +741,15 @@ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "support": { "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.3" + "source": "https://github.com/phar-io/manifest/tree/2.0.4" }, - "time": "2021-07-20T11:28:43+00:00" + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+00:00" }, { "name": "phar-io/version", @@ -794,35 +804,35 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.26", + "version": "9.2.32", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1" + "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", - "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/85402a822d1ecf1db1096959413d35e1c37cf1a5", + "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.15", + "nikic/php-parser": "^4.19.1 || ^5.1.0", "php": ">=7.3", - "phpunit/php-file-iterator": "^3.0.3", - "phpunit/php-text-template": "^2.0.2", - "sebastian/code-unit-reverse-lookup": "^2.0.2", - "sebastian/complexity": "^2.0", - "sebastian/environment": "^5.1.2", - "sebastian/lines-of-code": "^1.0.3", - "sebastian/version": "^3.0.1", - "theseer/tokenizer": "^1.2.0" + "phpunit/php-file-iterator": "^3.0.6", + "phpunit/php-text-template": "^2.0.4", + "sebastian/code-unit-reverse-lookup": "^2.0.3", + "sebastian/complexity": "^2.0.3", + "sebastian/environment": "^5.1.5", + "sebastian/lines-of-code": "^1.0.4", + "sebastian/version": "^3.0.2", + "theseer/tokenizer": "^1.2.3" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^9.6" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -831,7 +841,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "9.2-dev" + "dev-main": "9.2.x-dev" } }, "autoload": { @@ -859,7 +869,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.26" + "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.32" }, "funding": [ { @@ -867,7 +878,7 @@ "type": "github" } ], - "time": "2023-03-06T12:58:08+00:00" + "time": "2024-08-22T04:23:01+00:00" }, { "name": "phpunit/php-file-iterator", @@ -1112,45 +1123,45 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.5", + "version": "9.6.22", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "86e761949019ae83f49240b2f2123fb5ab3b2fc5" + "reference": "f80235cb4d3caa59ae09be3adf1ded27521d1a9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/86e761949019ae83f49240b2f2123fb5ab3b2fc5", - "reference": "86e761949019ae83f49240b2f2123fb5ab3b2fc5", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f80235cb4d3caa59ae09be3adf1ded27521d1a9c", + "reference": "f80235cb4d3caa59ae09be3adf1ded27521d1a9c", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.3.1 || ^2", + "doctrine/instantiator": "^1.5.0 || ^2", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.3", - "phar-io/version": "^3.0.2", + "myclabs/deep-copy": "^1.12.1", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.13", - "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-code-coverage": "^9.2.32", + "phpunit/php-file-iterator": "^3.0.6", "phpunit/php-invoker": "^3.1.1", - "phpunit/php-text-template": "^2.0.3", - "phpunit/php-timer": "^5.0.2", - "sebastian/cli-parser": "^1.0.1", - "sebastian/code-unit": "^1.0.6", + "phpunit/php-text-template": "^2.0.4", + "phpunit/php-timer": "^5.0.3", + "sebastian/cli-parser": "^1.0.2", + "sebastian/code-unit": "^1.0.8", "sebastian/comparator": "^4.0.8", - "sebastian/diff": "^4.0.3", - "sebastian/environment": "^5.1.3", - "sebastian/exporter": "^4.0.5", - "sebastian/global-state": "^5.0.1", - "sebastian/object-enumerator": "^4.0.3", - "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^3.2", + "sebastian/diff": "^4.0.6", + "sebastian/environment": "^5.1.5", + "sebastian/exporter": "^4.0.6", + "sebastian/global-state": "^5.0.7", + "sebastian/object-enumerator": "^4.0.4", + "sebastian/resource-operations": "^3.0.4", + "sebastian/type": "^3.2.1", "sebastian/version": "^3.0.2" }, "suggest": { @@ -1194,7 +1205,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.5" + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.22" }, "funding": [ { @@ -1210,20 +1222,20 @@ "type": "tidelift" } ], - "time": "2023-03-09T06:34:10+00:00" + "time": "2024-12-05T13:48:26+00:00" }, { "name": "sebastian/cli-parser", - "version": "1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b", + "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b", "shasum": "" }, "require": { @@ -1258,7 +1270,7 @@ "homepage": "https://github.com/sebastianbergmann/cli-parser", "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2" }, "funding": [ { @@ -1266,7 +1278,7 @@ "type": "github" } ], - "time": "2020-09-28T06:08:49+00:00" + "time": "2024-03-02T06:27:43+00:00" }, { "name": "sebastian/code-unit", @@ -1455,20 +1467,20 @@ }, { "name": "sebastian/complexity", - "version": "2.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a", + "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a", "shasum": "" }, "require": { - "nikic/php-parser": "^4.7", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=7.3" }, "require-dev": { @@ -1500,7 +1512,7 @@ "homepage": "https://github.com/sebastianbergmann/complexity", "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3" }, "funding": [ { @@ -1508,20 +1520,20 @@ "type": "github" } ], - "time": "2020-10-26T15:52:27+00:00" + "time": "2023-12-22T06:19:30+00:00" }, { "name": "sebastian/diff", - "version": "4.0.4", + "version": "4.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc", + "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc", "shasum": "" }, "require": { @@ -1566,7 +1578,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6" }, "funding": [ { @@ -1574,7 +1586,7 @@ "type": "github" } ], - "time": "2020-10-26T13:10:38+00:00" + "time": "2024-03-02T06:30:58+00:00" }, { "name": "sebastian/environment", @@ -1641,16 +1653,16 @@ }, { "name": "sebastian/exporter", - "version": "4.0.5", + "version": "4.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72", + "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72", "shasum": "" }, "require": { @@ -1706,7 +1718,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6" }, "funding": [ { @@ -1714,20 +1726,20 @@ "type": "github" } ], - "time": "2022-09-14T06:03:37+00:00" + "time": "2024-03-02T06:33:00+00:00" }, { "name": "sebastian/global-state", - "version": "5.0.5", + "version": "5.0.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" + "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", - "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", + "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", "shasum": "" }, "require": { @@ -1770,7 +1782,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7" }, "funding": [ { @@ -1778,24 +1790,24 @@ "type": "github" } ], - "time": "2022-02-14T08:28:10+00:00" + "time": "2024-03-02T06:35:11+00:00" }, { "name": "sebastian/lines-of-code", - "version": "1.0.3", + "version": "1.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5", + "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5", "shasum": "" }, "require": { - "nikic/php-parser": "^4.6", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=7.3" }, "require-dev": { @@ -1827,7 +1839,7 @@ "homepage": "https://github.com/sebastianbergmann/lines-of-code", "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4" }, "funding": [ { @@ -1835,7 +1847,7 @@ "type": "github" } ], - "time": "2020-11-28T06:42:11+00:00" + "time": "2023-12-22T06:20:34+00:00" }, { "name": "sebastian/object-enumerator", @@ -2014,16 +2026,16 @@ }, { "name": "sebastian/resource-operations", - "version": "3.0.3", + "version": "3.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e", + "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e", "shasum": "" }, "require": { @@ -2035,7 +2047,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -2056,8 +2068,7 @@ "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", "support": { - "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4" }, "funding": [ { @@ -2065,7 +2076,7 @@ "type": "github" } ], - "time": "2020-09-28T06:45:17+00:00" + "time": "2024-03-14T16:00:52+00:00" }, { "name": "sebastian/type", @@ -2178,16 +2189,16 @@ }, { "name": "theseer/tokenizer", - "version": "1.2.1", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", "shasum": "" }, "require": { @@ -2216,7 +2227,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.1" + "source": "https://github.com/theseer/tokenizer/tree/1.2.3" }, "funding": [ { @@ -2224,7 +2235,7 @@ "type": "github" } ], - "time": "2021-07-28T10:34:58+00:00" + "time": "2024-03-03T12:36:25+00:00" } ], "aliases": [