diff --git a/composer.json b/composer.json index 36816ec23..99cd2a0c1 100644 --- a/composer.json +++ b/composer.json @@ -50,11 +50,11 @@ "laminas/laminas-navigation": "^2.19.1", "laminas/laminas-paginator": "^2.18.1", "laminas/laminas-permissions-acl": "^2.16", - "laminas/laminas-router": "^3.12.0", + "laminas/laminas-router": "^3.13.0", "laminas/laminas-uri": "^2.11", - "phpunit/phpunit": "^10.5.9", - "psalm/plugin-phpunit": "^0.18.4", - "vimeo/psalm": "^5.20" + "phpunit/phpunit": "^10.5.13", + "psalm/plugin-phpunit": "^0.19.0", + "vimeo/psalm": "^5.23.1" }, "conflict": { "container-interop/container-interop": "<1.2", diff --git a/composer.lock b/composer.lock index f5db38f21..42800aabc 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "dfd16c568b651d75cbf04e3bbdddcdd1", + "content-hash": "c4cd433fb697af1660745f76e5f9183e", "packages": [ { "name": "laminas/laminas-escaper", @@ -398,16 +398,16 @@ "packages-dev": [ { "name": "amphp/amp", - "version": "v2.6.2", + "version": "v2.6.4", "source": { "type": "git", "url": "https://github.com/amphp/amp.git", - "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb" + "reference": "ded3d9be08f526089eb7ee8d9f16a9768f9dec2d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/amp/zipball/9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", - "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", + "url": "https://api.github.com/repos/amphp/amp/zipball/ded3d9be08f526089eb7ee8d9f16a9768f9dec2d", + "reference": "ded3d9be08f526089eb7ee8d9f16a9768f9dec2d", "shasum": "" }, "require": { @@ -419,8 +419,8 @@ "ext-json": "*", "jetbrains/phpstorm-stubs": "^2019.3", "phpunit/phpunit": "^7 | ^8 | ^9", - "psalm/phar": "^3.11@dev", - "react/promise": "^2" + "react/promise": "^2", + "vimeo/psalm": "^3.12" }, "type": "library", "extra": { @@ -475,7 +475,7 @@ "support": { "irc": "irc://irc.freenode.org/amphp", "issues": "https://github.com/amphp/amp/issues", - "source": "https://github.com/amphp/amp/tree/v2.6.2" + "source": "https://github.com/amphp/amp/tree/v2.6.4" }, "funding": [ { @@ -483,20 +483,20 @@ "type": "github" } ], - "time": "2022-02-20T17:52:18+00:00" + "time": "2024-03-21T18:52:26+00:00" }, { "name": "amphp/byte-stream", - "version": "v1.8.1", + "version": "v1.8.2", "source": { "type": "git", "url": "https://github.com/amphp/byte-stream.git", - "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd" + "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/byte-stream/zipball/acbd8002b3536485c997c4e019206b3f10ca15bd", - "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/4f0e968ba3798a423730f567b1b50d3441c16ddc", + "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc", "shasum": "" }, "require": { @@ -512,11 +512,6 @@ "psalm/phar": "^3.11.4" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, "autoload": { "files": [ "lib/functions.php" @@ -540,7 +535,7 @@ } ], "description": "A stream abstraction to make working with non-blocking I/O simple.", - "homepage": "http://amphp.org/byte-stream", + "homepage": "https://amphp.org/byte-stream", "keywords": [ "amp", "amphp", @@ -550,9 +545,8 @@ "stream" ], "support": { - "irc": "irc://irc.freenode.org/amphp", "issues": "https://github.com/amphp/byte-stream/issues", - "source": "https://github.com/amphp/byte-stream/tree/v1.8.1" + "source": "https://github.com/amphp/byte-stream/tree/v1.8.2" }, "funding": [ { @@ -560,7 +554,7 @@ "type": "github" } ], - "time": "2021-03-30T17:13:30+00:00" + "time": "2024-04-13T18:00:56+00:00" }, { "name": "brick/varexporter", @@ -686,16 +680,16 @@ }, { "name": "composer/pcre", - "version": "3.1.1", + "version": "3.1.3", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9" + "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/00104306927c7a0919b4ced2aaa6782c1e61a3c9", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9", + "url": "https://api.github.com/repos/composer/pcre/zipball/5b16e25a5355f1f3afdfc2f954a0a80aec4826a8", + "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8", "shasum": "" }, "require": { @@ -737,7 +731,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.1" + "source": "https://github.com/composer/pcre/tree/3.1.3" }, "funding": [ { @@ -753,7 +747,7 @@ "type": "tidelift" } ], - "time": "2023-10-11T07:11:09+00:00" + "time": "2024-03-19T10:26:25+00:00" }, { "name": "composer/semver", @@ -838,16 +832,16 @@ }, { "name": "composer/xdebug-handler", - "version": "3.0.3", + "version": "3.0.4", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "ced299686f41dce890debac69273b47ffe98a40c" + "reference": "4f988f8fdf580d53bdb2d1278fe93d1ed5462255" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", - "reference": "ced299686f41dce890debac69273b47ffe98a40c", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/4f988f8fdf580d53bdb2d1278fe93d1ed5462255", + "reference": "4f988f8fdf580d53bdb2d1278fe93d1ed5462255", "shasum": "" }, "require": { @@ -858,7 +852,7 @@ "require-dev": { "phpstan/phpstan": "^1.0", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^6.0" + "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" }, "type": "library", "autoload": { @@ -882,9 +876,9 @@ "performance" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" + "source": "https://github.com/composer/xdebug-handler/tree/3.0.4" }, "funding": [ { @@ -900,7 +894,7 @@ "type": "tidelift" } ], - "time": "2022-02-25T21:32:43+00:00" + "time": "2024-03-26T18:29:49+00:00" }, { "name": "dealerdirect/phpcodesniffer-composer-installer", @@ -1117,16 +1111,16 @@ }, { "name": "fidry/cpu-core-counter", - "version": "1.0.0", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/theofidry/cpu-core-counter.git", - "reference": "85193c0b0cb5c47894b5eaec906e946f054e7077" + "reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/85193c0b0cb5c47894b5eaec906e946f054e7077", - "reference": "85193c0b0cb5c47894b5eaec906e946f054e7077", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/f92996c4d5c1a696a6a970e20f7c4216200fcc42", + "reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42", "shasum": "" }, "require": { @@ -1166,7 +1160,7 @@ ], "support": { "issues": "https://github.com/theofidry/cpu-core-counter/issues", - "source": "https://github.com/theofidry/cpu-core-counter/tree/1.0.0" + "source": "https://github.com/theofidry/cpu-core-counter/tree/1.1.0" }, "funding": [ { @@ -1174,7 +1168,7 @@ "type": "github" } ], - "time": "2023-09-17T21:38:23+00:00" + "time": "2024-02-07T09:43:46+00:00" }, { "name": "laminas/laminas-authentication", @@ -1458,16 +1452,16 @@ }, { "name": "laminas/laminas-filter", - "version": "2.34.0", + "version": "2.35.2", "source": { "type": "git", "url": "https://github.com/laminas/laminas-filter.git", - "reference": "008923542683d853109af5c71b7e9099de76c3e6" + "reference": "3e821b33a787253d56046f9258174a22de1bd267" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-filter/zipball/008923542683d853109af5c71b7e9099de76c3e6", - "reference": "008923542683d853109af5c71b7e9099de76c3e6", + "url": "https://api.github.com/repos/laminas/laminas-filter/zipball/3e821b33a787253d56046f9258174a22de1bd267", + "reference": "3e821b33a787253d56046f9258174a22de1bd267", "shasum": "" }, "require": { @@ -1483,13 +1477,13 @@ "require-dev": { "laminas/laminas-coding-standard": "~2.5.0", "laminas/laminas-crypt": "^3.11", - "laminas/laminas-i18n": "^2.25.0", + "laminas/laminas-i18n": "^2.26.0", "laminas/laminas-uri": "^2.11", "pear/archive_tar": "^1.4.14", - "phpunit/phpunit": "^10.5.5", - "psalm/plugin-phpunit": "^0.18.4", + "phpunit/phpunit": "^10.5.11", + "psalm/plugin-phpunit": "^0.19.0", "psr/http-factory": "^1.0.2", - "vimeo/psalm": "^5.18.0" + "vimeo/psalm": "^5.22.2" }, "suggest": { "laminas/laminas-crypt": "Laminas\\Crypt component, for encryption filters", @@ -1533,7 +1527,7 @@ "type": "community_bridge" } ], - "time": "2024-01-04T11:47:08+00:00" + "time": "2024-04-11T08:13:56+00:00" }, { "name": "laminas/laminas-http", @@ -1972,6 +1966,75 @@ ], "time": "2023-11-06T09:31:01+00:00" }, + { + "name": "laminas/laminas-mvc-plugin-flashmessenger", + "version": "1.10.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-mvc-plugin-flashmessenger.git", + "reference": "852d8c661dfb6492d4ea6d4ab238e72180e82387" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-mvc-plugin-flashmessenger/zipball/852d8c661dfb6492d4ea6d4ab238e72180e82387", + "reference": "852d8c661dfb6492d4ea6d4ab238e72180e82387", + "shasum": "" + }, + "require": { + "laminas/laminas-mvc": "^3.3", + "laminas/laminas-session": "^2.12.0", + "laminas/laminas-stdlib": "^3.6.4", + "laminas/laminas-view": "^2.13.1", + "php": "~8.1.0 || ~8.2.0 || ~8.3.0" + }, + "conflict": { + "laminas/laminas-mvc": "<3.0.0", + "zendframework/zend-mvc-plugin-flashmessenger": "*" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~2.5.0", + "laminas/laminas-i18n": "^2.19.0", + "phpunit/phpunit": "^9.5.26", + "psalm/plugin-phpunit": "^0.18.0", + "vimeo/psalm": "^5.0.0" + }, + "type": "library", + "extra": { + "laminas": { + "component": "Laminas\\Mvc\\Plugin\\FlashMessenger" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Mvc\\Plugin\\FlashMessenger\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Plugin for creating and exposing flash messages via laminas-mvc controllers", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "mvc" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-mvc-plugin-flashmessenger/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-mvc-plugin-flashmessenger/issues", + "rss": "https://github.com/laminas/laminas-mvc-plugin-flashmessenger/releases.atom", + "source": "https://github.com/laminas/laminas-mvc-plugin-flashmessenger" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2024-01-18T15:07:28+00:00" + }, { "name": "laminas/laminas-navigation", "version": "2.19.1", @@ -2198,16 +2261,16 @@ }, { "name": "laminas/laminas-router", - "version": "3.12.0", + "version": "3.13.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-router.git", - "reference": "e8f1a9ecd63d123c38de3519fe7ca9013da4f8d2" + "reference": "04e14e757303787c83f79298dbd4483eebacfeb9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-router/zipball/e8f1a9ecd63d123c38de3519fe7ca9013da4f8d2", - "reference": "e8f1a9ecd63d123c38de3519fe7ca9013da4f8d2", + "url": "https://api.github.com/repos/laminas/laminas-router/zipball/04e14e757303787c83f79298dbd4483eebacfeb9", + "reference": "04e14e757303787c83f79298dbd4483eebacfeb9", "shasum": "" }, "require": { @@ -2221,10 +2284,10 @@ }, "require-dev": { "laminas/laminas-coding-standard": "~2.5.0", - "laminas/laminas-i18n": "^2.23.1", - "phpunit/phpunit": "^10.4.2", + "laminas/laminas-i18n": "^2.26.0", + "phpunit/phpunit": "^10.5.11", "psalm/plugin-phpunit": "^0.18.4", - "vimeo/psalm": "^5.15.0" + "vimeo/psalm": "^5.22.2" }, "suggest": { "laminas/laminas-i18n": "^2.15.0 if defining translatable HTTP path segments" @@ -2265,7 +2328,89 @@ "type": "community_bridge" } ], - "time": "2023-11-02T17:21:39+00:00" + "time": "2024-03-05T12:54:05+00:00" + }, + { + "name": "laminas/laminas-session", + "version": "2.20.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-session.git", + "reference": "16876aa20a6688d06291a972f7e1eb0b74b05d51" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-session/zipball/16876aa20a6688d06291a972f7e1eb0b74b05d51", + "reference": "16876aa20a6688d06291a972f7e1eb0b74b05d51", + "shasum": "" + }, + "require": { + "laminas/laminas-eventmanager": "^3.12", + "laminas/laminas-servicemanager": "^3.22", + "laminas/laminas-stdlib": "^3.18", + "php": "~8.1.0 || ~8.2.0 || ~8.3.0" + }, + "conflict": { + "zendframework/zend-session": "*" + }, + "require-dev": { + "ext-xdebug": "*", + "laminas/laminas-cache": "^3.12.1", + "laminas/laminas-cache-storage-adapter-memory": "^2.3", + "laminas/laminas-coding-standard": "~2.5.0", + "laminas/laminas-db": "^2.19.0", + "laminas/laminas-http": "^2.19", + "laminas/laminas-validator": "^2.49.0", + "mongodb/mongodb": "~1.17.0", + "phpunit/phpunit": "^9.6.17", + "psalm/plugin-phpunit": "^0.18.4", + "vimeo/psalm": "^5.22.2" + }, + "suggest": { + "laminas/laminas-cache": "Laminas\\Cache component", + "laminas/laminas-db": "Laminas\\Db component", + "laminas/laminas-http": "Laminas\\Http component", + "laminas/laminas-servicemanager": "Laminas\\ServiceManager component", + "laminas/laminas-validator": "Laminas\\Validator component", + "mongodb/mongodb": "If you want to use the MongoDB session save handler" + }, + "type": "library", + "extra": { + "laminas": { + "component": "Laminas\\Session", + "config-provider": "Laminas\\Session\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Laminas\\Session\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Object-oriented interface to PHP sessions and storage", + "homepage": "https://laminas.dev", + "keywords": [ + "laminas", + "session" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-session/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-session/issues", + "rss": "https://github.com/laminas/laminas-session/releases.atom", + "source": "https://github.com/laminas/laminas-session" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2024-03-08T11:02:36+00:00" }, { "name": "laminas/laminas-uri", @@ -2327,16 +2472,16 @@ }, { "name": "laminas/laminas-validator", - "version": "2.47.0", + "version": "2.53.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-validator.git", - "reference": "5c3fc8c4f1263cda5c5f14aed874fdadd5b90bbd" + "reference": "dbcfc19cb7f2e3eb3a27ba5d059c200e8404d72c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-validator/zipball/5c3fc8c4f1263cda5c5f14aed874fdadd5b90bbd", - "reference": "5c3fc8c4f1263cda5c5f14aed874fdadd5b90bbd", + "url": "https://api.github.com/repos/laminas/laminas-validator/zipball/dbcfc19cb7f2e3eb3a27ba5d059c200e8404d72c", + "reference": "dbcfc19cb7f2e3eb3a27ba5d059c200e8404d72c", "shasum": "" }, "require": { @@ -2350,16 +2495,16 @@ }, "require-dev": { "laminas/laminas-coding-standard": "^2.5", - "laminas/laminas-db": "^2.18", - "laminas/laminas-filter": "^2.33", - "laminas/laminas-i18n": "^2.24.1", - "laminas/laminas-session": "^2.17", + "laminas/laminas-db": "^2.19", + "laminas/laminas-filter": "^2.34", + "laminas/laminas-i18n": "^2.26.0", + "laminas/laminas-session": "^2.20", "laminas/laminas-uri": "^2.11.0", - "phpunit/phpunit": "^10.5.2", - "psalm/plugin-phpunit": "^0.18.4", + "phpunit/phpunit": "^10.5.15", + "psalm/plugin-phpunit": "^0.19.0", "psr/http-client": "^1.0.3", "psr/http-factory": "^1.0.2", - "vimeo/psalm": "^5.17" + "vimeo/psalm": "^5.23.1" }, "suggest": { "laminas/laminas-db": "Laminas\\Db component, required by the (No)RecordExists validator", @@ -2407,7 +2552,7 @@ "type": "community_bridge" } ], - "time": "2024-01-17T11:31:50+00:00" + "time": "2024-04-01T09:26:32+00:00" }, { "name": "myclabs/deep-copy", @@ -2470,16 +2615,16 @@ }, { "name": "netresearch/jsonmapper", - "version": "v4.2.0", + "version": "v4.4.1", "source": { "type": "git", "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "f60565f8c0566a31acf06884cdaa591867ecc956" + "reference": "132c75c7dd83e45353ebb9c6c9f591952995bbf0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/f60565f8c0566a31acf06884cdaa591867ecc956", - "reference": "f60565f8c0566a31acf06884cdaa591867ecc956", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/132c75c7dd83e45353ebb9c6c9f591952995bbf0", + "reference": "132c75c7dd83e45353ebb9c6c9f591952995bbf0", "shasum": "" }, "require": { @@ -2490,7 +2635,7 @@ "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0", + "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0 || ~10.0", "squizlabs/php_codesniffer": "~3.5" }, "type": "library", @@ -2515,27 +2660,27 @@ "support": { "email": "cweiske@cweiske.de", "issues": "https://github.com/cweiske/jsonmapper/issues", - "source": "https://github.com/cweiske/jsonmapper/tree/v4.2.0" + "source": "https://github.com/cweiske/jsonmapper/tree/v4.4.1" }, - "time": "2023-04-09T17:37:40+00:00" + "time": "2024-01-31T06:18:54+00:00" }, { "name": "nikic/php-parser", - "version": "v4.18.0", + "version": "v4.19.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999" + "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999", - "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4e1b88d21c69391150ace211e9eaf05810858d0b", + "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": ">=7.0" + "php": ">=7.1" }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", @@ -2571,26 +2716,27 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.18.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.1" }, - "time": "2023-12-10T21:03:43+00:00" + "time": "2024-03-17T08:10:35+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", @@ -2631,9 +2777,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", @@ -2897,16 +3049,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "10.1.11", + "version": "10.1.14", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "78c3b7625965c2513ee96569a4dbb62601784145" + "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/78c3b7625965c2513ee96569a4dbb62601784145", - "reference": "78c3b7625965c2513ee96569a4dbb62601784145", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/e3f51450ebffe8e0efdf7346ae966a656f7d5e5b", + "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b", "shasum": "" }, "require": { @@ -2963,7 +3115,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.11" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.14" }, "funding": [ { @@ -2971,7 +3123,7 @@ "type": "github" } ], - "time": "2023-12-21T15:38:30+00:00" + "time": "2024-03-12T15:33:41+00:00" }, { "name": "phpunit/php-file-iterator", @@ -3218,16 +3370,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.5.9", + "version": "10.5.20", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe" + "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe", - "reference": "0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/547d314dc24ec1e177720d45c6263fb226cc2ae3", + "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3", "shasum": "" }, "require": { @@ -3299,7 +3451,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.9" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.20" }, "funding": [ { @@ -3315,28 +3467,28 @@ "type": "tidelift" } ], - "time": "2024-01-22T14:35:40+00:00" + "time": "2024-04-24T06:32:35+00:00" }, { "name": "psalm/plugin-phpunit", - "version": "0.18.4", + "version": "0.19.0", "source": { "type": "git", "url": "https://github.com/psalm/psalm-plugin-phpunit.git", - "reference": "e4ab3096653d9eb6f6d0ea5f4461898d59ae4dbc" + "reference": "e344eaaa27871e79c6cb97b9efe52a735f9d1966" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/e4ab3096653d9eb6f6d0ea5f4461898d59ae4dbc", - "reference": "e4ab3096653d9eb6f6d0ea5f4461898d59ae4dbc", + "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/e344eaaa27871e79c6cb97b9efe52a735f9d1966", + "reference": "e344eaaa27871e79c6cb97b9efe52a735f9d1966", "shasum": "" }, "require": { "composer/package-versions-deprecated": "^1.10", "composer/semver": "^1.4 || ^2.0 || ^3.0", "ext-simplexml": "*", - "php": "^7.1 || ^8.0", - "vimeo/psalm": "dev-master || dev-4.x || ^4.7.1 || ^5@beta || ^5.0" + "php": "^7.4 || ^8.0", + "vimeo/psalm": "dev-master || ^5@beta || ^5.0" }, "conflict": { "phpunit/phpunit": "<7.5" @@ -3373,9 +3525,9 @@ "description": "Psalm plugin for PHPUnit", "support": { "issues": "https://github.com/psalm/psalm-plugin-phpunit/issues", - "source": "https://github.com/psalm/psalm-plugin-phpunit/tree/0.18.4" + "source": "https://github.com/psalm/psalm-plugin-phpunit/tree/0.19.0" }, - "time": "2022-12-03T07:47:07+00:00" + "time": "2024-03-15T10:43:15+00:00" }, { "name": "psr/http-message", @@ -3482,16 +3634,16 @@ }, { "name": "sebastian/cli-parser", - "version": "2.0.0", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae" + "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/efdc130dbbbb8ef0b545a994fd811725c5282cae", - "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/c34583b87e7b7a8055bf6c450c2c77ce32a24084", + "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084", "shasum": "" }, "require": { @@ -3526,7 +3678,8 @@ "homepage": "https://github.com/sebastianbergmann/cli-parser", "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.0" + "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.1" }, "funding": [ { @@ -3534,7 +3687,7 @@ "type": "github" } ], - "time": "2023-02-03T06:58:15+00:00" + "time": "2024-03-02T07:12:49+00:00" }, { "name": "sebastian/code-unit", @@ -3784,16 +3937,16 @@ }, { "name": "sebastian/diff", - "version": "5.1.0", + "version": "5.1.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f" + "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/fbf413a49e54f6b9b17e12d900ac7f6101591b7f", - "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e", + "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e", "shasum": "" }, "require": { @@ -3801,7 +3954,7 @@ }, "require-dev": { "phpunit/phpunit": "^10.0", - "symfony/process": "^4.2 || ^5" + "symfony/process": "^6.4" }, "type": "library", "extra": { @@ -3839,7 +3992,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/5.1.0" + "source": "https://github.com/sebastianbergmann/diff/tree/5.1.1" }, "funding": [ { @@ -3847,20 +4000,20 @@ "type": "github" } ], - "time": "2023-12-22T10:55:06+00:00" + "time": "2024-03-02T07:15:17+00:00" }, { "name": "sebastian/environment", - "version": "6.0.1", + "version": "6.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951" + "reference": "8074dbcd93529b357029f5cc5058fd3e43666984" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/43c751b41d74f96cbbd4e07b7aec9675651e2951", - "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/8074dbcd93529b357029f5cc5058fd3e43666984", + "reference": "8074dbcd93529b357029f5cc5058fd3e43666984", "shasum": "" }, "require": { @@ -3875,7 +4028,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "6.1-dev" } }, "autoload": { @@ -3903,7 +4056,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", "security": "https://github.com/sebastianbergmann/environment/security/policy", - "source": "https://github.com/sebastianbergmann/environment/tree/6.0.1" + "source": "https://github.com/sebastianbergmann/environment/tree/6.1.0" }, "funding": [ { @@ -3911,20 +4064,20 @@ "type": "github" } ], - "time": "2023-04-11T05:39:26+00:00" + "time": "2024-03-23T08:47:14+00:00" }, { "name": "sebastian/exporter", - "version": "5.1.1", + "version": "5.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc" + "reference": "955288482d97c19a372d3f31006ab3f37da47adf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/64f51654862e0f5e318db7e9dcc2292c63cdbddc", - "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/955288482d97c19a372d3f31006ab3f37da47adf", + "reference": "955288482d97c19a372d3f31006ab3f37da47adf", "shasum": "" }, "require": { @@ -3981,7 +4134,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", "security": "https://github.com/sebastianbergmann/exporter/security/policy", - "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.1" + "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.2" }, "funding": [ { @@ -3989,20 +4142,20 @@ "type": "github" } ], - "time": "2023-09-24T13:22:09+00:00" + "time": "2024-03-02T07:17:12+00:00" }, { "name": "sebastian/global-state", - "version": "6.0.1", + "version": "6.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4" + "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/7ea9ead78f6d380d2a667864c132c2f7b83055e4", - "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", + "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", "shasum": "" }, "require": { @@ -4036,14 +4189,14 @@ } ], "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", + "homepage": "https://www.github.com/sebastianbergmann/global-state", "keywords": [ "global state" ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", "security": "https://github.com/sebastianbergmann/global-state/security/policy", - "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.1" + "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.2" }, "funding": [ { @@ -4051,7 +4204,7 @@ "type": "github" } ], - "time": "2023-07-19T07:19:23+00:00" + "time": "2024-03-02T07:19:19+00:00" }, { "name": "sebastian/lines-of-code", @@ -4458,16 +4611,16 @@ }, { "name": "spatie/array-to-xml", - "version": "3.2.2", + "version": "3.2.3", "source": { "type": "git", "url": "https://github.com/spatie/array-to-xml.git", - "reference": "96be97e664c87613121d073ea39af4c74e57a7f8" + "reference": "c95fd4db94ec199f798d4b5b4a81757bd20d88ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/96be97e664c87613121d073ea39af4c74e57a7f8", - "reference": "96be97e664c87613121d073ea39af4c74e57a7f8", + "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/c95fd4db94ec199f798d4b5b4a81757bd20d88ab", + "reference": "c95fd4db94ec199f798d4b5b4a81757bd20d88ab", "shasum": "" }, "require": { @@ -4505,7 +4658,7 @@ "xml" ], "support": { - "source": "https://github.com/spatie/array-to-xml/tree/3.2.2" + "source": "https://github.com/spatie/array-to-xml/tree/3.2.3" }, "funding": [ { @@ -4517,20 +4670,20 @@ "type": "github" } ], - "time": "2023-11-14T14:08:51+00:00" + "time": "2024-02-07T10:39:02+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "3.8.1", + "version": "3.9.2", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "14f5fff1e64118595db5408e946f3a22c75807f7" + "reference": "aac1f6f347a5c5ac6bc98ad395007df00990f480" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/14f5fff1e64118595db5408e946f3a22c75807f7", - "reference": "14f5fff1e64118595db5408e946f3a22c75807f7", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/aac1f6f347a5c5ac6bc98ad395007df00990f480", + "reference": "aac1f6f347a5c5ac6bc98ad395007df00990f480", "shasum": "" }, "require": { @@ -4597,20 +4750,20 @@ "type": "open_collective" } ], - "time": "2024-01-11T20:47:48+00:00" + "time": "2024-04-23T20:25:34+00:00" }, { "name": "symfony/console", - "version": "v6.4.2", + "version": "v6.4.6", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "0254811a143e6bc6c8deea08b589a7e68a37f625" + "reference": "a2708a5da5c87d1d0d52937bdeac625df659e11f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/0254811a143e6bc6c8deea08b589a7e68a37f625", - "reference": "0254811a143e6bc6c8deea08b589a7e68a37f625", + "url": "https://api.github.com/repos/symfony/console/zipball/a2708a5da5c87d1d0d52937bdeac625df659e11f", + "reference": "a2708a5da5c87d1d0d52937bdeac625df659e11f", "shasum": "" }, "require": { @@ -4675,7 +4828,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.2" + "source": "https://github.com/symfony/console/tree/v6.4.6" }, "funding": [ { @@ -4691,7 +4844,7 @@ "type": "tidelift" } ], - "time": "2023-12-10T16:15:48+00:00" + "time": "2024-03-29T19:07:53+00:00" }, { "name": "symfony/deprecation-contracts", @@ -4762,16 +4915,16 @@ }, { "name": "symfony/filesystem", - "version": "v6.4.0", + "version": "v6.4.6", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "952a8cb588c3bc6ce76f6023000fb932f16a6e59" + "reference": "9919b5509ada52cc7f66f9a35c86a4a29955c9d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/952a8cb588c3bc6ce76f6023000fb932f16a6e59", - "reference": "952a8cb588c3bc6ce76f6023000fb932f16a6e59", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/9919b5509ada52cc7f66f9a35c86a4a29955c9d3", + "reference": "9919b5509ada52cc7f66f9a35c86a4a29955c9d3", "shasum": "" }, "require": { @@ -4805,7 +4958,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.4.0" + "source": "https://github.com/symfony/filesystem/tree/v6.4.6" }, "funding": [ { @@ -4821,20 +4974,20 @@ "type": "tidelift" } ], - "time": "2023-07-26T17:27:13+00:00" + "time": "2024-03-21T19:36:20+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4", + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4", "shasum": "" }, "require": { @@ -4848,9 +5001,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -4887,7 +5037,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0" }, "funding": [ { @@ -4903,20 +5053,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "875e90aeea2777b6f135677f618529449334a612" + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", - "reference": "875e90aeea2777b6f135677f618529449334a612", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f", "shasum": "" }, "require": { @@ -4927,9 +5077,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -4968,7 +5115,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0" }, "funding": [ { @@ -4984,20 +5131,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d", + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d", "shasum": "" }, "require": { @@ -5008,9 +5155,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -5052,7 +5196,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0" }, "funding": [ { @@ -5068,20 +5212,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "42292d99c55abe617799667f454222c54c60e229" + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", - "reference": "42292d99c55abe617799667f454222c54c60e229", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec", "shasum": "" }, "require": { @@ -5095,9 +5239,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -5135,7 +5276,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0" }, "funding": [ { @@ -5151,20 +5292,20 @@ "type": "tidelift" } ], - "time": "2023-07-28T09:04:16+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.4.1", + "version": "v3.4.2", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0" + "reference": "11bbf19a0fb7b36345861e85c5768844c552906e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/fe07cbc8d837f60caf7018068e350cc5163681a0", - "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/11bbf19a0fb7b36345861e85c5768844c552906e", + "reference": "11bbf19a0fb7b36345861e85c5768844c552906e", "shasum": "" }, "require": { @@ -5217,7 +5358,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.4.1" + "source": "https://github.com/symfony/service-contracts/tree/v3.4.2" }, "funding": [ { @@ -5233,20 +5374,20 @@ "type": "tidelift" } ], - "time": "2023-12-26T14:02:43+00:00" + "time": "2023-12-19T21:51:00+00:00" }, { "name": "symfony/string", - "version": "v6.4.2", + "version": "v6.4.4", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "7cb80bc10bfcdf6b5492741c0b9357dac66940bc" + "reference": "4e465a95bdc32f49cf4c7f07f751b843bbd6dcd9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/7cb80bc10bfcdf6b5492741c0b9357dac66940bc", - "reference": "7cb80bc10bfcdf6b5492741c0b9357dac66940bc", + "url": "https://api.github.com/repos/symfony/string/zipball/4e465a95bdc32f49cf4c7f07f751b843bbd6dcd9", + "reference": "4e465a95bdc32f49cf4c7f07f751b843bbd6dcd9", "shasum": "" }, "require": { @@ -5303,7 +5444,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.2" + "source": "https://github.com/symfony/string/tree/v6.4.4" }, "funding": [ { @@ -5319,20 +5460,20 @@ "type": "tidelift" } ], - "time": "2023-12-10T16:15:48+00:00" + "time": "2024-02-01T13:16:41+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.2", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96" + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96", - "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", "shasum": "" }, "require": { @@ -5361,7 +5502,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.2" + "source": "https://github.com/theseer/tokenizer/tree/1.2.3" }, "funding": [ { @@ -5369,20 +5510,20 @@ "type": "github" } ], - "time": "2023-11-20T00:12:19+00:00" + "time": "2024-03-03T12:36:25+00:00" }, { "name": "vimeo/psalm", - "version": "5.20.0", + "version": "5.23.1", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "3f284e96c9d9be6fe6b15c79416e1d1903dcfef4" + "reference": "8471a896ccea3526b26d082f4461eeea467f10a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/3f284e96c9d9be6fe6b15c79416e1d1903dcfef4", - "reference": "3f284e96c9d9be6fe6b15c79416e1d1903dcfef4", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/8471a896ccea3526b26d082f4461eeea467f10a4", + "reference": "8471a896ccea3526b26d082f4461eeea467f10a4", "shasum": "" }, "require": { @@ -5405,7 +5546,7 @@ "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", "nikic/php-parser": "^4.16", "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0", - "sebastian/diff": "^4.0 || ^5.0", + "sebastian/diff": "^4.0 || ^5.0 || ^6.0", "spatie/array-to-xml": "^2.17.0 || ^3.0", "symfony/console": "^4.1.6 || ^5.0 || ^6.0 || ^7.0", "symfony/filesystem": "^5.4 || ^6.0 || ^7.0" @@ -5479,7 +5620,7 @@ "issues": "https://github.com/vimeo/psalm/issues", "source": "https://github.com/vimeo/psalm" }, - "time": "2024-01-18T12:15:06+00:00" + "time": "2024-03-11T20:33:46+00:00" }, { "name": "webimpress/coding-standard", diff --git a/docs/book/v2/helpers/json.md b/docs/book/v2/helpers/json.md index 4a4056a02..455554cf3 100644 --- a/docs/book/v2/helpers/json.md +++ b/docs/book/v2/helpers/json.md @@ -1,5 +1,9 @@ # Json +WARNING: **Deprecated** +The JSON view helper has been deprecated and will be removed in version 3.0. +There is no replacement; however, it is trivial to encode data by using PHP's built-in [`json_encode`](https://www.php.net/json_encode) function. + When creating views that return JSON, it's important to also set the appropriate response header. The JSON view helper does exactly that. In addition, by default, it disables layouts (if currently enabled), as layouts generally aren't @@ -20,28 +24,13 @@ determine how to handle the content. json($this->data) ?> ``` -> WARNING: **Deprecated** -> -> ### Enabling encoding using Laminas\Json\Expr -> -> **This feature of the Json view helper has been deprecated in version 2.16 and will be removed in version 3.0.** -> -> The JSON helper accepts an array of options that will be passed to `Laminas\Json\Json::encode()` and -> used internally to encode data. -> `Laminas\Json\Json::encode` allows the encoding of native JSON expressions using `Laminas\Json\Expr` -> objects. This option is disabled by default. To enable this option, pass a boolean `true` to the -> `enableJsonExprFinder` key of the options array: -> -> ```php -> json($this->data, ['enableJsonExprFinder' => true]) ?> -> `` -> -> The JSON helper accepts an array of options that will be passed to `Laminas\Json\Json::encode()` and -> used internally to encode data. -> `Laminas\Json\Json::encode` allows the encoding of native JSON expressions using `Laminas\Json\Expr` -> objects. This option is disabled by default. To enable this option, pass a boolean `true` to the -> `enableJsonExprFinder` key of the options array: -> -> ```php -> json($this->data, ['enableJsonExprFinder' => true]) ?> -> ``` +### Enabling encoding using Laminas\Json\Expr + +The JSON helper accepts an array of options that will be passed to `Laminas\Json\Json::encode()` and used internally to encode data. +`Laminas\Json\Json::encode` allows the encoding of native JSON expressions using `Laminas\Json\Expr` objects. +This option is disabled by default. +To enable this option, pass a boolean `true` to the `enableJsonExprFinder` key of the options array: + +```php +json($this->data, ['enableJsonExprFinder' => true]) ?> +``` diff --git a/docs/book/v2/migration/preparing-for-v3.md b/docs/book/v2/migration/preparing-for-v3.md index 284ac670f..fed3b39cb 100644 --- a/docs/book/v2/migration/preparing-for-v3.md +++ b/docs/book/v2/migration/preparing-for-v3.md @@ -44,3 +44,11 @@ This deprecation can be safely ignored but in order to prepare for its removal i In version 2, the `TemplatePathStack` template resolver automatically registers a stream wrapper for templates when the php.ini setting `short_open_tag` was turned off. The purpose of the stream wrapper was to convert template files using the short open tag `` to `` so that templates would continue to be processed in environments where short_open_tag was turned off. Since PHP 5.4.0, `` in environments where `short_open_tag` is **off**. To mitigate the impact of this removal, you should ensure that, where relevant, all of your templates use the full ` - + - $closingBracket - $closingBracket - $closingBracket - $closingBracket - $closingBracket - $closingBracket - $closingBracket - $closingBracket - $closingBracket - $closingBracket + + + + + + + + + + - $val + - $val + - $attribs + - plugin - plugin + + - (array) $attribs + - plugin - plugin + + - Cycle - Cycle + + - Iterator + data[$this->name]]]> @@ -51,8 +51,8 @@ data[$this->name][$this->key()]]]> - array - int + + pointers[$this->name]]]> @@ -63,43 +63,48 @@ pointers[$this->name]]]> - getName + - $view + - $key - $value + + - $name + - $key - $value - $vars + + + $key]]> - $view + - vars - vars + + - vars - vars + + + + + + + - null === static::$registeredDoctypes + registry['doctypes'][$type]]]> @@ -110,36 +115,36 @@ registry['doctype']]]> registry['doctypes']]]> - array - string + + - $registry + - $v - $value[$k] + + - $flag === null + - $attributes - $email - $emailIsHashed + + + - $value + - bool - int - string - string + + + + options['default_img']]]> @@ -148,186 +153,186 @@ options['secure']]]> - (bool) $flag - (int) $imgSize + + - (bool) $flag + - $item + - offsetSet + - $args - $args - $args - $args[0] - $attributes[$itemKey] - $href - $index + + + + + + + autoEscape ? $this->escapeAttribute($attributes[$itemKey]) : $attributes[$itemKey]]]> autoEscape ? $this->escapeAttribute($value) : $value]]> - $value + - $media + - $args[0] - $args[0] + + - $conditionalStylesheet - $extras - $extras - $href - $href - $index - $item - $media - $title - $type - $value + + + + + + + + + + + - $index + view]]> - createDataAlternate - createDataNext - createDataPrev - createDataStylesheet + + + + - AbstractContainer - AbstractContainer + + - (string) $conditionalStylesheet + - $item - $value - $value + + + - offsetSet - offsetUnset + + - $args[0] - $args[1] - $args[2] - $index + + + + $type]]> content]]> type]]> - $key + autoEscape ? $this->escapeAttribute($item->$type) : $item->$type]]> autoEscape ? $this->escapeAttribute($item->content) : $item->content]]> autoEscape ? $this->escapeAttribute($value) : $value]]> - $type - $value - $value + + + - $doctype - $index - $key - $type - $value + + + + + - $this + - isHtml5 - isHtml5 - isHtml5 - isHtml5 - isRdfa - isXhtml + + + + + + - parent::__call($method, $args) - parent::__call($method, $args) + + - $index - $index + + view]]> - plugin - plugin - plugin + + + - AbstractContainer - AbstractContainer + + - plugin - plugin - plugin + + + - offsetSet + - $content - $content - $index - $index + + + + autoEscape ? $this->escapeAttribute($value) : $value]]> - $value + - $attrs - $attrs + + - $content - $index - $value + + + - $this + - isHtml5 + - parent::__call($method, $args) - parent::__call($method, $args) + + - AbstractContainer - AbstractContainer + + - (bool) $flag + - is_string($spec) + - plugin + @@ -337,181 +342,192 @@ content) || ! is_string($item->content)]]> - offsetSet + - ObjectShape + - $content - $index + + - $attrs + - $content - $index + + - AbstractContainer - AbstractContainer + + - is_string($content) + - $indent + - HelperInterface + - $options + - $options + - $content + - $htmlObject + - $htmlObject($data, self::TYPE, $attribs, $params, $content) + - string + - $htmlObject($data, self::TYPE, $attribs, $params, $content) + - plugin + - plugin + - $value + - $name + - $value + view]]> - (bool) $useNamespaces + + + + + + + + + + response instanceof Response]]> + + - plugin + - __construct + - (string) $template + - plugin + - call_user_func_array($helper, $arguments) + - ExceptionInterface + - $container + - (bool) $injectAcl - (bool) $injectContainer - (bool) $injectTranslator - (string) $proxy + + + + - $view + - hasTranslator - setTranslator + + minDepth)]]> - ! is_string($message) - $container instanceof AbstractContainer + + container]]> - AbstractHelper - null|EventManagerInterface + + - Navigation\Exception\ExceptionInterface + - $container - $container - $container - $container - $container - $events - $events - $events - $events - $events - $maxDepth - $maxDepth - $maxDepth - $maxDepth - $maxDepth - $minDepth - $minDepth - $minDepth - $minDepth + + + + + + + + + + + + + + + + + + + getTextDomain()]]> getTextDomain()]]> - $container - $container - $label - $value + + + + - bool + - $label + last()]]> - $events + @@ -520,32 +536,32 @@ getTitle()]]> - $maxDepth - $minDepth + + - attach - getParent - plugin + + + - (bool) $renderInvisible - (bool) $useAcl - (string) $indent + + + acl === null && static::$defaultAcl !== null]]> container]]> - static::$defaultAcl !== null + - return; + - plugin + - setSharedManager + @@ -553,160 +569,160 @@ - null === $partial + renderPartialModel($params, $container, $partial)]]> renderPartialModel([], $container, $partial)]]> - string - string + + - $partial + - $active + getLabel()]]> getTextDomain()]]> - $partial[0] + - $active - $active - $active - $label + + + + - $parent + - getLabel - getParent - getParent - getTextDomain + + + + - $label + - $container + - $partial + - plugin - plugin + + - (bool) $linkLast + - is_array($partial) - is_string($separator) + + - null === $container - null === $container + + - plugin - plugin + + - HelperInterface - HelperInterface - HelperInterface + + + - $relFlag + - $root + - $active - $arguments[0] - $intermediate - $intermediate - $page - $page + + + + + + $meth()]]> - $type + - $relation + - $result[$rel][$type] + - $active - $found - $intermediate - $intermediate - $page - $page - $result - $type - $value + + + + + + + + + - AbstractPage|array|null - array|null + + - $found - $found - count($result) === 1 ? $result[0] : $result - count($result) === 1 ? $result[0] : $result + + + + - null + - searchRelChapter - searchRelNext - searchRelPrev - searchRelSection - searchRelStart - searchRelSubsection - searchRevSection - searchRevSubsection + + + + + + + + - (int) $renderFlag + root]]> - null === $container + - $acl - $page - $privilege - $resource - $role + + + + + - getPrivilege - getResource - hasResource - isAllowed + + + + @@ -714,23 +730,23 @@ - bool + - null === $partial + renderPartialModel($params, $container, $partial)]]> renderPartialModel([], $container, $partial)]]> - string - string + + - $partial + @@ -749,267 +765,267 @@ - $page - $page + + getTextDomain()]]> getTextDomain()]]> - $partial[0] - $subPage + + - $liClasses + - $foundDepth - $foundPage - $isActive - $liClasses[] - $page - $subPage + + + + + + - getClass - getClass - getParent - getParent - getParent - hasPage - hasPage - hasPages - hasPages - hasPages - isActive + + + + + + + + + + + - $escaper($label) - $escaper($ulClass) - $escaper($ulClass) + + + - $foundDepth + - $container + getTitle()]]> - $minDepth - $minDepth + + - $partial + - plugin - plugin - plugin - plugin + + + + - escapeLabels - setAddClassToListItem + + - (bool) $flag - (bool) $flag - (bool) $flag - (bool) $flag + + + + - is_array($partial) - is_string($liActiveClass) - is_string($ulClass) + + + - null === $container - null === $container + + - plugin - plugin - plugin - plugin + + + + - $aliases + - $serverUrl + - $changefreq - $changefreq - $curDoc - $page - $page - $priority - $priority + + + + + + + - $basePathHelper - $changefreq - $curDoc - $escaper - $page - $priority - $serverUrlHelper + + + + + + + serverUrl]]> - $basePathHelper() - $escaper($string) - $serverUrlHelper() + + + - string - string + + - $escaper($string) + serverUrl]]> serverUrl]]> - $container + - $lastmod + - isValid - isValid - isValid - isValid - plugin - plugin - plugin + + + + + + + - (bool) $formatOutput - (bool) $schemaValidation - (bool) $useSitemapValidators - (bool) $useXmlDecl - (string) $href - (string) $href + + + + + + serverUrl)]]> - plugin - plugin - plugin + + + - static::$defaultViewPartial === null + - $partial - $partialHelper - $partialHelper + + + - $partialHelper($partial, $pages) - $partialHelper($partial[0], $pages) + + - string + - $partialHelper($partial, $pages) - $partialHelper($partial[0], $pages) + + view->paginator]]> - plugin - plugin + + - plugin - plugin + + - is_scalar($values) + - $objectKey - $objectKey + + - $values + - $values + - $name + - null + - render - render + + - (string) $key + - parent::setObjectKey($key) + - $item + - $item + objectKey]]> - array + toArray()]]> - $name - $values + + - self + - parent::__invoke($name, $item) + - self + - (string) $key + - (string) $key - (string) $key - (string) $key - (string) $key + + + + containerClass($value)]]> @@ -1017,53 +1033,53 @@ - Container + - is_scalar($key) + - $this + - $data - $data - $data - $data + + + + nextIndex()]]> nextIndex()]]> - $this[$key] .= $data + - TKey + - max($keys) + 1 + - int + - $items + - $this[$key] - max($keys) + + captureKey]]> - (string) $postfix - (string) $prefix - (string) $separator + + + - $container + containerClass()]]> @@ -1080,16 +1096,16 @@ getContainer()]]> - $return + - __get - __set + + - (bool) $autoEscape - (string) $string - (string) $string + + + containerClass()]]> @@ -1103,35 +1119,35 @@ items[$key]]]> - AbstractContainer + items[$key]]]> - AbstractContainer + - $instance + - (string) $key - (string) $key - (string) $key - (string) $key - (string) $key + + + + + - $current - $viewModelHelper + + viewModelHelper]]> - ViewModel + viewModelHelper]]> @@ -1143,9 +1159,9 @@ getCurrent()]]> - getChildren - plugin - render + + + viewModelHelper]]> @@ -1153,32 +1169,32 @@ - $placeholderHelper + - $placeholderHelper($placeholder) - $placeholderHelper($placeholder) + + - captureEnd - captureStart + + - plugin - render + + - plugin + - $port + - string - string + + host]]> @@ -1188,7 +1204,7 @@ - (bool) $useProxy + @@ -1203,19 +1219,19 @@ - $config + - (bool) $enabled + - is_array($params) - is_bool($options) + + @@ -1224,28 +1240,28 @@ - $params - $reuseMatchedParams + + - $options + - $reuseMatchedParams + - hasRoot + - null|ConfigInterface|ContainerInterface + - ! $events - ! $events + + get('EventManager')]]> @@ -1253,47 +1269,47 @@ get('Translator')]]> - $container - $container + + - ($name is class-string ? T : HelperInterface|callable) + - parent::get($name, $options) + - injectEventManager - injectRenderer - injectTranslator - validatePlugin + + + + initializers]]> initializers]]> - getServiceLocator - getServiceLocator + + - HtmlAttributesSet + - $value + - $storeValue - $value + + - clearChildren - clearOptions - clearVariables + + + @@ -1302,17 +1318,17 @@ type]]> - false|string + type]]> type]]> - $variables + - $feed + feed instanceof Feed]]> @@ -1320,125 +1336,125 @@ - $captureTo + - ModelInterface - ModelInterface - ModelInterface - ModelInterface - ModelInterface - ModelInterface - ModelInterface - ModelInterface + + + + + + + + - gettype($variables) - is_array($options) + + - array|ArrayAccess|Traversable + - $key + - $value + - $variables[$name] + - (bool) $append - (bool) $terminate - (string) $capture - (string) $name - (string) $name - (string) $name - (string) $name - (string) $template + + + + + + + + - is_object($variables) + - (array) $nameOrModel + - $resolver + - $type + - $values + - $resolver + - is_string($nameOrModel) + - $jsonpCallback + - $child + - $value + - $nameOrModel - $nameOrModel + + - $childValues - $children - $values + + + - $resolver + - (bool) $mergeUnnamedChildren - (string) $callback + + - $mergeChildren + - ! is_object($nameOrModel) + jsonpCallback]]> - $nameOrModel instanceof Traversable + - gettype($helpers) + __templateResolver->resolve($name, $this)]]> - $values + - string|Resolver + __template]]> @@ -1446,18 +1462,18 @@ __varsCache)]]> - $includeReturn + __template]]> - $value - $value - $variablesAsArray[$key] - $vars[$name] + + + + - string + - new $helpers(new ServiceManager()) + __filterChain->filter($this->__content)]]> @@ -1467,10 +1483,10 @@ __templateResolver]]> - $variables + - $values + resolver($this->__template)]]> @@ -1480,16 +1496,16 @@ __vars]]> - resolve + - $config + - (bool) $renderTrees + - is_object($helpers) + __file]]> @@ -1508,29 +1524,29 @@ - resolve + - (string) $prefix + - is_iterable($map) - is_iterable($map) + + map, $map)]]> - is_string($path) + - static::FAILURE_NOT_FOUND - static::FAILURE_NO_PATHS + + lastLookupFailure]]> @@ -1539,11 +1555,11 @@ lastLookupFailure]]> - is_string($path) + - false - false + + @@ -1551,137 +1567,137 @@ - TemplatePathStack + - (bool) $flag - (string) $defaultSuffix + + - $headers + - addHeaderLine + - setContent + - getHeaders + - $headers + - addHeaderLine - addHeaderLine + + - setContent + - (string) $charset + - getHeaders + - $placeholders - $result + + - containerExists - getContainer + + - $contentPlaceholders + - plugin + - $e + - plugin + - $value + - $key - $key - ArrayIterator::class + + + - $return - $return - $spec - $this[$key] - $this[$key] - $value - $value + + + + + + + - (bool) $flag + - View + - $options + - $result + - $events - $request - $response + + + - $oldResult + - $oldResult + - $events + - hasChildren + - ViewEvent - ViewEvent + + - $value - $value - $value - $value + + + + - $name - $name + + - $params[$param] + @@ -1691,15 +1707,15 @@ - addPath + - assertTrue - assertTrue - assertTrue + + + - addPath + varName2]]> @@ -1709,52 +1725,52 @@ - $test - $test - $test - $test + + + + - $test - $test - $test - $test + + + + - $test - $test - $test - $test + + + + - $test - $test - $test - $test + + + + - $test - $test - $test - $test + + + + - $value - $value - $value + + + - gravatar + @@ -1768,34 +1784,34 @@ - $item - $item - $item - $item - $item + + + + + - $order[$key] - $order[$key] - $order[$key] + + + - $item - $item - $item - $item - $item - $key - $key - $key - $link - $link - $order[$key] - $order[$key] - $order[$key] - $value - $value - $value + + + + + + + + + + + + + + + + @@ -1818,16 +1834,16 @@ href]]> - appendNext - appendPrev - bogusMethod - getArrayCopy - getValue - getValue - getValue - getValue - getValue - getValue + + + + + + + + + + @@ -1837,39 +1853,39 @@ - offsetSetHttpEquiv - offsetSetHttpEquiv - offsetSetName - offsetSetName - offsetSetName + + + + + - $key + - $escape($value) - $escape($value) + + - $acl - $acl + + serviceManager->get('Navigation')]]> - $acl - $acl - $role - $role + + + + - $_helper + _helper]]> @@ -1889,148 +1905,148 @@ - $_helper + - $active - $active - $active - $active - $active - $active - $active - $active - $found - $found + + + + + + + + + + - $active - $active - $active - $active - $active - $active - $active - $active - $active - $active - $active - $active - $active - $active - $active - $active - $active - $active - $active - $active - $active - $active - $active - $active - $active - $active - $active - $active - $active - $active - $active - $active - $active - $actual - $actual - $actual - $actual - $actual - $actual - $actual - $actual[$attrib][$type][$key] - $actual[] - $actual[] - $actual[] - $actual[] - $found - $found - $found - $found - $found - $found - $found - $found - $found - $found - $found - $page - $page - $page - $page - $page - $page - $page + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - addRel - addRel - addRel - addRel - addRel - addRel - addRel - addRel - addRel - addRel - addRev - addRev - getHref - getHref - getHref - getLabel - getLabel - getLabel - getLabel - getLabel - getLabel - getLabel - getLabel - getLabel - getLabel - getLabel - getLabel - getLabel - getLabel - getLabel - getLabel - getLabel - removeRel - removeRev - setActive - setActive + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - $active - $active - $active - $page - $page + + + + + - $_helper + - getHref - getLabel - getLabel + + + - getHref - getLabel - getLabel + + + - $discard - $discard + + @@ -2046,16 +2062,16 @@ - $p - $page + + - getRole - setActive - setActive + + + - $_helper + @@ -2070,17 +2086,17 @@ - $actual - $creationContextValue - $expected + + + - getContainer - getContainer - getContainer + + + - $_helper + errorHandlerMessage]]> @@ -2092,7 +2108,7 @@ ], false)]]> - PsrContainerDecorator + @@ -2110,16 +2126,16 @@ - setBasePath + - $_helper + - plugin + - plugin + nav2;]]> @@ -2140,216 +2156,216 @@ - $all - $paginator + + - null + - $o - $o - $o - $o - $o - $o - $o - $o - $rIterator - $rIterator - $rIterator - $rIterator + + + + + + + + + + + + - new stdClass() - new stdClass() + + - $value - $value + + - $key - $key - $key - $value - $value - $value - $value + + + + + + + message]]> message]]> objectKey]]> objectKey]]> - $value - $value + + - $result - $result - $result - $result - $result - $result - $result - $result - $result - $result - $result - $result - $result - $result - $result + + + + + + + + + + + + + + + - $result - $result - $result - $result - $result - $result - $result - $result - $result - $result - $result - $result - $result - $result - $result + + + + + + + + + + + + + + + - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath + + + + + + + + + + + + + + + + + + + + + + + + + + + + - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath - addPath + + + + + + + + + + + + + + + + + + + + + + + + + + + + message]]> message]]> - $key - $key - $key + + + - $key - $key - $value - $value - $value + + + + + - $key - $key - $value - $value - $value + + + + + getVariables()]]> getVariables()]]> - $return - $return - $return - $return - $return - $return - $return - $return - $return + + + + + + + + + - $return - $return - $return - $return - $return - $return - $return - $return - $return + + + + + + + + + - addPath - addPath - addPath - addPath - addPath - addPath - addPath + + + + + + + - addPath - addPath - addPath - addPath - addPath - addPath - addPath + + + + + + + vars()->message]]> @@ -2357,8 +2373,8 @@ - 1337 - new stdClass() + + @@ -2368,7 +2384,7 @@ - $value + @@ -2376,42 +2392,42 @@ getDependencyConfig())]]> - $serviceConfig - $test + + - $router - $serviceConfig - $test - $test - $urlHelper - $urlHelper - $viewHelpers - $viewHelpers + + + + + + + + true])]]> - bootstrap - bootstrap - get - get - setRequestUri + + + + + - Wildcard::class + - $it - $router - $router + + + - true - true + + @@ -2423,9 +2439,6 @@ 'factories' => $factories, ])]]> - - ]]> - @@ -2465,31 +2478,31 @@ ])]]> - $container - $container + + - $container - $container + + - Iterator + - $vars - new stdClass() - new stdClass() + + + - $options - $vars + + - $variables + @@ -2497,11 +2510,11 @@ - $content + - $foo - $return + + @@ -2510,53 +2523,53 @@ renderer->vars()->foo]]> - $errno - $errstr + + - $model - $model - $model - $model - $model - $model - 0 - false - false + + + + + + + + + - $model + - assertNull + - TemplatePathStack::FAILURE_NOT_FOUND - TemplatePathStack::FAILURE_NO_PATHS + + - $listener - $listener - $priority - $priority + + + + - addHeaderLine - addHeaderLine - addHeaderLine + + + - addHeaderLine - addHeaderLine - addHeaderLine + + + @@ -2569,60 +2582,60 @@ get('content-type')->getFieldValue()]]> - $content - $content - $content - $content - $content - $content - $listener - $listener - $priority - $priority + + + + + + + + + + - addHeaderLine - addHeaderLine - addHeaderLine - getFieldValue - getFieldValue - getFieldValue - getFieldValue - getFieldValue - getFieldValue - getFieldValue + + + + + + + + + + - addHeaderLine - addHeaderLine - addHeaderLine - getFieldValue - getFieldValue - getFieldValue - getFieldValue - getFieldValue - getFieldValue - getFieldValue + + + + + + + + + + - getContent + - $e - $event - $event - $event + + + + - $content - $content - $content - $listener - $listener - $priority - $priority + + + + + + + @@ -2631,7 +2644,7 @@ result->content]]> - null + diff --git a/src/Helper/Json.php b/src/Helper/Json.php new file mode 100644 index 000000000..ca285d299 --- /dev/null +++ b/src/Helper/Json.php @@ -0,0 +1,74 @@ += 2.20.0 + * + * @var Response + */ + protected $response; + + /** + * Encode data as JSON and set response header + * + * @param mixed $data + * @param array $jsonOptions Options to pass to JsonFormatter::encode() + * @return string|void + */ + public function __invoke($data, array $jsonOptions = []) + { + if (isset($jsonOptions['enableJsonExprFinder']) && $jsonOptions['enableJsonExprFinder'] === true) { + trigger_error( + 'Json Expression functionality is deprecated and will be removed in laminas-view 3.0', + E_USER_DEPRECATED + ); + } + + $data = JsonFormatter::encode($data, null, $jsonOptions); + + if ($this->response instanceof Response) { + $headers = $this->response->getHeaders(); + $headers->addHeaderLine('Content-Type', 'application/json'); + } + + return $data; + } + + /** + * Set the response object + * + * @deprecated since >= 2.20.0. If you need to set response headers, use the methods available in + * the framework. For example in Laminas MVC this can be achieved in the controller or in + * Mezzio, you can change response headers in Middleware. This method will be removed in 3.0 + * without replacement functionality. + * + * @return Json + */ + public function setResponse(Response $response) + { + $this->response = $response; + return $this; + } +} diff --git a/src/Helper/Layout.php b/src/Helper/Layout.php index a1a4335b1..cdcd7c46a 100644 --- a/src/Helper/Layout.php +++ b/src/Helper/Layout.php @@ -35,7 +35,7 @@ public function __construct(?ViewModel $viewModelHelper = null) * Otherwise, attempts to set the template for that view model. * * @param null|string $template - * @return Model|null|self + * @return Model|self */ public function __invoke($template = null) { diff --git a/src/Renderer/PhpRenderer.php b/src/Renderer/PhpRenderer.php index 050dc29bf..3021385fb 100644 --- a/src/Renderer/PhpRenderer.php +++ b/src/Renderer/PhpRenderer.php @@ -45,7 +45,7 @@ * mark them as part of the internal implementation, and thus prevent conflict * with variables injected into the renderer. * - * Convenience methods for build in helpers (@see __call): + * Convenience methods for built-in helpers (@see __call): * * @method string asset($asset) * @method string|null basePath($file = null) @@ -69,7 +69,7 @@ * @method string htmlPage($data, array $attribs = array(), array $params = array(), $content = null) * @method mixed|null identity() * @method \Laminas\View\Helper\InlineScript inlineScript($mode = \Laminas\View\Helper\HeadScript::FILE, $spec = null, $placement = 'APPEND', array $attrs = array(), $type = 'text/javascript') - * @method \Laminas\View\Helper\Layout layout($template = null) + * @method Model|\Laminas\View\Helper\Layout layout($template = null) * @method \Laminas\View\Helper\Navigation navigation($container = null) * @method string paginationControl(\Laminas\Paginator\Paginator $paginator = null, $scrollingStyle = null, $partial = null, $params = null) * @method string|\Laminas\View\Helper\Partial partial($name = null, $values = null) diff --git a/test/Helper/JsonTest.php b/test/Helper/JsonTest.php new file mode 100644 index 000000000..1672a91f8 --- /dev/null +++ b/test/Helper/JsonTest.php @@ -0,0 +1,95 @@ +response = new Response(); + $this->helper = new JsonHelper(); + $this->helper->setResponse($this->response); + } + + public function verifyJsonHeader(): void + { + $headers = $this->response->getHeaders(); + $this->assertTrue($headers->has('Content-Type')); + $header = $headers->get('Content-Type'); + self::assertInstanceOf(HeaderInterface::class, $header); + $this->assertEquals('application/json', $header->getFieldValue()); + } + + public function testJsonHelperSetsResponseHeader(): void + { + $this->helper->__invoke('foobar'); + $this->verifyJsonHeader(); + } + + public function testJsonHelperReturnsJsonEncodedString(): void + { + $data = $this->helper->__invoke('foobar'); + $this->assertIsString($data); + $this->assertEquals('foobar', JsonFormatter::decode($data)); + } + + public function testThatADeprecationErrorIsTriggeredWhenExpressionFinderOptionIsUsed(): void + { + set_error_handler(function ($code, $error) { + throw new RuntimeException($error, $code); + }, E_USER_DEPRECATED); + try { + $this->helper->__invoke(['foo'], ['enableJsonExprFinder' => true]); + $this->fail('An exception was not thrown'); + } catch (RuntimeException $e) { + self::assertStringContainsString('Json Expression functionality is deprecated', $e->getMessage()); + } finally { + restore_error_handler(); + } + } + + public function testThatADeprecationErrorIsNotTriggeredWhenExpressionFinderOptionIsNotUsed(): void + { + $this->expectNotToPerformAssertions(); + $this->helper->__invoke(['foo'], ['enableJsonExprFinder' => 'anything other than true']); + } + + public function testTheHelperWillPrettyPrintWhenRequired(): void + { + $input = [ + 'dory' => 'blue', + 'nemo' => 'orange', + ]; + $expect = json_encode($input, JSON_THROW_ON_ERROR | JSON_PRETTY_PRINT); + self::assertSame($expect, ($this->helper)->__invoke($input, ['prettyPrint' => true])); + } +} diff --git a/test/HelperPluginManagerCompatibilityTest.php b/test/HelperPluginManagerCompatibilityTest.php index afad3c796..6632f597b 100644 --- a/test/HelperPluginManagerCompatibilityTest.php +++ b/test/HelperPluginManagerCompatibilityTest.php @@ -50,7 +50,7 @@ protected function getV2InvalidPluginException(): string } /** - * @psalm-return Generator + * @psalm-return Generator */ public static function aliasProvider(): Generator { @@ -66,6 +66,8 @@ public static function aliasProvider(): Generator continue; } + self::assertIsString($alias); + yield $alias => [$alias, $target]; } }