diff --git a/.gitignore b/.gitignore index 65d73ddd..4a7f7596 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,52 @@ -/vendor/* -/config/app.php -/tmp/* +# CakePHP specific files # +########################## +/config/app_local.php +/config/.env /logs/* +/tmp/* +/vendor/* + +# OS generated files # +###################### +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +Icon? +ehthumbs.db +Thumbs.db +.directory + +# Tool specific files # +####################### +# PHPUnit +.phpunit.result.cache +# vim +*~ +*.swp +*.swo +# sublime text & textmate +*.sublime-* +*.stTheme.cache +*.tmlanguage.cache +*.tmPreferences.cache +# Eclipse +.settings/* +# JetBrains, aka PHPStorm, IntelliJ IDEA +.idea/* +# NetBeans +nbproject/* +# Visual Studio Code +.vscode +# Sass preprocessor +.sass-cache/ + /webroot/cache_css/* /webroot/cache_js/* /files/* /webroot/files/* /plugins/Showcase -.idea .php_cs.cache +config/Migrations/schema-dump-default.lock +.ddev diff --git a/bin/cake b/bin/cake index eeca1c4a..81df78fd 100755 --- a/bin/cake +++ b/bin/cake @@ -19,40 +19,40 @@ # Canonicalize by following every symlink of the given name recursively canonicalize() { -NAME="$1" -if [ -f "$NAME" ] -then -DIR=$(dirname -- "$NAME") -NAME=$(cd -P "$DIR" > /dev/null && pwd -P)/$(basename -- "$NAME") -fi -while [ -h "$NAME" ]; do -DIR=$(dirname -- "$NAME") -SYM=$(readlink "$NAME") -NAME=$(cd "$DIR" > /dev/null && cd $(dirname -- "$SYM") > /dev/null && pwd)/$(basename -- "$SYM") -done -echo "$NAME" + NAME="$1" + if [ -f "$NAME" ] + then + DIR=$(dirname -- "$NAME") + NAME=$(cd -P "$DIR" > /dev/null && pwd -P)/$(basename -- "$NAME") + fi + while [ -h "$NAME" ]; do + DIR=$(dirname -- "$NAME") + SYM=$(readlink "$NAME") + NAME=$(cd "$DIR" > /dev/null && cd "$(dirname -- "$SYM")" > /dev/null && pwd)/$(basename -- "$SYM") + done + echo "$NAME" } # Find a CLI version of PHP findCliPhp() { -for TESTEXEC in php php-cli /usr/local/bin/php -do -SAPI=`echo "" | $TESTEXEC 2>/dev/null` -if [ "$SAPI" = "cli" ] -then -echo $TESTEXEC -return -fi -done -echo "Failed to find a CLI version of PHP; falling back to system standard php executable" >&2 -echo "php"; + for TESTEXEC in php php-cli /usr/local/bin/php + do + SAPI=$(echo "" | $TESTEXEC 2>/dev/null) + if [ "$SAPI" = "cli" ] + then + echo $TESTEXEC + return + fi + done + echo "Failed to find a CLI version of PHP; falling back to system standard php executable" >&2 + echo "php"; } # If current path is a symlink, resolve to real path realname="$0" if [ -L "$realname" ] then -realname=$(readlink -f "$0") + realname=$(readlink -f "$0") fi CONSOLE=$(dirname -- "$(canonicalize "$realname")") @@ -62,14 +62,14 @@ APP=$(dirname "$CONSOLE") # variable with the correct path in it. if [ -z "$PHP" ] then -PHP=$(findCliPhp) + PHP=$(findCliPhp) fi -if [ $(basename $realname) != 'cake' ] +if [ "$(basename "$realname")" != 'cake' ] then -exec $PHP "$CONSOLE"/cake.php $(basename $realname) "$@" + exec "$PHP" "$CONSOLE"/cake.php "$(basename "$realname")" "$@" else -exec $PHP "$CONSOLE"/cake.php "$@" + exec "$PHP" "$CONSOLE"/cake.php "$@" fi -exit \ No newline at end of file +exit diff --git a/bin/cake.bat b/bin/cake.bat index b48c7b18..ad137822 100644 --- a/bin/cake.bat +++ b/bin/cake.bat @@ -11,7 +11,7 @@ :: @copyright Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org) :: @link https://cakephp.org CakePHP(tm) Project :: @since 2.0.0 -:: @license https://www.opensource.org/licenses/mit-license.php MIT License +:: @license https://opensource.org/licenses/mit-license.php MIT License :: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: diff --git a/composer.json b/composer.json index 2185cf81..ca175865 100644 --- a/composer.json +++ b/composer.json @@ -6,28 +6,33 @@ "license": "MIT", "require": { "php": ">=7.3", - "cakephp/cakephp": "3.8.*", - "cakephp/migrations": "^2.0.0", + "cakephp/cakephp": "^4.4.0", + "cakephp/migrations": "^3.8.2", "mobiledetect/mobiledetectlib": "2.*", "cakephp/plugin-installer": "^1.3", - "markstory/asset_compress": "~3.0", - "cakedc/users": "^8.0", - "burzum/cakephp-imagine-plugin": "~2.0", - "muffin/tags": "^1.1", - "muffin/slug": "^1.4", - "josegonzalez/cakephp-upload": "^4.0.0", + "markstory/asset_compress": "^4.1.0", + "cakedc/users": "^11.2.1", + "burzum/cakephp-imagine-plugin": "^4.0.0", + "muffin/tags": "^2.0.0-beta", + "muffin/slug": "^2.1.1", + "josegonzalez/cakephp-upload": "^7.0.1", "google/recaptcha": "~1.1", - "league/flysystem": "^1.1", + "league/flysystem": "^2.2", "linkorb/jsmin-php": "^1.0", - "natxet/cssmin": "^3.0" + "natxet/cssmin": "^3.0", + "cakedc/cakephp-cached-routing": "^1.0" }, "require-dev": { "psy/psysh": "@stable", - "cakephp/debug_kit": "~3.2", - "cakephp/bake": "~1.1", + "cakephp/debug_kit": "^4.9.4", + "cakephp/bake": "^2.9.3", "cakephp/cakephp-codesniffer": "^3.0", - "phpunit/phpunit": "^6.0" - }, + "phpunit/phpunit": "^9.5", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "1.7.15", + "psalm/phar": "^4.18.1", + "dereuromark/cakephp-ide-helper": "@stable" + }, "autoload": { "psr-4": { "App\\": "src" @@ -36,7 +41,8 @@ "config": { "secure-http": false, "allow-plugins": { - "cakephp/plugin-installer": true + "cakephp/plugin-installer": true, + "phpstan/extension-installer": true } }, "extra": { diff --git a/composer.lock b/composer.lock index 6dec4514..a33adb86 100644 --- a/composer.lock +++ b/composer.lock @@ -4,29 +4,38 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "5bc9b8378360943a90ee760288d9ab65", + "content-hash": "8cc551bcedac4d09dc43a5421f098bc4", "packages": [ { - "name": "aura/intl", - "version": "3.0.0", + "name": "burzum/cakephp-imagine-plugin", + "version": "4.0.0", "source": { "type": "git", - "url": "https://github.com/auraphp/Aura.Intl.git", - "reference": "7fce228980b19bf4dee2d7bbd6202a69b0dde926" + "url": "https://github.com/burzum/cakephp-imagine-plugin.git", + "reference": "e6d0ca1f335cee2321e7d5560b1afae1c6bad7ee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/auraphp/Aura.Intl/zipball/7fce228980b19bf4dee2d7bbd6202a69b0dde926", - "reference": "7fce228980b19bf4dee2d7bbd6202a69b0dde926", + "url": "https://api.github.com/repos/burzum/cakephp-imagine-plugin/zipball/e6d0ca1f335cee2321e7d5560b1afae1c6bad7ee", + "reference": "e6d0ca1f335cee2321e7d5560b1afae1c6bad7ee", "shasum": "" }, "require": { - "php": "^5.6|^7.0" + "cakephp/cakephp": "^4.0.0", + "cakephp/plugin-installer": "*", + "imagine/imagine": "0.6.*", + "php": ">=7.2.0" }, - "type": "library", + "require-dev": { + "cakephp/cakephp-codesniffer": "^4.0", + "phpunit/phpunit": "^8.0", + "vlucas/phpdotenv": "^3.3" + }, + "type": "cakephp-plugin", "autoload": { "psr-4": { - "Aura\\Intl\\": "src/" + "Burzum\\Imagine\\": "src", + "Burzum\\Imagine\\Test\\Fixture\\": "tests\\Fixture" } }, "notification-url": "https://packagist.org/downloads/", @@ -35,50 +44,63 @@ ], "authors": [ { - "name": "Aura.Intl Contributors", - "homepage": "https://github.com/auraphp/Aura.Intl/contributors" + "name": "Florian Krämer", + "homepage": "http://florian-kraemer.net" } ], - "description": "The Aura Intl package provides internationalization tools, specifically message translation.", - "homepage": "https://github.com/auraphp/Aura.Intl", + "description": "Imagine Plugin for CakePHP", + "homepage": "https://github.com/burzum/cakephp-imagine-plugin", "keywords": [ - "g11n", - "globalization", - "i18n", - "internationalization", - "intl", - "l10n", - "localization" + "cakephp", + "image", + "image-processing", + "media" ], - "time": "2017-01-20T05:00:11+00:00" + "support": { + "issues": "https://github.com/burzum/cakephp-imagine-plugin/issues", + "source": "https://github.com/burzum/cakephp-imagine-plugin/tree/4.x" + }, + "abandoned": true, + "time": "2020-01-10T19:20:49+00:00" }, { - "name": "burzum/cakephp-imagine-plugin", - "version": "2.1.1", + "name": "cakedc/auth", + "version": "7.2.0", "source": { "type": "git", - "url": "https://github.com/burzum/cakephp-imagine-plugin.git", - "reference": "c88eaa490dcc60df0914536dbb5da32f78c45b1f" + "url": "https://github.com/CakeDC/auth.git", + "reference": "9e126f88c32e7ac89f4ab8e5942228c58e1c2d85" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/burzum/cakephp-imagine-plugin/zipball/c88eaa490dcc60df0914536dbb5da32f78c45b1f", - "reference": "c88eaa490dcc60df0914536dbb5da32f78c45b1f", + "url": "https://api.github.com/repos/CakeDC/auth/zipball/9e126f88c32e7ac89f4ab8e5942228c58e1c2d85", + "reference": "9e126f88c32e7ac89f4ab8e5942228c58e1c2d85", "shasum": "" }, "require": { - "cakephp/cakephp": "3.*", - "cakephp/plugin-installer": "*", - "imagine/imagine": "0.6.*" + "cakephp/cakephp": "^4.3", + "php": ">=7.2.0" }, "require-dev": { - "phpunit/phpunit": "4.*" + "cakephp/authentication": "^2.0", + "cakephp/authorization": "^2.0", + "cakephp/cakephp-codesniffer": "^4.0", + "google/recaptcha": "@stable", + "league/oauth1-client": "^1.7", + "league/oauth2-facebook": "@stable", + "league/oauth2-google": "@stable", + "league/oauth2-instagram": "@stable", + "league/oauth2-linkedin": "@stable", + "luchianenco/oauth2-amazon": "^1.1", + "php-coveralls/php-coveralls": "^2.4", + "phpunit/phpunit": "^9.5", + "robthree/twofactorauth": "^1.6", + "yubico/u2flib-server": "^1.0" }, "type": "cakephp-plugin", "autoload": { "psr-4": { - "Burzum\\Imagine\\": "src", - "Burzum\\Imagine\\Test\\Fixture\\": "tests\\Fixture" + "CakeDC\\Auth\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -87,44 +109,55 @@ ], "authors": [ { - "name": "Florian Krämer", - "homepage": "http://florian-kraemer.net" + "name": "CakeDC", + "homepage": "https://www.cakedc.com", + "role": "Author" + }, + { + "name": "Others", + "homepage": "https://github.com/CakeDC/auth/graphs/contributors" } ], - "description": "Imagine Plugin for CakePHP", - "homepage": "https://github.com/burzum/cakephp-imagine-plugin", + "description": "Auth objects for CakePHP", + "homepage": "https://github.com/CakeDC/auth", "keywords": [ - "cakephp", - "image", - "image-processing", - "media" + "Authentication", + "auth", + "cakedc", + "cakephp" ], - "time": "2016-01-28T23:14:15+00:00" + "support": { + "issues": "https://github.com/CakeDC/auth/issues", + "source": "https://github.com/CakeDC/auth" + }, + "time": "2022-12-05T11:49:25+00:00" }, { - "name": "cakedc/auth", - "version": "3.0.4", + "name": "cakedc/cakephp-cached-routing", + "version": "1.0.1", "source": { "type": "git", - "url": "https://github.com/CakeDC/auth.git", - "reference": "83ac6e545515acc1d0aaa440fb13ac1d1fe1ffa0" + "url": "https://github.com/CakeDC/cakephp-cached-routing.git", + "reference": "0b84ac753c3d836991554eea9ca48020dc0f8269" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CakeDC/auth/zipball/83ac6e545515acc1d0aaa440fb13ac1d1fe1ffa0", - "reference": "83ac6e545515acc1d0aaa440fb13ac1d1fe1ffa0", + "url": "https://api.github.com/repos/CakeDC/cakephp-cached-routing/zipball/0b84ac753c3d836991554eea9ca48020dc0f8269", + "reference": "0b84ac753c3d836991554eea9ca48020dc0f8269", "shasum": "" }, "require": { - "cakephp/cakephp": "^3.6.0" + "cakephp/cakephp": "^4.4", + "php": ">=7.4" }, "require-dev": { - "phpunit/phpunit": "^5.0" + "cakephp/cakephp-codesniffer": "^4.0", + "phpunit/phpunit": "^9.5" }, "type": "cakephp-plugin", "autoload": { "psr-4": { - "CakeDC\\Auth\\": "src" + "CakeDC\\CachedRouting\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -134,55 +167,66 @@ "authors": [ { "name": "CakeDC", - "homepage": "https://www.cakedc.com", + "homepage": "http://www.cakedc.com", "role": "Author" }, { "name": "Others", - "homepage": "https://github.com/CakeDC/auth/graphs/contributors" + "homepage": "https://github.com/CakeDC/users/graphs/contributors" } ], - "description": "Auth objects for CakePHP", - "homepage": "https://github.com/CakeDC/auth", + "description": "Cached RoutingMiddleware for CakePHP 4.3+", + "homepage": "https://github.com/CakeDC/cakephp-cached-routing", "keywords": [ - "Authentication", - "auth", - "cakedc", - "cakephp" + "cache", + "cakephp", + "routing" ], - "time": "2019-04-26T11:46:35+00:00" + "support": { + "issues": "https://github.com/CakeDC/cakephp-cached-routing/issues", + "source": "https://github.com/CakeDC/cakephp-cached-routing" + }, + "time": "2022-06-21T14:40:52+00:00" }, { "name": "cakedc/users", - "version": "8.5.1", + "version": "11.2.1", "source": { "type": "git", "url": "https://github.com/CakeDC/users.git", - "reference": "04c543edbec3f6a4860f49f761143a37bb52f6fd" + "reference": "0d796dc832f21bed79ff2e25b2e7cf7665a4e6a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CakeDC/users/zipball/04c543edbec3f6a4860f49f761143a37bb52f6fd", - "reference": "04c543edbec3f6a4860f49f761143a37bb52f6fd", + "url": "https://api.github.com/repos/CakeDC/users/zipball/0d796dc832f21bed79ff2e25b2e7cf7665a4e6a7", + "reference": "0d796dc832f21bed79ff2e25b2e7cf7665a4e6a7", "shasum": "" }, "require": { - "cakedc/auth": "^3.0", - "cakephp/cakephp": "^3.7" + "cakedc/auth": "^7.0", + "cakephp/authentication": "^2.0.0", + "cakephp/authorization": "^2.0.0", + "cakephp/cakephp": "^4.0", + "php": ">=7.2.0" }, "require-dev": { - "cakephp/cakephp-codesniffer": "dev-master", + "cakephp/cakephp-codesniffer": "^4.0", "google/recaptcha": "@stable", + "league/oauth1-client": "^1.7", "league/oauth2-facebook": "@stable", "league/oauth2-google": "@stable", "league/oauth2-instagram": "@stable", "league/oauth2-linkedin": "@stable", "luchianenco/oauth2-amazon": "^1.1", - "phpunit/phpunit": "^5.7.14|^6.0", - "robthree/twofactorauth": "~1.6", + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^9.5", + "robthree/twofactorauth": "^1.6", + "thenetworg/oauth2-azure": "^2.1", + "web-auth/webauthn-lib": "^3.3", "yubico/u2flib-server": "^1.0" }, "suggest": { + "cakephp/authorization": "Provide authorization for users", "google/recaptcha": "Provides reCAPTCHA validation for registration form", "league/oauth1-client": "Provides Social Authentication with Twitter", "league/oauth2-facebook": "Provides Social Authentication with Facebook", @@ -190,7 +234,8 @@ "league/oauth2-instagram": "Provides Social Authentication with Instagram", "league/oauth2-linkedin": "Provides Social Authentication with LinkedIn", "luchianenco/oauth2-amazon": "Provides Social Authentication with Amazon", - "robthree/twofactorauth": "Provides Google Authenticator functionality" + "robthree/twofactorauth": "Provides Google Authenticator functionality", + "thenetworg/oauth2-azure": "Provides Social Authentication with MS Azure" }, "type": "cakephp-plugin", "autoload": { @@ -222,44 +267,196 @@ "cakephp", "oauth2" ], - "time": "2019-10-07T17:20:24+00:00" + "support": { + "issues": "https://github.com/CakeDC/users/issues", + "source": "https://github.com/CakeDC/users" + }, + "time": "2023-07-13T21:50:27+00:00" + }, + { + "name": "cakephp/authentication", + "version": "2.10.1", + "source": { + "type": "git", + "url": "https://github.com/cakephp/authentication.git", + "reference": "643e17bcbbe2c5a01a5aaaa10d56df1a609ca6ab" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cakephp/authentication/zipball/643e17bcbbe2c5a01a5aaaa10d56df1a609ca6ab", + "reference": "643e17bcbbe2c5a01a5aaaa10d56df1a609ca6ab", + "shasum": "" + }, + "require": { + "cakephp/http": "^4.4", + "laminas/laminas-diactoros": "^2.2.2", + "psr/http-client": "^1.0", + "psr/http-message": "^1.0", + "psr/http-server-handler": "^1.0", + "psr/http-server-middleware": "^1.0" + }, + "require-dev": { + "cakephp/cakephp": "^4.4", + "cakephp/cakephp-codesniffer": "^4.0", + "firebase/php-jwt": "^6.2", + "phpunit/phpunit": "^8.5 || ^9.3" + }, + "suggest": { + "cakephp/cakephp": "Install full core to use \"CookieAuthenticator\".", + "cakephp/orm": "To use \"OrmResolver\" (Not needed separately if using full CakePHP framework).", + "cakephp/utility": "Provides CakePHP security methods. Required for the JWT adapter and Legacy password hasher.", + "ext-ldap": "Make sure this php extension is installed and enabled on your system if you want to use the built-in LDAP adapter for \"LdapIdentifier\".", + "firebase/php-jwt": "If you want to use the JWT adapter add this dependency" + }, + "type": "cakephp-plugin", + "autoload": { + "psr-4": { + "Authentication\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "CakePHP Community", + "homepage": "https://github.com/cakephp/authentication/graphs/contributors" + } + ], + "description": "Authentication plugin for CakePHP", + "homepage": "https://cakephp.org", + "keywords": [ + "Authentication", + "auth", + "cakephp", + "middleware" + ], + "support": { + "docs": "https://book.cakephp.org/authentication/2/en/", + "forum": "https://stackoverflow.com/tags/cakephp", + "irc": "irc://irc.freenode.org/cakephp", + "issues": "https://github.com/cakephp/authentication/issues", + "source": "https://github.com/cakephp/authentication" + }, + "time": "2023-03-17T16:13:23+00:00" + }, + { + "name": "cakephp/authorization", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/cakephp/authorization.git", + "reference": "3f9b514cba1cc588e04ee04286bd7a0228e83bb2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cakephp/authorization/zipball/3f9b514cba1cc588e04ee04286bd7a0228e83bb2", + "reference": "3f9b514cba1cc588e04ee04286bd7a0228e83bb2", + "shasum": "" + }, + "require": { + "cakephp/http": "^4.0", + "php": ">=7.2", + "psr/http-client": "^1.0", + "psr/http-message": "^1.0", + "psr/http-server-handler": "^1.0", + "psr/http-server-middleware": "^1.0" + }, + "require-dev": { + "cakephp/authentication": "^2.0", + "cakephp/bake": "^2.0", + "cakephp/cakephp": "^4.0", + "cakephp/cakephp-codesniffer": "^4.0", + "cakephp/plugin-installer": "^1.3", + "phpunit/phpunit": "^8.5 || ^9.3" + }, + "suggest": { + "cakephp/http": "To use \"RequestPolicyInterface\" (Not needed separately if using full CakePHP framework).", + "cakephp/orm": "To use \"OrmResolver\" (Not needed separately if using full CakePHP framework)." + }, + "type": "cakephp-plugin", + "autoload": { + "psr-4": { + "Authorization\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "CakePHP Community", + "homepage": "https://github.com/cakephp/authorization/graphs/contributors" + } + ], + "description": "Authorization abstraction layer plugin for CakePHP", + "keywords": [ + "access", + "auth", + "authorization", + "cakephp" + ], + "support": { + "docs": "https://cakephp.org/authorization/2/en/", + "forum": "https://stackoverflow.com/tags/cakephp", + "irc": "irc://irc.freenode.org/cakephp", + "issues": "https://github.com/cakephp/authorization/issues", + "source": "https://github.com/cakephp/authorization" + }, + "time": "2022-12-27T20:26:50+00:00" }, { "name": "cakephp/cakephp", - "version": "3.8.13", + "version": "4.4.16", "source": { "type": "git", "url": "https://github.com/cakephp/cakephp.git", - "reference": "1915d78f659d374224b2be0a5ad7822d96fb8366" + "reference": "f68c3c6f24d65cb869cceaa8975f2ca2e1d0f5b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/cakephp/zipball/1915d78f659d374224b2be0a5ad7822d96fb8366", - "reference": "1915d78f659d374224b2be0a5ad7822d96fb8366", + "url": "https://api.github.com/repos/cakephp/cakephp/zipball/f68c3c6f24d65cb869cceaa8975f2ca2e1d0f5b7", + "reference": "f68c3c6f24d65cb869cceaa8975f2ca2e1d0f5b7", "shasum": "" }, "require": { - "aura/intl": "^3.0.0", - "cakephp/chronos": "^1.0.1", + "cakephp/chronos": "^2.2", + "composer/ca-bundle": "^1.2", "ext-intl": "*", + "ext-json": "*", "ext-mbstring": "*", - "php": ">=5.6.0", - "psr/log": "^1.0.0", - "psr/simple-cache": "^1.0.0", - "zendframework/zend-diactoros": "^1.4.0" + "laminas/laminas-diactoros": "^2.2.2", + "laminas/laminas-httphandlerrunner": "^1.1 || ^2.0", + "league/container": "^4.2.0", + "php": ">=7.4.0", + "psr/container": "^1.1 || ^2.0", + "psr/http-client": "^1.0", + "psr/http-server-handler": "^1.0", + "psr/http-server-middleware": "^1.0", + "psr/log": "^1.0 || ^2.0", + "psr/simple-cache": "^1.0 || ^2.0" }, - "conflict": { - "phpunit/phpunit": "<5.7" + "provide": { + "psr/container-implementation": "^1.0 || ^2.0", + "psr/http-client-implementation": "^1.0", + "psr/http-server-handler-implementation": "^1.0", + "psr/http-server-middleware-implementation": "^1.0", + "psr/log-implementation": "^1.0 || ^2.0", + "psr/simple-cache-implementation": "^1.0 || ^2.0" }, "replace": { "cakephp/cache": "self.version", "cakephp/collection": "self.version", + "cakephp/console": "self.version", "cakephp/core": "self.version", "cakephp/database": "self.version", "cakephp/datasource": "self.version", "cakephp/event": "self.version", "cakephp/filesystem": "self.version", "cakephp/form": "self.version", + "cakephp/http": "self.version", "cakephp/i18n": "self.version", "cakephp/log": "self.version", "cakephp/orm": "self.version", @@ -267,26 +464,29 @@ "cakephp/validation": "self.version" }, "require-dev": { - "cakephp/cakephp-codesniffer": "^3.0", - "cakephp/chronos": "^1.2.1", - "phpunit/phpunit": "^5.7.14|^6.0" + "cakephp/cakephp-codesniffer": "^4.5", + "mikey179/vfsstream": "^1.6.10", + "paragonie/csp-builder": "^2.3", + "phpunit/phpunit": "^8.5 || ^9.3" }, "suggest": { "ext-curl": "To enable more efficient network calls in Http\\Client.", "ext-openssl": "To use Security::encrypt() or have secure CSRF token generation.", - "lib-ICU": "The intl PHP library, to use Text::transliterate() or Text::slug()" + "lib-ICU": "To use locale-aware features in the I18n and Database packages", + "paragonie/csp-builder": "CSP builder, to use the CSP Middleware" }, "type": "library", "autoload": { - "psr-4": { - "Cake\\": "src/" - }, "files": [ "src/Core/functions.php", "src/Collection/functions.php", "src/I18n/functions.php", + "src/Routing/functions.php", "src/Utility/bootstrap.php" - ] + ], + "psr-4": { + "Cake\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -311,39 +511,43 @@ "rapid-development", "validation" ], - "time": "2020-06-19T18:52:08+00:00" + "support": { + "forum": "https://stackoverflow.com/tags/cakephp", + "irc": "irc://irc.freenode.org/cakephp", + "issues": "https://github.com/cakephp/cakephp/issues", + "source": "https://github.com/cakephp/cakephp" + }, + "time": "2023-08-05T15:33:05+00:00" }, { "name": "cakephp/chronos", - "version": "1.3.0", + "version": "2.4.0", "source": { "type": "git", "url": "https://github.com/cakephp/chronos.git", - "reference": "ba2bab98849e7bf29b02dd634ada49ab36472959" + "reference": "9c7e438cba4eed1796ec19ad3874defa9eb9aeac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/chronos/zipball/ba2bab98849e7bf29b02dd634ada49ab36472959", - "reference": "ba2bab98849e7bf29b02dd634ada49ab36472959", + "url": "https://api.github.com/repos/cakephp/chronos/zipball/9c7e438cba4eed1796ec19ad3874defa9eb9aeac", + "reference": "9c7e438cba4eed1796ec19ad3874defa9eb9aeac", "shasum": "" }, "require": { - "php": ">=5.6" + "php": ">=7.2" }, "require-dev": { - "athletic/athletic": "~0.1", - "cakephp/cakephp-codesniffer": "^3.0", - "phpbench/phpbench": "@dev", - "phpunit/phpunit": "<6.0 || ^7.0" + "cakephp/cakephp-codesniffer": "^4.5", + "phpunit/phpunit": "^8.0 || ^9.0" }, "type": "library", "autoload": { - "psr-4": { - "Cake\\Chronos\\": "src/" - }, "files": [ "src/carbon_compat.php" - ] + ], + "psr-4": { + "Cake\\Chronos\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -357,46 +561,51 @@ }, { "name": "The CakePHP Team", - "homepage": "http://cakephp.org" + "homepage": "https://cakephp.org" } ], "description": "A simple API extension for DateTime.", - "homepage": "http://cakephp.org", + "homepage": "https://cakephp.org", "keywords": [ "date", "datetime", "time" ], - "time": "2019-11-30T02:33:19+00:00" + "support": { + "issues": "https://github.com/cakephp/chronos/issues", + "source": "https://github.com/cakephp/chronos" + }, + "time": "2023-08-06T22:54:27+00:00" }, { "name": "cakephp/migrations", - "version": "2.4.2", + "version": "3.8.2", "source": { "type": "git", "url": "https://github.com/cakephp/migrations.git", - "reference": "7fa4f1f8a4cd90df59cd8e3a46958c822abe457e" + "reference": "1c7c060f8d91d62b0716f9b08e3d41bfece5386e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/migrations/zipball/7fa4f1f8a4cd90df59cd8e3a46958c822abe457e", - "reference": "7fa4f1f8a4cd90df59cd8e3a46958c822abe457e", + "url": "https://api.github.com/repos/cakephp/migrations/zipball/1c7c060f8d91d62b0716f9b08e3d41bfece5386e", + "reference": "1c7c060f8d91d62b0716f9b08e3d41bfece5386e", "shasum": "" }, "require": { - "cakephp/cache": "^3.6.0", - "cakephp/orm": "^3.6.0", - "php": ">=5.6.0", - "robmorgan/phinx": "^0.10.3|^0.11.1" + "cakephp/cache": "^4.3.0", + "cakephp/orm": "^4.3.0", + "php": ">=7.4.0", + "robmorgan/phinx": "^0.13.2" }, "require-dev": { - "cakephp/bake": "^1.7.0", - "cakephp/cakephp": "^3.6.0", - "cakephp/cakephp-codesniffer": "^3.0", - "phpunit/phpunit": "^5.7.14|^6.0" + "cakephp/bake": "^2.6.0", + "cakephp/cakephp": "^4.3.0", + "cakephp/cakephp-codesniffer": "^4.1", + "phpunit/phpunit": "^9.5.0" }, "suggest": { - "cakephp/bake": "If you want to generate migrations." + "cakephp/bake": "If you want to generate migrations.", + "dereuromark/cakephp-ide-helper": "If you want to have IDE suggest/autocomplete when creating migrations." }, "type": "cakephp-plugin", "autoload": { @@ -420,30 +629,36 @@ "cakephp", "migrations" ], - "time": "2020-02-05T15:00:43+00:00" + "support": { + "forum": "https://stackoverflow.com/tags/cakephp", + "irc": "irc://irc.freenode.org/cakephp", + "issues": "https://github.com/cakephp/migrations/issues", + "source": "https://github.com/cakephp/migrations" + }, + "time": "2023-06-12T01:40:01+00:00" }, { "name": "cakephp/plugin-installer", - "version": "1.3.0", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/cakephp/plugin-installer.git", - "reference": "549548a7aa308ecee4059c2d10a7d8d5d1002602" + "reference": "e27027aa2d3d8ab64452c6817629558685a064cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/plugin-installer/zipball/549548a7aa308ecee4059c2d10a7d8d5d1002602", - "reference": "549548a7aa308ecee4059c2d10a7d8d5d1002602", + "url": "https://api.github.com/repos/cakephp/plugin-installer/zipball/e27027aa2d3d8ab64452c6817629558685a064cb", + "reference": "e27027aa2d3d8ab64452c6817629558685a064cb", "shasum": "" }, "require": { "composer-plugin-api": "^1.0 || ^2.0", - "php": ">=7.2.0" + "php": ">=5.6.0" }, "require-dev": { - "cakephp/cakephp-codesniffer": "^4.1", - "composer/composer": "^2.0@RC", - "phpunit/phpunit": "^8.5 || ^9.3" + "cakephp/cakephp-codesniffer": "^3.3", + "composer/composer": "^2.0", + "phpunit/phpunit": "^5.7 || ^6.5 || ^8.5 || ^9.3" }, "type": "composer-plugin", "extra": { @@ -465,66 +680,151 @@ } ], "description": "A composer installer for CakePHP 3.0+ plugins.", - "time": "2020-10-24T07:29:47+00:00" + "support": { + "issues": "https://github.com/cakephp/plugin-installer/issues", + "source": "https://github.com/cakephp/plugin-installer/tree/1.3.1" + }, + "time": "2020-10-29T04:00:42+00:00" }, { - "name": "google/recaptcha", - "version": "1.2.4", + "name": "composer/ca-bundle", + "version": "1.3.6", "source": { "type": "git", - "url": "https://github.com/google/recaptcha.git", - "reference": "614f25a9038be4f3f2da7cbfd778dc5b357d2419" + "url": "https://github.com/composer/ca-bundle.git", + "reference": "90d087e988ff194065333d16bc5cf649872d9cdb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/google/recaptcha/zipball/614f25a9038be4f3f2da7cbfd778dc5b357d2419", - "reference": "614f25a9038be4f3f2da7cbfd778dc5b357d2419", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/90d087e988ff194065333d16bc5cf649872d9cdb", + "reference": "90d087e988ff194065333d16bc5cf649872d9cdb", "shasum": "" }, "require": { - "php": ">=5.5" + "ext-openssl": "*", + "ext-pcre": "*", + "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^2.2.20|^2.15", - "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^4.8.36|^5.7.27|^6.59|^7.5.11" + "phpstan/phpstan": "^0.12.55", + "psr/log": "^1.0", + "symfony/phpunit-bridge": "^4.2 || ^5", + "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0 || ^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-main": "1.x-dev" } }, "autoload": { "psr-4": { - "ReCaptcha\\": "src/ReCaptcha" + "Composer\\CaBundle\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], - "description": "Client library for reCAPTCHA, a free service that protects websites from spam and abuse.", - "homepage": "https://www.google.com/recaptcha/", + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", "keywords": [ - "Abuse", - "captcha", - "recaptcha", - "spam" + "cabundle", + "cacert", + "certificate", + "ssl", + "tls" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/ca-bundle/issues", + "source": "https://github.com/composer/ca-bundle/tree/1.3.6" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } ], - "time": "2020-03-31T17:50:54+00:00" + "time": "2023-06-06T12:02:59+00:00" }, { - "name": "imagine/imagine", - "version": "v0.6.3", + "name": "google/recaptcha", + "version": "1.3.0", "source": { "type": "git", - "url": "https://github.com/avalanche123/Imagine.git", + "url": "https://github.com/google/recaptcha.git", + "reference": "d59a801e98a4e9174814a6d71bbc268dff1202df" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/google/recaptcha/zipball/d59a801e98a4e9174814a6d71bbc268dff1202df", + "reference": "d59a801e98a4e9174814a6d71bbc268dff1202df", + "shasum": "" + }, + "require": { + "php": ">=8" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.14", + "php-coveralls/php-coveralls": "^2.5", + "phpunit/phpunit": "^10" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "autoload": { + "psr-4": { + "ReCaptcha\\": "src/ReCaptcha" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Client library for reCAPTCHA, a free service that protects websites from spam and abuse.", + "homepage": "https://www.google.com/recaptcha/", + "keywords": [ + "Abuse", + "captcha", + "recaptcha", + "spam" + ], + "support": { + "forum": "https://groups.google.com/forum/#!forum/recaptcha", + "issues": "https://github.com/google/recaptcha/issues", + "source": "https://github.com/google/recaptcha" + }, + "time": "2023-02-18T17:41:46+00:00" + }, + { + "name": "imagine/imagine", + "version": "v0.6.3", + "source": { + "type": "git", + "url": "https://github.com/php-imagine/Imagine.git", "reference": "149041d2a1b517107bfe270ca2b1a17aa341715d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/avalanche123/Imagine/zipball/149041d2a1b517107bfe270ca2b1a17aa341715d", + "url": "https://api.github.com/repos/php-imagine/Imagine/zipball/149041d2a1b517107bfe270ca2b1a17aa341715d", "reference": "149041d2a1b517107bfe270ca2b1a17aa341715d", "shasum": "" }, @@ -569,32 +869,36 @@ "image manipulation", "image processing" ], + "support": { + "issues": "https://github.com/php-imagine/Imagine/issues", + "source": "https://github.com/php-imagine/Imagine/tree/v0.6.3" + }, "time": "2015-09-19T16:54:05+00:00" }, { "name": "josegonzalez/cakephp-upload", - "version": "4.0.1", + "version": "7.0.1", "source": { "type": "git", "url": "https://github.com/FriendsOfCake/cakephp-upload.git", - "reference": "919f7f6877cebe1320fa448b5f4e0093f5bcd937" + "reference": "b4a814bd7d61ce8da1b08d0907f1eb55a2b34608" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfCake/cakephp-upload/zipball/919f7f6877cebe1320fa448b5f4e0093f5bcd937", - "reference": "919f7f6877cebe1320fa448b5f4e0093f5bcd937", + "url": "https://api.github.com/repos/FriendsOfCake/cakephp-upload/zipball/b4a814bd7d61ce8da1b08d0907f1eb55a2b34608", + "reference": "b4a814bd7d61ce8da1b08d0907f1eb55a2b34608", "shasum": "" }, "require": { - "cakephp/orm": "^3.5", - "league/flysystem": "*" + "cakephp/orm": "^4.0.2", + "league/flysystem": "^2.2|^3.0" }, "require-dev": { - "cakephp/cakephp": "^3.5", - "cakephp/cakephp-codesniffer": "dev-master", - "cakephp/chronos": "^1.1", - "league/flysystem-vfs": "*", - "phpunit/phpunit": "^5.7.14|^6.0" + "cakephp/cakephp": "^4.0.2", + "cakephp/cakephp-codesniffer": "^4.0", + "league/flysystem-memory": "^2.0|^3.0", + "mikey179/vfsstream": "^1.6.10", + "phpunit/phpunit": "^8.5 || ^9.3" }, "type": "cakephp-plugin", "autoload": { @@ -622,31 +926,199 @@ "orm", "upload" ], - "time": "2019-07-28T15:31:00+00:00" + "support": { + "issues": "https://github.com/FriendsOfCake/cakephp-upload/issues", + "source": "https://github.com/FriendsOfCake/cakephp-upload/tree/7.0.1" + }, + "time": "2022-10-18T07:40:36+00:00" + }, + { + "name": "laminas/laminas-diactoros", + "version": "2.25.2", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-diactoros.git", + "reference": "9f3f4bf5b99c9538b6f1dbcc20f6fec357914f9e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/9f3f4bf5b99c9538b6f1dbcc20f6fec357914f9e", + "reference": "9f3f4bf5b99c9538b6f1dbcc20f6fec357914f9e", + "shasum": "" + }, + "require": { + "php": "~8.0.0 || ~8.1.0 || ~8.2.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.1" + }, + "conflict": { + "zendframework/zend-diactoros": "*" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "ext-curl": "*", + "ext-dom": "*", + "ext-gd": "*", + "ext-libxml": "*", + "http-interop/http-factory-tests": "^0.9.0", + "laminas/laminas-coding-standard": "^2.5", + "php-http/psr7-integration-tests": "^1.2", + "phpunit/phpunit": "^9.5.28", + "psalm/plugin-phpunit": "^0.18.4", + "vimeo/psalm": "^5.6" + }, + "type": "library", + "extra": { + "laminas": { + "config-provider": "Laminas\\Diactoros\\ConfigProvider", + "module": "Laminas\\Diactoros" + } + }, + "autoload": { + "files": [ + "src/functions/create_uploaded_file.php", + "src/functions/marshal_headers_from_sapi.php", + "src/functions/marshal_method_from_sapi.php", + "src/functions/marshal_protocol_version_from_sapi.php", + "src/functions/marshal_uri_from_sapi.php", + "src/functions/normalize_server.php", + "src/functions/normalize_uploaded_files.php", + "src/functions/parse_cookie_header.php", + "src/functions/create_uploaded_file.legacy.php", + "src/functions/marshal_headers_from_sapi.legacy.php", + "src/functions/marshal_method_from_sapi.legacy.php", + "src/functions/marshal_protocol_version_from_sapi.legacy.php", + "src/functions/marshal_uri_from_sapi.legacy.php", + "src/functions/normalize_server.legacy.php", + "src/functions/normalize_uploaded_files.legacy.php", + "src/functions/parse_cookie_header.legacy.php" + ], + "psr-4": { + "Laminas\\Diactoros\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "PSR HTTP Message implementations", + "homepage": "https://laminas.dev", + "keywords": [ + "http", + "laminas", + "psr", + "psr-17", + "psr-7" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-diactoros/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-diactoros/issues", + "rss": "https://github.com/laminas/laminas-diactoros/releases.atom", + "source": "https://github.com/laminas/laminas-diactoros" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2023-04-17T15:44:17+00:00" + }, + { + "name": "laminas/laminas-httphandlerrunner", + "version": "2.7.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-httphandlerrunner.git", + "reference": "ab1fe48f1c367953d7e8f5cfbaf902672551d524" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-httphandlerrunner/zipball/ab1fe48f1c367953d7e8f5cfbaf902672551d524", + "reference": "ab1fe48f1c367953d7e8f5cfbaf902672551d524", + "shasum": "" + }, + "require": { + "php": "~8.1.0 || ~8.2.0", + "psr/http-message": "^1.0 || ^2.0", + "psr/http-message-implementation": "^1.0 || ^2.0", + "psr/http-server-handler": "^1.0" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~2.5.0", + "laminas/laminas-diactoros": "^3.0.0", + "phpunit/phpunit": "^10.1.2", + "psalm/plugin-phpunit": "^0.18.4", + "vimeo/psalm": "^5.11" + }, + "type": "library", + "extra": { + "laminas": { + "config-provider": "Laminas\\HttpHandlerRunner\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Laminas\\HttpHandlerRunner\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Execute PSR-15 RequestHandlerInterface instances and emit responses they generate.", + "homepage": "https://laminas.dev", + "keywords": [ + "components", + "laminas", + "mezzio", + "psr-15", + "psr-7" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-httphandlerrunner/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-httphandlerrunner/issues", + "rss": "https://github.com/laminas/laminas-httphandlerrunner/releases.atom", + "source": "https://github.com/laminas/laminas-httphandlerrunner" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2023-07-25T20:20:46+00:00" }, { "name": "league/climate", - "version": "3.6.0", + "version": "3.8.2", "source": { "type": "git", "url": "https://github.com/thephpleague/climate.git", - "reference": "61eecbde7645528a855a3afef65c5354093b27b2" + "reference": "a785a3ac8f584eed4abd45e4e16fe64c46659a28" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/climate/zipball/61eecbde7645528a855a3afef65c5354093b27b2", - "reference": "61eecbde7645528a855a3afef65c5354093b27b2", + "url": "https://api.github.com/repos/thephpleague/climate/zipball/a785a3ac8f584eed4abd45e4e16fe64c46659a28", + "reference": "a785a3ac8f584eed4abd45e4e16fe64c46659a28", "shasum": "" }, "require": { - "php": "^7.2", - "psr/log": "^1.0", + "php": "^7.3 || ^8.0", + "psr/log": "^1.0 || ^2.0 || ^3.0", "seld/cli-prompt": "^1.0" }, "require-dev": { - "mikey179/vfsstream": "^1.4", - "mockery/mockery": "^1.0", - "phpunit/phpunit": "^5.7.16" + "mikey179/vfsstream": "^1.6.10", + "mockery/mockery": "^1.4.2", + "phpunit/phpunit": "^9.5.10" }, "suggest": { "ext-mbstring": "If ext-mbstring is not available you MUST install symfony/polyfill-mbstring" @@ -683,58 +1155,134 @@ "php", "terminal" ], - "time": "2020-10-04T16:02:59+00:00" + "support": { + "issues": "https://github.com/thephpleague/climate/issues", + "source": "https://github.com/thephpleague/climate/tree/3.8.2" + }, + "time": "2022-06-18T14:42:08+00:00" }, { - "name": "league/flysystem", - "version": "1.1.5", + "name": "league/container", + "version": "4.2.0", "source": { "type": "git", - "url": "https://github.com/thephpleague/flysystem.git", - "reference": "18634df356bfd4119fe3d6156bdb990c414c14ea" + "url": "https://github.com/thephpleague/container.git", + "reference": "375d13cb828649599ef5d48a339c4af7a26cd0ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/18634df356bfd4119fe3d6156bdb990c414c14ea", - "reference": "18634df356bfd4119fe3d6156bdb990c414c14ea", + "url": "https://api.github.com/repos/thephpleague/container/zipball/375d13cb828649599ef5d48a339c4af7a26cd0ab", + "reference": "375d13cb828649599ef5d48a339c4af7a26cd0ab", "shasum": "" }, "require": { - "ext-fileinfo": "*", - "league/mime-type-detection": "^1.3", - "php": "^7.2.5 || ^8.0" + "php": "^7.2 || ^8.0", + "psr/container": "^1.1 || ^2.0" }, - "conflict": { - "league/flysystem-sftp": "<1.0.6" + "provide": { + "psr/container-implementation": "^1.0" }, - "require-dev": { - "phpspec/prophecy": "^1.11.1", - "phpunit/phpunit": "^8.5.8" + "replace": { + "orno/di": "~2.0" }, - "suggest": { - "ext-ftp": "Allows you to use FTP server storage", - "ext-openssl": "Allows you to use FTPS server storage", - "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2", - "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3", - "league/flysystem-azure": "Allows you to use Windows Azure Blob storage", - "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching", - "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem", - "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files", - "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib", - "league/flysystem-webdav": "Allows you to use WebDAV storage", - "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter", - "spatie/flysystem-dropbox": "Allows you to use Dropbox storage", - "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications" + "require-dev": { + "nette/php-generator": "^3.4", + "nikic/php-parser": "^4.10", + "phpstan/phpstan": "^0.12.47", + "phpunit/phpunit": "^8.5.17", + "roave/security-advisories": "dev-latest", + "scrutinizer/ocular": "^1.8", + "squizlabs/php_codesniffer": "^3.6" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "4.x-dev", + "dev-4.x": "4.x-dev", + "dev-3.x": "3.x-dev", + "dev-2.x": "2.x-dev", + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Container\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Phil Bennett", + "email": "mail@philbennett.co.uk", + "role": "Developer" } + ], + "description": "A fast and intuitive dependency injection container.", + "homepage": "https://github.com/thephpleague/container", + "keywords": [ + "container", + "dependency", + "di", + "injection", + "league", + "provider", + "service" + ], + "support": { + "issues": "https://github.com/thephpleague/container/issues", + "source": "https://github.com/thephpleague/container/tree/4.2.0" + }, + "funding": [ + { + "url": "https://github.com/philipobenito", + "type": "github" + } + ], + "time": "2021-11-16T10:29:06+00:00" + }, + { + "name": "league/flysystem", + "version": "2.5.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem.git", + "reference": "8aaffb653c5777781b0f7f69a5d937baf7ab6cdb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/8aaffb653c5777781b0f7f69a5d937baf7ab6cdb", + "reference": "8aaffb653c5777781b0f7f69a5d937baf7ab6cdb", + "shasum": "" + }, + "require": { + "ext-json": "*", + "league/mime-type-detection": "^1.0.0", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "guzzlehttp/ringphp": "<1.1.1" }, + "require-dev": { + "async-aws/s3": "^1.5", + "async-aws/simple-s3": "^1.0", + "aws/aws-sdk-php": "^3.132.4", + "composer/semver": "^3.0", + "ext-fileinfo": "*", + "ext-ftp": "*", + "friendsofphp/php-cs-fixer": "^3.2", + "google/cloud-storage": "^1.23", + "phpseclib/phpseclib": "^2.0", + "phpstan/phpstan": "^0.12.26", + "phpunit/phpunit": "^8.5 || ^9.4", + "sabre/dav": "^4.1" + }, + "type": "library", "autoload": { "psr-4": { - "League\\Flysystem\\": "src/" + "League\\Flysystem\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -744,62 +1292,65 @@ "authors": [ { "name": "Frank de Jonge", - "email": "info@frenky.net" + "email": "info@frankdejonge.nl" } ], - "description": "Filesystem abstraction: Many filesystems, one API.", + "description": "File storage abstraction for PHP", "keywords": [ - "Cloud Files", "WebDAV", - "abstraction", "aws", "cloud", - "copy.com", - "dropbox", - "file systems", + "file", "files", "filesystem", "filesystems", "ftp", - "rackspace", - "remote", "s3", "sftp", "storage" ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/1.1.5" + "source": "https://github.com/thephpleague/flysystem/tree/2.5.0" }, "funding": [ { - "url": "https://offset.earth/frankdejonge", - "type": "other" + "url": "https://ecologi.com/frankdejonge", + "type": "custom" + }, + { + "url": "https://github.com/frankdejonge", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/flysystem", + "type": "tidelift" } ], - "time": "2021-08-17T13:49:42+00:00" + "time": "2022-09-17T21:02:32+00:00" }, { "name": "league/mime-type-detection", - "version": "1.5.1", + "version": "1.13.0", "source": { "type": "git", "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "353f66d7555d8a90781f6f5e7091932f9a4250aa" + "reference": "a6dfb1194a2946fcdc1f38219445234f65b35c96" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/353f66d7555d8a90781f6f5e7091932f9a4250aa", - "reference": "353f66d7555d8a90781f6f5e7091932f9a4250aa", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/a6dfb1194a2946fcdc1f38219445234f65b35c96", + "reference": "a6dfb1194a2946fcdc1f38219445234f65b35c96", "shasum": "" }, "require": { "ext-fileinfo": "*", - "php": "^7.2 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^0.12.36", - "phpunit/phpunit": "^8.5.8" + "friendsofphp/php-cs-fixer": "^3.2", + "phpstan/phpstan": "^0.12.68", + "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0" }, "type": "library", "autoload": { @@ -818,6 +1369,10 @@ } ], "description": "Mime-type detection for Flysystem", + "support": { + "issues": "https://github.com/thephpleague/mime-type-detection/issues", + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.13.0" + }, "funding": [ { "url": "https://github.com/frankdejonge", @@ -828,7 +1383,7 @@ "type": "tidelift" } ], - "time": "2020-10-18T11:50:25+00:00" + "time": "2023-08-05T12:09:49+00:00" }, { "name": "linkorb/jsmin-php", @@ -885,29 +1440,36 @@ "jsmin", "minify" ], + "support": { + "issues": "https://github.com/linkorb/jsmin-php/issues", + "source": "https://github.com/linkorb/jsmin-php/tree/1.0.0" + }, "time": "2013-03-15T13:16:35+00:00" }, { "name": "markstory/asset_compress", - "version": "3.5.1", + "version": "4.1.0", "source": { "type": "git", "url": "https://github.com/markstory/asset_compress.git", - "reference": "3cb4890177620eeb8e08528c15c89d3baf7d50ff" + "reference": "bc1665ba17e91b09eca1f74a9e3fb096270c65a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/markstory/asset_compress/zipball/3cb4890177620eeb8e08528c15c89d3baf7d50ff", - "reference": "3cb4890177620eeb8e08528c15c89d3baf7d50ff", + "url": "https://api.github.com/repos/markstory/asset_compress/zipball/bc1665ba17e91b09eca1f74a9e3fb096270c65a9", + "reference": "bc1665ba17e91b09eca1f74a9e3fb096270c65a9", "shasum": "" }, "require": { - "cakephp/cakephp": ">=3.7.0 <4.0.0", - "markstory/mini-asset": ">=1.4.0 <2.0.0" + "cakephp/cakephp": "^4.0", + "markstory/mini-asset": ">=1.9.1 <2.0.0", + "php": ">=7.2.0", + "psr/http-server-handler": "^1.0", + "psr/http-server-middleware": "^1.0" }, "require-dev": { - "cakephp/cakephp-codesniffer": "~2.1", - "phpunit/phpunit": "5.*" + "cakephp/cakephp-codesniffer": "^4.0", + "phpunit/phpunit": "^8.5 | ^9.3" }, "suggest": { "328/jsqueeze": "For using the JSqueeze filter.", @@ -943,29 +1505,33 @@ "minifier", "sass" ], - "time": "2019-06-26T02:29:00+00:00" + "support": { + "issues": "https://github.com/markstory/asset_compress/issues", + "source": "https://github.com/markstory/asset_compress" + }, + "time": "2021-09-07T19:41:43+00:00" }, { "name": "markstory/mini-asset", - "version": "1.9.1", + "version": "1.12.1", "source": { "type": "git", "url": "https://github.com/markstory/mini-asset.git", - "reference": "eb21143453a4e1e9b831fc695b6dd480bfdccfa3" + "reference": "441b28bb5a4a3f7ae57c12fe767913a360c366e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/markstory/mini-asset/zipball/eb21143453a4e1e9b831fc695b6dd480bfdccfa3", - "reference": "eb21143453a4e1e9b831fc695b6dd480bfdccfa3", + "url": "https://api.github.com/repos/markstory/mini-asset/zipball/441b28bb5a4a3f7ae57c12fe767913a360c366e5", + "reference": "441b28bb5a4a3f7ae57c12fe767913a360c366e5", "shasum": "" }, "require": { "league/climate": "~3.0", - "php": ">=7.2" + "php": ">=7.4,<8.3" }, "require-dev": { "laminas/laminas-diactoros": "~2.0", - "phpunit/phpunit": "^7.0", + "phpunit/phpunit": "^8.5 | ^9.3", "squizlabs/php_codesniffer": "*" }, "suggest": { @@ -1008,20 +1574,24 @@ "psr7", "sass" ], - "time": "2020-08-18T21:39:38+00:00" + "support": { + "issues": "https://github.com/markstory/mini-asset/issues", + "source": "https://github.com/markstory/mini-asset" + }, + "time": "2023-06-01T14:00:49+00:00" }, { "name": "mobiledetect/mobiledetectlib", - "version": "2.8.34", + "version": "2.8.41", "source": { "type": "git", "url": "https://github.com/serbanghita/Mobile-Detect.git", - "reference": "6f8113f57a508494ca36acbcfa2dc2d923c7ed5b" + "reference": "fc9cccd4d3706d5a7537b562b59cc18f9e4c0cb1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/6f8113f57a508494ca36acbcfa2dc2d923c7ed5b", - "reference": "6f8113f57a508494ca36acbcfa2dc2d923c7ed5b", + "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/fc9cccd4d3706d5a7537b562b59cc18f9e4c0cb1", + "reference": "fc9cccd4d3706d5a7537b562b59cc18f9e4c0cb1", "shasum": "" }, "require": { @@ -1032,12 +1602,12 @@ }, "type": "library", "autoload": { - "classmap": [ - "Mobile_Detect.php" - ], "psr-0": { "Detection": "namespaced/" - } + }, + "classmap": [ + "Mobile_Detect.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1060,29 +1630,33 @@ "mobile detector", "php mobile detect" ], - "time": "2019-09-18T18:44:20+00:00" + "support": { + "issues": "https://github.com/serbanghita/Mobile-Detect/issues", + "source": "https://github.com/serbanghita/Mobile-Detect/tree/2.8.41" + }, + "time": "2022-11-08T18:31:26+00:00" }, { "name": "muffin/slug", - "version": "1.4.0", + "version": "2.1.1", "source": { "type": "git", "url": "https://github.com/UseMuffin/Slug.git", - "reference": "e36fe293fe4fe65db9e10528dfd54beb0edfa226" + "reference": "ef9b1ebd32b270809e3f79250ca183c52739f4f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/UseMuffin/Slug/zipball/e36fe293fe4fe65db9e10528dfd54beb0edfa226", - "reference": "e36fe293fe4fe65db9e10528dfd54beb0edfa226", + "url": "https://api.github.com/repos/UseMuffin/Slug/zipball/ef9b1ebd32b270809e3f79250ca183c52739f4f4", + "reference": "ef9b1ebd32b270809e3f79250ca183c52739f4f4", "shasum": "" }, "require": { - "cakephp/orm": "^3.5" + "cakephp/orm": "^4.0" }, "require-dev": { - "cakephp/cakephp": "^3.5", + "cakephp/cakephp": "^4.0", "cocur/slugify": "^1.2", - "phpunit/phpunit": "^5.7.14|^6.0" + "phpunit/phpunit": "~8.5.0" }, "type": "cakephp-plugin", "autoload": { @@ -1110,7 +1684,7 @@ "homepage": "https://github.com/usemuffin/slug/graphs/contributors" } ], - "description": "Slugging support for CakePHP 3 ORM", + "description": "Slugging support for CakePHP ORM", "homepage": "https://github.com/usemuffin/slug", "keywords": [ "cakephp", @@ -1118,30 +1692,37 @@ "orm", "slug" ], - "time": "2018-05-17T13:42:03+00:00" + "support": { + "issues": "https://github.com/usemuffin/slug/issues", + "source": "https://github.com/usemuffin/slug" + }, + "time": "2023-07-04T08:16:49+00:00" }, { "name": "muffin/tags", - "version": "1.1.1", + "version": "2.0.0-beta", "source": { "type": "git", "url": "https://github.com/UseMuffin/Tags.git", - "reference": "f0f252d528eed6f5946d43b71e0149374820c50b" + "reference": "c99db379be944eba7dffb41583235e6d18790785" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/UseMuffin/Tags/zipball/f0f252d528eed6f5946d43b71e0149374820c50b", - "reference": "f0f252d528eed6f5946d43b71e0149374820c50b", + "url": "https://api.github.com/repos/UseMuffin/Tags/zipball/c99db379be944eba7dffb41583235e6d18790785", + "reference": "c99db379be944eba7dffb41583235e6d18790785", "shasum": "" }, "require": { - "cakephp/migrations": "^2.0", - "cakephp/orm": "^3.5" + "cakephp/orm": "^4.0", + "cakephp/utility": "^4.0" }, "require-dev": { - "cakephp/cakephp": "^3.5", - "muffin/slug": "^1.4", - "phpunit/phpunit": "^5.7.14|^6.0" + "cakephp/cakephp": "^4.0", + "cakephp/cakephp-codesniffer": "^4.0", + "phpunit/phpunit": "~8.5.0" + }, + "suggest": { + "muffin/slug": "For adding slugs to tags" }, "type": "cakephp-plugin", "autoload": { @@ -1169,14 +1750,18 @@ "homepage": "https://github.com/usemuffin/tags/graphs/contributors" } ], - "description": "Tags plugin for CakePHP 3.x", + "description": "Tags plugin for CakePHP", "homepage": "https://github.com/usemuffin/tags", "keywords": [ "cakephp", "muffin", "tags" ], - "time": "2020-02-24T19:00:10+00:00" + "support": { + "issues": "https://github.com/usemuffin/tags/issues", + "source": "https://github.com/usemuffin/tags" + }, + "time": "2020-01-22T13:28:24+00:00" }, { "name": "natxet/cssmin", @@ -1223,26 +1808,35 @@ "css", "minify" ], + "support": { + "issues": "https://github.com/natxet/CssMin/issues", + "source": "https://github.com/natxet/CssMin/tree/master" + }, "time": "2018-01-09T11:15:01+00:00" }, { "name": "psr/container", - "version": "1.1.1", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", - "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", "shasum": "" }, "require": { - "php": ">=7.2.0" + "php": ">=7.4.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, "autoload": { "psr-4": { "Psr\\Container\\": "src/" @@ -1269,26 +1863,27 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.1" + "source": "https://github.com/php-fig/container/tree/2.0.2" }, - "time": "2021-03-05T17:36:06+00:00" + "time": "2021-11-05T16:47:00+00:00" }, { - "name": "psr/http-message", - "version": "1.0.1", + "name": "psr/http-client", + "version": "1.0.2", "source": { "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + "url": "https://github.com/php-fig/http-client.git", + "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/0955afe48220520692d2d09f7ab7e0f93ffd6a31", + "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0 || ^2.0" }, "type": "library", "extra": { @@ -1298,7 +1893,7 @@ }, "autoload": { "psr-4": { - "Psr\\Http\\Message\\": "src/" + "Psr\\Http\\Client\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1308,47 +1903,269 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", "keywords": [ "http", - "http-message", + "http-client", "psr", - "psr-7", - "request", - "response" + "psr-18" ], - "time": "2016-08-06T14:39:51+00:00" + "support": { + "source": "https://github.com/php-fig/http-client/tree/1.0.2" + }, + "time": "2023-04-10T20:12:12+00:00" }, { - "name": "psr/log", - "version": "1.1.4", + "name": "psr/http-factory", + "version": "1.0.2", "source": { "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + "url": "https://github.com/php-fig/http-factory.git", + "reference": "e616d01114759c4c489f93b099585439f795fe35" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35", + "reference": "e616d01114759c4c489f93b099585439f795fe35", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=7.0.0", + "psr/http-message": "^1.0 || ^2.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Log\\": "Psr/Log/" + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory/tree/1.0.2" + }, + "time": "2023-04-10T20:10:41+00:00" + }, + { + "name": "psr/http-message", + "version": "1.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba", + "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/1.1" + }, + "time": "2023-04-04T09:50:52+00:00" + }, + { + "name": "psr/http-server-handler", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-server-handler.git", + "reference": "84c4fb66179be4caaf8e97bd239203245302e7d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-server-handler/zipball/84c4fb66179be4caaf8e97bd239203245302e7d4", + "reference": "84c4fb66179be4caaf8e97bd239203245302e7d4", + "shasum": "" + }, + "require": { + "php": ">=7.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Server\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP server-side request handler", + "keywords": [ + "handler", + "http", + "http-interop", + "psr", + "psr-15", + "psr-7", + "request", + "response", + "server" + ], + "support": { + "source": "https://github.com/php-fig/http-server-handler/tree/1.0.2" + }, + "time": "2023-04-10T20:06:20+00:00" + }, + { + "name": "psr/http-server-middleware", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-server-middleware.git", + "reference": "c1481f747daaa6a0782775cd6a8c26a1bf4a3829" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-server-middleware/zipball/c1481f747daaa6a0782775cd6a8c26a1bf4a3829", + "reference": "c1481f747daaa6a0782775cd6a8c26a1bf4a3829", + "shasum": "" + }, + "require": { + "php": ">=7.0", + "psr/http-message": "^1.0 || ^2.0", + "psr/http-server-handler": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Server\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP server-side middleware", + "keywords": [ + "http", + "http-interop", + "middleware", + "psr", + "psr-15", + "psr-7", + "request", + "response" + ], + "support": { + "issues": "https://github.com/php-fig/http-server-middleware/issues", + "source": "https://github.com/php-fig/http-server-middleware/tree/1.0.2" + }, + "time": "2023-04-11T06:14:47+00:00" + }, + { + "name": "psr/log", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/ef29f6d262798707a9edd554e2b82517ef3a9376", + "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1369,31 +2186,31 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/1.1.4" + "source": "https://github.com/php-fig/log/tree/2.0.0" }, - "time": "2021-05-03T11:20:27+00:00" + "time": "2021-07-14T16:41:46+00:00" }, { "name": "psr/simple-cache", - "version": "1.0.1", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/php-fig/simple-cache.git", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" + "reference": "8707bf3cea6f710bf6ef05491234e3ab06f6432a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/8707bf3cea6f710bf6ef05491234e3ab06f6432a", + "reference": "8707bf3cea6f710bf6ef05491234e3ab06f6432a", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=8.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -1408,7 +2225,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interfaces for simple caching", @@ -1419,38 +2236,43 @@ "psr-16", "simple-cache" ], - "time": "2017-10-23T01:57:42+00:00" + "support": { + "source": "https://github.com/php-fig/simple-cache/tree/2.0.0" + }, + "time": "2021-10-29T13:22:09+00:00" }, { "name": "robmorgan/phinx", - "version": "0.11.7", + "version": "0.13.4", "source": { "type": "git", "url": "https://github.com/cakephp/phinx.git", - "reference": "3cdde73e0c33c410e076108b3e1603fabb5b330d" + "reference": "18e06e4a2b18947663438afd2f467e17c62e867d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/phinx/zipball/3cdde73e0c33c410e076108b3e1603fabb5b330d", - "reference": "3cdde73e0c33c410e076108b3e1603fabb5b330d", + "url": "https://api.github.com/repos/cakephp/phinx/zipball/18e06e4a2b18947663438afd2f467e17c62e867d", + "reference": "18e06e4a2b18947663438afd2f467e17c62e867d", "shasum": "" }, "require": { - "cakephp/collection": "^3.7", - "cakephp/database": "^3.7", - "php": ">=5.6", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/console": "^3.4|^4.0|^5.0", - "symfony/yaml": "^3.4|^4.0|^5.0" + "cakephp/database": "^4.0", + "php": ">=7.2", + "psr/container": "^1.0 || ^2.0", + "symfony/config": "^3.4|^4.0|^5.0|^6.0", + "symfony/console": "^3.4|^4.0|^5.0|^6.0" }, "require-dev": { - "cakephp/cakephp-codesniffer": "^3.0", + "cakephp/cakephp-codesniffer": "^4.0", "ext-json": "*", - "phpunit/phpunit": ">=5.7,<8.0", - "sebastian/comparator": ">=1.2.3" + "ext-pdo": "*", + "phpunit/phpunit": "^8.5|^9.3", + "sebastian/comparator": ">=1.2.3", + "symfony/yaml": "^3.4|^4.0|^5.0" }, "suggest": { "ext-json": "Install if using JSON configuration format", + "ext-pdo": "PDO extension is needed", "symfony/yaml": "Install if using YAML configuration format" }, "bin": [ @@ -1499,7 +2321,11 @@ "migrations", "phinx" ], - "time": "2020-05-09T13:59:05+00:00" + "support": { + "issues": "https://github.com/cakephp/phinx/issues", + "source": "https://github.com/cakephp/phinx/tree/0.13.4" + }, + "time": "2023-01-07T00:42:55+00:00" }, { "name": "seld/cli-prompt", @@ -1558,44 +2384,36 @@ }, { "name": "symfony/config", - "version": "v5.1.7", + "version": "v6.3.2", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "6ad8be6e1280f6734150d8a04a9160dd34ceb191" + "reference": "b47ca238b03e7b0d7880ffd1cf06e8d637ca1467" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/6ad8be6e1280f6734150d8a04a9160dd34ceb191", - "reference": "6ad8be6e1280f6734150d8a04a9160dd34ceb191", + "url": "https://api.github.com/repos/symfony/config/zipball/b47ca238b03e7b0d7880ffd1cf06e8d637ca1467", + "reference": "b47ca238b03e7b0d7880ffd1cf06e8d637ca1467", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/filesystem": "^4.4|^5.0", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-php80": "^1.15" + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/filesystem": "^5.4|^6.0", + "symfony/polyfill-ctype": "~1.8" }, "conflict": { - "symfony/finder": "<4.4" + "symfony/finder": "<5.4", + "symfony/service-contracts": "<2.5" }, "require-dev": { - "symfony/event-dispatcher": "^4.4|^5.0", - "symfony/finder": "^4.4|^5.0", - "symfony/messenger": "^4.4|^5.0", - "symfony/service-contracts": "^1.1|^2", - "symfony/yaml": "^4.4|^5.0" - }, - "suggest": { - "symfony/yaml": "To use the yaml reference dumper" + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", + "symfony/messenger": "^5.4|^6.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/yaml": "^5.4|^6.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Config\\": "" @@ -1618,8 +2436,11 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Config Component", + "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/config/tree/v6.3.2" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -1634,56 +2455,47 @@ "type": "tidelift" } ], - "time": "2020-09-02T16:23:27+00:00" + "time": "2023-07-19T20:22:16+00:00" }, { "name": "symfony/console", - "version": "v5.4.7", + "version": "v6.3.2", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "900275254f0a1a2afff1ab0e11abd5587a10e1d6" + "reference": "aa5d64ad3f63f2e48964fc81ee45cb318a723898" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/900275254f0a1a2afff1ab0e11abd5587a10e1d6", - "reference": "900275254f0a1a2afff1ab0e11abd5587a10e1d6", + "url": "https://api.github.com/repos/symfony/console/zipball/aa5d64ad3f63f2e48964fc81ee45cb318a723898", + "reference": "aa5d64ad3f63f2e48964fc81ee45cb318a723898", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.9", - "symfony/polyfill-php80": "^1.16", - "symfony/service-contracts": "^1.1|^2|^3", - "symfony/string": "^5.1|^6.0" + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^5.4|^6.0" }, "conflict": { - "psr/log": ">=3", - "symfony/dependency-injection": "<4.4", - "symfony/dotenv": "<5.1", - "symfony/event-dispatcher": "<4.4", - "symfony/lock": "<4.4", - "symfony/process": "<4.4" + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" }, "provide": { - "psr/log-implementation": "1.0|2.0" + "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { - "psr/log": "^1|^2", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/event-dispatcher": "^4.4|^5.0|^6.0", - "symfony/lock": "^4.4|^5.0|^6.0", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/var-dumper": "^4.4|^5.0|^6.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/lock": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" }, "type": "library", "autoload": { @@ -1712,12 +2524,12 @@ "homepage": "https://symfony.com", "keywords": [ "cli", - "command line", + "command-line", "console", "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.7" + "source": "https://github.com/symfony/console/tree/v6.3.2" }, "funding": [ { @@ -1733,29 +2545,29 @@ "type": "tidelift" } ], - "time": "2022-03-31T17:09:19+00:00" + "time": "2023-07-19T20:17:28+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v2.5.1", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.1" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -1784,7 +2596,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.1" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.3.0" }, "funding": [ { @@ -1800,27 +2612,26 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2023-05-23T14:45:45+00:00" }, { "name": "symfony/filesystem", - "version": "v5.4.7", + "version": "v6.3.1", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "3a4442138d80c9f7b600fb297534ac718b61d37f" + "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/3a4442138d80c9f7b600fb297534ac718b61d37f", - "reference": "3a4442138d80c9f7b600fb297534ac718b61d37f", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/edd36776956f2a6fcf577edb5b05eb0e3bdc52ae", + "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.1", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8", - "symfony/polyfill-php80": "^1.16" + "symfony/polyfill-mbstring": "~1.8" }, "type": "library", "autoload": { @@ -1848,7 +2659,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.4.7" + "source": "https://github.com/symfony/filesystem/tree/v6.3.1" }, "funding": [ { @@ -1864,20 +2675,20 @@ "type": "tidelift" } ], - "time": "2022-04-01T12:33:59+00:00" + "time": "2023-06-01T08:30:39+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4" + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", - "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", "shasum": "" }, "require": { @@ -1892,7 +2703,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1930,7 +2741,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" }, "funding": [ { @@ -1946,20 +2757,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.25.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "81b86b50cf841a64252b439e738e97f4a34e2783" + "reference": "511a08c03c1960e08a883f4cffcacd219b758354" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/81b86b50cf841a64252b439e738e97f4a34e2783", - "reference": "81b86b50cf841a64252b439e738e97f4a34e2783", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", + "reference": "511a08c03c1960e08a883f4cffcacd219b758354", "shasum": "" }, "require": { @@ -1971,7 +2782,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2011,7 +2822,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0" }, "funding": [ { @@ -2027,20 +2838,20 @@ "type": "tidelift" } ], - "time": "2021-11-23T21:10:46+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.25.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8" + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8", - "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", "shasum": "" }, "require": { @@ -2052,7 +2863,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2095,7 +2906,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" }, "funding": [ { @@ -2111,20 +2922,20 @@ "type": "tidelift" } ], - "time": "2021-02-19T12:13:01+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e" + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", - "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", "shasum": "" }, "require": { @@ -2139,7 +2950,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2178,7 +2989,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" }, "funding": [ { @@ -2194,44 +3005,45 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { - "name": "symfony/polyfill-php73", - "version": "v1.25.0", + "name": "symfony/service-contracts", + "version": "v3.3.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5" + "url": "https://github.com/symfony/service-contracts.git", + "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/cc5db0e22b3cb4111010e48785a97f670b350ca5", - "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", + "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.1", + "psr/container": "^2.0" + }, + "conflict": { + "ext-psr": "<1.1|>=2" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "3.4-dev" }, "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" + "Symfony\\Contracts\\Service\\": "" }, - "classmap": [ - "Resources/stubs" + "exclude-from-classmap": [ + "/Test/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -2248,16 +3060,18 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "description": "Generic abstractions related to writing services", "homepage": "https://symfony.com", "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.25.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.3.0" }, "funding": [ { @@ -2273,44 +3087,49 @@ "type": "tidelift" } ], - "time": "2021-06-05T21:20:04+00:00" + "time": "2023-05-23T14:45:45+00:00" }, { - "name": "symfony/polyfill-php80", - "version": "v1.25.0", + "name": "symfony/string", + "version": "v6.3.2", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c" + "url": "https://github.com/symfony/string.git", + "reference": "53d1a83225002635bca3482fcbf963001313fb68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/4407588e0d3f1f52efb65fbe92babe41f37fe50c", - "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c", + "url": "https://api.github.com/repos/symfony/string/zipball/53d1a83225002635bca3482fcbf963001313fb68", + "reference": "53d1a83225002635bca3482fcbf963001313fb68", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } + "conflict": { + "symfony/translation-contracts": "<2.5" + }, + "require-dev": { + "symfony/error-handler": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/intl": "^6.2", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^5.4|^6.0" }, + "type": "library", "autoload": { "files": [ - "bootstrap.php" + "Resources/functions.php" ], "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" + "Symfony\\Component\\String\\": "" }, - "classmap": [ - "Resources/stubs" + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -2318,10 +3137,6 @@ "MIT" ], "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, { "name": "Nicolas Grekas", "email": "p@tchwork.com" @@ -2331,16 +3146,18 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", "homepage": "https://symfony.com", "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.25.0" + "source": "https://github.com/symfony/string/tree/v6.3.2" }, "funding": [ { @@ -2356,133 +3173,91 @@ "type": "tidelift" } ], - "time": "2022-03-04T08:16:47+00:00" - }, + "time": "2023-07-05T08:41:27+00:00" + } + ], + "packages-dev": [ { - "name": "symfony/service-contracts", - "version": "v2.5.1", + "name": "brick/varexporter", + "version": "0.3.8", "source": { "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "24d9dc654b83e91aa59f9d167b131bc3b5bea24c" + "url": "https://github.com/brick/varexporter.git", + "reference": "b5853edea6204ff8fa10633c3a4cccc4058410ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/24d9dc654b83e91aa59f9d167b131bc3b5bea24c", - "reference": "24d9dc654b83e91aa59f9d167b131bc3b5bea24c", + "url": "https://api.github.com/repos/brick/varexporter/zipball/b5853edea6204ff8fa10633c3a4cccc4058410ed", + "reference": "b5853edea6204ff8fa10633c3a4cccc4058410ed", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/container": "^1.1", - "symfony/deprecation-contracts": "^2.1|^3" - }, - "conflict": { - "ext-psr": "<1.1|>=2" + "nikic/php-parser": "^4.0", + "php": "^7.2 || ^8.0" }, - "suggest": { - "symfony/service-implementation": "" + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^8.5 || ^9.0", + "vimeo/psalm": "4.23.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, "autoload": { "psr-4": { - "Symfony\\Contracts\\Service\\": "" + "Brick\\VarExporter\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to writing services", - "homepage": "https://symfony.com", + "description": "A powerful alternative to var_export(), which can export closures and objects without __set_state()", "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" + "var_export" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.5.1" + "issues": "https://github.com/brick/varexporter/issues", + "source": "https://github.com/brick/varexporter/tree/0.3.8" }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", + "url": "https://github.com/BenMorel", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" } ], - "time": "2022-03-13T20:07:29+00:00" + "time": "2023-01-21T23:05:38+00:00" }, { - "name": "symfony/string", - "version": "v5.4.3", + "name": "cakephp/bake", + "version": "2.9.3", "source": { "type": "git", - "url": "https://github.com/symfony/string.git", - "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10" + "url": "https://github.com/cakephp/bake.git", + "reference": "a9b02fb6a5f96e8fb9887be55cccea501468907b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/92043b7d8383e48104e411bc9434b260dbeb5a10", - "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10", + "url": "https://api.github.com/repos/cakephp/bake/zipball/a9b02fb6a5f96e8fb9887be55cccea501468907b", + "reference": "a9b02fb6a5f96e8fb9887be55cccea501468907b", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", - "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "~1.15" - }, - "conflict": { - "symfony/translation-contracts": ">=3.0" + "brick/varexporter": "^0.3.5", + "cakephp/cakephp": "^4.3.0", + "cakephp/twig-view": "^1.0.2", + "nikic/php-parser": "^4.13.2", + "php": ">=7.2" }, "require-dev": { - "symfony/error-handler": "^4.4|^5.0|^6.0", - "symfony/http-client": "^4.4|^5.0|^6.0", - "symfony/translation-contracts": "^1.1|^2", - "symfony/var-exporter": "^4.4|^5.0|^6.0" + "cakephp/cakephp-codesniffer": "^4.0", + "cakephp/debug_kit": "^4.1", + "cakephp/plugin-installer": "^1.3", + "phpunit/phpunit": "^8.5 || ^9.3" }, - "type": "library", + "type": "cakephp-plugin", "autoload": { - "files": [ - "Resources/functions.php" - ], "psr-4": { - "Symfony\\Component\\String\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Bake\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2490,87 +3265,50 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "CakePHP Community", + "homepage": "https://github.com/cakephp/bake/graphs/contributors" } ], - "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", - "homepage": "https://symfony.com", + "description": "Bake plugin for CakePHP", + "homepage": "https://github.com/cakephp/bake", "keywords": [ - "grapheme", - "i18n", - "string", - "unicode", - "utf-8", - "utf8" + "bake", + "cakephp" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.3" + "forum": "https://stackoverflow.com/tags/cakephp", + "irc": "irc://irc.freenode.org/cakephp", + "issues": "https://github.com/cakephp/bake/issues", + "source": "https://github.com/cakephp/bake" }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2023-03-18T19:26:16+00:00" }, { - "name": "symfony/yaml", - "version": "v5.1.7", + "name": "cakephp/cakephp-codesniffer", + "version": "3.3.0", "source": { "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "e147a68cb66a8b510f4b7481fe4da5b2ab65ec6a" + "url": "https://github.com/cakephp/cakephp-codesniffer.git", + "reference": "7998a191e787fd5b68cb635d7050cb0d7b55e1a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/e147a68cb66a8b510f4b7481fe4da5b2ab65ec6a", - "reference": "e147a68cb66a8b510f4b7481fe4da5b2ab65ec6a", + "url": "https://api.github.com/repos/cakephp/cakephp-codesniffer/zipball/7998a191e787fd5b68cb635d7050cb0d7b55e1a1", + "reference": "7998a191e787fd5b68cb635d7050cb0d7b55e1a1", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "symfony/console": "<4.4" + "php": ">=5.6", + "squizlabs/php_codesniffer": "^3.0.0" }, "require-dev": { - "symfony/console": "^4.4|^5.0" - }, - "suggest": { - "symfony/console": "For validating YAML files using the lint command" - }, - "bin": [ - "Resources/bin/yaml-lint" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } + "phpunit/phpunit": "<6.0" }, + "type": "phpcodesniffer-standard", "autoload": { "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "CakePHP\\": "CakePHP/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2578,134 +3316,126 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "CakePHP Community", + "homepage": "https://github.com/cakephp/cakephp-codesniffer/graphs/contributors" } ], - "description": "Symfony Yaml Component", - "homepage": "https://symfony.com", - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } + "description": "CakePHP CodeSniffer Standards", + "homepage": "https://cakephp.org", + "keywords": [ + "codesniffer", + "framework" ], - "time": "2020-09-27T03:44:28+00:00" + "support": { + "forum": "https://stackoverflow.com/tags/cakephp", + "irc": "irc://irc.freenode.org/cakephp", + "issues": "https://github.com/cakephp/cakephp-codesniffer/issues", + "source": "https://github.com/cakephp/cakephp-codesniffer" + }, + "time": "2019-12-07T03:02:34+00:00" }, { - "name": "zendframework/zend-diactoros", - "version": "1.8.7", + "name": "cakephp/debug_kit", + "version": "4.9.4", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-diactoros.git", - "reference": "a85e67b86e9b8520d07e6415fcbcb8391b44a75b" + "url": "https://github.com/cakephp/debug_kit.git", + "reference": "663491edec4a6b9111f1cf4733ebd471450df71e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-diactoros/zipball/a85e67b86e9b8520d07e6415fcbcb8391b44a75b", - "reference": "a85e67b86e9b8520d07e6415fcbcb8391b44a75b", + "url": "https://api.github.com/repos/cakephp/debug_kit/zipball/663491edec4a6b9111f1cf4733ebd471450df71e", + "reference": "663491edec4a6b9111f1cf4733ebd471450df71e", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0", - "psr/http-message": "^1.0" - }, - "provide": { - "psr/http-message-implementation": "1.0" + "cakephp/cakephp": "^4.4.0", + "cakephp/chronos": "^2.0", + "composer/composer": "^1.3 | ^2.0", + "jdorn/sql-formatter": "^1.2", + "php": ">=7.4" }, "require-dev": { - "ext-dom": "*", - "ext-libxml": "*", - "php-http/psr7-integration-tests": "dev-master", - "phpunit/phpunit": "^5.7.16 || ^6.0.8 || ^7.2.7", - "zendframework/zend-coding-standard": "~1.0" + "cakephp/authorization": "^2.0", + "cakephp/cakephp-codesniffer": "^4.0", + "phpunit/phpunit": "~8.5.0 | ^9.3" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-release-1.8": "1.8.x-dev" - } + "suggest": { + "ext-pdo_sqlite": "DebugKit needs to store panel data in a database. SQLite is simple and easy to use." }, + "type": "cakephp-plugin", "autoload": { - "files": [ - "src/functions/create_uploaded_file.php", - "src/functions/marshal_headers_from_sapi.php", - "src/functions/marshal_method_from_sapi.php", - "src/functions/marshal_protocol_version_from_sapi.php", - "src/functions/marshal_uri_from_sapi.php", - "src/functions/normalize_server.php", - "src/functions/normalize_uploaded_files.php", - "src/functions/parse_cookie_header.php" - ], "psr-4": { - "Zend\\Diactoros\\": "src/" + "DebugKit\\": "src/", + "DebugKit\\Test\\Fixture\\": "tests/Fixture/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-2-Clause" + "MIT" ], - "description": "PSR HTTP Message implementations", - "homepage": "https://github.com/zendframework/zend-diactoros", + "authors": [ + { + "name": "Mark Story", + "homepage": "https://mark-story.com", + "role": "Author" + }, + { + "name": "CakePHP Community", + "homepage": "https://github.com/cakephp/debug_kit/graphs/contributors" + } + ], + "description": "CakePHP Debug Kit", + "homepage": "https://github.com/cakephp/debug_kit", "keywords": [ - "http", - "psr", - "psr-7" + "cakephp", + "debug", + "kit" ], - "abandoned": "laminas/laminas-diactoros", - "time": "2019-08-06T17:53:53+00:00" - } - ], - "packages-dev": [ + "support": { + "forum": "https://stackoverflow.com/tags/cakephp", + "irc": "irc://irc.freenode.org/cakephp", + "issues": "https://github.com/cakephp/debug_kit/issues", + "source": "https://github.com/cakephp/debug_kit" + }, + "time": "2023-07-05T16:04:04+00:00" + }, { - "name": "ajgl/breakpoint-twig-extension", - "version": "0.3.4", + "name": "cakephp/twig-view", + "version": "1.3.0", "source": { "type": "git", - "url": "https://github.com/ajgarlag/AjglBreakpointTwigExtension.git", - "reference": "13ee39406dc3d959c5704b462a3dbc3cbf088f16" + "url": "https://github.com/cakephp/twig-view.git", + "reference": "14df50360b809a171d0688020fbdfe513763f89b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ajgarlag/AjglBreakpointTwigExtension/zipball/13ee39406dc3d959c5704b462a3dbc3cbf088f16", - "reference": "13ee39406dc3d959c5704b462a3dbc3cbf088f16", + "url": "https://api.github.com/repos/cakephp/twig-view/zipball/14df50360b809a171d0688020fbdfe513763f89b", + "reference": "14df50360b809a171d0688020fbdfe513763f89b", "shasum": "" }, "require": { - "php": ">=5.6", - "twig/twig": "^1.14|^2.0" + "cakephp/cakephp": "^4.0", + "jasny/twig-extensions": "^1.3", + "php": ">=7.2", + "twig/markdown-extra": "^3.0", + "twig/twig": "^3.0" }, - "require-dev": { - "symfony/framework-bundle": "^2.7|^3.2|^4.1", - "symfony/phpunit-bridge": "^3.4|^4.1", - "symfony/twig-bundle": "^2.7|^3.2|^4.1" - }, - "suggest": { - "ext-xdebug": "The Xdebug extension is required for the breakpoint to work", - "symfony/framework-bundle": "The framework bundle to integrate the extension into Symfony", - "symfony/twig-bundle": "The twig bundle to integrate the extension into Symfony" + "conflict": { + "wyrihaximus/twig-view": "*" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.3.x-dev" - } + "require-dev": { + "cakephp/cakephp-codesniffer": "^4.0", + "cakephp/debug_kit": "^4.0", + "cakephp/plugin-installer": "^1.3", + "michelf/php-markdown": "^1.9", + "mikey179/vfsstream": "^1.6", + "phpunit/phpunit": "^8.5 || ^9.3" }, + "type": "cakephp-plugin", "autoload": { "psr-4": { - "Ajgl\\Twig\\Extension\\": "src/" + "Cake\\TwigView\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2714,112 +3444,61 @@ ], "authors": [ { - "name": "Antonio J. García Lagar", - "email": "aj@garcialagar.es", - "homepage": "http://aj.garcialagar.es", - "role": "developer" - } - ], - "description": "Twig extension to set breakpoints", - "homepage": "https://github.com/ajgarlag/AjglBreakpointTwigExtension", - "keywords": [ - "Xdebug", - "breakpoint", - "twig" - ], - "time": "2019-04-10T11:41:26+00:00" - }, - { - "name": "aptoma/twig-markdown", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/aptoma/twig-markdown.git", - "reference": "64a9c5c7418c08faf91c4410b34bdb65fb25c23d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/aptoma/twig-markdown/zipball/64a9c5c7418c08faf91c4410b34bdb65fb25c23d", - "reference": "64a9c5c7418c08faf91c4410b34bdb65fb25c23d", - "shasum": "" - }, - "require": { - "twig/twig": "~1.12" - }, - "require-dev": { - "codeclimate/php-test-reporter": "dev-master", - "erusev/parsedown": "^1.6", - "knplabs/github-api": "~1.2", - "league/commonmark": "~0.5", - "michelf/php-markdown": "~1", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "~0.6" - }, - "suggest": { - "knplabs/github-api": "Needed for using GitHub's Markdown engine provided through their API.", - "michelf/php-markdown": "Original Markdown engine with MarkdownExtra." - }, - "type": "library", - "autoload": { - "psr-0": { - "Aptoma": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Joris Berthelot", - "email": "joris@berthelot.tel" - }, - { - "name": "Gunnar Lium", - "email": "gunnar@aptoma.com" + "name": "CakePHP Community", + "homepage": "https://github.com/cakephp/cakephp/graphs/contributors" } ], - "description": "Twig extension to work with Markdown content", + "description": "Twig powered View for CakePHP", "keywords": [ - "markdown", - "twig" + "cakephp", + "template", + "twig", + "view" ], - "time": "2015-10-23T20:27:08+00:00" + "support": { + "forum": "https://stackoverflow.com/tags/cakephp", + "irc": "irc://irc.freenode.org/cakephp", + "issues": "https://github.com/cakephp/twig-view/issues", + "source": "https://github.com/cakephp/twig-view" + }, + "time": "2021-09-17T14:07:52+00:00" }, { - "name": "asm89/twig-cache-extension", - "version": "1.4.0", + "name": "composer/class-map-generator", + "version": "1.1.0", "source": { "type": "git", - "url": "https://github.com/asm89/twig-cache-extension.git", - "reference": "13787226956ec766f4770722082288097aebaaf3" + "url": "https://github.com/composer/class-map-generator.git", + "reference": "953cc4ea32e0c31f2185549c7d216d7921f03da9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/asm89/twig-cache-extension/zipball/13787226956ec766f4770722082288097aebaaf3", - "reference": "13787226956ec766f4770722082288097aebaaf3", + "url": "https://api.github.com/repos/composer/class-map-generator/zipball/953cc4ea32e0c31f2185549c7d216d7921f03da9", + "reference": "953cc4ea32e0c31f2185549c7d216d7921f03da9", "shasum": "" }, "require": { - "php": ">=5.3.2", - "twig/twig": "^1.0|^2.0" + "composer/pcre": "^2.1 || ^3.1", + "php": "^7.2 || ^8.0", + "symfony/finder": "^4.4 || ^5.3 || ^6 || ^7" }, "require-dev": { - "doctrine/cache": "~1.0", - "phpunit/phpunit": "^5.0 || ^4.8.10" - }, - "suggest": { - "psr/cache-implementation": "To make use of PSR-6 cache implementation via PsrCacheAdapter." + "phpstan/phpstan": "^1.6", + "phpstan/phpstan-deprecation-rules": "^1", + "phpstan/phpstan-phpunit": "^1", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/filesystem": "^5.4 || ^6", + "symfony/phpunit-bridge": "^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-main": "1.x-dev" } }, "autoload": { "psr-4": { - "": "lib/" + "Composer\\ClassMapGenerator\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -2828,148 +3507,102 @@ ], "authors": [ { - "name": "Alexander", - "email": "iam.asm89@gmail.com" + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" } ], - "description": "Cache fragments of templates directly within Twig.", - "homepage": "https://github.com/asm89/twig-cache-extension", + "description": "Utilities to scan PHP code and generate class maps.", "keywords": [ - "cache", - "extension", - "twig" + "classmap" ], - "abandoned": "twig/cache-extension", - "time": "2020-01-01T20:47:37+00:00" - }, - { - "name": "cakephp/bake", - "version": "1.12.0", - "source": { - "type": "git", - "url": "https://github.com/cakephp/bake.git", - "reference": "33e8ee8419ba36c13fa4074c208c93352b5530cf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/cakephp/bake/zipball/33e8ee8419ba36c13fa4074c208c93352b5530cf", - "reference": "33e8ee8419ba36c13fa4074c208c93352b5530cf", - "shasum": "" - }, - "require": { - "cakephp/cakephp": "^3.8.0", - "cakephp/plugin-installer": "^1.0", - "php": ">=5.6.0", - "wyrihaximus/twig-view": "^4.3.7" - }, - "require-dev": { - "cakephp/cakephp-codesniffer": "^3.0", - "phpunit/phpunit": "^5.7.14|^6.0" - }, - "type": "cakephp-plugin", - "autoload": { - "psr-4": { - "Bake\\": "src/" - } + "support": { + "issues": "https://github.com/composer/class-map-generator/issues", + "source": "https://github.com/composer/class-map-generator/tree/1.1.0" }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ + "funding": [ { - "name": "CakePHP Community", - "homepage": "https://github.com/cakephp/bake/graphs/contributors" + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" } ], - "description": "Bake plugin for CakePHP 3", - "homepage": "https://github.com/cakephp/bake", - "keywords": [ - "bake", - "cakephp" - ], - "time": "2019-12-07T20:34:43+00:00" + "time": "2023-06-30T13:58:57+00:00" }, { - "name": "cakephp/cakephp-codesniffer", - "version": "3.3.0", + "name": "composer/composer", + "version": "2.5.8", "source": { "type": "git", - "url": "https://github.com/cakephp/cakephp-codesniffer.git", - "reference": "7998a191e787fd5b68cb635d7050cb0d7b55e1a1" + "url": "https://github.com/composer/composer.git", + "reference": "4c516146167d1392c8b9b269bb7c24115d262164" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/cakephp-codesniffer/zipball/7998a191e787fd5b68cb635d7050cb0d7b55e1a1", - "reference": "7998a191e787fd5b68cb635d7050cb0d7b55e1a1", + "url": "https://api.github.com/repos/composer/composer/zipball/4c516146167d1392c8b9b269bb7c24115d262164", + "reference": "4c516146167d1392c8b9b269bb7c24115d262164", "shasum": "" }, "require": { - "php": ">=5.6", - "squizlabs/php_codesniffer": "^3.0.0" + "composer/ca-bundle": "^1.0", + "composer/class-map-generator": "^1.0", + "composer/metadata-minifier": "^1.0", + "composer/pcre": "^2.1 || ^3.1", + "composer/semver": "^3.0", + "composer/spdx-licenses": "^1.5.7", + "composer/xdebug-handler": "^2.0.2 || ^3.0.3", + "justinrainbow/json-schema": "^5.2.11", + "php": "^7.2.5 || ^8.0", + "psr/log": "^1.0 || ^2.0 || ^3.0", + "react/promise": "^2.8", + "seld/jsonlint": "^1.4", + "seld/phar-utils": "^1.2", + "seld/signal-handler": "^2.0", + "symfony/console": "^5.4.11 || ^6.0.11", + "symfony/filesystem": "^5.4 || ^6.0", + "symfony/finder": "^5.4 || ^6.0", + "symfony/polyfill-php73": "^1.24", + "symfony/polyfill-php80": "^1.24", + "symfony/polyfill-php81": "^1.24", + "symfony/process": "^5.4 || ^6.0" }, "require-dev": { - "phpunit/phpunit": "<6.0" + "phpstan/phpstan": "^1.9.3", + "phpstan/phpstan-deprecation-rules": "^1", + "phpstan/phpstan-phpunit": "^1.0", + "phpstan/phpstan-strict-rules": "^1", + "phpstan/phpstan-symfony": "^1.2.10", + "symfony/phpunit-bridge": "^6.0" }, - "type": "phpcodesniffer-standard", - "autoload": { - "psr-4": { - "CakePHP\\": "CakePHP/" - } + "suggest": { + "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", + "ext-zip": "Enabling the zip extension allows you to unzip archives", + "ext-zlib": "Allow gzip compression of HTTP requests" }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" + "bin": [ + "bin/composer" ], - "authors": [ - { - "name": "CakePHP Community", - "homepage": "https://github.com/cakephp/cakephp-codesniffer/graphs/contributors" + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "phpstan": { + "includes": [ + "phpstan/rules.neon" + ] } - ], - "description": "CakePHP CodeSniffer Standards", - "homepage": "https://cakephp.org", - "keywords": [ - "codesniffer", - "framework" - ], - "time": "2019-12-07T03:02:34+00:00" - }, - { - "name": "cakephp/debug_kit", - "version": "3.22.4", - "source": { - "type": "git", - "url": "https://github.com/cakephp/debug_kit.git", - "reference": "5bec3c49a2b8d9bd12655f2ec35e52ec90befe17" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/cakephp/debug_kit/zipball/5bec3c49a2b8d9bd12655f2ec35e52ec90befe17", - "reference": "5bec3c49a2b8d9bd12655f2ec35e52ec90befe17", - "shasum": "" - }, - "require": { - "cakephp/cakephp": "^3.7.0", - "cakephp/chronos": "^1.0.0", - "cakephp/plugin-installer": "^1.0.0", - "composer/composer": "^1.3.0", - "jdorn/sql-formatter": "^1.2.0", - "php": ">=5.6.0" }, - "require-dev": { - "cakephp/authorization": "^1.3.2", - "cakephp/cakephp-codesniffer": "^3.0", - "phpunit/phpunit": "^5.7.14|^6.0" - }, - "suggest": { - "ext-pdo_sqlite": "DebugKit needs to store panel data in a database. SQLite is simple and easy to use." - }, - "type": "cakephp-plugin", "autoload": { "psr-4": { - "DebugKit\\": "src/", - "DebugKit\\Test\\Fixture\\": "tests/Fixture/" + "Composer\\": "src/Composer" } }, "notification-url": "https://packagist.org/downloads/", @@ -2978,48 +3611,65 @@ ], "authors": [ { - "name": "Mark Story", - "homepage": "https://mark-story.com", - "role": "Author" + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "https://www.naderman.de" }, { - "name": "CakePHP Community", - "homepage": "https://github.com/cakephp/debug_kit/graphs/contributors" + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" } ], - "description": "CakePHP Debug Kit", - "homepage": "https://github.com/cakephp/debug_kit", + "description": "Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.", + "homepage": "https://getcomposer.org/", "keywords": [ - "cakephp", - "debug", - "kit" + "autoload", + "dependency", + "package" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/composer/issues", + "source": "https://github.com/composer/composer/tree/2.5.8" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } ], - "time": "2020-04-22T17:27:39+00:00" + "time": "2023-06-09T15:13:21+00:00" }, { - "name": "composer/ca-bundle", - "version": "1.3.1", + "name": "composer/metadata-minifier", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/composer/ca-bundle.git", - "reference": "4c679186f2aca4ab6a0f1b0b9cf9252decb44d0b" + "url": "https://github.com/composer/metadata-minifier.git", + "reference": "c549d23829536f0d0e984aaabbf02af91f443207" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/4c679186f2aca4ab6a0f1b0b9cf9252decb44d0b", - "reference": "4c679186f2aca4ab6a0f1b0b9cf9252decb44d0b", + "url": "https://api.github.com/repos/composer/metadata-minifier/zipball/c549d23829536f0d0e984aaabbf02af91f443207", + "reference": "c549d23829536f0d0e984aaabbf02af91f443207", "shasum": "" }, "require": { - "ext-openssl": "*", - "ext-pcre": "*", "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { + "composer/composer": "^2", "phpstan/phpstan": "^0.12.55", - "psr/log": "^1.0", - "symfony/phpunit-bridge": "^4.2 || ^5", - "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0 || ^6.0" + "symfony/phpunit-bridge": "^4.2 || ^5" }, "type": "library", "extra": { @@ -3029,7 +3679,7 @@ }, "autoload": { "psr-4": { - "Composer\\CaBundle\\": "src" + "Composer\\MetadataMinifier\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -3043,18 +3693,14 @@ "homepage": "http://seld.be" } ], - "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", + "description": "Small utility library that handles metadata minification and expansion.", "keywords": [ - "cabundle", - "cacert", - "certificate", - "ssl", - "tls" + "composer", + "compression" ], "support": { - "irc": "irc://irc.freenode.org/composer", - "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.3.1" + "issues": "https://github.com/composer/metadata-minifier/issues", + "source": "https://github.com/composer/metadata-minifier/tree/1.0.0" }, "funding": [ { @@ -3070,61 +3716,39 @@ "type": "tidelift" } ], - "time": "2021-10-28T20:44:15+00:00" + "time": "2021-04-07T13:37:33+00:00" }, { - "name": "composer/composer", - "version": "1.10.26", + "name": "composer/pcre", + "version": "3.1.0", "source": { "type": "git", - "url": "https://github.com/composer/composer.git", - "reference": "3e196135eacf9e519a6b00986bc6fe6aff977997" + "url": "https://github.com/composer/pcre.git", + "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/3e196135eacf9e519a6b00986bc6fe6aff977997", - "reference": "3e196135eacf9e519a6b00986bc6fe6aff977997", + "url": "https://api.github.com/repos/composer/pcre/zipball/4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", + "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", "shasum": "" }, "require": { - "composer/ca-bundle": "^1.0", - "composer/semver": "^1.0", - "composer/spdx-licenses": "^1.2", - "composer/xdebug-handler": "^1.1", - "justinrainbow/json-schema": "^5.2.10", - "php": "^5.3.2 || ^7.0 || ^8.0", - "psr/log": "^1.0", - "seld/jsonlint": "^1.4", - "seld/phar-utils": "^1.0", - "symfony/console": "^2.7 || ^3.0 || ^4.0 || ^5.0", - "symfony/filesystem": "^2.7 || ^3.0 || ^4.0 || ^5.0", - "symfony/finder": "^2.7 || ^3.0 || ^4.0 || ^5.0", - "symfony/process": "^2.7 || ^3.0 || ^4.0 || ^5.0" - }, - "conflict": { - "symfony/console": "2.8.38" + "php": "^7.4 || ^8.0" }, "require-dev": { - "phpspec/prophecy": "^1.10", - "symfony/phpunit-bridge": "^4.2" + "phpstan/phpstan": "^1.3", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/phpunit-bridge": "^5" }, - "suggest": { - "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", - "ext-zip": "Enabling the zip extension allows you to unzip archives", - "ext-zlib": "Allow gzip compression of HTTP requests" - }, - "bin": [ - "bin/composer" - ], "type": "library", "extra": { "branch-alias": { - "dev-master": "1.10-dev" + "dev-main": "3.x-dev" } }, "autoload": { "psr-4": { - "Composer\\": "src/Composer" + "Composer\\Pcre\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -3132,28 +3756,22 @@ "MIT" ], "authors": [ - { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "http://www.naderman.de" - }, { "name": "Jordi Boggiano", "email": "j.boggiano@seld.be", "homepage": "http://seld.be" } ], - "description": "Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.", - "homepage": "https://getcomposer.org/", + "description": "PCRE wrapping library that offers type-safe preg_* replacements.", "keywords": [ - "autoload", - "dependency", - "package" + "PCRE", + "preg", + "regex", + "regular expression" ], "support": { - "irc": "irc://irc.freenode.org/composer", - "issues": "https://github.com/composer/composer/issues", - "source": "https://github.com/composer/composer/tree/1.10.26" + "issues": "https://github.com/composer/pcre/issues", + "source": "https://github.com/composer/pcre/tree/3.1.0" }, "funding": [ { @@ -3169,32 +3787,33 @@ "type": "tidelift" } ], - "time": "2022-04-13T14:39:56+00:00" + "time": "2022-11-17T09:50:14+00:00" }, { "name": "composer/semver", - "version": "1.7.2", + "version": "3.3.2", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "647490bbcaf7fc4891c58f47b825eb99d19c377a" + "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/647490bbcaf7fc4891c58f47b825eb99d19c377a", - "reference": "647490bbcaf7fc4891c58f47b825eb99d19c377a", + "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", + "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^4.5 || ^5.0.5" + "phpstan/phpstan": "^1.4", + "symfony/phpunit-bridge": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-main": "3.x-dev" } }, "autoload": { @@ -3233,7 +3852,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/1.7.2" + "source": "https://github.com/composer/semver/tree/3.3.2" }, "funding": [ { @@ -3249,20 +3868,20 @@ "type": "tidelift" } ], - "time": "2020-12-03T15:47:16+00:00" + "time": "2022-04-01T19:23:25+00:00" }, { "name": "composer/spdx-licenses", - "version": "1.5.6", + "version": "1.5.7", "source": { "type": "git", "url": "https://github.com/composer/spdx-licenses.git", - "reference": "a30d487169d799745ca7280bc90fdfa693536901" + "reference": "c848241796da2abf65837d51dce1fae55a960149" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/a30d487169d799745ca7280bc90fdfa693536901", - "reference": "a30d487169d799745ca7280bc90fdfa693536901", + "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/c848241796da2abf65837d51dce1fae55a960149", + "reference": "c848241796da2abf65837d51dce1fae55a960149", "shasum": "" }, "require": { @@ -3313,7 +3932,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/spdx-licenses/issues", - "source": "https://github.com/composer/spdx-licenses/tree/1.5.6" + "source": "https://github.com/composer/spdx-licenses/tree/1.5.7" }, "funding": [ { @@ -3329,29 +3948,31 @@ "type": "tidelift" } ], - "time": "2021-11-18T10:14:14+00:00" + "time": "2022-05-23T07:37:50+00:00" }, { "name": "composer/xdebug-handler", - "version": "1.4.6", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "f27e06cd9675801df441b3656569b328e04aa37c" + "reference": "ced299686f41dce890debac69273b47ffe98a40c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f27e06cd9675801df441b3656569b328e04aa37c", - "reference": "f27e06cd9675801df441b3656569b328e04aa37c", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", + "reference": "ced299686f41dce890debac69273b47ffe98a40c", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0 || ^8.0", - "psr/log": "^1.0" + "composer/pcre": "^1 || ^2 || ^3", + "php": "^7.2.5 || ^8.0", + "psr/log": "^1 || ^2 || ^3" }, "require-dev": { - "phpstan/phpstan": "^0.12.55", - "symfony/phpunit-bridge": "^4.2 || ^5" + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/phpunit-bridge": "^6.0" }, "type": "library", "autoload": { @@ -3377,7 +3998,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/1.4.6" + "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" }, "funding": [ { @@ -3393,73 +4014,116 @@ "type": "tidelift" } ], - "time": "2021-03-25T17:01:18+00:00" + "time": "2022-02-25T21:32:43+00:00" }, { - "name": "dnoegel/php-xdg-base-dir", - "version": "v0.1.1", + "name": "dereuromark/cakephp-ide-helper", + "version": "1.18.9", "source": { "type": "git", - "url": "https://github.com/dnoegel/php-xdg-base-dir.git", - "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" + "url": "https://github.com/dereuromark/cakephp-ide-helper.git", + "reference": "3c9c9b5ca0fac42a77a5301577a57665759c2c2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", - "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "url": "https://api.github.com/repos/dereuromark/cakephp-ide-helper/zipball/3c9c9b5ca0fac42a77a5301577a57665759c2c2f", + "reference": "3c9c9b5ca0fac42a77a5301577a57665759c2c2f", "shasum": "" }, "require": { - "php": ">=5.3.2" + "cakephp/bake": "^2.1.0", + "cakephp/cakephp": "^4.2.0", + "php": ">=7.4", + "phpstan/phpdoc-parser": "^1.7.0", + "sebastian/diff": "^4.0.3||^5.0", + "squizlabs/php_codesniffer": "^3.6.0" }, "require-dev": { - "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" + "cakephp/migrations": "^3.0.0", + "cakephp/plugin-installer": "^1.3", + "dereuromark/cakephp-shim": "^2.3.0", + "fig-r/psr2r-sniffer": "dev-master", + "phpunit/phpunit": "^9.5" }, - "type": "library", - "autoload": { + "type": "cakephp-plugin", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { "psr-4": { - "XdgBaseDir\\": "src/" + "IdeHelper\\": "src/", + "IdeHelper\\Test\\Fixture\\": "tests/Fixture/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "implementation of xdg base directory specification for php", - "time": "2019-12-04T15:06:13+00:00" + "authors": [ + { + "name": "Mark Scherer", + "homepage": "https://www.dereuromark.de", + "role": "Maintainer" + }, + { + "name": "Other contributors", + "homepage": "https://github.com/dereuromark/cakephp-ide-helper/graphs/contributors", + "role": "Developer" + } + ], + "description": "CakePHP IdeHelper Plugin to improve auto-completion", + "homepage": "https://github.com/dereuromark/cakephp-ide-helper/", + "keywords": [ + "annotations", + "autocomplete", + "cakephp", + "ide", + "phpdoc", + "phpstorm", + "plugin" + ], + "support": { + "issues": "https://github.com/dereuromark/cakephp-ide-helper/issues", + "source": "https://github.com/dereuromark/cakephp-ide-helper/" + }, + "funding": [ + { + "url": "https://github.com/dereuromark", + "type": "github" + } + ], + "time": "2023-06-19T12:25:04+00:00" }, { "name": "doctrine/instantiator", - "version": "1.3.1", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "f350df0268e904597e3bd9c4685c53e0e333feea" + "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/f350df0268e904597e3bd9c4685c53e0e333feea", - "reference": "f350df0268e904597e3bd9c4685c53e0e333feea", + "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": "^6.0", + "doctrine/coding-standard": "^11", "ext-pdo": "*", "ext-phar": "*", - "phpbench/phpbench": "^0.13", - "phpstan/phpstan-phpunit": "^0.11", - "phpstan/phpstan-shim": "^0.11", - "phpunit/phpunit": "^7.0" + "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", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" @@ -3473,7 +4137,7 @@ { "name": "Marco Pivetta", "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" + "homepage": "https://ocramius.github.io/" } ], "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", @@ -3482,6 +4146,10 @@ "constructor", "instantiate" ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/2.0.0" + }, "funding": [ { "url": "https://www.doctrine-project.org/sponsorship.html", @@ -3496,31 +4164,31 @@ "type": "tidelift" } ], - "time": "2020-05-29T17:27:14+00:00" + "time": "2022-12-30T00:23:10+00:00" }, { "name": "jasny/twig-extensions", - "version": "v1.2.0", + "version": "v1.3.0", "source": { "type": "git", "url": "https://github.com/jasny/twig-extensions.git", - "reference": "30bdf3a3903c021544f36332c9d5d4d563527da4" + "reference": "a694eb02f6fc14ff8e2fceb8b80882c0c926102b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jasny/twig-extensions/zipball/30bdf3a3903c021544f36332c9d5d4d563527da4", - "reference": "30bdf3a3903c021544f36332c9d5d4d563527da4", + "url": "https://api.github.com/repos/jasny/twig-extensions/zipball/a694eb02f6fc14ff8e2fceb8b80882c0c926102b", + "reference": "a694eb02f6fc14ff8e2fceb8b80882c0c926102b", "shasum": "" }, "require": { - "php": ">=7.0.0 | >=5.6.0", - "twig/twig": "^2.0 | ^1.12" + "php": ">=7.0.0", + "twig/twig": "^2.0 | ^3.0" }, "require-dev": { "ext-intl": "*", "ext-pcre": "*", - "jasny/php-code-quality": "^2.1", - "phpunit/phpunit": "^5.0" + "jasny/php-code-quality": "^2.5", + "php": ">=7.2.0" }, "suggest": { "ext-intl": "Required for the use of the LocalDate Twig extension", @@ -3556,7 +4224,11 @@ "text", "time" ], - "time": "2017-09-13T07:38:01+00:00" + "support": { + "issues": "https://github.com/jasny/twig-extensions/issues", + "source": "https://github.com/jasny/twig-extensions" + }, + "time": "2019-12-10T16:04:23+00:00" }, { "name": "jdorn/sql-formatter", @@ -3606,6 +4278,10 @@ "highlight", "sql" ], + "support": { + "issues": "https://github.com/jdorn/sql-formatter/issues", + "source": "https://github.com/jdorn/sql-formatter/tree/v1.2.17" + }, "time": "2014-01-12T16:20:24+00:00" }, { @@ -3680,37 +4356,38 @@ }, { "name": "myclabs/deep-copy", - "version": "1.10.1", + "version": "1.11.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "969b211f9a51aa1f6c01d1d2aef56d3bd91598e5" + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/969b211f9a51aa1f6c01d1d2aef56d3bd91598e5", - "reference": "969b211f9a51aa1f6c01d1d2aef56d3bd91598e5", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, - "replace": { - "myclabs/deep-copy": "self.version" + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" }, "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, "files": [ "src/DeepCopy/deep_copy.php" - ] + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3724,26 +4401,30 @@ "object", "object graph" ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" + }, "funding": [ { "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", "type": "tidelift" } ], - "time": "2020-06-29T13:22:24+00:00" + "time": "2023-03-08T13:26:56+00:00" }, { "name": "nikic/php-parser", - "version": "v4.10.2", + "version": "v4.17.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "658f1be311a230e0907f5dfe0213742aff0596de" + "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/658f1be311a230e0907f5dfe0213742aff0596de", - "reference": "658f1be311a230e0907f5dfe0213742aff0596de", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", "shasum": "" }, "require": { @@ -3782,32 +4463,37 @@ "parser", "php" ], - "time": "2020-09-26T10:30:38+00:00" + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" + }, + "time": "2023-08-13T19:53:39+00:00" }, { "name": "phar-io/manifest", - "version": "1.0.1", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0" + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/2df402786ab5368a0169091f61a7c1e0eb6852d0", - "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", "shasum": "" }, "require": { "ext-dom": "*", "ext-phar": "*", - "phar-io/version": "^1.0.1", - "php": "^5.6 || ^7.0" + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -3837,24 +4523,28 @@ } ], "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "time": "2017-03-05T18:14:27+00:00" + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.3" + }, + "time": "2021-07-20T11:28:43+00:00" }, { "name": "phar-io/version", - "version": "1.0.1", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/phar-io/version.git", - "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df" + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df", - "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.2 || ^8.0" }, "type": "library", "autoload": { @@ -3884,253 +4574,203 @@ } ], "description": "Library for handling version information and constraints", - "time": "2017-03-05T17:38:23+00:00" - }, - { - "name": "phpdocumentor/reflection-common", - "version": "2.2.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-2.x": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src/" - } + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ], - "time": "2020-06-27T09:03:43+00:00" + "time": "2022-02-21T01:04:05+00:00" }, { - "name": "phpdocumentor/reflection-docblock", - "version": "5.2.2", + "name": "phpstan/extension-installer", + "version": "1.1.0", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" + "url": "https://github.com/phpstan/extension-installer.git", + "reference": "66c7adc9dfa38b6b5838a9fb728b68a7d8348051" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", - "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", + "url": "https://api.github.com/repos/phpstan/extension-installer/zipball/66c7adc9dfa38b6b5838a9fb728b68a7d8348051", + "reference": "66c7adc9dfa38b6b5838a9fb728b68a7d8348051", "shasum": "" }, "require": { - "ext-filter": "*", - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.3", - "webmozart/assert": "^1.9.1" + "composer-plugin-api": "^1.1 || ^2.0", + "php": "^7.1 || ^8.0", + "phpstan/phpstan": ">=0.11.6" }, "require-dev": { - "mockery/mockery": "~1.3.2" + "composer/composer": "^1.8", + "phing/phing": "^2.16.3", + "php-parallel-lint/php-parallel-lint": "^1.2.0", + "phpstan/phpstan-strict-rules": "^0.11 || ^0.12" }, - "type": "library", + "type": "composer-plugin", "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } + "class": "PHPStan\\ExtensionInstaller\\Plugin" }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": "src" + "PHPStan\\ExtensionInstaller\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - }, - { - "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2020-09-03T19:13:55+00:00" + "description": "Composer plugin for automatic installation of PHPStan extensions", + "support": { + "issues": "https://github.com/phpstan/extension-installer/issues", + "source": "https://github.com/phpstan/extension-installer/tree/1.1.0" + }, + "time": "2020-12-13T13:06:13+00:00" }, { - "name": "phpdocumentor/type-resolver", - "version": "1.4.0", + "name": "phpstan/phpdoc-parser", + "version": "1.23.1", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "846ae76eef31c6d7790fac9bc399ecee45160b26" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", - "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/846ae76eef31c6d7790fac9bc399ecee45160b26", + "reference": "846ae76eef31c6d7790fac9bc399ecee45160b26", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.0" + "php": "^7.2 || ^8.0" }, "require-dev": { - "ext-tokenizer": "*" + "doctrine/annotations": "^2.0", + "nikic/php-parser": "^4.15", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.5", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.0", + "phpunit/phpunit": "^9.5", + "symfony/process": "^5.2" }, "type": "library", - "extra": { - "branch-alias": { - "dev-1.x": "1.x-dev" - } - }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": "src" + "PHPStan\\PhpDocParser\\": [ + "src/" + ] } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "time": "2020-09-17T18:55:26+00:00" + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "support": { + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.23.1" + }, + "time": "2023-08-03T16:32:59+00:00" }, { - "name": "phpspec/prophecy", - "version": "v1.10.3", + "name": "phpstan/phpstan", + "version": "1.7.15", "source": { "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "451c3cd1418cf640de218914901e51b064abb093" + "url": "https://github.com/phpstan/phpstan.git", + "reference": "cd0202ea1b1fc6d1bbe156c6e2e18a03e0ff160a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093", - "reference": "451c3cd1418cf640de218914901e51b064abb093", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/cd0202ea1b1fc6d1bbe156c6e2e18a03e0ff160a", + "reference": "cd0202ea1b1fc6d1bbe156c6e2e18a03e0ff160a", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", - "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0" + "php": "^7.2|^8.0" }, - "require-dev": { - "phpspec/phpspec": "^2.5 || ^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" + "conflict": { + "phpstan/phpstan-shim": "*" }, + "bin": [ + "phpstan", + "phpstan.phar" + ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.10.x-dev" - } - }, "autoload": { - "psr-4": { - "Prophecy\\": "src/Prophecy" - } + "files": [ + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ + "description": "PHPStan - PHP Static Analysis Tool", + "support": { + "issues": "https://github.com/phpstan/phpstan/issues", + "source": "https://github.com/phpstan/phpstan/tree/1.7.15" + }, + "funding": [ + { + "url": "https://github.com/ondrejmirtes", + "type": "github" + }, + { + "url": "https://github.com/phpstan", + "type": "github" + }, { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" + "url": "https://www.patreon.com/phpstan", + "type": "patreon" }, { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" + "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", + "type": "tidelift" } ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "time": "2020-03-05T15:02:03+00:00" + "time": "2022-06-20T08:29:01+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "5.3.2", + "version": "9.2.27", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "c89677919c5dd6d3b3852f230a663118762218ac" + "reference": "b0a88255cb70d52653d80c890bd7f38740ea50d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c89677919c5dd6d3b3852f230a663118762218ac", - "reference": "c89677919c5dd6d3b3852f230a663118762218ac", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/b0a88255cb70d52653d80c890bd7f38740ea50d1", + "reference": "b0a88255cb70d52653d80c890bd7f38740ea50d1", "shasum": "" }, "require": { "ext-dom": "*", + "ext-libxml": "*", "ext-xmlwriter": "*", - "php": "^7.0", - "phpunit/php-file-iterator": "^1.4.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^2.0.1", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^3.0", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1" + "nikic/php-parser": "^4.15", + "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" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "suggest": { - "ext-xdebug": "^2.5.5" + "ext-pcov": "PHP extension that provides line coverage", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.3.x-dev" + "dev-master": "9.2-dev" } }, "autoload": { @@ -4156,29 +4796,43 @@ "testing", "xunit" ], - "time": "2018-04-06T15:36:58+00:00" + "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/9.2.27" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-07-26T13:44:30+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "1.4.5", + "version": "3.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -4193,7 +4847,7 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", + "email": "sebastian@phpunit.de", "role": "lead" } ], @@ -4203,26 +4857,48 @@ "filesystem", "iterator" ], - "time": "2017-11-27T13:52:08+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-12-02T12:48:52+00:00" }, { - "name": "phpunit/php-text-template", - "version": "1.2.1", + "name": "phpunit/php-invoker", + "version": "3.1.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcntl": "*" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -4239,37 +4915,47 @@ "role": "lead" } ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", "keywords": [ - "template" + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2015-06-21T13:50:34+00:00" + "time": "2020-09-28T05:58:55+00:00" }, { - "name": "phpunit/php-timer", - "version": "1.0.9", + "name": "phpunit/php-text-template", + "version": "2.0.4", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", - "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -4284,42 +4970,51 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", + "email": "sebastian@phpunit.de", "role": "lead" } ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", "keywords": [ - "timer" + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2017-02-26T11:10:40+00:00" + "time": "2020-10-26T05:33:50+00:00" }, { - "name": "phpunit/php-token-stream", - "version": "2.0.2", + "name": "phpunit/php-timer", + "version": "5.0.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "791198a2c6254db10131eecfe8c06670700904db" + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/791198a2c6254db10131eecfe8c06670700904db", - "reference": "791198a2c6254db10131eecfe8c06670700904db", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": "^7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.2.4" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -4334,66 +5029,73 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", "keywords": [ - "tokenizer" + "timer" ], - "abandoned": true, - "time": "2017-11-27T05:48:46+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:16:10+00:00" }, { "name": "phpunit/phpunit", - "version": "6.5.14", + "version": "9.6.10", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "bac23fe7ff13dbdb461481f706f0e9fe746334b7" + "reference": "a6d351645c3fe5a30f5e86be6577d946af65a328" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/bac23fe7ff13dbdb461481f706f0e9fe746334b7", - "reference": "bac23fe7ff13dbdb461481f706f0e9fe746334b7", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a6d351645c3fe5a30f5e86be6577d946af65a328", + "reference": "a6d351645c3fe5a30f5e86be6577d946af65a328", "shasum": "" }, "require": { + "doctrine/instantiator": "^1.3.1 || ^2", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", "ext-xml": "*", - "myclabs/deep-copy": "^1.6.1", - "phar-io/manifest": "^1.0.1", - "phar-io/version": "^1.0", - "php": "^7.0", - "phpspec/prophecy": "^1.7", - "phpunit/php-code-coverage": "^5.3", - "phpunit/php-file-iterator": "^1.4.3", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^1.0.9", - "phpunit/phpunit-mock-objects": "^5.0.9", - "sebastian/comparator": "^2.1", - "sebastian/diff": "^2.0", - "sebastian/environment": "^3.1", - "sebastian/exporter": "^3.1", - "sebastian/global-state": "^2.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^1.0", - "sebastian/version": "^2.0.1" - }, - "conflict": { - "phpdocumentor/reflection-docblock": "3.0.2", - "phpunit/dbunit": "<3.0" - }, - "require-dev": { - "ext-pdo": "*" + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.3", + "phar-io/version": "^3.0.2", + "php": ">=7.3", + "phpunit/php-code-coverage": "^9.2.13", + "phpunit/php-file-iterator": "^3.0.5", + "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", + "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/version": "^3.0.2" }, "suggest": { - "ext-xdebug": "*", - "phpunit/php-invoker": "^1.1" + "ext-soap": "To be able to generate mocks based on WSDL files", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" }, "bin": [ "phpunit" @@ -4401,10 +5103,13 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "6.5.x-dev" + "dev-master": "9.6-dev" } }, "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], "classmap": [ "src/" ] @@ -4427,101 +5132,95 @@ "testing", "xunit" ], - "time": "2019-02-01T05:22:47+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.10" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2023-07-10T04:04:23+00:00" }, { - "name": "phpunit/phpunit-mock-objects", - "version": "5.0.10", + "name": "psalm/phar", + "version": "4.30.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "cd1cf05c553ecfec36b170070573e540b67d3f1f" + "url": "https://github.com/psalm/phar.git", + "reference": "33723713902e1345904a5c9064ef7848bee0d490" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/cd1cf05c553ecfec36b170070573e540b67d3f1f", - "reference": "cd1cf05c553ecfec36b170070573e540b67d3f1f", + "url": "https://api.github.com/repos/psalm/phar/zipball/33723713902e1345904a5c9064ef7848bee0d490", + "reference": "33723713902e1345904a5c9064ef7848bee0d490", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.0.5", - "php": "^7.0", - "phpunit/php-text-template": "^1.2.1", - "sebastian/exporter": "^3.1" + "php": "^7.1 || ^8.0" }, "conflict": { - "phpunit/phpunit": "<6.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.5.11" - }, - "suggest": { - "ext-soap": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] + "vimeo/psalm": "*" }, + "bin": [ + "psalm.phar" + ], + "type": "library", "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Mock Object library for PHPUnit", - "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", - "keywords": [ - "mock", - "xunit" + "MIT" ], - "abandoned": true, - "time": "2018-08-09T05:50:03+00:00" + "description": "Composer-based Psalm Phar", + "support": { + "issues": "https://github.com/psalm/phar/issues", + "source": "https://github.com/psalm/phar/tree/4.30.0" + }, + "time": "2022-11-06T20:41:58+00:00" }, { "name": "psy/psysh", - "version": "v0.10.4", + "version": "v0.11.20", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "a8aec1b2981ab66882a01cce36a49b6317dc3560" + "reference": "0fa27040553d1d280a67a4393194df5228afea5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/a8aec1b2981ab66882a01cce36a49b6317dc3560", - "reference": "a8aec1b2981ab66882a01cce36a49b6317dc3560", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/0fa27040553d1d280a67a4393194df5228afea5b", + "reference": "0fa27040553d1d280a67a4393194df5228afea5b", "shasum": "" }, "require": { - "dnoegel/php-xdg-base-dir": "0.1.*", "ext-json": "*", "ext-tokenizer": "*", - "nikic/php-parser": "~4.0|~3.0|~2.0|~1.3", - "php": "^8.0 || ^7.0 || ^5.5.9", - "symfony/console": "~5.0|~4.0|~3.0|^2.4.2|~2.3.10", - "symfony/var-dumper": "~5.0|~4.0|~3.0|~2.7" + "nikic/php-parser": "^4.0 || ^3.1", + "php": "^8.0 || ^7.0.8", + "symfony/console": "^6.0 || ^5.0 || ^4.0 || ^3.4", + "symfony/var-dumper": "^6.0 || ^5.0 || ^4.0 || ^3.4" + }, + "conflict": { + "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.2", - "hoa/console": "3.17.*" + "bamarni/composer-bin-plugin": "^1.2" }, "suggest": { "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", "ext-pdo-sqlite": "The doc command requires SQLite to work.", "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.", - "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history.", - "hoa/console": "A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit." + "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history." }, "bin": [ "bin/psysh" @@ -4529,7 +5228,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "0.10.x-dev" + "dev-main": "0.11.x-dev" } }, "autoload": { @@ -4559,79 +5258,108 @@ "interactive", "shell" ], - "time": "2020-05-03T19:32:03+00:00" + "support": { + "issues": "https://github.com/bobthecow/psysh/issues", + "source": "https://github.com/bobthecow/psysh/tree/v0.11.20" + }, + "time": "2023-07-31T14:32:22+00:00" }, { - "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.1", + "name": "react/promise", + "version": "v2.10.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" + "url": "https://github.com/reactphp/promise.git", + "reference": "f913fb8cceba1e6644b7b90c4bfb678ed8a3ef38" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "url": "https://api.github.com/repos/reactphp/promise/zipball/f913fb8cceba1e6644b7b90c4bfb678ed8a3ef38", + "reference": "f913fb8cceba1e6644b7b90c4bfb678ed8a3ef38", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": ">=5.4.0" }, "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" + "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.36" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "React\\Promise\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" } ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2017-03-04T06:30:41+00:00" + "description": "A lightweight implementation of CommonJS Promises/A for PHP", + "keywords": [ + "promise", + "promises" + ], + "support": { + "issues": "https://github.com/reactphp/promise/issues", + "source": "https://github.com/reactphp/promise/tree/v2.10.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2023-05-02T15:15:43+00:00" }, { - "name": "sebastian/comparator", - "version": "2.1.3", + "name": "sebastian/cli-parser", + "version": "1.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9" + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/34369daee48eafb2651bea869b4b15d75ccc35f9", - "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/diff": "^2.0 || ^3.0", - "sebastian/exporter": "^3.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.4" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1.x-dev" + "dev-master": "1.0-dev" } }, "autoload": { @@ -4644,56 +5372,50 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" + "description": "Library for parsing CLI options", + "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" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2018-02-01T13:46:46+00:00" + "time": "2020-09-28T06:08:49+00:00" }, { - "name": "sebastian/diff", - "version": "2.0.1", + "name": "sebastian/code-unit", + "version": "1.0.8", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd" + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/347c1d8b49c5c3ee30c7040ea6fc446790e6bddd", - "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.2" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "1.0-dev" } }, "autoload": { @@ -4706,46 +5428,50 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff" + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2017-08-03T08:09:46+00:00" + "time": "2020-10-26T13:08:54+00:00" }, { - "name": "sebastian/environment", - "version": "3.1.0", + "name": "sebastian/code-unit-reverse-lookup", + "version": "2.0.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5" + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5", - "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.1" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1.x-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -4763,41 +5489,46 @@ "email": "sebastian@phpunit.de" } ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2017-07-01T08:51:00+00:00" + "time": "2020-09-28T05:30:19+00:00" }, { - "name": "sebastian/exporter", - "version": "3.1.2", + "name": "sebastian/comparator", + "version": "4.0.8", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e" + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e", - "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/recursion-context": "^3.0" + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" }, "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -4822,45 +5553,50 @@ "name": "Volker Dusch", "email": "github@wallbash.com" }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - }, { "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" + "email": "bschussek@2bepublished.at" } ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", "keywords": [ - "export", - "exporter" + "comparator", + "compare", + "equality" ], - "time": "2019-09-14T09:02:43+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T12:41:17+00:00" }, { - "name": "sebastian/global-state", - "version": "2.0.0", + "name": "sebastian/complexity", + "version": "2.0.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", "shasum": "" }, "require": { - "php": "^7.0" + "nikic/php-parser": "^4.7", + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "suggest": { - "ext-uopz": "*" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { @@ -4880,42 +5616,49 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2017-04-27T15:39:26+00:00" + "time": "2020-10-26T15:52:27+00:00" }, { - "name": "sebastian/object-enumerator", - "version": "3.0.3", + "name": "sebastian/diff", + "version": "4.0.5", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -4931,36 +5674,59 @@ { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" } ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-08-03T12:35:26+00:00" + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-05-07T05:35:17+00:00" }, { - "name": "sebastian/object-reflector", - "version": "1.1.1", + "name": "sebastian/environment", + "version": "5.1.5", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "773f97c67f28de00d397be301821b06708fca0be" + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", - "reference": "773f97c67f28de00d397be301821b06708fca0be", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-posix": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "5.1-dev" } }, "autoload": { @@ -4978,34 +5744,51 @@ "email": "sebastian@phpunit.de" } ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "time": "2017-03-29T09:07:27+00:00" + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:03:51+00:00" }, { - "name": "sebastian/recursion-context", - "version": "3.0.0", + "name": "sebastian/exporter", + "version": "4.0.5", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "ext-mbstring": "*", + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -5018,44 +5801,75 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, { "name": "Jeff Welch", "email": "whatthejeff@gmail.com" }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Volker Dusch", + "email": "github@wallbash.com" }, { "name": "Adam Harvey", "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" } ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2017-03-03T06:23:57+00:00" - }, - { - "name": "sebastian/resource-operations", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "https://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T06:03:37+00:00" + }, + { + "name": "sebastian/global-state", + "version": "5.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "bde739e7565280bda77be70044ac1047bc007e34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34", + "reference": "bde739e7565280bda77be70044ac1047bc007e34", "shasum": "" }, "require": { - "php": ">=5.6.0" + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-uopz": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -5073,31 +5887,48 @@ "email": "sebastian@phpunit.de" } ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2015-07-28T20:34:47+00:00" + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-08-02T09:26:13+00:00" }, { - "name": "sebastian/version", - "version": "2.0.1", + "name": "sebastian/lines-of-code", + "version": "1.0.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", "shasum": "" }, "require": { - "php": ">=5.6" + "nikic/php-parser": "^4.6", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "1.0-dev" } }, "autoload": { @@ -5116,101 +5947,769 @@ "role": "lead" } ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "time": "2016-10-03T07:35:21+00:00" + "description": "Library for counting the lines of code in PHP source code", + "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" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-28T06:42:11+00:00" }, { - "name": "seld/jsonlint", - "version": "1.9.0", + "name": "sebastian/object-enumerator", + "version": "4.0.4", "source": { "type": "git", - "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "4211420d25eba80712bff236a98960ef68b866b7" + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/4211420d25eba80712bff236a98960ef68b866b7", - "reference": "4211420d25eba80712bff236a98960ef68b866b7", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", "shasum": "" }, "require": { - "php": "^5.3 || ^7.0 || ^8.0" + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" }, "require-dev": { - "phpstan/phpstan": "^1.5", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^8.5.13" + "phpunit/phpunit": "^9.3" }, - "bin": [ - "bin/jsonlint" - ], "type": "library", - "autoload": { - "psr-4": { - "Seld\\JsonLint\\": "src/Seld/JsonLint/" + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" } }, + "autoload": { + "classmap": [ + "src/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "JSON Linter", - "keywords": [ - "json", - "linter", - "parser", - "validator" + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:12:34+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", "support": { - "issues": "https://github.com/Seldaek/jsonlint/issues", - "source": "https://github.com/Seldaek/jsonlint/tree/1.9.0" + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" }, "funding": [ { - "url": "https://github.com/Seldaek", + "url": "https://github.com/sebastianbergmann", "type": "github" + } + ], + "time": "2020-10-26T13:14:26+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" }, { - "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint", - "type": "tidelift" + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "https://github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" } ], - "time": "2022-04-01T13:37:23+00:00" + "time": "2023-02-03T06:07:39+00:00" }, { - "name": "seld/phar-utils", - "version": "1.2.0", + "name": "sebastian/resource-operations", + "version": "3.0.3", "source": { "type": "git", - "url": "https://github.com/Seldaek/phar-utils.git", - "reference": "9f3452c93ff423469c0d56450431562ca423dcee" + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "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" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:45:17+00:00" + }, + { + "name": "sebastian/type", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:13:03+00:00" + }, + { + "name": "sebastian/version", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c6c1022351a901512170118436c764e473f6de8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:39:44+00:00" + }, + { + "name": "seld/jsonlint", + "version": "1.10.0", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/jsonlint.git", + "reference": "594fd6462aad8ecee0b45ca5045acea4776667f1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/594fd6462aad8ecee0b45ca5045acea4776667f1", + "reference": "594fd6462aad8ecee0b45ca5045acea4776667f1", + "shasum": "" + }, + "require": { + "php": "^5.3 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.5", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^8.5.13" + }, + "bin": [ + "bin/jsonlint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Seld\\JsonLint\\": "src/Seld/JsonLint/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "JSON Linter", + "keywords": [ + "json", + "linter", + "parser", + "validator" + ], + "support": { + "issues": "https://github.com/Seldaek/jsonlint/issues", + "source": "https://github.com/Seldaek/jsonlint/tree/1.10.0" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint", + "type": "tidelift" + } + ], + "time": "2023-05-11T13:16:46+00:00" + }, + { + "name": "seld/phar-utils", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/phar-utils.git", + "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/ea2f4014f163c1be4c601b9b7bd6af81ba8d701c", + "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Seld\\PharUtils\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + } + ], + "description": "PHAR file format utilities, for when PHP phars you up", + "keywords": [ + "phar" + ], + "support": { + "issues": "https://github.com/Seldaek/phar-utils/issues", + "source": "https://github.com/Seldaek/phar-utils/tree/1.2.1" + }, + "time": "2022-08-31T10:31:18+00:00" + }, + { + "name": "seld/signal-handler", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/signal-handler.git", + "reference": "f69d119511dc0360440cdbdaa71829c149b7be75" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/signal-handler/zipball/f69d119511dc0360440cdbdaa71829c149b7be75", + "reference": "f69d119511dc0360440cdbdaa71829c149b7be75", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "require-dev": { + "phpstan/phpstan": "^1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1", + "phpstan/phpstan-strict-rules": "^1.3", + "phpunit/phpunit": "^7.5.20 || ^8.5.23", + "psr/log": "^1 || ^2 || ^3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Seld\\Signal\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Simple unix signal handler that silently fails where signals are not supported for easy cross-platform development", + "keywords": [ + "posix", + "sigint", + "signal", + "sigterm", + "unix" + ], + "support": { + "issues": "https://github.com/Seldaek/signal-handler/issues", + "source": "https://github.com/Seldaek/signal-handler/tree/2.0.1" + }, + "time": "2022-07-20T18:31:45+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "3.7.2", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/ed8e00df0a83aa96acf703f8c2979ff33341f879", + "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "bin": [ + "bin/phpcs", + "bin/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards", + "static analysis" + ], + "support": { + "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", + "source": "https://github.com/squizlabs/PHP_CodeSniffer", + "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" + }, + "time": "2023-02-22T23:07:41+00:00" + }, + { + "name": "symfony/finder", + "version": "v6.3.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "9915db259f67d21eefee768c1abcf1cc61b1fc9e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/9915db259f67d21eefee768c1abcf1cc61b1fc9e", + "reference": "9915db259f67d21eefee768c1abcf1cc61b1fc9e", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "symfony/filesystem": "^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v6.3.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-07-31T08:31:44+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9", + "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/9f3452c93ff423469c0d56450431562ca423dcee", - "reference": "9f3452c93ff423469c0d56450431562ca423dcee", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", "shasum": "" }, "require": { - "php": ">=5.3" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { + "files": [ + "bootstrap.php" + ], "psr-4": { - "Seld\\PharUtils\\": "src/" - } + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5218,97 +6717,81 @@ ], "authors": [ { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be" + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "PHAR file format utilities, for when PHP phars you up", + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", "keywords": [ - "phar" + "compatibility", + "polyfill", + "portable", + "shim" ], "support": { - "issues": "https://github.com/Seldaek/phar-utils/issues", - "source": "https://github.com/Seldaek/phar-utils/tree/1.2.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" }, - "time": "2021-12-10T11:20:11+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" }, { - "name": "squizlabs/php_codesniffer", - "version": "3.5.8", + "name": "symfony/polyfill-php81", + "version": "v1.27.0", "source": { "type": "git", - "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "9d583721a7157ee997f235f327de038e7ea6dac4" + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/9d583721a7157ee997f235f327de038e7ea6dac4", - "reference": "9d583721a7157ee997f235f327de038e7ea6dac4", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a", + "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a", "shasum": "" }, "require": { - "ext-simplexml": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": ">=5.4.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + "php": ">=7.1" }, - "bin": [ - "bin/phpcs", - "bin/phpcbf" - ], "type": "library", "extra": { "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Greg Sherwood", - "role": "lead" + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } - ], - "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", - "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", - "keywords": [ - "phpcs", - "standards" - ], - "time": "2020-10-23T02:01:07+00:00" - }, - { - "name": "symfony/finder", - "version": "v5.4.3", - "source": { - "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "231313534dded84c7ecaa79d14bc5da4ccb69b7d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/231313534dded84c7ecaa79d14bc5da4ccb69b7d", - "reference": "231313534dded84c7ecaa79d14bc5da4ccb69b7d", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16" }, - "type": "library", "autoload": { + "files": [ + "bootstrap.php" + ], "psr-4": { - "Symfony\\Component\\Finder\\": "" + "Symfony\\Polyfill\\Php81\\": "" }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "Resources/stubs" ] }, "notification-url": "https://packagist.org/downloads/", @@ -5317,18 +6800,24 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Finds files and directories via an intuitive fluent interface", + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], "support": { - "source": "https://github.com/symfony/finder/tree/v5.4.3" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0" }, "funding": [ { @@ -5344,25 +6833,24 @@ "type": "tidelift" } ], - "time": "2022-01-26T16:34:36+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/process", - "version": "v5.4.7", + "version": "v6.3.2", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "38a44b2517b470a436e1c944bf9b9ba3961137fb" + "reference": "c5ce962db0d9b6e80247ca5eb9af6472bd4d7b5d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/38a44b2517b470a436e1c944bf9b9ba3961137fb", - "reference": "38a44b2517b470a436e1c944bf9b9ba3961137fb", + "url": "https://api.github.com/repos/symfony/process/zipball/c5ce962db0d9b6e80247ca5eb9af6472bd4d7b5d", + "reference": "c5ce962db0d9b6e80247ca5eb9af6472bd4d7b5d", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.1" }, "type": "library", "autoload": { @@ -5390,7 +6878,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.4.7" + "source": "https://github.com/symfony/process/tree/v6.3.2" }, "funding": [ { @@ -5406,51 +6894,42 @@ "type": "tidelift" } ], - "time": "2022-03-18T16:18:52+00:00" + "time": "2023-07-12T16:00:22+00:00" }, { "name": "symfony/var-dumper", - "version": "v5.1.7", + "version": "v6.3.3", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "c976c115a0d788808f7e71834c8eb0844f678d02" + "reference": "77fb4f2927f6991a9843633925d111147449ee7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c976c115a0d788808f7e71834c8eb0844f678d02", - "reference": "c976c115a0d788808f7e71834c8eb0844f678d02", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/77fb4f2927f6991a9843633925d111147449ee7a", + "reference": "77fb4f2927f6991a9843633925d111147449ee7a", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.15" + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "phpunit/phpunit": "<5.4.3", - "symfony/console": "<4.4" + "symfony/console": "<5.4" }, "require-dev": { "ext-iconv": "*", - "symfony/console": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", - "twig/twig": "^2.4|^3.0" - }, - "suggest": { - "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", - "ext-intl": "To show region name in time zone dump", - "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + "symfony/console": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/uid": "^5.4|^6.0", + "twig/twig": "^2.13|^3.0.4" }, "bin": [ "Resources/bin/var-dump-server" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, "autoload": { "files": [ "Resources/functions/dump.php" @@ -5476,12 +6955,15 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony mechanism for exploring and dumping PHP variables", + "description": "Provides mechanisms for walking through any arbitrary PHP variable", "homepage": "https://symfony.com", "keywords": [ "debug", "dump" ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v6.3.3" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -5496,20 +6978,20 @@ "type": "tidelift" } ], - "time": "2020-09-18T14:27:32+00:00" + "time": "2023-07-31T07:08:24+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "75a63c33a8577608444246075ea0af0d052e452a" + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a", - "reference": "75a63c33a8577608444246075ea0af0d052e452a", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", "shasum": "" }, "require": { @@ -5536,53 +7018,55 @@ } ], "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" + }, "funding": [ { "url": "https://github.com/theseer", "type": "github" } ], - "time": "2020-07-12T23:59:07+00:00" + "time": "2021-07-28T10:34:58+00:00" }, { - "name": "twig/twig", - "version": "v1.44.7", + "name": "twig/markdown-extra", + "version": "v3.7.0", "source": { "type": "git", - "url": "https://github.com/twigphp/Twig.git", - "reference": "0887422319889e442458e48e2f3d9add1a172ad5" + "url": "https://github.com/twigphp/markdown-extra.git", + "reference": "8f1179e279cea6ef14066a4560b859df58acd5d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/0887422319889e442458e48e2f3d9add1a172ad5", - "reference": "0887422319889e442458e48e2f3d9add1a172ad5", + "url": "https://api.github.com/repos/twigphp/markdown-extra/zipball/8f1179e279cea6ef14066a4560b859df58acd5d8", + "reference": "8f1179e279cea6ef14066a4560b859df58acd5d8", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-ctype": "^1.8" + "php": ">=7.1.3", + "twig/twig": "^2.7|^3.0" }, "require-dev": { - "psr/container": "^1.0", - "symfony/phpunit-bridge": "^4.4.9|^5.0.9" + "erusev/parsedown": "^1.7", + "league/commonmark": "^1.0|^2.0", + "league/html-to-markdown": "^4.8|^5.0", + "michelf/php-markdown": "^1.8|^2.0", + "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.44-dev" - } - }, "autoload": { - "psr-0": { - "Twig_": "lib/" - }, "psr-4": { - "Twig\\": "src/" - } + "Twig\\Extra\\Markdown\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { @@ -5590,25 +7074,17 @@ "email": "fabien@symfony.com", "homepage": "http://fabien.potencier.org", "role": "Lead Developer" - }, - { - "name": "Twig Team", - "role": "Contributors" - }, - { - "name": "Armin Ronacher", - "email": "armin.ronacher@active-4.com", - "role": "Project Founder" } ], - "description": "Twig, the flexible, fast, and secure template language for PHP", + "description": "A Twig extension for Markdown", "homepage": "https://twig.symfony.com", "keywords": [ - "templating" + "html", + "markdown", + "twig" ], "support": { - "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v1.44.7" + "source": "https://github.com/twigphp/markdown-extra/tree/v3.7.0" }, "funding": [ { @@ -5620,161 +7096,86 @@ "type": "tidelift" } ], - "time": "2022-09-28T08:38:36+00:00" - }, - { - "name": "umpirsky/twig-php-function", - "version": "v0.1", - "source": { - "type": "git", - "url": "https://github.com/umpirsky/twig-php-function.git", - "reference": "53b4b1eb0c5eacbd7d66c504b7d809c79b4bedbc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/umpirsky/twig-php-function/zipball/53b4b1eb0c5eacbd7d66c504b7d809c79b4bedbc", - "reference": "53b4b1eb0c5eacbd7d66c504b7d809c79b4bedbc", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "twig/twig": "~1.12" - }, - "require-dev": { - "phpspec/phpspec": "~2.0", - "phpunit/phpunit": "~4.4" - }, - "type": "library", - "autoload": { - "psr-0": { - "Umpirsky\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Saša Stamenković", - "email": "umpirsky@gmail.com" - } - ], - "description": "Call (almost) any PHP function from your Twig templates.", - "time": "2016-03-12T16:36:32+00:00" + "time": "2023-02-09T06:45:16+00:00" }, { - "name": "webmozart/assert", - "version": "1.9.1", + "name": "twig/twig", + "version": "v3.7.0", "source": { "type": "git", - "url": "https://github.com/webmozarts/assert.git", - "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" + "url": "https://github.com/twigphp/Twig.git", + "reference": "5cf942bbab3df42afa918caeba947f1b690af64b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", - "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/5cf942bbab3df42afa918caeba947f1b690af64b", + "reference": "5cf942bbab3df42afa918caeba947f1b690af64b", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0 || ^8.0", - "symfony/polyfill-ctype": "^1.8" - }, - "conflict": { - "phpstan/phpstan": "<0.12.20", - "vimeo/psalm": "<3.9.1" + "php": ">=7.2.5", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-mbstring": "^1.3" }, "require-dev": { - "phpunit/phpunit": "^4.8.36 || ^7.5.13" + "psr/container": "^1.0|^2.0", + "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0" }, "type": "library", "autoload": { "psr-4": { - "Webmozart\\Assert\\": "src/" + "Twig\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Twig Team", + "role": "Contributors" + }, + { + "name": "Armin Ronacher", + "email": "armin.ronacher@active-4.com", + "role": "Project Founder" } ], - "description": "Assertions to validate method input/output with nice error messages.", + "description": "Twig, the flexible, fast, and secure template language for PHP", + "homepage": "https://twig.symfony.com", "keywords": [ - "assert", - "check", - "validate" + "templating" ], - "time": "2020-07-08T17:02:28+00:00" - }, - { - "name": "wyrihaximus/twig-view", - "version": "4.3.8", - "source": { - "type": "git", - "url": "https://github.com/cakephp/legacy-twig-view.git", - "reference": "a5ec66690aa045d6eda17ab1c8a5baf0efdcfa45" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/cakephp/legacy-twig-view/zipball/a5ec66690aa045d6eda17ab1c8a5baf0efdcfa45", - "reference": "a5ec66690aa045d6eda17ab1c8a5baf0efdcfa45", - "shasum": "" - }, - "require": { - "ajgl/breakpoint-twig-extension": "^0.3.0", - "aptoma/twig-markdown": "^2.0", - "asm89/twig-cache-extension": "^1.0", - "cakephp/cakephp": "^3.6", - "jasny/twig-extensions": "^1.0", - "php": "^5.6 || ^7.0", - "twig/twig": "^1.27", - "umpirsky/twig-php-function": "0.1" - }, - "require-dev": { - "cakephp/bake": "^1.5", - "cakephp/debug_kit": "^3.0", - "phake/phake": "^1.0.4", - "phpunit/phpunit": "^5.7.14", - "squizlabs/php_codesniffer": "^1.5.6", - "wyrihaximus/phpunit-class-reflection-helpers": "dev-master" - }, - "type": "cakephp-plugin", - "autoload": { - "psr-4": { - "WyriHaximus\\TwigView\\": "src/" - } + "support": { + "issues": "https://github.com/twigphp/Twig/issues", + "source": "https://github.com/twigphp/Twig/tree/v3.7.0" }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ + "funding": [ { - "name": "Cees-Jan Kiewiet", - "email": "ceesjank@gmail.com", - "homepage": "http://wyrihaximus.net/" + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" } ], - "description": "Twig powered View for CakePHP3", - "keywords": [ - "cakephp", - "cakephp3", - "twig", - "view" - ], - "time": "2018-12-17T21:08:25+00:00" + "time": "2023-07-26T07:16:09+00:00" } ], "aliases": [], "minimum-stability": "stable", "stability-flags": { - "psy/psysh": 0 + "muffin/tags": 10, + "psy/psysh": 0, + "dereuromark/cakephp-ide-helper": 0 }, "prefer-stable": false, "prefer-lowest": false, diff --git a/config/Migrations/20170630052142_AddPrintivoProject.php b/config/Migrations/20170630052142_AddPrintivoProject.php index 76365690..fa2243e8 100644 --- a/config/Migrations/20170630052142_AddPrintivoProject.php +++ b/config/Migrations/20170630052142_AddPrintivoProject.php @@ -14,12 +14,13 @@ class AddPrintivoProject extends AbstractMigration */ public function change() { - $projectTable = TableRegistry::get('Projects'); - $perspectiveImagesTable = TableRegistry::get('PerspectiveImages'); - $screenMonitorImagesTable = TableRegistry::get('ScreenMonitorImages'); - $uploadedFilesTable = TableRegistry::get('UploadedFiles'); - $project = $projectTable->newEntity(); + $projectTable = TableRegistry::getTableLocator()->get('Projects'); + $perspectiveImagesTable = TableRegistry::getTableLocator()->get('PerspectiveImages'); + $screenMonitorImagesTable = TableRegistry::getTableLocator()->get('ScreenMonitorImages'); + $uploadedFilesTable = TableRegistry::getTableLocator()->get('UploadedFiles'); + + $project = $projectTable->newEmptyEntity(); $project->title = 'Printivo.com'; $project->slug = 'printivo-com'; $project->website = 'https://printivo.com'; @@ -33,7 +34,7 @@ public function change() $project->modified = Chronos::now(); if ($projectTable->save($project)) { - $perspectiveImages = $uploadedFilesTable->newEntity(); + $perspectiveImages = $uploadedFilesTable->newEmptyEntity(); $perspectiveImages->file = 'Perspective_Printivo.jpg'; $perspectiveImages->dir = 'https://s3-us-west-2.amazonaws.com/printivo/files/cakephp/PerspectiveImages'; $perspectiveImages->size = '163374'; @@ -43,10 +44,10 @@ public function change() $perspectiveImages->modified = Chronos::now(); $uploadedFilesTable->save($perspectiveImages); - $perspectiveImages->model = $perspectiveImagesTable->alias(); + $perspectiveImages->model = $perspectiveImagesTable->getAlias(); $perspectiveImagesTable->save($perspectiveImages); - $screenMonitorImages = $uploadedFilesTable->newEntity(); + $screenMonitorImages = $uploadedFilesTable->newEmptyEntity(); $screenMonitorImages->file = 'printivo.jpg'; $screenMonitorImages->dir = 'https://s3-us-west-2.amazonaws.com/printivo/files/cakephp/ScreenMonitorImages'; $screenMonitorImages->size = '150539'; @@ -56,7 +57,7 @@ public function change() $screenMonitorImages->modified = Chronos::now(); $uploadedFilesTable->save($screenMonitorImages); - $screenMonitorImages->model = $screenMonitorImagesTable->alias(); + $screenMonitorImages->model = $screenMonitorImagesTable->getAlias(); $screenMonitorImagesTable->save($screenMonitorImages); } } diff --git a/config/Migrations/schema-dump-default.lock b/config/Migrations/schema-dump-default.lock index 9a305958..c1a4e8ea 100644 Binary files a/config/Migrations/schema-dump-default.lock and b/config/Migrations/schema-dump-default.lock differ diff --git a/config/app.php b/config/app.php new file mode 100644 index 00000000..c31e4f6e --- /dev/null +++ b/config/app.php @@ -0,0 +1,420 @@ + filter_var(env('DEBUG', false), FILTER_VALIDATE_BOOLEAN), + + /* + * Configure basic information about the application. + * + * - namespace - The namespace to find app classes under. + * - defaultLocale - The default locale for translation, formatting currencies and numbers, date and time. + * - encoding - The encoding used for HTML + database connections. + * - base - The base directory the app resides in. If false this + * will be auto detected. + * - dir - Name of app directory. + * - webroot - The webroot directory. + * - wwwRoot - The file path to webroot. + * - baseUrl - To configure CakePHP to *not* use mod_rewrite and to + * use CakePHP pretty URLs, remove these .htaccess + * files: + * /.htaccess + * /webroot/.htaccess + * And uncomment the baseUrl key below. + * - fullBaseUrl - A base URL to use for absolute links. When set to false (default) + * CakePHP generates required value based on `HTTP_HOST` environment variable. + * However, you can define it manually to optimize performance or if you + * are concerned about people manipulating the `Host` header. + * - imageBaseUrl - Web path to the public images directory under webroot. + * - cssBaseUrl - Web path to the public css directory under webroot. + * - jsBaseUrl - Web path to the public js directory under webroot. + * - paths - Configure paths for non class based resources. Supports the + * `plugins`, `templates`, `locales` subkeys, which allow the definition of + * paths for plugins, view templates and locale files respectively. + */ + 'App' => [ + 'namespace' => 'App', + 'encoding' => env('APP_ENCODING', 'UTF-8'), + 'defaultLocale' => env('APP_DEFAULT_LOCALE', 'en_US'), + 'defaultTimezone' => env('APP_DEFAULT_TIMEZONE', 'UTC'), + 'base' => false, + 'dir' => 'src', + 'webroot' => 'webroot', + 'wwwRoot' => WWW_ROOT, + //'baseUrl' => env('SCRIPT_NAME'), + 'fullBaseUrl' => false, + 'imageBaseUrl' => 'img/', + 'cssBaseUrl' => 'css/', + 'jsBaseUrl' => 'js/', + 'paths' => [ + 'plugins' => [ROOT . DS . 'plugins' . DS], + 'templates' => [ROOT . DS . 'templates' . DS], + 'locales' => [RESOURCES . 'locales' . DS], + ], + ], + + /* + * Security and encryption configuration + * + * - salt - A random string used in security hashing methods. + * The salt value is also used as the encryption key. + * You should treat it as extremely sensitive data. + */ + 'Security' => [ + 'salt' => env('SECURITY_SALT'), + ], + + /* + * Apply timestamps with the last modified time to static assets (js, css, images). + * Will append a querystring parameter containing the time the file was modified. + * This is useful for busting browser caches. + * + * Set to true to apply timestamps when debug is true. Set to 'force' to always + * enable timestamping regardless of debug value. + */ + 'Asset' => [ + //'timestamp' => true, + // 'cacheTime' => '+1 year' + ], + + /* + * Configure the cache adapters. + */ + 'Cache' => [ + 'default' => [ + 'className' => FileEngine::class, + 'path' => CACHE, + 'url' => env('CACHE_DEFAULT_URL', null), + ], + 'changelog' => [ + 'className' => FileEngine::class, + 'path' => CACHE, + ], + 'newsletter' => [ + 'className' => FileEngine::class, + 'path' => CACHE, + 'duration' => '+1 hour', + ], + + /* + * Configure the cache used for general framework caching. + * Translation cache files are stored with this configuration. + * Duration will be set to '+2 minutes' in bootstrap.php when debug = true + * If you set 'className' => 'Null' core cache will be disabled. + */ + '_cake_core_' => [ + 'className' => FileEngine::class, + 'prefix' => 'myapp_cake_core_', + 'path' => CACHE . 'persistent' . DS, + 'serialize' => true, + 'duration' => '+1 years', + 'url' => env('CACHE_CAKECORE_URL', null), + ], + + /* + * Configure the cache for model and datasource caches. This cache + * configuration is used to store schema descriptions, and table listings + * in connections. + * Duration will be set to '+2 minutes' in bootstrap.php when debug = true + */ + '_cake_model_' => [ + 'className' => FileEngine::class, + 'prefix' => 'myapp_cake_model_', + 'path' => CACHE . 'models' . DS, + 'serialize' => true, + 'duration' => '+1 years', + 'url' => env('CACHE_CAKEMODEL_URL', null), + ], + + /* + * Configure the cache for routes. The cached routes collection is built the + * first time the routes are processed through `config/routes.php`. + * Duration will be set to '+2 seconds' in bootstrap.php when debug = true + */ + '_cake_routes_' => [ + 'className' => FileEngine::class, + 'prefix' => 'myapp_cake_routes_', + 'path' => CACHE, + 'serialize' => true, + 'duration' => '+1 years', + 'url' => env('CACHE_CAKEROUTES_URL', null), + ], + ], + + /* + * Configure the Error and Exception handlers used by your application. + * + * By default errors are displayed using Debugger, when debug is true and logged + * by Cake\Log\Log when debug is false. + * + * In CLI environments exceptions will be printed to stderr with a backtrace. + * In web environments an HTML page will be displayed for the exception. + * With debug true, framework errors like Missing Controller will be displayed. + * When debug is false, framework errors will be coerced into generic HTTP errors. + * + * Options: + * + * - `errorLevel` - int - The level of errors you are interested in capturing. + * - `trace` - boolean - Whether or not backtraces should be included in + * logged errors/exceptions. + * - `log` - boolean - Whether or not you want exceptions logged. + * - `exceptionRenderer` - string - The class responsible for rendering uncaught exceptions. + * The chosen class will be used for for both CLI and web environments. If you want different + * classes used in CLI and web environments you'll need to write that conditional logic as well. + * The conventional location for custom renderers is in `src/Error`. Your exception renderer needs to + * implement the `render()` method and return either a string or Http\Response. + * `errorRenderer` - string - The class responsible for rendering PHP errors. The selected + * class will be used for both web and CLI contexts. If you want different classes for each environment + * you'll need to write that conditional logic as well. Error renderers need to + * to implement the `Cake\Error\ErrorRendererInterface`. + * - `skipLog` - array - List of exceptions to skip for logging. Exceptions that + * extend one of the listed exceptions will also be skipped for logging. + * E.g.: + * `'skipLog' => ['Cake\Http\Exception\NotFoundException', 'Cake\Http\Exception\UnauthorizedException']` + * - `extraFatalErrorMemory` - int - The number of megabytes to increase the memory limit by + * when a fatal error is encountered. This allows + * breathing room to complete logging or error handling. + * - `ignoredDeprecationPaths` - array - A list of glob compatible file paths that deprecations + * should be ignored in. Use this to ignore deprecations for plugins or parts of + * your application that still emit deprecations. + */ + 'Error' => [ + 'errorLevel' => E_ALL & ~E_DEPRECATED, + 'exceptionRenderer' => WebExceptionRenderer::class, + 'skipLog' => [], + 'log' => true, + 'trace' => true, + ], + + /* + * Email configuration. + * + * By defining transports separately from delivery profiles you can easily + * re-use transport configuration across multiple profiles. + * + * You can specify multiple configurations for production, development and + * testing. + * + * Each transport needs a `className`. Valid options are as follows: + * + * Mail - Send using PHP mail function + * Smtp - Send using SMTP + * Debug - Do not send the email, just return the result + * + * You can add custom transports (or override existing transports) by adding the + * appropriate file to src/Mailer/Transport. Transports should be named + * 'YourTransport.php', where 'Your' is the name of the transport. + */ + 'EmailTransport' => [ + 'default' => [ + 'className' => MailTransport::class, + /* + * The keys host, port, timeout, username, password, client and tls + * are used in SMTP transports + */ + 'host' => 'localhost', + 'port' => 25, + 'timeout' => 30, + /* + * It is recommended to set these options through your environment or app_local.php + */ +// 'username' => 'user', +// 'password' => 'secret', + 'client' => null, + 'tls' => null, + 'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null), + ], + ], + + /* + * Email delivery profiles + * + * Delivery profiles allow you to predefine various properties about email + * messages from your application and give the settings a name. This saves + * duplication across your application and makes maintenance and development + * easier. Each profile accepts a number of keys. See `Cake\Mailer\Email` + * for more information. + */ + 'Email' => [ + 'default' => [ + 'transport' => 'default', + 'from' => 'you@localhost', + /* + * Will by default be set to config value of App.encoding, if that exists otherwise to UTF-8. + */ + //'charset' => 'utf-8', + //'headerCharset' => 'utf-8', + ], + ], + + /* + * Connection information used by the ORM to connect + * to your application's datastores. + * + * ### Notes + * - Drivers include Mysql Postgres Sqlite Sqlserver + * See vendor\cakephp\cakephp\src\Database\Driver for complete list + * - Do not use periods in database name - it may lead to error. + * See https://github.com/cakephp/cakephp/issues/6471 for details. + * - 'encoding' is recommended to be set to full UTF-8 4-Byte support. + * E.g set it to 'utf8mb4' in MariaDB and MySQL and 'utf8' for any + * other RDBMS. + */ + 'Datasources' => [ + /** + * These configurations should contain permanent settings used + * by all environments. + * + * The values in app_local.php will override any values set here + * and should be used for local and per-environment configurations. + * + * Environment variable based configurations can be loaded here or + * in app_local.php depending on the applications needs. + */ + 'default' => [ + 'className' => Connection::class, + 'driver' => Mysql::class, + 'persistent' => false, + 'timezone' => 'UTC', + + /* + * For MariaDB/MySQL the internal default changed from utf8 to utf8mb4, aka full utf-8 support, in CakePHP 3.6 + */ + //'encoding' => 'utf8mb4', + + /** + * If your MySQL server is configured with `skip-character-set-client-handshake` + * then you MUST use the `flags` config to set your charset encoding. + * For e.g. `'flags' => [\PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8mb4']` + */ + 'flags' => [], + 'cacheMetadata' => true, + 'log' => false, + + /* + * Set identifier quoting to true if you are using reserved words or + * special characters in your table or column names. Enabling this + * setting will result in queries built using the Query Builder having + * identifiers quoted when creating SQL. It should be noted that this + * decreases performance because each query needs to be traversed and + * manipulated before being executed. + */ + 'quoteIdentifiers' => false, + + /* + * During development, if using MySQL < 5.6, uncommenting the + * following line could boost the speed at which schema metadata is + * fetched from the database. It can also be set directly with the + * mysql configuration directive 'innodb_stats_on_metadata = 0' + * which is the recommended value in production environments + */ + //'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'], + 'url' => env('DATABASE_URL', null), + ], + + /* + * The test connection is used during the test suite. + */ + 'test' => [ + 'className' => Connection::class, + 'driver' => Mysql::class, + 'persistent' => false, + 'timezone' => 'UTC', + //'encoding' => 'utf8mb4', + 'flags' => [], + 'cacheMetadata' => true, + 'quoteIdentifiers' => false, + 'log' => false, + //'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'], + 'url' => env('DATABASE_TEST_URL', null), + ], + ], + + /* + * Configures logging options + */ + 'Log' => [ + 'debug' => [ + 'className' => FileLog::class, + 'path' => LOGS, + 'file' => 'debug', + 'url' => env('LOG_DEBUG_URL', null), + 'scopes' => false, + 'levels' => ['notice', 'info', 'debug'], + ], + 'error' => [ + 'className' => FileLog::class, + 'path' => LOGS, + 'file' => 'error', + 'url' => env('LOG_ERROR_URL', null), + 'scopes' => false, + 'levels' => ['warning', 'error', 'critical', 'alert', 'emergency'], + ], + // To enable this dedicated query log, you need set your datasource's log flag to true + 'queries' => [ + 'className' => FileLog::class, + 'path' => LOGS, + 'file' => 'queries', + 'url' => env('LOG_QUERIES_URL', null), + 'scopes' => ['queriesLog'], + ], + ], + + /* + * Session configuration. + * + * Contains an array of settings to use for session configuration. The + * `defaults` key is used to define a default preset to use for sessions, any + * settings declared here will override the settings of the default config. + * + * ## Options + * + * - `cookie` - The name of the cookie to use. Defaults to value set for `session.name` php.ini config. + * Avoid using `.` in cookie names, as PHP will drop sessions from cookies with `.` in the name. + * - `cookiePath` - The url path for which session cookie is set. Maps to the + * `session.cookie_path` php.ini config. Defaults to base path of app. + * - `timeout` - The time in minutes the session should be valid for. + * Pass 0 to disable checking timeout. + * Please note that php.ini's session.gc_maxlifetime must be equal to or greater + * than the largest Session['timeout'] in all served websites for it to have the + * desired effect. + * - `defaults` - The default configuration set to use as a basis for your session. + * There are four built-in options: php, cake, cache, database. + * - `handler` - Can be used to enable a custom session handler. Expects an + * array with at least the `engine` key, being the name of the Session engine + * class to use for managing the session. CakePHP bundles the `CacheSession` + * and `DatabaseSession` engines. + * - `ini` - An associative array of additional ini values to set. + * + * The built-in `defaults` options are: + * + * - 'php' - Uses settings defined in your php.ini. + * - 'cake' - Saves session files in CakePHP's /tmp directory. + * - 'database' - Uses CakePHP's database sessions. + * - 'cache' - Use the Cache class to save sessions. + * + * To define a custom session handler, save it at src/Network/Session/.php. + * Make sure the class implements PHP's `SessionHandlerInterface` and set + * Session.handler to + * + * To use database sessions, load the SQL file located at config/schema/sessions.sql + */ + 'Session' => [ + 'defaults' => 'php', + ], +]; diff --git a/config/app_local.example.php b/config/app_local.example.php new file mode 100644 index 00000000..1c97404b --- /dev/null +++ b/config/app_local.example.php @@ -0,0 +1,89 @@ + true, + + /* + * Security and encryption configuration + * + * - salt - A random string used in security hashing methods. + * The salt value is also used as the encryption key. + * You should treat it as extremely sensitive data. + */ + 'Security' => [ + 'salt' => env('SECURITY_SALT', '__SALT__'), + ], + + /* + * Connection information used by the ORM to connect + * to your application's datastores. + * + * See app.php for more configuration options. + */ + 'Datasources' => [ + 'default' => [ + 'host' => 'localhost', + /* + * CakePHP will use the default DB port based on the driver selected + * MySQL on MAMP uses port 8889, MAMP users will want to uncomment + * the following line and set the port accordingly + */ + //'port' => 'non_standard_port_number', + + 'username' => 'my_app', + 'password' => 'secret', + + 'database' => 'cakephporg', + /** + * If not using the default 'public' schema with the PostgreSQL driver + * set it here. + */ + //'schema' => 'myapp', + + ], + + /* + * The test connection is used during the test suite. + */ + 'test' => [ + 'host' => 'localhost', + //'port' => 'non_standard_port_number', + 'username' => 'my_app', + 'password' => 'secret', + 'database' => 'test_myapp', + //'schema' => 'myapp', + ], + ], + + /* + * Email configuration. + * + * Host and credential configuration in case you are using SmtpTransport + * + * See app.php for more configuration options. + */ + 'EmailTransport' => [ + 'default' => [ + 'host' => 'localhost', + 'port' => 25, + 'username' => null, + 'password' => null, + 'client' => null, + 'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null), + ], + ], +]; diff --git a/config/bootstrap.php b/config/bootstrap.php index b351b9f4..09a2dfce 100644 --- a/config/bootstrap.php +++ b/config/bootstrap.php @@ -1,4 +1,6 @@ parse() +// ->putenv() +// ->toEnv() +// ->toServer(); +// } + +/* * Read configuration file and inject configuration into various * CakePHP classes. * @@ -66,10 +82,13 @@ exit($e->getMessage() . "\n"); } -// Load an environment local configuration file. -// You can use a file like app_local.php to provide local overrides to your -// shared configuration. -//Configure::load('app_local', 'default'); +/* + * Load an environment local configuration file to provide overrides to your configuration. + * Notice: For security reasons app_local.php **should not** be included in your git repo. + */ +if (file_exists(CONFIG . 'app_local.php')) { + Configure::load('app_local', 'default'); +} /* * When debug = true the metadata cache should only last @@ -82,74 +101,79 @@ Configure::write('Cache._cake_routes_.duration', '+2 seconds'); } -/** - * Set server timezone to UTC. You can change it to another timezone of your - * choice but using UTC makes time calculations / conversions easier. +/* + * Set the default server timezone. Using UTC makes time calculations / conversions easier. + * Check http://php.net/manual/en/timezones.php for list of valid timezone strings. */ -date_default_timezone_set('UTC'); +date_default_timezone_set(Configure::read('App.defaultTimezone')); -/** +/* * Configure the mbstring extension to use the correct encoding. */ mb_internal_encoding(Configure::read('App.encoding')); -/** +/* * Set the default locale. This controls how dates, number and currency is * formatted and sets the default language to use for translations. */ -ini_set('intl.default_locale', env('CAKE_LOCALE', Configure::read('App.defaultLocale'))); +ini_set('intl.default_locale', Configure::read('App.defaultLocale')); -/** +/* * Register application error and exception handlers. */ -$isCli = PHP_SAPI === 'cli'; -if ($isCli) { - (new ConsoleErrorHandler(Configure::read('Error')))->register(); -} else { - (new ErrorHandler(Configure::read('Error')))->register(); -} +(new ErrorTrap(Configure::read('Error')))->register(); +(new ExceptionTrap(Configure::read('Error')))->register(); -// Include the CLI bootstrap overrides. -if ($isCli) { - require __DIR__ . '/bootstrap_cli.php'; +/* + * Include the CLI bootstrap overrides. + */ +if (PHP_SAPI === 'cli') { + require CONFIG . 'bootstrap_cli.php'; } -/** +/* * Set the full base URL. * This URL is used as the base of all absolute links. - * - * If you define fullBaseUrl in your config file you can remove this. */ -if (!Configure::read('App.fullBaseUrl')) { +$fullBaseUrl = Configure::read('App.fullBaseUrl'); +if (!$fullBaseUrl) { + /* + * When using proxies or load balancers, SSL/TLS connections might + * get terminated before reaching the server. If you trust the proxy, + * you can enable `$trustProxy` to rely on the `X-Forwarded-Proto` + * header to determine whether to generate URLs using `https`. + * + * See also https://book.cakephp.org/4/en/controllers/request-response.html#trusting-proxy-headers + */ + $trustProxy = false; + $s = null; - if (env('HTTPS')) { + if (env('HTTPS') || ($trustProxy && env('HTTP_X_FORWARDED_PROTO') === 'https')) { $s = 's'; } $httpHost = env('HTTP_HOST'); if (isset($httpHost)) { - Configure::write('App.fullBaseUrl', 'http' . $s . '://' . $httpHost); + $fullBaseUrl = 'http' . $s . '://' . $httpHost; } unset($httpHost, $s); } +if ($fullBaseUrl) { + Router::fullBaseUrl($fullBaseUrl); +} +unset($fullBaseUrl); -//debug(Configure::consume('EmailTransport')); Cache::setConfig(Configure::consume('Cache')); ConnectionManager::setConfig(Configure::consume('Datasources')); TransportFactory::setConfig(Configure::consume('EmailTransport')); -Email::setConfig(Configure::consume('Email')); +Mailer::setConfig(Configure::consume('Email')); Log::setConfig(Configure::consume('Log')); Security::setSalt(Configure::consume('Security.salt')); -/** - * The default crypto extension in 3.0 is OpenSSL. - * If you are migrating from 2.x uncomment this code to - * use a more compatible Mcrypt based implementation - */ -//Security::engine(new \Cake\Utility\Crypto\Mcrypt()); - -/** +/* * Setup detectors for mobile and tablet. + * If you don't use these checks you can safely remove this code + * and the mobiledetect package from composer.json. */ ServerRequest::addDetector('mobile', function ($request) { $detector = new \Detection\MobileDetect(); @@ -162,44 +186,49 @@ return $detector->isTablet(); }); -/** +/* + * You can enable default locale format parsing by adding calls + * to `useLocaleParser()`. This enables the automatic conversion of + * locale specific date formats. For details see + * @link https://book.cakephp.org/4/en/core-libraries/internationalization-and-localization.html#parsing-localized-datetime-data + */ +// \Cake\Database\TypeFactory::build('time') +// ->useLocaleParser(); +// \Cake\Database\TypeFactory::build('date') +// ->useLocaleParser(); +// \Cake\Database\TypeFactory::build('datetime') +// ->useLocaleParser(); +// \Cake\Database\TypeFactory::build('timestamp') +// ->useLocaleParser(); +// \Cake\Database\TypeFactory::build('datetimefractional') +// ->useLocaleParser(); +// \Cake\Database\TypeFactory::build('timestampfractional') +// ->useLocaleParser(); +// \Cake\Database\TypeFactory::build('datetimetimezone') +// ->useLocaleParser(); +// \Cake\Database\TypeFactory::build('timestamptimezone') +// ->useLocaleParser(); + + +// There is no time-specific type in Cake +TypeFactory::build('time') + ->useLocaleParser(); +TypeFactory::build('date') + ->useLocaleParser(); +TypeFactory::build('datetime') + ->useLocaleParser(); + +/* * Custom Inflector rules, can be set to correctly pluralize or singularize * table, model, controller names or whatever other string is passed to the * inflection functions. - * - * Inflector::rules('plural', ['/^(inflect)or$/i' => '\1ables']); - * Inflector::rules('irregular', ['red' => 'redlings']); - * Inflector::rules('uninflected', ['dontinflectme']); - * Inflector::rules('transliteration', ['/å/' => 'aa']); */ +//Inflector::rules('plural', ['/^(inflect)or$/i' => '\1ables']); +//Inflector::rules('irregular', ['red' => 'redlings']); +//Inflector::rules('uninflected', ['dontinflectme']); -/** - * Plugins need to be loaded manually, you can either load them one by one or all of them in a single call - * Uncomment one of the lines below, as you need. make sure you read the documentation on Plugin to use more - * advanced ways of loading plugins - * - * Plugin::loadAll(); // Loads all plugins at once - * Plugin::load('Migrations'); //Loads a single plugin named Migrations - * - */ Configure::write('Site.cakefest.end_date', '06/17/2018'); -/** - * Enable default locale format parsing. - * This is needed for matching the auto-localized string output of Time() class when parsing dates. - * - * Also enable immutable time objects in the ORM. - */ -Type::build('time') - ->useImmutable() - ->useLocaleParser(); -Type::build('date') - ->useImmutable() - ->useLocaleParser(); -Type::build('datetime') - ->useImmutable() - ->useLocaleParser(); - /** Site info */ Configure::load('site'); Configure::load('changelog'); diff --git a/config/bootstrap_cli.php b/config/bootstrap_cli.php index bdc5c928..fc0dc30b 100644 --- a/config/bootstrap_cli.php +++ b/config/bootstrap_cli.php @@ -1,4 +1,6 @@ ['edit', 'delete'], 'allowed' => function(array $user, $role, Request $request) { $postId = Hash::get($request->params, 'pass.0'); - $post = TableRegistry::get('Posts')->get($postId); + $post = TableRegistry::getTableLocator()->get('Posts')->get($postId); $userId = Hash::get($user, 'id'); if (!empty($post->user_id) && !empty($userId)) { return $post->user_id === $userId; @@ -49,23 +49,86 @@ ], */ -return [ - 'Users.SimpleRbac.permissions' => [ - [ - 'role' => ['user'], - 'controller' => ['Dashboards'], - 'action' => ['index'], - 'prefix' => 'admin', +$permissions = [ + [ + 'plugin' => 'CakeDC/Users', + 'controller' => 'Users', + 'action' => [ + // LoginTrait + 'socialLogin', + 'login', + 'logout', + 'socialEmail', + 'verify', + // RegisterTrait + 'register', + 'validateEmail', + // PasswordManagementTrait used in RegisterTrait + 'changePassword', + 'resetPassword', + 'requestResetPassword', + // UserValidationTrait used in PasswordManagementTrait + 'resendTokenValidation', + 'linkSocial', ], - [ - 'role' => ['user'], - 'controller' => ['Projects'], - 'action' => '*', - 'prefix' => 'admin', - ], - [ - 'role' => ['user'], - 'controller' => ['Pages'], - 'action' => ['display'], - ], - ]]; + 'bypassAuth' => true, + ], + [ + 'role' => '*', + 'controller' => 'Pages', + 'action' => 'display', + 'bypassAuth' => true, + ], + [ + 'role' => '*', + 'controller' => 'Changelogs', + 'action' => ['index', 'view'], + 'bypassAuth' => true, + ], + [ + 'role' => '*', + 'prefix' => false, + 'controller' => 'Projects', + 'action' => ['index', 'view'], + 'bypassAuth' => true, + ], + [ + 'role' => '*', + 'controller' => 'Writers', + 'action' => ['index'], + 'bypassAuth' => true, + ], + [ + 'role' => '*', + 'controller' => 'Contacts', + 'action' => ['rapid', 'roadTrip'], + 'bypassAuth' => true, + ], + [ + 'role' => 'user', + 'controller' => 'Dashboards', + 'action' => ['index'], + 'prefix' => 'admin', + ], + [ + 'role' => 'user', + 'controller' => 'Projects', + 'action' => '*', + 'prefix' => 'admin', + ], + [ + 'role' => '*', + 'plugin' => 'DebugKit', + 'controller' => '*', + 'action' => '*', + 'bypassAuth' => true, + ], + [ + 'role' => '*', + 'controller' => ['_css', '_js'], + 'action' => '*', + 'bypassAuth' => true, + ], +]; + +return ['CakeDC/Auth.permissions' => $permissions]; diff --git a/config/requirements.php b/config/requirements.php index d5b180f5..660b17af 100644 --- a/config/requirements.php +++ b/config/requirements.php @@ -20,20 +20,30 @@ /* * You can remove this if you are confident that your PHP version is sufficient. */ -if (version_compare(PHP_VERSION, '5.6.0') < 0) { - trigger_error('Your PHP version must be equal or higher than 5.6.0 to use CakePHP.' . PHP_EOL, E_USER_ERROR); +if (version_compare(PHP_VERSION, '7.2.0') < 0) { + trigger_error('Your PHP version must be equal or higher than 7.2.0 to use CakePHP.', E_USER_ERROR); } /* * You can remove this if you are confident you have intl installed. */ if (!extension_loaded('intl')) { - trigger_error('You must enable the intl extension to use CakePHP.' . PHP_EOL, E_USER_ERROR); + trigger_error('You must enable the intl extension to use CakePHP.', E_USER_ERROR); +} + +/* + * You can remove this if you are confident you have proper version of intl. + */ +if (version_compare(INTL_ICU_VERSION, '50.1', '<')) { + trigger_error( + 'ICU >= 50.1 is needed to use CakePHP. Please update the `libicu` package of your system.' . PHP_EOL, + E_USER_ERROR + ); } /* * You can remove this if you are confident you have mbstring installed. */ if (!extension_loaded('mbstring')) { - trigger_error('You must enable the mbstring extension to use CakePHP.' . PHP_EOL, E_USER_ERROR); + trigger_error('You must enable the mbstring extension to use CakePHP.', E_USER_ERROR); } diff --git a/config/routes.php b/config/routes.php index 0173a43b..ec731992 100644 --- a/config/routes.php +++ b/config/routes.php @@ -1,11 +1,14 @@ setRouteClass(DashedRoute::class); Router::addUrlFilter(function ($params, $request) { if ($request->getParam('language') && !isset($params['language'])) { @@ -51,6 +55,18 @@ }); $basicRoutes = function (RouteBuilder $routes) { + + // Register scoped middleware for in scopes. + $routes->registerMiddleware('csrf', new CsrfProtectionMiddleware([ + 'httponly' => true, + ])); + + /* + * Apply a middleware to the current route scope. + * Requires middleware to be registered through `Application::routes()` with `registerMiddleware()` + */ + $routes->applyMiddleware('csrf'); + /** * Here, we are connecting '/' (base path) to a controller called 'Pages', * its action called 'display', and we pass a param to select the view file @@ -76,8 +92,8 @@ $routes->connect('/business-solutions', ['controller' => 'Pages', 'action' => 'display', 'business-solutions']); $routes->connect('/roadtrip', ['controller' => 'Pages', 'action' => 'display', 'road_trip']); - $routes->redirect('/pages/documentation', 'https://book.cakephp.org/4'); - $routes->redirect('/documentation', 'https://book.cakephp.org/4'); + $routes->redirect('/pages/documentation', 'http://book.cakephp.org/5'); + $routes->redirect('/documentation', 'http://book.cakephp.org/5'); $routes->connect('/changelogs', ['controller' => 'Changelogs', 'action' => 'index']); $routes->connect('/changelogs/*', ['controller' => 'Changelogs', 'action' => 'view']); $routes->redirect('/development', ['controller' => 'Pages', 'action' => 'display', 'business-solutions']); @@ -94,23 +110,7 @@ */ $routes->connect('/pages/*', ['controller' => 'Pages', 'action' => 'display']); - /** - * Connect catchall routes for all controllers. - * - * Using the argument `DashedRoute`, the `fallbacks` method is a shortcut for - * `$routes->connect('/:controller', ['action' => 'index'], ['routeClass' => 'DashedRoute']);` - * `$routes->connect('/:controller/:action/*', [], ['routeClass' => 'DashedRoute']);` - * - * Any route class can be used with this method, such as: - * - DashedRoute - * - InflectedRoute - * - Route - * - Or your own route class - * - * You can remove these routes once you've connected the - * routes you want in your application. - */ - $routes->fallbacks('DashedRoute'); + $routes->fallbacks(); }; $realRoutes = function ($routes) use ($basicRoutes) { @@ -119,8 +119,8 @@ return $routes; }; -Router::scope('/jp', ['language' => 'ja_JP'], $realRoutes); -Router::scope('/fr', ['language' => 'fr_FR'], $realRoutes); -Router::scope('/pt', ['language' => 'pt_BR'], $realRoutes); -Router::scope('/', ['language' => 'en'], $realRoutes); -Router::scope('/', $realRoutes); +$routes->scope('/jp', ['language' => 'ja_JP'], $realRoutes); +$routes->scope('/fr', ['language' => 'fr_FR'], $realRoutes); +$routes->scope('/pt', ['language' => 'pt_BR'], $realRoutes); +$routes->scope('/', ['language' => 'en'], $realRoutes); +$routes->scope('/', $realRoutes); diff --git a/config/site.php b/config/site.php index 59c773b0..395f11e8 100644 --- a/config/site.php +++ b/config/site.php @@ -2,7 +2,7 @@ return [ // use major.minor to indicate current version in home page - 'App.cakeVersion' => '4.4', + 'App.cakeVersion' => '5.0', 'Site' => [ 'contact' => [ 'email' => 'contact@cakedc.com', @@ -173,7 +173,7 @@ ], 'documentation' => [ 'book' => [ - 'url' => 'https://book.cakephp.org/4', + 'url' => 'https://book.cakephp.org/5', 'title' => __('Book'), ], 'api' => [ @@ -190,7 +190,7 @@ 'title' => __('Videos'), ], 'security' => [ - 'url' => 'https://book.cakephp.org/4.0/en/contributing/tickets.html#reporting-security-issues', + 'url' => 'https://book.cakephp.org/5/en/contributing/tickets.html#reporting-security-issues', 'title' => __('Reporting Security Issues'), ], 'privacy' => [ @@ -249,14 +249,14 @@ 'logo' => ['img' => '/images/companies/logos/sponsors/cakedc.jpg'], 'copy' => ['text' => 'CakeDC is the commercial entity behind the framework and was established by Larry Masters, founder of CakePHP. From startups and social networks, to e-commerce and enterprise level applications, CakeDC provides the highest quality CakePHP development available. CakeDC is committed to supporting the CakePHP framework and community.', 'style' => ''], 'link' => 'https://cakedc.com', - 'img' => ['alt' => 'CakeDC'], + 'img' => ['alt' => 'CakeDC'], ], [ 'name' => 'Linode', - 'logo' => ['img' => '/images/companies/logos/sponsors/linode.jpg'], + 'logo' => ['img' => '/images/companies/logos/sponsors/linodeLogo.svg'], 'copy' => ['text' => 'Linode is the largest independent open cloud provider in the world with 10 global data centers serving over 800,000 customers and businesses around the globe. Linode products, services, and people enable developers and businesses to build, deploy, and scale applications more easily and cost-effectively in the cloud.', 'style' => ''], 'link' => 'https://www.linode.com/', - 'img' => ['alt' => 'Linode'], + 'img' => ['alt' => 'Linode'], ], ], ], diff --git a/config/users.php b/config/users.php index 0d256523..5f308e99 100644 --- a/config/users.php +++ b/config/users.php @@ -1,21 +1,17 @@ [ - // Controller used to manage users plugin features & actions - 'controller' => 'CakeDC/Users.Users', 'Registration' => [ //determines if the register is enabled 'active' => false, @@ -26,26 +22,6 @@ 'route' => ['plugin' => 'CakeDC/Users', 'controller' => 'Users', 'action' => 'profile'], ], ], - //default configuration used to auto-load the Auth Component, override to change the way Auth works - 'Auth' => [ - 'loginAction' => [ - 'plugin' => 'CakeDC/Users', - 'controller' => 'Users', - 'action' => 'login', - 'prefix' => false, - ], - 'authenticate' => [ - 'all' => [ - 'finder' => 'auth', - ], - //'CakeDC/Users.RememberMe', - 'Form', - ], - 'authorize' => [ - 'CakeDC/Auth.Superuser', - 'CakeDC/Auth.SimpleRbac', - ], - ], ]; return $config; diff --git a/src/Locale/Showcase.pot b/resources/locales/Showcase.pot similarity index 100% rename from src/Locale/Showcase.pot rename to resources/locales/Showcase.pot diff --git a/src/Locale/Users.pot b/resources/locales/Users.pot similarity index 100% rename from src/Locale/Users.pot rename to resources/locales/Users.pot diff --git a/src/Locale/default.pot b/resources/locales/default.pot similarity index 100% rename from src/Locale/default.pot rename to resources/locales/default.pot diff --git a/src/Locale/fr_FR/default.po b/resources/locales/fr_FR/default.po similarity index 100% rename from src/Locale/fr_FR/default.po rename to resources/locales/fr_FR/default.po diff --git a/src/Locale/ja_JP/default.po b/resources/locales/ja_JP/default.po similarity index 100% rename from src/Locale/ja_JP/default.po rename to resources/locales/ja_JP/default.po diff --git a/src/Locale/pt_BR/default.po b/resources/locales/pt_BR/default.po similarity index 100% rename from src/Locale/pt_BR/default.po rename to resources/locales/pt_BR/default.po diff --git a/src/Application.php b/src/Application.php index 5947d8a0..c0937b91 100644 --- a/src/Application.php +++ b/src/Application.php @@ -1,4 +1,6 @@ addPlugin('Bake'); - } catch (MissingPluginException $e) { - // Do not halt if the plugin is missing - } - - $this->addPlugin('Migrations'); + $this->bootstrapCli(); } /* @@ -56,46 +55,28 @@ public function bootstrap() $this->addPlugin(\DebugKit\Plugin::class); } - $this->addPlugin('Migrations'); - $this->addPlugin('AssetCompress', ['bootstrap' => true]); + // Load more plugins here + $this->addPlugin('AssetCompress'); Configure::write('Users.config', ['users']); - $this->addPlugin('CakeDC/Users', ['routes' => true, 'bootstrap' => true]); + $this->addPlugin(\CakeDC\Users\Plugin::class); $this->addPlugin('Burzum/Imagine'); $this->addPlugin('Josegonzalez/Upload'); $this->addPlugin('Muffin/Slug'); $this->addPlugin('Muffin/Tags'); } - /** - * Define the routes for an application. - * - * Use the provided RouteBuilder to define an application's routing, register scoped middleware. - * - * @param \Cake\Routing\RouteBuilder $routes A route builder to add routes into. - * @return void - */ - public function routes($routes) - { - // Register scoped middleware for use in routes.php - $routes->registerMiddleware('csrf', new CsrfProtectionMiddleware([ - 'httpOnly' => true, - ])); - - parent::routes($routes); - } - /** * Setup the middleware queue your application will use. * * @param \Cake\Http\MiddlewareQueue $middlewareQueue The middleware queue to setup. * @return \Cake\Http\MiddlewareQueue The updated middleware queue. */ - public function middleware($middlewareQueue) + public function middleware(MiddlewareQueue $middlewareQueue): MiddlewareQueue { $middlewareQueue // Catch any exceptions in the lower layers, // and make an error page/response - ->add(new ErrorHandlerMiddleware(null, Configure::read('Error'))) + ->add(new ErrorHandlerMiddleware(Configure::read('Error'))) // Handle plugin/theme assets like CakePHP normally does. ->add(new AssetMiddleware([ @@ -103,11 +84,49 @@ public function middleware($middlewareQueue) ])) // Add routing middleware. - // Routes collection cache enabled by default, to disable route caching - // pass null as cacheConfig, example: `new RoutingMiddleware($this)` - // you might want to disable this cache in case your routing is extremely simple - ->add(new RoutingMiddleware($this, '_cake_routes_')); + // If you have a large number of routes connected, turning on routes + // caching in production could improve performance. For that when + // creating the middleware instance specify the cache config name by + // using it's second constructor argument: + // `new RoutingMiddleware($this, '_cake_routes_')` + ->add(new CachedRoutingMiddleware($this, '_cake_routes_')) + + // Parse various types of encoded request bodies so that they are + // available as array through $request->getData() + // https://book.cakephp.org/4/en/controllers/middleware.html#body-parser-middleware + ->add(new BodyParserMiddleware()); return $middlewareQueue; } + + /** + * Register application container services. + * + * @param \Cake\Core\ContainerInterface $container The Container to update. + * @return void + * @link https://book.cakephp.org/4/en/development/dependency-injection.html#dependency-injection + */ + public function services(ContainerInterface $container): void + { + } + + /** + * Bootstrapping for CLI application. + * + * That is when running commands. + * + * @return void + */ + protected function bootstrapCli(): void + { + $this->addOptionalPlugin('Cake/Repl'); + $this->addOptionalPlugin('Bake'); + if (Configure::read('debug')) { + $this->addPlugin('IdeHelper'); + } + + $this->addPlugin('Migrations'); + + // Load more plugins here + } } diff --git a/src/Command/ConsoleCommand.php b/src/Command/ConsoleCommand.php new file mode 100644 index 00000000..23686aaa --- /dev/null +++ b/src/Command/ConsoleCommand.php @@ -0,0 +1,89 @@ +err('Unable to load Psy\Shell.'); + $io->err(''); + $io->err('Make sure you have installed psysh as a dependency,'); + $io->err('and that Psy\Shell is registered in your autoloader.'); + $io->err(''); + $io->err('If you are using composer run'); + $io->err(''); + $io->err('$ php composer.phar require --dev psy/psysh'); + $io->err(''); + + return static::CODE_ERROR; + } + + $io->out('You can exit with `CTRL-C` or `exit`'); + $io->out(''); + + Log::drop('debug'); + Log::drop('error'); + $io->setLoggers(false); + restore_error_handler(); + restore_exception_handler(); + + $psy = new PsyShell(new PsyConfiguration([ + 'updateCheck' => 'never', + ])); + $psy->run(); + } + + /** + * Display help for this console. + * + * @param \Cake\Console\ConsoleOptionParser $parser The parser to update + * @return \Cake\Console\ConsoleOptionParser + */ + public function buildOptionParser(ConsoleOptionParser $parser): ConsoleOptionParser + { + $parser->setDescription( + 'This shell provides a REPL that you can use to interact with ' . + 'your application in a command line designed to run PHP code. ' . + 'You can use it to run adhoc queries with your models, or ' . + 'explore the features of CakePHP and your application.' . + "\n\n" . + 'You will need to have psysh installed for this Shell to work.' + ); + + return $parser; + } +} diff --git a/src/Console/Installer.php b/src/Console/Installer.php index 147a4570..4bdccc10 100644 --- a/src/Console/Installer.php +++ b/src/Console/Installer.php @@ -1,4 +1,6 @@ isInteractive()) { - $validator = function ($arg) { - if (in_array($arg, ['Y', 'y', 'N', 'n'])) { - return $arg; - } - throw new Exception('This is not a valid answer. Please choose Y or n.'); - }; - $setFolderPermissions = $io->askAndValidate( - 'Set Folder Permissions ? (Default to Y) [Y,n]? ', - $validator, - 10, - 'Y' - ); - - if (in_array($setFolderPermissions, ['Y', 'y'])) { - static::setFolderPermissions($rootDir, $io); - } - } else { - static::setFolderPermissions($rootDir, $io); - } - + static::setFolderPermissions($rootDir, $io); static::setSecuritySalt($rootDir, $io); - if (class_exists('\Cake\Codeception\Console\Installer')) { - \Cake\Codeception\Console\Installer::customizeCodeceptionBinary($event); + if (class_exists(CodeceptionInstaller::class)) { + CodeceptionInstaller::customizeCodeceptionBinary($event); } } /** - * Create the config/app.php file if it does not exist. + * Create config/app_local.php file if it does not exist. * * @param string $dir The application's root directory. * @param \Composer\IO\IOInterface $io IO interface to write to console. * @return void */ - public static function createAppConfig($dir, $io) + public static function createAppLocalConfig($dir, $io) { - $appConfig = $dir . '/config/app.php'; - $defaultConfig = $dir . '/config/app.default.php'; - if (!file_exists($appConfig)) { - copy($defaultConfig, $appConfig); - $io->write('Created `config/app.php` file'); + $appLocalConfig = $dir . '/config/app_local.php'; + $appLocalConfigTemplate = $dir . '/config/app_local.example.php'; + if (!file_exists($appLocalConfig)) { + copy($appLocalConfigTemplate, $appLocalConfig); + $io->write('Created `config/app_local.php` file'); } } @@ -95,18 +95,7 @@ public static function createAppConfig($dir, $io) */ public static function createWritableDirectories($dir, $io) { - $paths = [ - 'logs', - 'tmp', - 'tmp/cache', - 'tmp/cache/models', - 'tmp/cache/persistent', - 'tmp/cache/views', - 'tmp/sessions', - 'tmp/tests', - ]; - - foreach ($paths as $path) { + foreach (static::WRITABLE_DIRS as $path) { $path = $dir . '/' . $path; if (!file_exists($path)) { mkdir($path); @@ -126,15 +115,35 @@ public static function createWritableDirectories($dir, $io) */ public static function setFolderPermissions($dir, $io) { + // ask if the permissions should be changed + if ($io->isInteractive()) { + $validator = function ($arg) { + if (in_array($arg, ['Y', 'y', 'N', 'n'])) { + return $arg; + } + throw new Exception('This is not a valid answer. Please choose Y or n.'); + }; + $setFolderPermissions = $io->askAndValidate( + 'Set Folder Permissions ? (Default to Y) [Y,n]? ', + $validator, + 10, + 'Y' + ); + + if (in_array($setFolderPermissions, ['n', 'N'])) { + return; + } + } + // Change the permissions on a path and output the results. - $changePerms = function ($path, $perms, $io) { - // Get permission bits from stat(2) result. + $changePerms = function ($path) use ($io) { $currentPerms = fileperms($path) & 0777; - if (($currentPerms & $perms) == $perms) { + $worldWritable = $currentPerms | 0007; + if ($worldWritable == $currentPerms) { return; } - $res = chmod($path, $currentPerms | $perms); + $res = chmod($path, $worldWritable); if ($res) { $io->write('Permissions set on ' . $path); } else { @@ -142,7 +151,7 @@ public static function setFolderPermissions($dir, $io) } }; - $walker = function ($dir, $perms, $io) use (&$walker, $changePerms) { + $walker = function ($dir) use (&$walker, $changePerms) { $files = array_diff(scandir($dir), ['.', '..']); foreach ($files as $file) { $path = $dir . '/' . $file; @@ -151,15 +160,14 @@ public static function setFolderPermissions($dir, $io) continue; } - $changePerms($path, $perms, $io); - $walker($path, $perms, $io); + $changePerms($path); + $walker($path); } }; - $worldWritable = bindec('0000000111'); - $walker($dir . '/tmp', $worldWritable, $io); - $changePerms($dir . '/tmp', $worldWritable, $io); - $changePerms($dir . '/logs', $worldWritable, $io); + $walker($dir . '/tmp'); + $changePerms($dir . '/tmp'); + $changePerms($dir . '/logs'); } /** @@ -171,10 +179,24 @@ public static function setFolderPermissions($dir, $io) */ public static function setSecuritySalt($dir, $io) { - $config = $dir . '/config/app.php'; + $newKey = hash('sha256', Security::randomBytes(64)); + static::setSecuritySaltInFile($dir, $io, $newKey, 'app_local.php'); + } + + /** + * Set the security.salt value in a given file + * + * @param string $dir The application's root directory. + * @param \Composer\IO\IOInterface $io IO interface to write to console. + * @param string $newKey key to set in the file + * @param string $file A path to a file relative to the application's root + * @return void + */ + public static function setSecuritySaltInFile($dir, $io, $newKey, $file) + { + $config = $dir . '/config/' . $file; $content = file_get_contents($config); - $newKey = hash('sha256', $dir . php_uname() . microtime(true)); $content = str_replace('__SALT__', $newKey, $content, $count); if ($count == 0) { @@ -185,10 +207,40 @@ public static function setSecuritySalt($dir, $io) $result = file_put_contents($config, $content); if ($result) { - $io->write('Updated Security.salt value in config/app.php'); + $io->write('Updated Security.salt value in config/' . $file); return; } $io->write('Unable to update Security.salt value.'); } + + /** + * Set the APP_NAME value in a given file + * + * @param string $dir The application's root directory. + * @param \Composer\IO\IOInterface $io IO interface to write to console. + * @param string $appName app name to set in the file + * @param string $file A path to a file relative to the application's root + * @return void + */ + public static function setAppNameInFile($dir, $io, $appName, $file) + { + $config = $dir . '/config/' . $file; + $content = file_get_contents($config); + $content = str_replace('__APP_NAME__', $appName, $content, $count); + + if ($count == 0) { + $io->write('No __APP_NAME__ placeholder to replace.'); + + return; + } + + $result = file_put_contents($config, $content); + if ($result) { + $io->write('Updated __APP_NAME__ value in config/' . $file); + + return; + } + $io->write('Unable to update __APP_NAME__ value.'); + } } diff --git a/src/Controller/Admin/DashboardsController.php b/src/Controller/Admin/DashboardsController.php index 8b908bdc..72f13c3d 100644 --- a/src/Controller/Admin/DashboardsController.php +++ b/src/Controller/Admin/DashboardsController.php @@ -6,7 +6,6 @@ class DashboardsController extends AppController { - /** * Index method * diff --git a/src/Controller/Admin/ProjectsController.php b/src/Controller/Admin/ProjectsController.php index 060e9636..e9aaac36 100644 --- a/src/Controller/Admin/ProjectsController.php +++ b/src/Controller/Admin/ProjectsController.php @@ -4,6 +4,11 @@ use App\Controller\AppController; use Cake\Event\Event; +/** + * @property \App\Model\Table\ProjectsTable $Projects + * + * @method \App\Model\Entity\Project[]|\Cake\Datasource\ResultSetInterface paginate($object = null, array $settings = []) + */ class ProjectsController extends AppController { /** @@ -17,10 +22,11 @@ class ProjectsController extends AppController /** * @inheritDoc */ - public function beforeFilter(Event $event) + public function beforeFilter(\Cake\Event\EventInterface $event) { - if (in_array($this->request->action, ['edit', 'add'])) { - $this->loadModel('Muffin/Tags.Tags'); + $action = $this->getRequest()->getParam('action'); + if (in_array($action, ['edit', 'add'])) { + $this->Tags = $this->fetchTable('Muffin/Tags.Tags'); $this->set('tags', $this->Tags->find('list', ['keyField' => 'label'])); } @@ -37,7 +43,7 @@ public function index() $projects = $this->paginate($this->Projects); $this->set(compact('projects')); - $this->set('_serialize', ['projects']); + $this->viewBuilder()->setOption('serialize', ['projects']); } /** @@ -54,7 +60,7 @@ public function view($id = null) ]); $this->set('project', $project); - $this->set('_serialize', ['project']); + $this->viewBuilder()->setOption('serialize', ['project']); } /** @@ -66,12 +72,10 @@ public function view($id = null) */ public function add() { - $project = $this->Projects->newEntity(); + $project = $this->Projects->newEmptyEntity(); if ($this->request->is('post')) { - $this->normalizeScreenMonitorImages(); - - $project = $this->Projects->patchEntity($project, $this->request->data, $this->patchOptions); + $project = $this->Projects->patchEntity($project, $this->getRequest()->getData(), $this->patchOptions); if ($this->Projects->save($project)) { $this->Flash->success(__('The project has been saved.')); @@ -81,24 +85,7 @@ public function add() } } $this->set(compact('project')); - $this->set('_serialize', ['project']); - } - - /** - * Normalizes screen monitor images from multiple file input to the expected structure - * - * @return void - */ - private function normalizeScreenMonitorImages() - { - if (isset($this->request->data['screen_monitor_images']['file'])) { - $files = $this->request->data['screen_monitor_images']['file']; - $this->request->data['screen_monitor_images'] = []; - - foreach ($files as $f) { - $this->request->data['screen_monitor_images'][] = ['file' => $f]; - } - } + $this->viewBuilder()->setOption('serialize', ['project']); } /** @@ -117,11 +104,9 @@ public function edit($id = null) ]); if ($this->request->is(['patch', 'post', 'put'])) { - $this->normalizeScreenMonitorImages(); - unset($project->perspective_image); - $project = $this->Projects->patchEntity($project, $this->request->data, $this->patchOptions); + $project = $this->Projects->patchEntity($project, $this->getRequest()->getData(), $this->patchOptions); if ($this->Projects->save($project)) { $this->Flash->success(__('The project has been saved.')); @@ -132,7 +117,7 @@ public function edit($id = null) } } $this->set(compact('project')); - $this->set('_serialize', ['project']); + $this->viewBuilder()->setOption('serialize', ['project']); } /** diff --git a/src/Controller/AppController.php b/src/Controller/AppController.php index 6d96d58d..b48dc74c 100644 --- a/src/Controller/AppController.php +++ b/src/Controller/AppController.php @@ -16,7 +16,6 @@ use Cake\Controller\Controller; use Cake\Core\Configure; -use Cake\Event\Event; use Cake\I18n\I18n; /** @@ -43,22 +42,21 @@ class AppController extends Controller * e.g. `$this->loadComponent('Security');` * * @return void + * @throws \Exception */ - public function initialize() + public function initialize(): void { parent::initialize(); $this->loadComponent('RequestHandler'); $this->loadComponent('Flash'); - $this->loadComponent('Security'); - $this->loadComponent('Csrf'); - $this->loadComponent('CakeDC/Users.UsersAuth'); + $this->loadComponent('FormProtection'); } /** * @inheritDoc */ - public function beforeFilter(Event $event) + public function beforeFilter(\Cake\Event\EventInterface $event) { $this->setLocale(); $this->set('server', $this->request->host()); @@ -91,10 +89,10 @@ protected function setLocale() * @param \Cake\Event\Event $event The beforeRender event. * @return void */ - public function beforeRender(Event $event) + public function beforeRender(\Cake\Event\EventInterface $event) { $this->set([ - '_version' => Configure::read('App.cakeVersion', '4.3'), + '_version' => Configure::read('App.cakeVersion', '5.0'), ]); } } diff --git a/src/Controller/ChangelogsController.php b/src/Controller/ChangelogsController.php index f8909291..a691c2b7 100644 --- a/src/Controller/ChangelogsController.php +++ b/src/Controller/ChangelogsController.php @@ -10,16 +10,16 @@ * * @package app * @subpackage app.controllers + * @property \App\Model\Table\ChangelogsTable $Changelogs */ class ChangelogsController extends AppController { - /** * Initialize method * * @return void */ - public function initialize() + public function initialize(): void { parent::initialize(); @@ -32,10 +32,9 @@ public function initialize() * @param \Cake\Event\Event $event The event object. * @return void */ - public function beforeFilter(Event $event) + public function beforeFilter(\Cake\Event\EventInterface $event) { parent::beforeFilter($event); - $this->Auth->allow(); $this->Changelogs->repository(Configure::read('Changelog.Repository')); } diff --git a/src/Controller/ContactsController.php b/src/Controller/ContactsController.php index 0b23d5ca..abcd9ecb 100644 --- a/src/Controller/ContactsController.php +++ b/src/Controller/ContactsController.php @@ -2,8 +2,7 @@ namespace App\Controller; use Cake\Core\Configure; -use Cake\Event\Event; -use Cake\Mailer\Email; +use Cake\Mailer\Mailer; /** * @property \App\Model\Table\ContactsTable $Contacts @@ -13,10 +12,8 @@ class ContactsController extends AppController /** * @inheritDoc */ - public function beforeFilter(Event $event) + public function beforeFilter(\Cake\Event\EventInterface $event) { - $this->Auth->allow(); - return parent::beforeFilter($event); } @@ -27,7 +24,7 @@ public function rapid() { $this->autoRender = false; - $contact = $this->Contacts->createRapidContact($this->request->data); + $contact = $this->Contacts->createRapidContact($this->getRequest()->getData()); if ($this->Contacts->save($contact)) { $this->sendEmail($contact); @@ -35,7 +32,7 @@ public function rapid() return; } - $this->response->statusCode(422); + $this->response = $this->response->withStatus(422); } /** @@ -45,7 +42,7 @@ public function roadTrip() { $this->autoRender = false; - $contact = $this->Contacts->createRapidContact(['type' => 'road_trip', 'subject' => 'road_trip'] + $this->request->data); + $contact = $this->Contacts->createRapidContact(['type' => 'road_trip', 'subject' => 'road_trip'] + $this->getRequest()->getData()); if ($this->Contacts->save($contact)) { $this->sendEmail($contact); @@ -57,12 +54,12 @@ public function roadTrip() } /** - * @param App\Model\Entity\Contact $contact contact + * @param \App\Model\Entity\Contact $contact contact * @return void */ private function sendEmail($contact) { - $email = new Email('default'); + $email = new Mailer('default'); $email ->setEmailFormat('text') @@ -70,6 +67,6 @@ private function sendEmail($contact) ->setFrom([Configure::read('Site.contact.email') => 'CakeDC Website']) ->setTo(Configure::read('Site.contact.email')) ->setSubject($contact->subject) - ->send($contact->body); + ->deliver($contact->body); } } diff --git a/src/Controller/PagesController.php b/src/Controller/PagesController.php index 18c1da92..e20a85f0 100644 --- a/src/Controller/PagesController.php +++ b/src/Controller/PagesController.php @@ -1,4 +1,6 @@ Auth->allow(); - $this->response->withCache('-1 minute', '+1 days'); + $this->response = $this->response->withCache('-1 minute', '+1 days'); return parent::beforeFilter($event); } @@ -42,18 +44,23 @@ public function beforeFilter(Event $event) /** * Displays a view * - * @return \Cake\Http\Response|null|void - * @throws \Cake\Network\Exception\NotFoundException When the view file could not - * be found or \Cake\View\Exception\MissingTemplateException in debug mode. + * @param string ...$path Path segments. + * @return \Cake\Http\Response|null + * @throws \Cake\Http\Exception\ForbiddenException When a directory traversal attempt. + * @throws \Cake\View\Exception\MissingTemplateException When the view file could not + * be found and in debug mode. + * @throws \Cake\Http\Exception\NotFoundException When the view file could not + * be found and not in debug mode. + * @throws \Cake\View\Exception\MissingTemplateException In debug mode. */ - public function display() + public function display(string ...$path): ?Response { - $path = func_get_args(); - - $count = count($path); - if (!$count) { + if (!$path) { return $this->redirect('/'); } + if (in_array('..', $path, true) || in_array('.', $path, true)) { + throw new ForbiddenException(); + } $page = $subpage = null; if (!empty($path[0])) { @@ -65,10 +72,10 @@ public function display() $this->set(compact('page', 'subpage')); try { - $this->render(implode('/', $path)); - } catch (MissingTemplateException $e) { + return $this->render(implode('/', $path)); + } catch (MissingTemplateException $exception) { if (Configure::read('debug')) { - throw $e; + throw $exception; } throw new NotFoundException(); } diff --git a/src/Controller/ProjectsController.php b/src/Controller/ProjectsController.php index 154f690d..71c8e47f 100644 --- a/src/Controller/ProjectsController.php +++ b/src/Controller/ProjectsController.php @@ -6,17 +6,15 @@ /** * Projects Controller * - * @property \Showcase\Model\Table\ProjectsTable $Projects + * @property \App\Model\Table\ProjectsTable $Projects */ class ProjectsController extends AppController { /** * @inheritDoc */ - public function beforeFilter(Event $event) + public function beforeFilter(\Cake\Event\EventInterface $event) { - $this->Auth->allow(); - return parent::beforeFilter($event); } diff --git a/src/Controller/WritersController.php b/src/Controller/WritersController.php index 1ad5143f..8c7de17d 100644 --- a/src/Controller/WritersController.php +++ b/src/Controller/WritersController.php @@ -3,7 +3,7 @@ use Cake\Core\Configure; use Cake\Event\Event; -use Cake\Mailer\Email; +use Cake\Mailer\Mailer; use ReCaptcha\ReCaptcha; /** @@ -16,10 +16,8 @@ class WritersController extends AppController /** * @inheritDoc */ - public function beforeFilter(Event $event) + public function beforeFilter(\Cake\Event\EventInterface $event) { - $this->Auth->allow(); - return parent::beforeFilter($event); } @@ -30,25 +28,27 @@ public function beforeFilter(Event $event) */ public function index() { - $writer = $this->Writers->newEntity(); + $writer = $this->Writers->newEmptyEntity(); if (Configure::read('Site.writers_form_enabled') && $this->request->is('post')) { $recaptcha = new ReCaptcha(Configure::read('ReCaptcha.secret_key')); - $resp = $recaptcha->verify($this->request->data('g-recaptcha-response'), $this->request->clientIp()); + $resp = $recaptcha->verify($this->getRequest()->getData('g-recaptcha-response'), $this->request->clientIp()); if ($resp->isSuccess()) { - $writer = $this->Writers->newEntity($this->request->data); + $writer = $this->Writers->newEntity($this->getRequest()->getData()); $writer->client_ip = $this->request->clientIp(); if ($this->Writers->save($writer)) { - $email = new Email('default'); + $email = new Mailer('default'); $email ->setEmailFormat('text') ->setReplyTo($writer->email, $writer->name) ->setFrom([Configure::read('Site.contact.marketing_email') => __('CakePHP Website')]) ->setTo(Configure::read('Site.contact.marketing_email')) ->setSubject(__('Writers Form')) - ->set(compact('writer')) - ->setTemplate('writers_form') - ->send(); + ->setViewVars(compact('writer')) + ->viewBuilder() + ->setTemplate('writers_form'); + + $email->deliver(); $this->Flash->success(__('Thanks for your submission! We will review and get back to you shortly!')); diff --git a/src/File/Transformer/AbstractVersion.php b/src/File/Transformer/AbstractVersion.php index a8ac952b..c3fe1ff6 100644 --- a/src/File/Transformer/AbstractVersion.php +++ b/src/File/Transformer/AbstractVersion.php @@ -1,11 +1,24 @@ getError() !== UPLOAD_ERR_OK) { + throw new \InvalidArgumentException('Invalid uploaded file'); } - $this->data = $data; } @@ -57,14 +69,14 @@ public function generate() $imagine = new Imagine($mockFilename); $mock = $imagine->open($mockFilename); - $uploaded = $imagine->open($this->data['tmp_name']); + $uploaded = $imagine->open($this->data->getStream()->getMetadata('uri')); $mock->paste($uploaded->resize($this->getResizeBox()), $this->getPoint()); - $dest = $this->getDestFilename($this->data['tmp_name']); + $dest = $this->getDestFilename($this->data->getStream()->getMetadata('uri')); $mock->save($dest); - return [$dest => $this->getDestFilename($this->data['name'])]; + return [$dest => $this->getDestFilename($this->data->getClientFilename())]; } /** @@ -92,8 +104,9 @@ private function extractSuffix() private function getDestFilename($name) { $name = explode('.', $name); + $type = $name[1]; $name = $name[0]; - return $name . $this->extractSuffix() . self::EXT; + return $name . $this->extractSuffix() . '.' . $type; } } diff --git a/src/File/Transformer/GenerateDifferentVersionsTransformer.php b/src/File/Transformer/GenerateDifferentVersionsTransformer.php index 8ce3a52a..7e4f3ede 100644 --- a/src/File/Transformer/GenerateDifferentVersionsTransformer.php +++ b/src/File/Transformer/GenerateDifferentVersionsTransformer.php @@ -6,17 +6,15 @@ class GenerateDifferentVersionsTransformer extends DefaultTransformer { /** - * @return array + * @inheritDoc */ - public function transform() + public function transform(string $filename): array { - $result = parent::transform(); - $slider = new SliderVersion($this->data); $highlight = new HighlightVersion($this->data); $small = new SmallVersion($this->data); - $result = parent::transform(); + $result = parent::transform($filename); foreach ([$slider, $highlight, $small] as $version) { $result = array_merge($result, $version->generate()); diff --git a/src/Model/Entity/Contact.php b/src/Model/Entity/Contact.php index 7afb6a20..2702645a 100644 --- a/src/Model/Entity/Contact.php +++ b/src/Model/Entity/Contact.php @@ -11,12 +11,11 @@ * @property string $name * @property string $email * @property string $body - * @property \Cake\I18n\Time $created - * @property \Cake\I18n\Time $modified + * @property \Cake\I18n\FrozenTime|null $created + * @property \Cake\I18n\FrozenTime|null $modified */ class Contact extends Entity { - /** * Fields that can be mass assigned using newEntity() or patchEntity(). * diff --git a/src/Model/Entity/PerspectiveImage.php b/src/Model/Entity/PerspectiveImage.php index 80dacc84..c160a8e0 100644 --- a/src/Model/Entity/PerspectiveImage.php +++ b/src/Model/Entity/PerspectiveImage.php @@ -1,6 +1,18 @@ integer('id') - ->allowEmpty('id', 'create'); + ->allowEmptyString('id', 'create'); $validator ->requirePresence('subject', 'create') - ->notEmpty('subject'); + ->notEmptyString('subject'); $validator ->requirePresence('name', 'create') - ->notEmpty('name'); + ->notEmptyString('name'); $validator ->email('email') ->requirePresence('email', 'create') - ->notEmpty('email'); + ->notEmptyString('email'); $validator ->requirePresence('body', 'create') - ->notEmpty('body'); + ->notEmptyString('body'); return $validator; } @@ -70,7 +84,7 @@ public function validationDefault(Validator $validator) * @param \Cake\ORM\RulesChecker $rules The rules object to be modified. * @return \Cake\ORM\RulesChecker */ - public function buildRules(RulesChecker $rules) + public function buildRules(RulesChecker $rules): RulesChecker { return $rules; } @@ -83,7 +97,7 @@ public function buildRules(RulesChecker $rules) */ public function createRapidContact($data) { - $contact = $this->newEntity(); + $contact = $this->newEmptyEntity(); $contact->set('name', $data['name']); $contact->set('email', $data['email']); $contact->set('subject', $this->extractRapidSubject($data)); diff --git a/src/Model/Table/PerspectiveImagesTable.php b/src/Model/Table/PerspectiveImagesTable.php index 84d61407..28a8af7e 100644 --- a/src/Model/Table/PerspectiveImagesTable.php +++ b/src/Model/Table/PerspectiveImagesTable.php @@ -1,6 +1,25 @@ integer('id') - ->allowEmpty('id', 'create'); + ->allowEmptyString('id', 'create'); $validator ->requirePresence('title') - ->notEmpty('title'); + ->notEmptyString('title'); $validator ->requirePresence('description') - ->notEmpty('title'); + ->notEmptyString('title'); $validator ->requirePresence('website', 'create') - ->notEmpty('website') + ->notEmptyString('website') ->add('website', 'valid-url', ['rule' => 'url']); $validator ->boolean('is_highlighted') ->requirePresence('is_highlighted', 'create') - ->notEmpty('is_highlighted'); + ->notEmptyString('is_highlighted'); $validator ->boolean('is_showcase') ->requirePresence('is_showcase', 'create') - ->notEmpty('is_showcase'); + ->notEmptyString('is_showcase'); return $validator; } @@ -90,29 +111,29 @@ public function validationDefault(Validator $validator) * beforeSave * * @param Event $event event - * @param Entity $entity entity + * @param \App\Model\Entity\Project $entity entity * @param array $options options * @return void */ public function beforeSave(Event $event, Entity $entity, $options) { - if (empty($entity->perspective_image->file['name'])) { + if (empty($entity->perspective_image->file->getClientFilename())) { unset($entity->perspective_image); } - if (empty($entity->screen_monitor_images[0]->file['name'])) { + if (empty($entity->screen_monitor_images[0]->file->getClientFilename())) { unset($entity->screen_monitor_images); } if (!$entity->isNew()) { if ($entity->perspective_image) { $this->PerspectiveImages->deleteAll([ - 'entity_id' => $entity->id, 'model' => $this->PerspectiveImages->alias(), + 'entity_id' => $entity->id, 'model' => $this->PerspectiveImages->getAlias(), ]); } if ($entity->screen_monitor_images) { $this->ScreenMonitorImages->deleteAll([ - 'entity_id' => $entity->id, 'model' => $this->ScreenMonitorImages->alias(), + 'entity_id' => $entity->id, 'model' => $this->ScreenMonitorImages->getAlias(), ]); } } @@ -183,4 +204,24 @@ public function findShowcase($query, $options) ->find('view') ->where(['is_showcase' => true]); } + + /** + * Before marshal method + * + * @param \Cake\Event\Event $event Event + * @param \ArrayObject $data Data + * @param \ArrayObject $options Options + * @return void + */ + public function beforeMarshal(Event $event, \ArrayObject $data, \ArrayObject $options): void + { + if (isset($data['screen_monitor_images']['file'])) { + $files = $data['screen_monitor_images']['file']; + $data['screen_monitor_images'] = []; + + foreach ($files as $f) { + $data['screen_monitor_images'][] = ['file' => $f]; + } + } + } } diff --git a/src/Model/Table/ScreenMonitorImagesTable.php b/src/Model/Table/ScreenMonitorImagesTable.php index 690a15d4..9653193a 100644 --- a/src/Model/Table/ScreenMonitorImagesTable.php +++ b/src/Model/Table/ScreenMonitorImagesTable.php @@ -1,6 +1,25 @@ integer('id') - ->allowEmpty('id', 'create'); + ->allowEmptyString('id', 'create'); $validator ->requirePresence('file', 'create') - ->notEmpty('file'); + ->notEmptyString('file'); $validator ->requirePresence('dir', 'create') - ->notEmpty('dir'); + ->notEmptyString('dir'); $validator ->requirePresence('size', 'create') - ->notEmpty('size'); + ->notEmptyString('size'); $validator ->requirePresence('type', 'create') - ->notEmpty('type'); + ->notEmptyString('type'); return $validator; } @@ -67,12 +82,12 @@ public function validationDefault(Validator $validator) * beforeSave * * @param \Cake\Event\Event $event an event instance - * @param \ArrayObject $entity data being marshalled + * @param \App\Model\Entity\UploadedFile $entity data being marshalled * @param \ArrayObject $options options for the current event * @return void */ public function beforeSave(Event $event, Entity $entity, ArrayObject $options) { - $entity->set('model', $this->alias()); + $entity->set('model', $this->getAlias()); } } diff --git a/src/Model/Table/WritersTable.php b/src/Model/Table/WritersTable.php index 44555f79..a3cec473 100644 --- a/src/Model/Table/WritersTable.php +++ b/src/Model/Table/WritersTable.php @@ -10,25 +10,30 @@ * Writers Model * * @method \App\Model\Entity\Writer get($primaryKey, $options = []) - * @method \App\Model\Entity\Writer newEntity($data = null, array $options = []) + * @method \App\Model\Entity\Writer newEntity(array $data, array $options = []) * @method \App\Model\Entity\Writer[] newEntities(array $data, array $options = []) - * @method \App\Model\Entity\Writer|bool save(\Cake\Datasource\EntityInterface $entity, $options = []) + * @method \App\Model\Entity\Writer|false save(\Cake\Datasource\EntityInterface $entity, $options = []) * @method \App\Model\Entity\Writer patchEntity(\Cake\Datasource\EntityInterface $entity, array $data, array $options = []) - * @method \App\Model\Entity\Writer[] patchEntities($entities, array $data, array $options = []) - * @method \App\Model\Entity\Writer findOrCreate($search, callable $callback = null) + * @method \App\Model\Entity\Writer[] patchEntities(iterable $entities, array $data, array $options = []) + * @method \App\Model\Entity\Writer findOrCreate($search, ?callable $callback = null, $options = []) * * @mixin \Cake\ORM\Behavior\TimestampBehavior + * @method \App\Model\Entity\Writer newEmptyEntity() + * @method \App\Model\Entity\Writer saveOrFail(\Cake\Datasource\EntityInterface $entity, $options = []) + * @method \App\Model\Entity\Writer[]|\Cake\Datasource\ResultSetInterface|false saveMany(iterable $entities, $options = []) + * @method \App\Model\Entity\Writer[]|\Cake\Datasource\ResultSetInterface saveManyOrFail(iterable $entities, $options = []) + * @method \App\Model\Entity\Writer[]|\Cake\Datasource\ResultSetInterface|false deleteMany(iterable $entities, $options = []) + * @method \App\Model\Entity\Writer[]|\Cake\Datasource\ResultSetInterface deleteManyOrFail(iterable $entities, $options = []) */ class WritersTable extends Table { - /** * Initialize method * * @param array $config The configuration for the Table. * @return void */ - public function initialize(array $config) + public function initialize(array $config): void { parent::initialize($config); @@ -45,35 +50,35 @@ public function initialize(array $config) * @param \Cake\Validation\Validator $validator Validator instance. * @return \Cake\Validation\Validator */ - public function validationDefault(Validator $validator) + public function validationDefault(Validator $validator): Validator { $validator ->integer('id') - ->allowEmpty('id', 'create'); + ->allowEmptyString('id', 'create'); $validator ->requirePresence('name', 'create') - ->notEmpty('name'); + ->notEmptyString('name'); $validator ->email('email') ->requirePresence('email', 'create') - ->notEmpty('email'); + ->notEmptyString('email'); $validator - ->allowEmpty('username'); + ->allowEmptyString('username'); $validator ->requirePresence('article_titles', 'create') - ->notEmpty('article_titles'); + ->notEmptyString('article_titles'); $validator ->requirePresence('writing_sample', 'create') - ->notEmpty('writing_sample'); + ->notEmptyString('writing_sample'); $validator ->requirePresence('extra_information', 'create') - ->allowEmpty('extra_information'); + ->allowEmptyString('extra_information'); return $validator; } diff --git a/src/Shell/ConsoleShell.php b/src/Shell/ConsoleShell.php deleted file mode 100644 index 1d831950..00000000 --- a/src/Shell/ConsoleShell.php +++ /dev/null @@ -1,81 +0,0 @@ -err('Unable to load Psy\Shell.'); - $this->err(''); - $this->err('Make sure you have installed psysh as a dependency,'); - $this->err('and that Psy\Shell is registered in your autoloader.'); - $this->err(''); - $this->err('If you are using composer run'); - $this->err(''); - $this->err('$ php composer.phar require --dev psy/psysh'); - $this->err(''); - - return self::CODE_ERROR; - } - - $this->out("You can exit with `CTRL-C` or `exit`"); - $this->out(''); - - Log::drop('debug'); - Log::drop('error'); - $this->_io->setLoggers(false); - restore_error_handler(); - restore_exception_handler(); - - $psy = new PsyShell(); - $psy->run(); - } - - /** - * Display help for this console. - * - * @return \Cake\Console\ConsoleOptionParser - */ - public function getOptionParser() - { - $parser = new ConsoleOptionParser('console'); - $parser->description( - 'This shell provides a REPL that you can use to interact ' . - 'with your application in an interactive fashion. You can use ' . - 'it to run adhoc queries with your models, or experiment ' . - 'and explore the features of CakePHP and your application.' . - "\n\n" . - 'You will need to have psysh installed for this Shell to work.' - ); - - return $parser; - } -} diff --git a/src/Template/Element/Flash/default.ctp b/src/Template/Element/Flash/default.ctp deleted file mode 100644 index 8162cc95..00000000 --- a/src/Template/Element/Flash/default.ctp +++ /dev/null @@ -1 +0,0 @@ -
diff --git a/src/Template/Element/Layout/default/footer/menu.ctp b/src/Template/Element/Layout/default/footer/menu.ctp deleted file mode 100644 index e84e93a8..00000000 --- a/src/Template/Element/Layout/default/footer/menu.ctp +++ /dev/null @@ -1,15 +0,0 @@ -
- element('Layout/default/footer/menu/column_one') ?> -
- -
- element('Layout/default/footer/menu/column_two') ?> -
- -
- element('Layout/default/footer/menu/column_three') ?> -
- -
- element('Layout/default/footer/menu/column_four') ?> -
diff --git a/src/Template/Element/home/share.ctp b/src/Template/Element/home/share.ctp deleted file mode 100644 index d9396997..00000000 --- a/src/Template/Element/home/share.ctp +++ /dev/null @@ -1,21 +0,0 @@ - diff --git a/src/Template/Element/home/whats_new.ctp b/src/Template/Element/home/whats_new.ctp deleted file mode 100644 index 26dfa48a..00000000 --- a/src/Template/Element/home/whats_new.ctp +++ /dev/null @@ -1,45 +0,0 @@ - -
-
-
- Html->image('whats_new.svg', ['alt' => 'Whats new']) ?> -
-
-
-

What's new in version 4.4

-

The migration guide has a complete list of what's new in 4.4.0. We recommend you give that page a read when upgrading. A few highlights from 4.4.0 are: -

    -
  • A new Error and Exception handling framework that is easier to extend and requires less application code to operate.
  • -
  • Controller::viewClasses() was added. This method enables controllers to take control of what content-types they can respond as.
  • -
  • The QueryExpression::case() builder now supports inferring the type from expressions passed to then() and else() that implement \Cake\Database\TypedResultInterface.
  • -
  • HttpsEnforcerMiddleware now has an hsts option that allows you to configure the Strict-Transport-Security header.
  • -
  • bin/cake routes now highlights collisions in route templates.
  • -
  • The RedisEngine now supports fast deletes with deleteAsync().
  • -
-

- While CakePHP 4 contains a number of breaking changes we have prepared an exhaustive migration guide - covering all the deprecated and removed features as well as highlighting the shiny new features. -

- -
- -
-

Business Solutions

-

CakeDC, the commercial entity behind the CakePHP framework, was established by Larry Masters, the - founder of CakePHP. CakeDC offers CakePHP development, consultancy, CakePHP training and code review Services. - From startups and social networks, to e-commerce and enterprise level applications, CakeDC provides - the highest quality CakePHP development available. -

- -
-
-
-
diff --git a/src/View/AjaxView.php b/src/View/AjaxView.php index 649d7900..dd9d7d98 100644 --- a/src/View/AjaxView.php +++ b/src/View/AjaxView.php @@ -1,4 +1,6 @@ response->type('ajax'); + $this->response = $this->response->withType('ajax'); } } diff --git a/src/View/AppView.php b/src/View/AppView.php index 4890b096..6596c45b 100644 --- a/src/View/AppView.php +++ b/src/View/AppView.php @@ -1,4 +1,6 @@ loadHelper('AssetCompress.AssetCompress'); $this->loadHelper('Menu'); diff --git a/src/View/Cell/HomePageHighlightCell.php b/src/View/Cell/HomePageHighlightCell.php index 9f04546f..62d68bc4 100644 --- a/src/View/Cell/HomePageHighlightCell.php +++ b/src/View/Cell/HomePageHighlightCell.php @@ -25,7 +25,7 @@ class HomePageHighlightCell extends Cell */ public function display() { - $highlights = $this->loadModel('Projects')->getHighlights(); + $highlights = $this->fetchTable('Projects')->getHighlights(); $this->set('highlights', $highlights); } } diff --git a/src/View/Helper/AppHelper.php b/src/View/Helper/AppHelper.php index 9da87c91..86ddc22e 100644 --- a/src/View/Helper/AppHelper.php +++ b/src/View/Helper/AppHelper.php @@ -3,20 +3,22 @@ use Cake\Cache\Cache; use Cake\Core\Configure; -use Cake\I18n\Time; +use Cake\I18n\FrozenTime; use Cake\Utility\Hash; use Cake\View\Helper; use DateTime; +/** + * @property \App\View\Helper\HtmlHelper $Html + */ class AppHelper extends Helper { - /** * Helpers * * @var array */ - public $helpers = [ + protected $helpers = [ 'Html', ]; @@ -82,7 +84,7 @@ public function menuItems($items) */ public function active($controller) { - return strtolower($this->request->controller) == strtolower($controller) ? 'active' : ''; + return strtolower($this->getView()->getRequest()->getParam('controller')) == strtolower($controller) ? 'active' : ''; } /** @@ -94,7 +96,7 @@ public function isCakeFestDone() { $endDate = Configure::read('Site.cakefest.end_date'); - return (new Time($endDate)) < (new Time()); + return (new FrozenTime($endDate)) < (new FrozenTime()); } /** @@ -106,7 +108,7 @@ public function isCakeFestInFuture() { $startDate = Configure::read('Site.cakefest.start_date'); - return (new Time($startDate)) > (new Time()); + return (new FrozenTime($startDate)) > (new FrozenTime()); } /** @@ -118,13 +120,14 @@ public function cakeFestDaysLeft() { $startDate = Configure::read('Site.cakefest.start_date'); - return (new Time($startDate))->diff(new Time())->days; + return (new FrozenTime($startDate))->diff(new FrozenTime())->days; } /** * CakeFestDates * * @return string + * @throws \Exception */ public function cakeFestDates() { diff --git a/src/View/Helper/HtmlHelper.php b/src/View/Helper/HtmlHelper.php index 176e1339..329cbe08 100644 --- a/src/View/Helper/HtmlHelper.php +++ b/src/View/Helper/HtmlHelper.php @@ -7,6 +7,8 @@ /** * Html helper + * + * @property \Cake\View\Helper\UrlHelper $Url */ class HtmlHelper extends BaseHtmlHelper { @@ -18,7 +20,7 @@ class HtmlHelper extends BaseHtmlHelper * @param array $options options * @return string */ - public function link($title, $url = null, array $options = []) + public function link($title, $url = null, array $options = []): string { if (Hash::get($options, 'target') === '_blank' && !Hash::get($options, 'rel')) { $options['rel'] = 'noopener noreferrer'; diff --git a/src/View/Helper/MeetupsHelper.php b/src/View/Helper/MeetupsHelper.php index c81ad79d..44276e23 100644 --- a/src/View/Helper/MeetupsHelper.php +++ b/src/View/Helper/MeetupsHelper.php @@ -3,13 +3,16 @@ namespace App\View\Helper; use Cake\Core\Configure; -use Cake\I18n\Time; +use Cake\I18n\FrozenTime; use Cake\Utility\Hash; use Cake\View\Helper; +/** + * @property \App\View\Helper\HtmlHelper $Html + */ class MeetupsHelper extends Helper { - public $helpers = ['Html']; + protected $helpers = ['Html']; /** * @return string @@ -19,7 +22,7 @@ public function meetups(): string $out = ''; $meetups = Configure::read('Site.meetups'); foreach ($meetups as $meetup) { - $when = Time::parse($meetup['when']); + $when = FrozenTime::parse($meetup['when']); if ($when->isPast() && !$when->wasWithinLast('1 day')) { continue; } diff --git a/src/View/Helper/MenuHelper.php b/src/View/Helper/MenuHelper.php index 84e7fabf..ad084d3b 100644 --- a/src/View/Helper/MenuHelper.php +++ b/src/View/Helper/MenuHelper.php @@ -6,10 +6,12 @@ /** * Menu Helper + * + * @property \App\View\Helper\HtmlHelper $Html */ class MenuHelper extends Helper { - public $helpers = ['Html']; + protected $helpers = ['Html']; /** * List of options related to community menu option diff --git a/src/View/Helper/MetaHelper.php b/src/View/Helper/MetaHelper.php index 21866878..70bd0d0f 100644 --- a/src/View/Helper/MetaHelper.php +++ b/src/View/Helper/MetaHelper.php @@ -8,7 +8,7 @@ /** * Class MetaHelper * - * @property \Cake\View\Helper\HtmlHelper $Html + * @property \App\View\Helper\HtmlHelper $Html * @property \Cake\View\Helper\UrlHelper $Url * * @package App\View\Helper @@ -18,7 +18,7 @@ class MetaHelper extends Helper /** * @var array */ - public $helpers = ['Html', 'Url']; + protected $helpers = ['Html', 'Url']; /** * Set twitter cards and facebook specific tags diff --git a/src/View/Helper/ShowcaseHelper.php b/src/View/Helper/ShowcaseHelper.php index a141dc43..1b044512 100644 --- a/src/View/Helper/ShowcaseHelper.php +++ b/src/View/Helper/ShowcaseHelper.php @@ -3,9 +3,12 @@ use Cake\View\Helper; +/** + * @property \App\View\Helper\HtmlHelper $Html + */ class ShowcaseHelper extends Helper { - public $helpers = ['Html']; + protected $helpers = ['Html']; /** * Output a boolean value using bootstrap label diff --git a/src/Template/Admin/Dashboards/index.ctp b/templates/Admin/Dashboards/index.php similarity index 88% rename from src/Template/Admin/Dashboards/index.ctp rename to templates/Admin/Dashboards/index.php index 60651cf2..963ae724 100644 --- a/src/Template/Admin/Dashboards/index.ctp +++ b/templates/Admin/Dashboards/index.php @@ -1,3 +1,8 @@ +
diff --git a/src/Template/Admin/Projects/add.ctp b/templates/Admin/Projects/add.php similarity index 88% rename from src/Template/Admin/Projects/add.ctp rename to templates/Admin/Projects/add.php index 763fad8f..3045012e 100644 --- a/src/Template/Admin/Projects/add.ctp +++ b/templates/Admin/Projects/add.php @@ -1,3 +1,8 @@ +
diff --git a/src/Template/Admin/Projects/edit.ctp b/templates/Admin/Projects/edit.php similarity index 88% rename from src/Template/Admin/Projects/edit.ctp rename to templates/Admin/Projects/edit.php index 50a4ec13..8095e524 100644 --- a/src/Template/Admin/Projects/edit.ctp +++ b/templates/Admin/Projects/edit.php @@ -1,3 +1,9 @@ +
diff --git a/src/Template/Admin/Projects/index.ctp b/templates/Admin/Projects/index.php similarity index 94% rename from src/Template/Admin/Projects/index.ctp rename to templates/Admin/Projects/index.php index 104d459d..4218ed13 100644 --- a/src/Template/Admin/Projects/index.ctp +++ b/templates/Admin/Projects/index.php @@ -1,3 +1,9 @@ +
diff --git a/src/Template/Admin/Projects/view.ctp b/templates/Admin/Projects/view.php similarity index 95% rename from src/Template/Admin/Projects/view.ctp rename to templates/Admin/Projects/view.php index 666cfe92..01ee3848 100644 --- a/src/Template/Admin/Projects/view.ctp +++ b/templates/Admin/Projects/view.php @@ -1,3 +1,9 @@ +
diff --git a/src/Template/Changelogs/index.ctp b/templates/Changelogs/index.php similarity index 98% rename from src/Template/Changelogs/index.ctp rename to templates/Changelogs/index.php index 5a3c9e1d..c270be87 100644 --- a/src/Template/Changelogs/index.ctp +++ b/templates/Changelogs/index.php @@ -1,4 +1,7 @@
@@ -10,7 +15,7 @@

- element('Layout/default/links/main') ?> + element('layout/default/links/main') ?>
diff --git a/src/Template/Common/secondary_sidebar.ctp b/templates/Common/secondary_sidebar.php similarity index 83% rename from src/Template/Common/secondary_sidebar.ctp rename to templates/Common/secondary_sidebar.php index e0602a01..8209c44d 100644 --- a/src/Template/Common/secondary_sidebar.ctp +++ b/templates/Common/secondary_sidebar.php @@ -1,5 +1,8 @@ extend('/Common/secondary'); +/** + * @var \App\View\AppView $this + */ +$this->extend('/common/secondary'); ?>
diff --git a/src/Template/Error/error400.ctp b/templates/Error/error400.php similarity index 94% rename from src/Template/Error/error400.ctp rename to templates/Error/error400.php index 9f887cf5..e2f2504f 100644 --- a/src/Template/Error/error400.ctp +++ b/templates/Error/error400.php @@ -1,4 +1,9 @@ assign('title', $title); diff --git a/src/Template/Pages/get_involved.ctp b/templates/Pages/get_involved.php similarity index 95% rename from src/Template/Pages/get_involved.ctp rename to templates/Pages/get_involved.php index 55ec07f4..c5f5ec6f 100644 --- a/src/Template/Pages/get_involved.ctp +++ b/templates/Pages/get_involved.php @@ -1,3 +1,8 @@ +
diff --git a/src/Template/Pages/home.ctp b/templates/Pages/home.php similarity index 85% rename from src/Template/Pages/home.ctp rename to templates/Pages/home.php index 56034a2c..a94e8323 100644 --- a/src/Template/Pages/home.ctp +++ b/templates/Pages/home.php @@ -1,4 +1,8 @@ element('home/whats_new')?> +element('home/business')?> + element('home/summary')?> element('home/share') ?> -element('home/support') ?> +element('home/support') ?> element('home/showcase')?> diff --git a/src/Template/Pages/meetups.ctp b/templates/Pages/meetups.php similarity index 96% rename from src/Template/Pages/meetups.ctp rename to templates/Pages/meetups.php index 53ce5683..fab11914 100644 --- a/src/Template/Pages/meetups.ctp +++ b/templates/Pages/meetups.php @@ -1,7 +1,9 @@ assign('title', $title); diff --git a/src/Template/Pages/rebranding.ctp b/templates/Pages/rebranding.php similarity index 96% rename from src/Template/Pages/rebranding.ctp rename to templates/Pages/rebranding.php index 0e973a37..f765b1ae 100644 --- a/src/Template/Pages/rebranding.ctp +++ b/templates/Pages/rebranding.php @@ -1,4 +1,7 @@ assign('title', $title); diff --git a/src/Template/Pages/road_trip.ctp b/templates/Pages/road_trip.php similarity index 100% rename from src/Template/Pages/road_trip.ctp rename to templates/Pages/road_trip.php diff --git a/src/Template/Pages/team.ctp b/templates/Pages/team.php similarity index 99% rename from src/Template/Pages/team.ctp rename to templates/Pages/team.php index d7797848..ed6e2ce7 100644 --- a/src/Template/Pages/team.ctp +++ b/templates/Pages/team.php @@ -1,4 +1,7 @@
diff --git a/src/Template/Pages/trademark.ctp b/templates/Pages/trademark.php similarity index 97% rename from src/Template/Pages/trademark.ctp rename to templates/Pages/trademark.php index eea52b27..c8f0dadc 100644 --- a/src/Template/Pages/trademark.ctp +++ b/templates/Pages/trademark.php @@ -1,6 +1,7 @@
element('Showcase/title') ?> diff --git a/src/Template/Projects/view.ctp b/templates/Projects/view.php similarity index 100% rename from src/Template/Projects/view.ctp rename to templates/Projects/view.php diff --git a/src/Template/Writers/index.ctp b/templates/Writers/index.php similarity index 100% rename from src/Template/Writers/index.ctp rename to templates/Writers/index.php diff --git a/src/Template/Cell/HomePageHighlight/display.ctp b/templates/cell/HomePageHighlight/display.php similarity index 68% rename from src/Template/Cell/HomePageHighlight/display.ctp rename to templates/cell/HomePageHighlight/display.php index 8ac613ee..89eee9f8 100644 --- a/src/Template/Cell/HomePageHighlight/display.ctp +++ b/templates/cell/HomePageHighlight/display.php @@ -1,3 +1,9 @@ + element('Showcase/highlight_carousel', [ 'givenHighlight' => $highlights, diff --git a/src/Template/Element/Projects/form.ctp b/templates/element/Projects/form.php similarity index 94% rename from src/Template/Element/Projects/form.ctp rename to templates/element/Projects/form.php index 84c49520..ca8e6caa 100644 --- a/src/Template/Element/Projects/form.ctp +++ b/templates/element/Projects/form.php @@ -1,5 +1,10 @@ -Form->unlockField('screen_monitor_images.file') ?> -Form->unlockField('perspective_image.file') ?> + + Form->create($project, ['type' => 'file']) ?> Form->hidden('id') ?> @@ -21,6 +26,7 @@ echo $this->Form->control('technologies', ['class' => 'form-control']); echo $this->Form->control('is_highlighted'); echo $this->Form->control('is_showcase'); + $this->Form->unlockField('perspective_image.file'); echo $this->Form->control('perspective_image.file', [ 'type' => 'file', 'label' => __('Perspective Image'), @@ -39,6 +45,7 @@
Form->unlockField('screen_monitor_images.file'); echo $this->Form->control('screen_monitor_images.file[]', [ 'type' => 'file', 'label' => __('Screen Monitor Images'), diff --git a/src/Template/Element/Showcase/cases.ctp b/templates/element/Showcase/cases.php similarity index 95% rename from src/Template/Element/Showcase/cases.ctp rename to templates/element/Showcase/cases.php index 2ffc0e40..56f35de6 100644 --- a/src/Template/Element/Showcase/cases.ctp +++ b/templates/element/Showcase/cases.php @@ -1,3 +1,9 @@ +
diff --git a/src/Template/Element/Showcase/cases/case.ctp b/templates/element/Showcase/cases/case.php similarity index 83% rename from src/Template/Element/Showcase/cases/case.ctp rename to templates/element/Showcase/cases/case.php index 273365bd..f05111e0 100644 --- a/src/Template/Element/Showcase/cases/case.ctp +++ b/templates/element/Showcase/cases/case.php @@ -1,3 +1,10 @@ + website): ?>
diff --git a/src/Template/Element/Showcase/first_highlight.ctp b/templates/element/Showcase/first_highlight.php similarity index 86% rename from src/Template/Element/Showcase/first_highlight.ctp rename to templates/element/Showcase/first_highlight.php index e41fb022..eb63ddcd 100644 --- a/src/Template/Element/Showcase/first_highlight.ctp +++ b/templates/element/Showcase/first_highlight.php @@ -1,3 +1,9 @@ +
element('Showcase/highlight_carousel', ['givenHighlight' => $highlights[0]]) ?> diff --git a/src/Template/Element/Showcase/highlight.ctp b/templates/element/Showcase/highlight.php similarity index 85% rename from src/Template/Element/Showcase/highlight.ctp rename to templates/element/Showcase/highlight.php index 35eedb08..be6b66d7 100644 --- a/src/Template/Element/Showcase/highlight.ctp +++ b/templates/element/Showcase/highlight.php @@ -1,3 +1,11 @@ +
diff --git a/src/Template/Element/Showcase/highlight_carousel.ctp b/templates/element/Showcase/highlight_carousel.php similarity index 86% rename from src/Template/Element/Showcase/highlight_carousel.ctp rename to templates/element/Showcase/highlight_carousel.php index 304111b7..917b4a0d 100644 --- a/src/Template/Element/Showcase/highlight_carousel.ctp +++ b/templates/element/Showcase/highlight_carousel.php @@ -1,3 +1,11 @@ + filter(function ($p) { diff --git a/src/Template/Element/Showcase/title.ctp b/templates/element/Showcase/title.php similarity index 95% rename from src/Template/Element/Showcase/title.ctp rename to templates/element/Showcase/title.php index 457e5ce0..e542bafc 100644 --- a/src/Template/Element/Showcase/title.ctp +++ b/templates/element/Showcase/title.php @@ -1,4 +1,7 @@ assign('title', $title); diff --git a/src/Template/Element/ads/728x90.ctp b/templates/element/ads/728x90.php similarity index 100% rename from src/Template/Element/ads/728x90.ctp rename to templates/element/ads/728x90.php diff --git a/src/Template/Element/adwords/business_solution.ctp b/templates/element/adwords/business_solution.php similarity index 100% rename from src/Template/Element/adwords/business_solution.ctp rename to templates/element/adwords/business_solution.php diff --git a/src/Template/Element/adwords/find-out-more-click.ctp b/templates/element/adwords/find-out-more-click.php similarity index 100% rename from src/Template/Element/adwords/find-out-more-click.ctp rename to templates/element/adwords/find-out-more-click.php diff --git a/src/Template/Element/adwords/rapid-response-click.ctp b/templates/element/adwords/rapid-response-click.php similarity index 100% rename from src/Template/Element/adwords/rapid-response-click.ctp rename to templates/element/adwords/rapid-response-click.php diff --git a/src/Template/Element/adwords/showcase.ctp b/templates/element/adwords/showcase.php similarity index 100% rename from src/Template/Element/adwords/showcase.ctp rename to templates/element/adwords/showcase.php diff --git a/src/Template/Element/assets.ctp b/templates/element/assets.php similarity index 98% rename from src/Template/Element/assets.ctp rename to templates/element/assets.php index 33105dfe..7121b1a9 100644 --- a/src/Template/Element/assets.ctp +++ b/templates/element/assets.php @@ -1,4 +1,7 @@

diff --git a/src/Template/Element/business-solutions/consultancy.ctp b/templates/element/business-solutions/consultancy.php similarity index 97% rename from src/Template/Element/business-solutions/consultancy.ctp rename to templates/element/business-solutions/consultancy.php index eaa89b23..c0ee7efb 100644 --- a/src/Template/Element/business-solutions/consultancy.ctp +++ b/templates/element/business-solutions/consultancy.php @@ -1,3 +1,8 @@ +

diff --git a/src/Template/Element/business-solutions/contact.ctp b/templates/element/business-solutions/contact.php similarity index 88% rename from src/Template/Element/business-solutions/contact.ctp rename to templates/element/business-solutions/contact.php index 3c5bc702..e4949f98 100644 --- a/src/Template/Element/business-solutions/contact.ctp +++ b/templates/element/business-solutions/contact.php @@ -1,3 +1,8 @@ +

diff --git a/src/Template/Element/business-solutions/development.ctp b/templates/element/business-solutions/development.php similarity index 99% rename from src/Template/Element/business-solutions/development.ctp rename to templates/element/business-solutions/development.php index 2d1efb0a..0a2d5de9 100644 --- a/src/Template/Element/business-solutions/development.ctp +++ b/templates/element/business-solutions/development.php @@ -1,3 +1,8 @@ + element('adwords/find-out-more-click')?>
diff --git a/src/Template/Element/business-solutions/professional-training.ctp b/templates/element/business-solutions/professional-training.php similarity index 98% rename from src/Template/Element/business-solutions/professional-training.ctp rename to templates/element/business-solutions/professional-training.php index a1be3737..94f41c48 100644 --- a/src/Template/Element/business-solutions/professional-training.ctp +++ b/templates/element/business-solutions/professional-training.php @@ -1,3 +1,8 @@ +
r diff --git a/src/Template/Element/business-solutions/sidebar.ctp b/templates/element/business-solutions/sidebar.php similarity index 94% rename from src/Template/Element/business-solutions/sidebar.ctp rename to templates/element/business-solutions/sidebar.php index 2bde36c5..24069f1c 100644 --- a/src/Template/Element/business-solutions/sidebar.ctp +++ b/templates/element/business-solutions/sidebar.php @@ -1,3 +1,8 @@ +