From a3f8dae2fe628869d754be0cc014348f349325b8 Mon Sep 17 00:00:00 2001 From: Stephen Cuppett Date: Mon, 6 Jul 2020 07:48:56 -0400 Subject: [PATCH] Updating to CakePHP 3.9.3 --- composer.json | 7 +- composer.lock | 1806 +++++++++++------ config/.env.default | 8 +- config/app.default.php | 141 +- config/app.php | 751 +++---- config/app_local.php | 131 ++ config/bootstrap.php | 44 +- config/bootstrap_cli.php | 10 - config/paths.php | 4 + config/routes.php | 36 +- health.php | 1 - lib/Cake/Console/cake | 3 +- logs/empty | 0 .../templates/cakephp-mysql-persistent.json | 2 +- src/Application.php | 67 +- src/Controller/PagesController.php | 16 +- src/Template/Cell/empty | 1 + src/Template/Layout/ajax.ctp | 1 + src/Template/Layout/default.ctp.default | 5 +- src/Template/Layout/error.ctp | 2 +- src/View/AppView.php | 2 +- src/View/Cell/empty | 0 tests/TestCase/ApplicationTest.php | 41 + webroot/css/{cake.css => style.css} | 1 - webroot/font/cakedingbats-webfont.eot | Bin 0 -> 75538 bytes webroot/font/cakedingbats-webfont.ttf | Bin 0 -> 75412 bytes webroot/font/cakedingbats-webfont.woff | Bin 0 -> 43484 bytes webroot/font/cakedingbats-webfont.woff2 | Bin 0 -> 35456 bytes 28 files changed, 2015 insertions(+), 1065 deletions(-) create mode 100644 config/app_local.php create mode 100644 logs/empty create mode 100644 src/Template/Cell/empty create mode 100644 src/View/Cell/empty rename webroot/css/{cake.css => style.css} (99%) create mode 100644 webroot/font/cakedingbats-webfont.eot create mode 100644 webroot/font/cakedingbats-webfont.ttf create mode 100644 webroot/font/cakedingbats-webfont.woff create mode 100644 webroot/font/cakedingbats-webfont.woff2 diff --git a/composer.json b/composer.json index 0d15e708d..a058fcc36 100644 --- a/composer.json +++ b/composer.json @@ -6,7 +6,7 @@ "license": "MIT", "require": { "php": ">=5.6", - "cakephp/cakephp": "3.6.*", + "cakephp/cakephp": "3.9.*", "cakephp/migrations": "@stable", "cakephp/plugin-installer": "^1.0", "josegonzalez/dotenv": "3.*", @@ -15,7 +15,7 @@ "require-dev": { "cakephp/bake": "^1.1", "cakephp/cakephp-codesniffer": "^3.0", - "cakephp/debug_kit": "^3.15.0", + "cakephp/debug_kit": "^3.22", "phpunit/phpunit": "^5.7|^6.0", "psy/psysh": "@stable" }, @@ -37,7 +37,6 @@ "scripts": { "post-install-cmd": "App\\Console\\Installer::postInstall", "post-create-project-cmd": "App\\Console\\Installer::postInstall", - "post-autoload-dump": "Cake\\Composer\\Installer\\PluginInstaller::postAutoloadDump", "check": [ "@test", "@cs-check" @@ -50,7 +49,7 @@ "config": { "sort-packages": true, "platform": { - "php": "7.0.10" + "php": "7.2" } } } diff --git a/composer.lock b/composer.lock index bdcfdec78..61a85b6db 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "ac911cb6687b65bfe5e5b520621ab0d6", + "content-hash": "fa096d8dff16446dc0d5335918047557", "packages": [ { "name": "aura/intl", @@ -54,16 +54,16 @@ }, { "name": "cakephp/cakephp", - "version": "3.6.15", + "version": "3.9.3", "source": { "type": "git", "url": "https://github.com/cakephp/cakephp.git", - "reference": "69f10c11e18c9f41ea2554742b997702b08e4ed0" + "reference": "74f60e2e1f15c8fd27653db2ee835d426b59ee83" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/cakephp/zipball/69f10c11e18c9f41ea2554742b997702b08e4ed0", - "reference": "69f10c11e18c9f41ea2554742b997702b08e4ed0", + "url": "https://api.github.com/repos/cakephp/cakephp/zipball/74f60e2e1f15c8fd27653db2ee835d426b59ee83", + "reference": "74f60e2e1f15c8fd27653db2ee835d426b59ee83", "shasum": "" }, "require": { @@ -71,9 +71,11 @@ "cakephp/chronos": "^1.0.1", "ext-intl": "*", "ext-mbstring": "*", + "laminas/laminas-diactoros": "^1.4.0", + "paragonie/random_compat": "^1.4|^2.0|9.99.99", "php": ">=5.6.0", "psr/log": "^1.0.0", - "zendframework/zend-diactoros": "^1.4.0" + "psr/simple-cache": "^1.0.0" }, "conflict": { "phpunit/phpunit": "<5.7" @@ -95,11 +97,15 @@ }, "require-dev": { "cakephp/cakephp-codesniffer": "^3.0", + "cakephp/chronos": "^1.2.1", + "paragonie/csp-builder": "^1.4|^2.3", "phpunit/phpunit": "^5.7.14|^6.0" }, "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": "The intl PHP library, to use Text::transliterate() or Text::slug()", + "paragonie/csp-builder": "CSP builder, to use the CSP Middleware" }, "type": "library", "autoload": { @@ -136,30 +142,29 @@ "rapid-development", "validation" ], - "time": "2019-04-24T01:52:39+00:00" + "time": "2020-10-06T01:21:56+00:00" }, { "name": "cakephp/chronos", - "version": "1.2.5", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/cakephp/chronos.git", - "reference": "8a2b005a2db173e1b5493002afb8e1e13c71a62a" + "reference": "ba2bab98849e7bf29b02dd634ada49ab36472959" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/chronos/zipball/8a2b005a2db173e1b5493002afb8e1e13c71a62a", - "reference": "8a2b005a2db173e1b5493002afb8e1e13c71a62a", + "url": "https://api.github.com/repos/cakephp/chronos/zipball/ba2bab98849e7bf29b02dd634ada49ab36472959", + "reference": "ba2bab98849e7bf29b02dd634ada49ab36472959", "shasum": "" }, "require": { - "php": "^5.5.9|^7" + "php": ">=5.6" }, "require-dev": { "athletic/athletic": "~0.1", "cakephp/cakephp-codesniffer": "^3.0", "phpbench/phpbench": "@dev", - "phpstan/phpstan": "^0.6.4", "phpunit/phpunit": "<6.0 || ^7.0" }, "type": "library", @@ -193,27 +198,27 @@ "datetime", "time" ], - "time": "2019-04-23T19:00:57+00:00" + "time": "2019-11-30T02:33:19+00:00" }, { "name": "cakephp/migrations", - "version": "2.1.1", + "version": "2.4.2", "source": { "type": "git", "url": "https://github.com/cakephp/migrations.git", - "reference": "96e3cc00ede11f28bb8bcefcab95f07c487177cf" + "reference": "7fa4f1f8a4cd90df59cd8e3a46958c822abe457e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/migrations/zipball/96e3cc00ede11f28bb8bcefcab95f07c487177cf", - "reference": "96e3cc00ede11f28bb8bcefcab95f07c487177cf", + "url": "https://api.github.com/repos/cakephp/migrations/zipball/7fa4f1f8a4cd90df59cd8e3a46958c822abe457e", + "reference": "7fa4f1f8a4cd90df59cd8e3a46958c822abe457e", "shasum": "" }, "require": { "cakephp/cache": "^3.6.0", "cakephp/orm": "^3.6.0", "php": ">=5.6.0", - "robmorgan/phinx": "~0.10.3" + "robmorgan/phinx": "^0.10.3|^0.11.1" }, "require-dev": { "cakephp/bake": "^1.7.0", @@ -222,12 +227,12 @@ "phpunit/phpunit": "^5.7.14|^6.0" }, "suggest": { - "cakephp/bake": "Required if you want to generate migrations." + "cakephp/bake": "If you want to generate migrations." }, "type": "cakephp-plugin", "autoload": { "psr-4": { - "Migrations\\": "src" + "Migrations\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -240,40 +245,44 @@ "homepage": "https://github.com/cakephp/migrations/graphs/contributors" } ], - "description": "Database Migration plugin for CakePHP 3.0 based on Phinx", + "description": "Database Migration plugin for CakePHP based on Phinx", "homepage": "https://github.com/cakephp/migrations", "keywords": [ "cakephp", "migrations" ], - "time": "2019-02-07T15:20:33+00:00" + "time": "2020-02-05T15:00:43+00:00" }, { "name": "cakephp/plugin-installer", - "version": "1.1.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/cakephp/plugin-installer.git", - "reference": "41373d0678490502f45adc7be88aa22d24ac1843" + "reference": "549548a7aa308ecee4059c2d10a7d8d5d1002602" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/plugin-installer/zipball/41373d0678490502f45adc7be88aa22d24ac1843", - "reference": "41373d0678490502f45adc7be88aa22d24ac1843", + "url": "https://api.github.com/repos/cakephp/plugin-installer/zipball/549548a7aa308ecee4059c2d10a7d8d5d1002602", + "reference": "549548a7aa308ecee4059c2d10a7d8d5d1002602", "shasum": "" }, + "require": { + "composer-plugin-api": "^1.0 || ^2.0", + "php": ">=7.2.0" + }, "require-dev": { - "cakephp/cakephp-codesniffer": "dev-master", - "composer/composer": "1.0.*@dev", - "phpunit/phpunit": "^4.8|^5.7|^6.0" + "cakephp/cakephp-codesniffer": "^4.1", + "composer/composer": "^2.0@RC", + "phpunit/phpunit": "^8.5 || ^9.3" }, - "type": "composer-installer", + "type": "composer-plugin", "extra": { - "class": "Cake\\Composer\\Installer\\PluginInstaller" + "class": "Cake\\Composer\\Plugin" }, "autoload": { "psr-4": { - "Cake\\Composer\\": "src" + "Cake\\Composer\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -283,11 +292,11 @@ "authors": [ { "name": "CakePHP Community", - "homepage": "http://cakephp.org" + "homepage": "https://cakephp.org" } ], "description": "A composer installer for CakePHP 3.0+ plugins.", - "time": "2017-12-24T21:09:29+00:00" + "time": "2020-10-24T07:29:47+00:00" }, { "name": "josegonzalez/dotenv", @@ -342,18 +351,147 @@ ], "time": "2017-09-19T15:49:58+00:00" }, + { + "name": "laminas/laminas-diactoros", + "version": "1.8.7p2", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-diactoros.git", + "reference": "6991c1af7c8d2c8efee81b22ba97024781824aaa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/6991c1af7c8d2c8efee81b22ba97024781824aaa", + "reference": "6991c1af7c8d2c8efee81b22ba97024781824aaa", + "shasum": "" + }, + "require": { + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0", + "psr/http-message": "^1.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "replace": { + "zendframework/zend-diactoros": "~1.8.7.0" + }, + "require-dev": { + "ext-dom": "*", + "ext-libxml": "*", + "laminas/laminas-coding-standard": "~1.0", + "php-http/psr7-integration-tests": "dev-master", + "phpunit/phpunit": "^5.7.16 || ^6.0.8 || ^7.2.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-release-1.8": "1.8.x-dev" + } + }, + "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-7" + ], + "time": "2020-03-23T15:28:28+00:00" + }, + { + "name": "laminas/laminas-zendframework-bridge", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-zendframework-bridge.git", + "reference": "6ede70583e101030bcace4dcddd648f760ddf642" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/6ede70583e101030bcace4dcddd648f760ddf642", + "reference": "6ede70583e101030bcace4dcddd648f760ddf642", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.1 || ^9.3", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "laminas": { + "module": "Laminas\\ZendFrameworkBridge" + } + }, + "autoload": { + "files": [ + "src/autoload.php" + ], + "psr-4": { + "Laminas\\ZendFrameworkBridge\\": "src//" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Alias legacy ZF class names to Laminas Project equivalents.", + "keywords": [ + "ZendFramework", + "autoloading", + "laminas", + "zf" + ], + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-09-14T14:23:00+00:00" + }, { "name": "m1/env", - "version": "2.1.2", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/m1/Env.git", - "reference": "294addeedf15e1149eeb96ec829f2029d2017d39" + "reference": "5c296e3e13450a207e12b343f3af1d7ab569f6f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/m1/Env/zipball/294addeedf15e1149eeb96ec829f2029d2017d39", - "reference": "294addeedf15e1149eeb96ec829f2029d2017d39", + "url": "https://api.github.com/repos/m1/Env/zipball/5c296e3e13450a207e12b343f3af1d7ab569f6f3", + "reference": "5c296e3e13450a207e12b343f3af1d7ab569f6f3", "shasum": "" }, "require": { @@ -398,20 +536,20 @@ "parser", "support" ], - "time": "2018-06-19T18:55:08+00:00" + "time": "2020-02-19T09:02:13+00:00" }, { "name": "mobiledetect/mobiledetectlib", - "version": "2.8.33", + "version": "2.8.34", "source": { "type": "git", "url": "https://github.com/serbanghita/Mobile-Detect.git", - "reference": "cd385290f9a0d609d2eddd165a1e44ec1bf12102" + "reference": "6f8113f57a508494ca36acbcfa2dc2d923c7ed5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/cd385290f9a0d609d2eddd165a1e44ec1bf12102", - "reference": "cd385290f9a0d609d2eddd165a1e44ec1bf12102", + "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/6f8113f57a508494ca36acbcfa2dc2d923c7ed5b", + "reference": "6f8113f57a508494ca36acbcfa2dc2d923c7ed5b", "shasum": "" }, "require": { @@ -450,7 +588,101 @@ "mobile detector", "php mobile detect" ], - "time": "2018-09-01T15:05:15+00:00" + "time": "2019-09-18T18:44:20+00:00" + }, + { + "name": "paragonie/random_compat", + "version": "v9.99.99", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", + "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", + "shasum": "" + }, + "require": { + "php": "^7" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*", + "vimeo/psalm": "^1" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "polyfill", + "pseudorandom", + "random" + ], + "time": "2018-07-02T15:55:56+00:00" + }, + { + "name": "psr/container", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "time": "2017-02-14T16:28:37+00:00" }, { "name": "psr/http-message", @@ -504,16 +736,16 @@ }, { "name": "psr/log", - "version": "1.1.0", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", - "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", "shasum": "" }, "require": { @@ -522,7 +754,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { @@ -547,35 +779,88 @@ "psr", "psr-3" ], - "time": "2018-11-20T15:27:04+00:00" + "time": "2020-03-23T09:12:05+00:00" + }, + { + "name": "psr/simple-cache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for simple caching", + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], + "time": "2017-10-23T01:57:42+00:00" }, { "name": "robmorgan/phinx", - "version": "0.10.7", + "version": "0.11.7", "source": { "type": "git", "url": "https://github.com/cakephp/phinx.git", - "reference": "ba2dae98bb69d39531311e8fd72dd51e8e06ff32" + "reference": "3cdde73e0c33c410e076108b3e1603fabb5b330d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/phinx/zipball/ba2dae98bb69d39531311e8fd72dd51e8e06ff32", - "reference": "ba2dae98bb69d39531311e8fd72dd51e8e06ff32", + "url": "https://api.github.com/repos/cakephp/phinx/zipball/3cdde73e0c33c410e076108b3e1603fabb5b330d", + "reference": "3cdde73e0c33c410e076108b3e1603fabb5b330d", "shasum": "" }, "require": { - "cakephp/collection": "^3.6", - "cakephp/database": "^3.6", + "cakephp/collection": "^3.7", + "cakephp/database": "^3.7", "php": ">=5.6", - "symfony/config": "^2.8|^3.0|^4.0", - "symfony/console": "^2.8|^3.0|^4.0", - "symfony/yaml": "^2.8|^3.0|^4.0" + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0" }, "require-dev": { "cakephp/cakephp-codesniffer": "^3.0", - "phpunit/phpunit": ">=5.7,<7.0", + "ext-json": "*", + "phpunit/phpunit": ">=5.7,<8.0", "sebastian/comparator": ">=1.2.3" }, + "suggest": { + "ext-json": "Install if using JSON configuration format", + "symfony/yaml": "Install if using YAML configuration format" + }, "bin": [ "bin/phinx" ], @@ -590,18 +875,18 @@ "MIT" ], "authors": [ - { - "name": "Woody Gilk", - "email": "woody.gilk@gmail.com", - "homepage": "http://shadowhand.me", - "role": "Developer" - }, { "name": "Rob Morgan", "email": "robbym@gmail.com", "homepage": "https://robmorgan.id.au", "role": "Lead Developer" }, + { + "name": "Woody Gilk", + "email": "woody.gilk@gmail.com", + "homepage": "https://shadowhand.me", + "role": "Developer" + }, { "name": "Richard Quadling", "email": "rquadling@gmail.com", @@ -609,7 +894,8 @@ }, { "name": "CakePHP Community", - "homepage": "https://github.com/cakephp/phinx/graphs/contributors" + "homepage": "https://github.com/cakephp/phinx/graphs/contributors", + "role": "Developer" } ], "description": "Phinx makes it ridiculously easy to manage the database migrations for your PHP app.", @@ -621,36 +907,36 @@ "migrations", "phinx" ], - "time": "2019-04-25T09:12:16+00:00" + "time": "2020-05-09T13:59:05+00:00" }, { "name": "symfony/config", - "version": "v3.4.26", + "version": "v4.4.15", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "177a276c01575253c95cefe0866e3d1b57637fe0" + "reference": "7c5a1002178a612787c291a4f515f87b19176b61" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/177a276c01575253c95cefe0866e3d1b57637fe0", - "reference": "177a276c01575253c95cefe0866e3d1b57637fe0", + "url": "https://api.github.com/repos/symfony/config/zipball/7c5a1002178a612787c291a4f515f87b19176b61", + "reference": "7c5a1002178a612787c291a4f515f87b19176b61", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/filesystem": "~2.8|~3.0|~4.0", + "php": ">=7.1.3", + "symfony/filesystem": "^3.4|^4.0|^5.0", "symfony/polyfill-ctype": "~1.8" }, "conflict": { - "symfony/dependency-injection": "<3.3", - "symfony/finder": "<3.3" + "symfony/finder": "<3.4" }, "require-dev": { - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/event-dispatcher": "~3.3|~4.0", - "symfony/finder": "~3.3|~4.0", - "symfony/yaml": "~3.0|~4.0" + "symfony/event-dispatcher": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/messenger": "^4.1|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/yaml": "^3.4|^4.0|^5.0" }, "suggest": { "symfony/yaml": "To use the yaml reference dumper" @@ -658,7 +944,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -685,29 +971,47 @@ ], "description": "Symfony Config Component", "homepage": "https://symfony.com", - "time": "2019-02-23T15:06:07+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": "2020-10-02T07:34:48+00:00" }, { "name": "symfony/console", - "version": "v3.4.26", + "version": "v4.4.15", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "15a9104356436cb26e08adab97706654799d31d8" + "reference": "90933b39c7b312fc3ceaa1ddeac7eb48cb953124" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/15a9104356436cb26e08adab97706654799d31d8", - "reference": "15a9104356436cb26e08adab97706654799d31d8", + "url": "https://api.github.com/repos/symfony/console/zipball/90933b39c7b312fc3ceaa1ddeac7eb48cb953124", + "reference": "90933b39c7b312fc3ceaa1ddeac7eb48cb953124", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/debug": "~2.8|~3.0|~4.0", - "symfony/polyfill-mbstring": "~1.0" + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/polyfill-php80": "^1.15", + "symfony/service-contracts": "^1.1|^2" }, "conflict": { "symfony/dependency-injection": "<3.4", + "symfony/event-dispatcher": "<4.3|>=5", + "symfony/lock": "<4.4", "symfony/process": "<3.3" }, "provide": { @@ -715,11 +1019,12 @@ }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~3.3|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/event-dispatcher": "~2.8|~3.0|~4.0", - "symfony/lock": "~3.4|~4.0", - "symfony/process": "~3.3|~4.0" + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/event-dispatcher": "^4.3", + "symfony/lock": "^4.4|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/var-dumper": "^4.3|^5.0" }, "suggest": { "psr/log": "For using the console logger", @@ -730,7 +1035,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -757,41 +1062,49 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2019-04-08T09:29:13+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": "2020-09-15T07:58:55+00:00" }, { - "name": "symfony/debug", - "version": "v3.4.26", + "name": "symfony/filesystem", + "version": "v4.4.15", "source": { "type": "git", - "url": "https://github.com/symfony/debug.git", - "reference": "681afbb26488903c5ac15e63734f1d8ac430c9b9" + "url": "https://github.com/symfony/filesystem.git", + "reference": "ebc51494739d3b081ea543ed7c462fa73a4f74db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/681afbb26488903c5ac15e63734f1d8ac430c9b9", - "reference": "681afbb26488903c5ac15e63734f1d8ac430c9b9", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/ebc51494739d3b081ea543ed7c462fa73a4f74db", + "reference": "ebc51494739d3b081ea543ed7c462fa73a4f74db", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "psr/log": "~1.0" - }, - "conflict": { - "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" - }, - "require-dev": { - "symfony/http-kernel": "~2.8|~3.0|~4.0" + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\Debug\\": "" + "Symfony\\Component\\Filesystem\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -811,40 +1124,60 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Debug Component", + "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2019-04-11T09:48:14+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": "2020-09-27T13:54:16+00:00" }, { - "name": "symfony/filesystem", - "version": "v3.4.26", + "name": "symfony/polyfill-ctype", + "version": "v1.20.0", "source": { "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "acf99758b1df8e9295e6b85aa69f294565c9fedb" + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/acf99758b1df8e9295e6b85aa69f294565c9fedb", - "reference": "acf99758b1df8e9295e6b85aa69f294565c9fedb", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f4ba089a5b6366e453971d3aad5fe8e897b37f41", + "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-ctype": "~1.8" + "php": ">=7.1" + }, + "suggest": { + "ext-ctype": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { "psr-4": { - "Symfony\\Component\\Filesystem\\": "" + "Symfony\\Polyfill\\Ctype\\": "" }, - "exclude-from-classmap": [ - "/Tests/" + "files": [ + "bootstrap.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -853,47 +1186,71 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Filesystem Component", + "description": "Symfony polyfill for ctype functions", "homepage": "https://symfony.com", - "time": "2019-02-04T21:34:32+00:00" + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "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": "2020-10-23T14:02:19+00:00" }, { - "name": "symfony/polyfill-ctype", - "version": "v1.11.0", + "name": "symfony/polyfill-mbstring", + "version": "v1.20.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "82ebae02209c21113908c229e9883c419720738a" + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "39d483bdf39be819deabf04ec872eb0b2410b531" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/82ebae02209c21113908c229e9883c419720738a", - "reference": "82ebae02209c21113908c229e9883c419720738a", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/39d483bdf39be819deabf04ec872eb0b2410b531", + "reference": "39d483bdf39be819deabf04ec872eb0b2410b531", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "suggest": { - "ext-ctype": "For best performance" + "ext-mbstring": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11-dev" + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" + "Symfony\\Polyfill\\Mbstring\\": "" }, "files": [ "bootstrap.php" @@ -905,56 +1262,75 @@ ], "authors": [ { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for ctype functions", + "description": "Symfony polyfill for the Mbstring extension", "homepage": "https://symfony.com", "keywords": [ "compatibility", - "ctype", + "mbstring", "polyfill", - "portable" + "portable", + "shim" + ], + "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": "2019-02-06T07:57:58+00:00" + "time": "2020-10-23T14:02:19+00:00" }, { - "name": "symfony/polyfill-mbstring", - "version": "v1.11.0", + "name": "symfony/polyfill-php73", + "version": "v1.20.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "fe5e94c604826c35a32fa832f35bd036b6799609" + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fe5e94c604826c35a32fa832f35bd036b6799609", - "reference": "fe5e94c604826c35a32fa832f35bd036b6799609", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/8ff431c517be11c78c48a39a66d37431e26a6bed", + "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed", "shasum": "" }, "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-mbstring": "For best performance" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11-dev" + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" + "Symfony\\Polyfill\\Php73\\": "" }, "files": [ "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" ] }, "notification-url": "https://packagist.org/downloads/", @@ -971,57 +1347,145 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for the Mbstring extension", + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", - "mbstring", "polyfill", "portable", "shim" ], - "time": "2019-02-06T07:57:58+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": "2020-10-23T14:02:19+00:00" }, { - "name": "symfony/yaml", - "version": "v3.4.26", + "name": "symfony/polyfill-php80", + "version": "v1.20.0", "source": { "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "212a27b731e5bfb735679d1ffaac82bd6a1dc996" + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/212a27b731e5bfb735679d1ffaac82bd6a1dc996", - "reference": "212a27b731e5bfb735679d1ffaac82bd6a1dc996", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/e70aa8b064c5b72d3df2abd5ab1e90464ad009de", + "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-ctype": "~1.8" + "php": ">=7.1" }, - "conflict": { - "symfony/console": "<3.4" + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } }, - "require-dev": { - "symfony/console": "~3.4|~4.0" + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "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": "2020-10-23T14:02:19+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v1.1.9", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "b776d18b303a39f56c63747bcb977ad4b27aca26" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/b776d18b303a39f56c63747bcb977ad4b27aca26", + "reference": "b776d18b303a39f56c63747bcb977ad4b27aca26", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/container": "^1.0" }, "suggest": { - "symfony/console": "For validating YAML files using the lint command" + "symfony/service-implementation": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "1.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, "autoload": { "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Symfony\\Contracts\\Service\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1029,81 +1493,112 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Yaml Component", + "description": "Generic abstractions related to writing services", "homepage": "https://symfony.com", - "time": "2019-03-25T07:48:46+00:00" + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "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": "2020-07-06T13:19:58+00:00" }, { - "name": "zendframework/zend-diactoros", - "version": "1.8.6", + "name": "symfony/yaml", + "version": "v4.4.15", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-diactoros.git", - "reference": "20da13beba0dde8fb648be3cc19765732790f46e" + "url": "https://github.com/symfony/yaml.git", + "reference": "c7885964b1eceb70b0981556d0a9b01d2d97c8d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-diactoros/zipball/20da13beba0dde8fb648be3cc19765732790f46e", - "reference": "20da13beba0dde8fb648be3cc19765732790f46e", + "url": "https://api.github.com/repos/symfony/yaml/zipball/c7885964b1eceb70b0981556d0a9b01d2d97c8d1", + "reference": "c7885964b1eceb70b0981556d0a9b01d2d97c8d1", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0", - "psr/http-message": "^1.0" + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8" }, - "provide": { - "psr/http-message-implementation": "1.0" + "conflict": { + "symfony/console": "<3.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" + "symfony/console": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8.x-dev", - "dev-develop": "1.9.x-dev", - "dev-release-2.0": "2.0.x-dev" + "dev-master": "4.4-dev" } }, "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/" - } + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-2-Clause" + "MIT" ], - "description": "PSR HTTP Message implementations", - "homepage": "https://github.com/zendframework/zend-diactoros", - "keywords": [ - "http", - "psr", - "psr-7" + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/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" + } ], - "time": "2018-09-05T19:29:37+00:00" + "time": "2020-09-27T03:36:23+00:00" } ], "packages-dev": [ @@ -1226,16 +1721,16 @@ }, { "name": "asm89/twig-cache-extension", - "version": "1.3.2", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/asm89/twig-cache-extension.git", - "reference": "630ea7abdc3fc62ba6786c02590a1560e449cf55" + "reference": "13787226956ec766f4770722082288097aebaaf3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/asm89/twig-cache-extension/zipball/630ea7abdc3fc62ba6786c02590a1560e449cf55", - "reference": "630ea7abdc3fc62ba6786c02590a1560e449cf55", + "url": "https://api.github.com/repos/asm89/twig-cache-extension/zipball/13787226956ec766f4770722082288097aebaaf3", + "reference": "13787226956ec766f4770722082288097aebaaf3", "shasum": "" }, "require": { @@ -1243,7 +1738,8 @@ "twig/twig": "^1.0|^2.0" }, "require-dev": { - "doctrine/cache": "~1.0" + "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." @@ -1251,7 +1747,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3-dev" + "dev-master": "1.4-dev" } }, "autoload": { @@ -1276,27 +1772,28 @@ "extension", "twig" ], - "time": "2017-01-10T22:04:15+00:00" + "abandoned": "twig/cache-extension", + "time": "2020-01-01T20:47:37+00:00" }, { "name": "cakephp/bake", - "version": "1.8.7", + "version": "1.12.0", "source": { "type": "git", "url": "https://github.com/cakephp/bake.git", - "reference": "8a675e3a472014b6d1bc492db4daea328ba6a5a8" + "reference": "33e8ee8419ba36c13fa4074c208c93352b5530cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/bake/zipball/8a675e3a472014b6d1bc492db4daea328ba6a5a8", - "reference": "8a675e3a472014b6d1bc492db4daea328ba6a5a8", + "url": "https://api.github.com/repos/cakephp/bake/zipball/33e8ee8419ba36c13fa4074c208c93352b5530cf", + "reference": "33e8ee8419ba36c13fa4074c208c93352b5530cf", "shasum": "" }, "require": { - "cakephp/cakephp": "^3.6.12", + "cakephp/cakephp": "^3.8.0", "cakephp/plugin-installer": "^1.0", "php": ">=5.6.0", - "wyrihaximus/twig-view": "^4.3.4" + "wyrihaximus/twig-view": "^4.3.7" }, "require-dev": { "cakephp/cakephp-codesniffer": "^3.0", @@ -1305,7 +1802,7 @@ "type": "cakephp-plugin", "autoload": { "psr-4": { - "Bake\\": "src" + "Bake\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1324,20 +1821,20 @@ "bake", "cakephp" ], - "time": "2018-12-04T04:23:24+00:00" + "time": "2019-12-07T20:34:43+00:00" }, { "name": "cakephp/cakephp-codesniffer", - "version": "3.1.1", + "version": "3.3.0", "source": { "type": "git", "url": "https://github.com/cakephp/cakephp-codesniffer.git", - "reference": "682e79fda294c4383e094a2a881e16dcf1130750" + "reference": "7998a191e787fd5b68cb635d7050cb0d7b55e1a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/cakephp-codesniffer/zipball/682e79fda294c4383e094a2a881e16dcf1130750", - "reference": "682e79fda294c4383e094a2a881e16dcf1130750", + "url": "https://api.github.com/repos/cakephp/cakephp-codesniffer/zipball/7998a191e787fd5b68cb635d7050cb0d7b55e1a1", + "reference": "7998a191e787fd5b68cb635d7050cb0d7b55e1a1", "shasum": "" }, "require": { @@ -1350,7 +1847,7 @@ "type": "phpcodesniffer-standard", "autoload": { "psr-4": { - "CakePHP\\": "CakePHP" + "CakePHP\\": "CakePHP/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1364,29 +1861,29 @@ } ], "description": "CakePHP CodeSniffer Standards", - "homepage": "http://cakephp.org", + "homepage": "https://cakephp.org", "keywords": [ "codesniffer", "framework" ], - "time": "2018-11-30T16:04:05+00:00" + "time": "2019-12-07T03:02:34+00:00" }, { "name": "cakephp/debug_kit", - "version": "3.16.7", + "version": "3.22.4", "source": { "type": "git", "url": "https://github.com/cakephp/debug_kit.git", - "reference": "556d7b97fe6efd796616af99c0c94918ccb0087c" + "reference": "5bec3c49a2b8d9bd12655f2ec35e52ec90befe17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/debug_kit/zipball/556d7b97fe6efd796616af99c0c94918ccb0087c", - "reference": "556d7b97fe6efd796616af99c0c94918ccb0087c", + "url": "https://api.github.com/repos/cakephp/debug_kit/zipball/5bec3c49a2b8d9bd12655f2ec35e52ec90befe17", + "reference": "5bec3c49a2b8d9bd12655f2ec35e52ec90befe17", "shasum": "" }, "require": { - "cakephp/cakephp": "^3.6.0", + "cakephp/cakephp": "^3.7.0", "cakephp/chronos": "^1.0.0", "cakephp/plugin-installer": "^1.0.0", "composer/composer": "^1.3.0", @@ -1394,6 +1891,7 @@ "php": ">=5.6.0" }, "require-dev": { + "cakephp/authorization": "^1.3.2", "cakephp/cakephp-codesniffer": "^3.0", "phpunit/phpunit": "^5.7.14|^6.0" }, @@ -1403,8 +1901,8 @@ "type": "cakephp-plugin", "autoload": { "psr-4": { - "DebugKit\\": "src", - "DebugKit\\Test\\Fixture\\": "tests\\Fixture" + "DebugKit\\": "src/", + "DebugKit\\Test\\Fixture\\": "tests/Fixture/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1414,7 +1912,7 @@ "authors": [ { "name": "Mark Story", - "homepage": "http://mark-story.com", + "homepage": "https://mark-story.com", "role": "Author" }, { @@ -1429,31 +1927,31 @@ "debug", "kit" ], - "time": "2018-12-02T03:24:57+00:00" + "time": "2020-04-22T17:27:39+00:00" }, { "name": "composer/ca-bundle", - "version": "1.1.4", + "version": "1.2.8", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "558f321c52faeb4828c03e7dc0cfe39a09e09a2d" + "reference": "8a7ecad675253e4654ea05505233285377405215" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/558f321c52faeb4828c03e7dc0cfe39a09e09a2d", - "reference": "558f321c52faeb4828c03e7dc0cfe39a09e09a2d", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/8a7ecad675253e4654ea05505233285377405215", + "reference": "8a7ecad675253e4654ea05505233285377405215", "shasum": "" }, "require": { "ext-openssl": "*", "ext-pcre": "*", - "php": "^5.3.2 || ^7.0" + "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5", + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8", "psr/log": "^1.0", - "symfony/process": "^2.5 || ^3.0 || ^4.0" + "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0" }, "type": "library", "extra": { @@ -1485,20 +1983,34 @@ "ssl", "tls" ], - "time": "2019-01-28T09:30:10+00:00" + "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-08-23T12:54:47+00:00" }, { "name": "composer/composer", - "version": "1.8.5", + "version": "1.10.16", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "949b116f9e7d98d8d276594fed74b580d125c0e6" + "reference": "217f0272673c72087862c40cf91ac07eb438d778" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/949b116f9e7d98d8d276594fed74b580d125c0e6", - "reference": "949b116f9e7d98d8d276594fed74b580d125c0e6", + "url": "https://api.github.com/repos/composer/composer/zipball/217f0272673c72087862c40cf91ac07eb438d778", + "reference": "217f0272673c72087862c40cf91ac07eb438d778", "shasum": "" }, "require": { @@ -1506,22 +2018,22 @@ "composer/semver": "^1.0", "composer/spdx-licenses": "^1.2", "composer/xdebug-handler": "^1.1", - "justinrainbow/json-schema": "^3.0 || ^4.0 || ^5.0", + "justinrainbow/json-schema": "^5.2.10", "php": "^5.3.2 || ^7.0", "psr/log": "^1.0", "seld/jsonlint": "^1.4", "seld/phar-utils": "^1.0", - "symfony/console": "^2.7 || ^3.0 || ^4.0", - "symfony/filesystem": "^2.7 || ^3.0 || ^4.0", - "symfony/finder": "^2.7 || ^3.0 || ^4.0", - "symfony/process": "^2.7 || ^3.0 || ^4.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" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7", - "phpunit/phpunit-mock-objects": "^2.3 || ^3.0" + "phpspec/prophecy": "^1.10", + "symfony/phpunit-bridge": "^4.2" }, "suggest": { "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", @@ -1534,7 +2046,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8-dev" + "dev-master": "1.10-dev" } }, "autoload": { @@ -1558,35 +2070,48 @@ "homepage": "http://seld.be" } ], - "description": "Composer helps you declare, manage and install dependencies of PHP projects, ensuring you have the right stack everywhere.", + "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": [ "autoload", "dependency", "package" ], - "time": "2019-04-09T15:46:48+00:00" + "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-10-24T07:55:59+00:00" }, { "name": "composer/semver", - "version": "1.5.0", + "version": "1.7.1", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "46d9139568ccb8d9e7cdd4539cab7347568a5e2e" + "reference": "38276325bd896f90dfcfe30029aa5db40df387a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/46d9139568ccb8d9e7cdd4539cab7347568a5e2e", - "reference": "46d9139568ccb8d9e7cdd4539cab7347568a5e2e", + "url": "https://api.github.com/repos/composer/semver/zipball/38276325bd896f90dfcfe30029aa5db40df387a7", + "reference": "38276325bd896f90dfcfe30029aa5db40df387a7", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "^4.5 || ^5.0.5", - "phpunit/phpunit-mock-objects": "2.3.0 || ^3.0" + "phpunit/phpunit": "^4.5 || ^5.0.5" }, "type": "library", "extra": { @@ -1627,20 +2152,34 @@ "validation", "versioning" ], - "time": "2019-03-19T17:25:45+00:00" + "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-09-27T13:13:07+00:00" }, { "name": "composer/spdx-licenses", - "version": "1.5.1", + "version": "1.5.4", "source": { "type": "git", "url": "https://github.com/composer/spdx-licenses.git", - "reference": "a1aa51cf3ab838b83b0867b14e56fc20fbd55b3d" + "reference": "6946f785871e2314c60b4524851f3702ea4f2223" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/a1aa51cf3ab838b83b0867b14e56fc20fbd55b3d", - "reference": "a1aa51cf3ab838b83b0867b14e56fc20fbd55b3d", + "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/6946f785871e2314c60b4524851f3702ea4f2223", + "reference": "6946f785871e2314c60b4524851f3702ea4f2223", "shasum": "" }, "require": { @@ -1687,28 +2226,42 @@ "spdx", "validator" ], - "time": "2019-03-26T10:23:26+00:00" + "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-07-15T15:35:07+00:00" }, { "name": "composer/xdebug-handler", - "version": "1.3.2", + "version": "1.4.4", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "d17708133b6c276d6e42ef887a877866b909d892" + "reference": "6e076a124f7ee146f2487554a94b6a19a74887ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/d17708133b6c276d6e42ef887a877866b909d892", - "reference": "d17708133b6c276d6e42ef887a877866b909d892", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6e076a124f7ee146f2487554a94b6a19a74887ba", + "reference": "6e076a124f7ee146f2487554a94b6a19a74887ba", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0", + "php": "^5.3.2 || ^7.0 || ^8.0", "psr/log": "^1.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5" + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8" }, "type": "library", "autoload": { @@ -1726,34 +2279,48 @@ "email": "john-stevenson@blueyonder.co.uk" } ], - "description": "Restarts a process without xdebug.", + "description": "Restarts a process without Xdebug.", "keywords": [ "Xdebug", "performance" ], - "time": "2019-01-28T20:25:53+00:00" + "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-10-24T12:39:10+00:00" }, { "name": "dnoegel/php-xdg-base-dir", - "version": "0.1", + "version": "v0.1.1", "source": { "type": "git", "url": "https://github.com/dnoegel/php-xdg-base-dir.git", - "reference": "265b8593498b997dc2d31e75b89f053b5cc9621a" + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/265b8593498b997dc2d31e75b89f053b5cc9621a", - "reference": "265b8593498b997dc2d31e75b89f053b5cc9621a", + "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", "shasum": "" }, "require": { "php": ">=5.3.2" }, "require-dev": { - "phpunit/phpunit": "@stable" + "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" }, - "type": "project", + "type": "library", "autoload": { "psr-4": { "XdgBaseDir\\": "src/" @@ -1764,36 +2331,38 @@ "MIT" ], "description": "implementation of xdg base directory specification for php", - "time": "2014-10-24T07:27:01+00:00" + "time": "2019-12-04T15:06:13+00:00" }, { "name": "doctrine/instantiator", - "version": "1.0.5", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" + "reference": "f350df0268e904597e3bd9c4685c53e0e333feea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/f350df0268e904597e3bd9c4685c53e0e333feea", + "reference": "f350df0268e904597e3bd9c4685c53e0e333feea", "shasum": "" }, "require": { - "php": ">=5.3,<8.0-DEV" + "php": "^7.1 || ^8.0" }, "require-dev": { - "athletic/athletic": "~0.1.8", + "doctrine/coding-standard": "^6.0", "ext-pdo": "*", "ext-phar": "*", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~2.0" + "phpbench/phpbench": "^0.13", + "phpstan/phpstan-phpunit": "^0.11", + "phpstan/phpstan-shim": "^0.11", + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { @@ -1813,100 +2382,26 @@ } ], "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://github.com/doctrine/instantiator", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", "keywords": [ "constructor", "instantiate" ], - "time": "2015-06-14T21:17:01+00:00" - }, - { - "name": "jakub-onderka/php-console-color", - "version": "v0.2", - "source": { - "type": "git", - "url": "https://github.com/JakubOnderka/PHP-Console-Color.git", - "reference": "d5deaecff52a0d61ccb613bb3804088da0307191" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Color/zipball/d5deaecff52a0d61ccb613bb3804088da0307191", - "reference": "d5deaecff52a0d61ccb613bb3804088da0307191", - "shasum": "" - }, - "require": { - "php": ">=5.4.0" - }, - "require-dev": { - "jakub-onderka/php-code-style": "1.0", - "jakub-onderka/php-parallel-lint": "1.0", - "jakub-onderka/php-var-dump-check": "0.*", - "phpunit/phpunit": "~4.3", - "squizlabs/php_codesniffer": "1.*" - }, - "type": "library", - "autoload": { - "psr-4": { - "JakubOnderka\\PhpConsoleColor\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "authors": [ + "funding": [ { - "name": "Jakub Onderka", - "email": "jakub.onderka@gmail.com" - } - ], - "time": "2018-09-29T17:23:10+00:00" - }, - { - "name": "jakub-onderka/php-console-highlighter", - "version": "v0.4", - "source": { - "type": "git", - "url": "https://github.com/JakubOnderka/PHP-Console-Highlighter.git", - "reference": "9f7a229a69d52506914b4bc61bfdb199d90c5547" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Highlighter/zipball/9f7a229a69d52506914b4bc61bfdb199d90c5547", - "reference": "9f7a229a69d52506914b4bc61bfdb199d90c5547", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "jakub-onderka/php-console-color": "~0.2", - "php": ">=5.4.0" - }, - "require-dev": { - "jakub-onderka/php-code-style": "~1.0", - "jakub-onderka/php-parallel-lint": "~1.0", - "jakub-onderka/php-var-dump-check": "~0.1", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~1.5" - }, - "type": "library", - "autoload": { - "psr-4": { - "JakubOnderka\\PhpConsoleHighlighter\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, { - "name": "Jakub Onderka", - "email": "acci@acci.cz", - "homepage": "http://www.acci.cz/" + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" } ], - "description": "Highlight PHP code in terminal", - "time": "2018-09-29T18:48:56+00:00" + "time": "2020-05-29T17:27:14+00:00" }, { "name": "jasny/twig-extensions", @@ -2020,23 +2515,23 @@ }, { "name": "justinrainbow/json-schema", - "version": "5.2.8", + "version": "5.2.10", "source": { "type": "git", "url": "https://github.com/justinrainbow/json-schema.git", - "reference": "dcb6e1006bb5fd1e392b4daa68932880f37550d4" + "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/dcb6e1006bb5fd1e392b4daa68932880f37550d4", - "reference": "dcb6e1006bb5fd1e392b4daa68932880f37550d4", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", + "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", "shasum": "" }, "require": { "php": ">=5.3.3" }, "require-dev": { - "friendsofphp/php-cs-fixer": "~2.2.20", + "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", "json-schema/json-schema-test-suite": "1.2.0", "phpunit/phpunit": "^4.8.35" }, @@ -2082,29 +2577,32 @@ "json", "schema" ], - "time": "2019-01-14T23:55:14+00:00" + "time": "2020-05-27T16:41:55+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.7.0", + "version": "1.10.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e" + "reference": "969b211f9a51aa1f6c01d1d2aef56d3bd91598e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", - "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/969b211f9a51aa1f6c01d1d2aef56d3bd91598e5", + "reference": "969b211f9a51aa1f6c01d1d2aef56d3bd91598e5", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.1 || ^8.0" + }, + "replace": { + "myclabs/deep-copy": "self.version" }, "require-dev": { "doctrine/collections": "^1.0", "doctrine/common": "^2.6", - "phpunit/phpunit": "^4.1" + "phpunit/phpunit": "^7.1" }, "type": "library", "autoload": { @@ -2127,20 +2625,26 @@ "object", "object graph" ], - "time": "2017-10-19T19:58:43+00:00" + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2020-06-29T13:22:24+00:00" }, { "name": "nikic/php-parser", - "version": "v4.2.1", + "version": "v4.10.2", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "5221f49a608808c1e4d436df32884cbc1b821ac0" + "reference": "658f1be311a230e0907f5dfe0213742aff0596de" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/5221f49a608808c1e4d436df32884cbc1b821ac0", - "reference": "5221f49a608808c1e4d436df32884cbc1b821ac0", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/658f1be311a230e0907f5dfe0213742aff0596de", + "reference": "658f1be311a230e0907f5dfe0213742aff0596de", "shasum": "" }, "require": { @@ -2148,7 +2652,8 @@ "php": ">=7.0" }, "require-dev": { - "phpunit/phpunit": "^6.5 || ^7.0" + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" }, "bin": [ "bin/php-parse" @@ -2156,7 +2661,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "4.9-dev" } }, "autoload": { @@ -2178,7 +2683,7 @@ "parser", "php" ], - "time": "2019-02-16T20:54:15+00:00" + "time": "2020-09-26T10:30:38+00:00" }, { "name": "phar-io/manifest", @@ -2284,35 +2789,30 @@ }, { "name": "phpdocumentor/reflection-common", - "version": "1.0.1", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", "shasum": "" }, "require": { - "php": ">=5.5" - }, - "require-dev": { - "phpunit/phpunit": "^4.6" + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-2.x": "2.x-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src" - ] + "phpDocumentor\\Reflection\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2334,44 +2834,41 @@ "reflection", "static analysis" ], - "time": "2017-09-11T18:02:19+00:00" + "time": "2020-06-27T09:03:43+00:00" }, { "name": "phpdocumentor/reflection-docblock", - "version": "4.3.0", + "version": "5.2.2", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "94fd0001232e47129dd3504189fa1c7225010d08" + "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08", - "reference": "94fd0001232e47129dd3504189fa1c7225010d08", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", + "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", "shasum": "" }, "require": { - "php": "^7.0", - "phpdocumentor/reflection-common": "^1.0.0", - "phpdocumentor/type-resolver": "^0.4.0", - "webmozart/assert": "^1.0" + "ext-filter": "*", + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.3", + "webmozart/assert": "^1.9.1" }, "require-dev": { - "doctrine/instantiator": "~1.0.5", - "mockery/mockery": "^1.0", - "phpunit/phpunit": "^6.4" + "mockery/mockery": "~1.3.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.x-dev" + "dev-master": "5.x-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] + "phpDocumentor\\Reflection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -2382,44 +2879,45 @@ { "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": "2017-11-30T07:14:17+00:00" + "time": "2020-09-03T19:13:55+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "0.4.0", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" + "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", "shasum": "" }, "require": { - "php": "^5.5 || ^7.0", - "phpdocumentor/reflection-common": "^1.0" + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^5.2||^4.8.24" + "ext-tokenizer": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-1.x": "1.x-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] + "phpDocumentor\\Reflection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -2432,42 +2930,43 @@ "email": "me@mikevanriel.com" } ], - "time": "2017-07-14T14:27:02+00:00" + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "time": "2020-09-17T18:55:26+00:00" }, { "name": "phpspec/prophecy", - "version": "1.8.0", + "version": "v1.10.3", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06" + "reference": "451c3cd1418cf640de218914901e51b064abb093" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06", - "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093", + "reference": "451c3cd1418cf640de218914901e51b064abb093", "shasum": "" }, "require": { "doctrine/instantiator": "^1.0.2", "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", - "sebastian/comparator": "^1.1|^2.0|^3.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.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" }, "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", + "phpspec/phpspec": "^2.5 || ^3.2", "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8.x-dev" + "dev-master": "1.10.x-dev" } }, "autoload": { - "psr-0": { - "Prophecy\\": "src/" + "psr-4": { + "Prophecy\\": "src/Prophecy" } }, "notification-url": "https://packagist.org/downloads/", @@ -2495,7 +2994,7 @@ "spy", "stub" ], - "time": "2018-08-05T17:53:17+00:00" + "time": "2020-03-05T15:02:03+00:00" }, { "name": "phpunit/php-code-coverage", @@ -2744,6 +3243,7 @@ "keywords": [ "tokenizer" ], + "abandoned": true, "time": "2017-11-27T05:48:46+00:00" }, { @@ -2892,32 +3392,30 @@ }, { "name": "psy/psysh", - "version": "v0.9.9", + "version": "v0.10.4", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "9aaf29575bb8293206bb0420c1e1c87ff2ffa94e" + "reference": "a8aec1b2981ab66882a01cce36a49b6317dc3560" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/9aaf29575bb8293206bb0420c1e1c87ff2ffa94e", - "reference": "9aaf29575bb8293206bb0420c1e1c87ff2ffa94e", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/a8aec1b2981ab66882a01cce36a49b6317dc3560", + "reference": "a8aec1b2981ab66882a01cce36a49b6317dc3560", "shasum": "" }, "require": { - "dnoegel/php-xdg-base-dir": "0.1", + "dnoegel/php-xdg-base-dir": "0.1.*", "ext-json": "*", "ext-tokenizer": "*", - "jakub-onderka/php-console-highlighter": "0.3.*|0.4.*", - "nikic/php-parser": "~1.3|~2.0|~3.0|~4.0", - "php": ">=5.4.0", - "symfony/console": "~2.3.10|^2.4.2|~3.0|~4.0", - "symfony/var-dumper": "~2.7|~3.0|~4.0" + "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" }, "require-dev": { "bamarni/composer-bin-plugin": "^1.2", - "hoa/console": "~2.15|~3.16", - "phpunit/phpunit": "~4.8.35|~5.0|~6.0|~7.0" + "hoa/console": "3.17.*" }, "suggest": { "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", @@ -2932,7 +3430,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-develop": "0.9.x-dev" + "dev-master": "0.10.x-dev" } }, "autoload": { @@ -2962,7 +3460,7 @@ "interactive", "shell" ], - "time": "2018-10-13T15:16:03+00:00" + "time": "2020-05-03T19:32:03+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -3177,16 +3675,16 @@ }, { "name": "sebastian/exporter", - "version": "3.1.0", + "version": "3.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" + "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e", + "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e", "shasum": "" }, "require": { @@ -3213,6 +3711,10 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, { "name": "Jeff Welch", "email": "whatthejeff@gmail.com" @@ -3221,17 +3723,13 @@ "name": "Volker Dusch", "email": "github@wallbash.com" }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, { "name": "Adam Harvey", "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" } ], "description": "Provides the functionality to export PHP variables for visualization", @@ -3240,7 +3738,7 @@ "export", "exporter" ], - "time": "2017-04-03T13:19:02+00:00" + "time": "2019-09-14T09:02:43+00:00" }, { "name": "sebastian/global-state", @@ -3525,20 +4023,20 @@ }, { "name": "seld/jsonlint", - "version": "1.7.1", + "version": "1.8.2", "source": { "type": "git", "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "d15f59a67ff805a44c50ea0516d2341740f81a38" + "reference": "590cfec960b77fd55e39b7d9246659e95dd6d337" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/d15f59a67ff805a44c50ea0516d2341740f81a38", - "reference": "d15f59a67ff805a44c50ea0516d2341740f81a38", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/590cfec960b77fd55e39b7d9246659e95dd6d337", + "reference": "590cfec960b77fd55e39b7d9246659e95dd6d337", "shasum": "" }, "require": { - "php": "^5.3 || ^7.0" + "php": "^5.3 || ^7.0 || ^8.0" }, "require-dev": { "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" @@ -3570,20 +4068,30 @@ "parser", "validator" ], - "time": "2018-01-24T12:46:19+00:00" + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint", + "type": "tidelift" + } + ], + "time": "2020-08-25T06:56:57+00:00" }, { "name": "seld/phar-utils", - "version": "1.0.1", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/Seldaek/phar-utils.git", - "reference": "7009b5139491975ef6486545a39f3e6dad5ac30a" + "reference": "8674b1d84ffb47cc59a101f5d5a3b61e87d23796" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/7009b5139491975ef6486545a39f3e6dad5ac30a", - "reference": "7009b5139491975ef6486545a39f3e6dad5ac30a", + "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/8674b1d84ffb47cc59a101f5d5a3b61e87d23796", + "reference": "8674b1d84ffb47cc59a101f5d5a3b61e87d23796", "shasum": "" }, "require": { @@ -3612,22 +4120,22 @@ ], "description": "PHAR file format utilities, for when PHP phars you up", "keywords": [ - "phra" + "phar" ], - "time": "2015-10-13T18:44:15+00:00" + "time": "2020-07-07T18:42:57+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "3.4.2", + "version": "3.5.8", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "b8a7362af1cc1aadb5bd36c3defc4dda2cf5f0a8" + "reference": "9d583721a7157ee997f235f327de038e7ea6dac4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/b8a7362af1cc1aadb5bd36c3defc4dda2cf5f0a8", - "reference": "b8a7362af1cc1aadb5bd36c3defc4dda2cf5f0a8", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/9d583721a7157ee997f235f327de038e7ea6dac4", + "reference": "9d583721a7157ee997f235f327de038e7ea6dac4", "shasum": "" }, "require": { @@ -3665,29 +4173,29 @@ "phpcs", "standards" ], - "time": "2019-04-10T23:49:02+00:00" + "time": "2020-10-23T02:01:07+00:00" }, { "name": "symfony/finder", - "version": "v3.4.26", + "version": "v4.4.15", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "61af5ce0b34b942d414fe8f1b11950d0e9a90e98" + "reference": "60d08560f9aa72997c44077c40d47aa28a963230" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/61af5ce0b34b942d414fe8f1b11950d0e9a90e98", - "reference": "61af5ce0b34b942d414fe8f1b11950d0e9a90e98", + "url": "https://api.github.com/repos/symfony/finder/zipball/60d08560f9aa72997c44077c40d47aa28a963230", + "reference": "60d08560f9aa72997c44077c40d47aa28a963230", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "php": ">=7.1.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -3714,29 +4222,116 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2019-04-02T19:54:57+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": "2020-10-02T07:34:48+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cede45fcdfabdd6043b3592e83678e42ec69e930", + "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "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.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "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": "2020-10-23T14:02:19+00:00" }, { "name": "symfony/process", - "version": "v3.4.26", + "version": "v4.4.15", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "a9c4dfbf653023b668c282e4e02609d131f4057a" + "reference": "9b887acc522935f77555ae8813495958c7771ba7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/a9c4dfbf653023b668c282e4e02609d131f4057a", - "reference": "a9c4dfbf653023b668c282e4e02609d131f4057a", + "url": "https://api.github.com/repos/symfony/process/zipball/9b887acc522935f77555ae8813495958c7771ba7", + "reference": "9b887acc522935f77555ae8813495958c7771ba7", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "php": ">=7.1.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -3763,42 +4358,64 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2019-04-08T16:15:54+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": "2020-09-02T16:08:58+00:00" }, { "name": "symfony/var-dumper", - "version": "v3.4.26", + "version": "v4.4.15", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "f0883812642a6d6583a9e2ae6aec4ba134436f40" + "reference": "0dc22bdf9d1197467bb04d505355180b6f20bcca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/f0883812642a6d6583a9e2ae6aec4ba134436f40", - "reference": "f0883812642a6d6583a9e2ae6aec4ba134436f40", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/0dc22bdf9d1197467bb04d505355180b6f20bcca", + "reference": "0dc22bdf9d1197467bb04d505355180b6f20bcca", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-mbstring": "~1.0" + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php72": "~1.5", + "symfony/polyfill-php80": "^1.15" }, "conflict": { - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/console": "<3.4" }, "require-dev": { "ext-iconv": "*", - "twig/twig": "~1.34|~2.4" + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/process": "^4.4|^5.0", + "twig/twig": "^1.34|^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", - "ext-symfony_debug": "" + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" }, + "bin": [ + "Resources/bin/var-dump-server" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -3832,27 +4449,41 @@ "debug", "dump" ], - "time": "2019-04-16T13:58:17+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": "2020-09-18T08:35:10+00:00" }, { "name": "theseer/tokenizer", - "version": "1.1.2", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "1c42705be2b6c1de5904f8afacef5895cab44bf8" + "reference": "75a63c33a8577608444246075ea0af0d052e452a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/1c42705be2b6c1de5904f8afacef5895cab44bf8", - "reference": "1c42705be2b6c1de5904f8afacef5895cab44bf8", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a", + "reference": "75a63c33a8577608444246075ea0af0d052e452a", "shasum": "" }, "require": { "ext-dom": "*", "ext-tokenizer": "*", "ext-xmlwriter": "*", - "php": "^7.0" + "php": "^7.2 || ^8.0" }, "type": "library", "autoload": { @@ -3872,35 +4503,40 @@ } ], "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "time": "2019-04-04T09:56:43+00:00" + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2020-07-12T23:59:07+00:00" }, { "name": "twig/twig", - "version": "v1.39.1", + "version": "v1.43.1", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "23e7b6f0cfa1d7ba3de69f30d8e05cf957412fec" + "reference": "2311602f6a208715252febe682fa7c38e56a3373" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/23e7b6f0cfa1d7ba3de69f30d8e05cf957412fec", - "reference": "23e7b6f0cfa1d7ba3de69f30d8e05cf957412fec", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/2311602f6a208715252febe682fa7c38e56a3373", + "reference": "2311602f6a208715252febe682fa7c38e56a3373", "shasum": "" }, "require": { - "php": ">=5.4.0", + "php": ">=7.1.3", "symfony/polyfill-ctype": "^1.8" }, "require-dev": { "psr/container": "^1.0", - "symfony/debug": "^2.7", - "symfony/phpunit-bridge": "^3.4.19|^4.1.8" + "symfony/phpunit-bridge": "^4.4.9|^5.0.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.39-dev" + "dev-master": "1.43-dev" } }, "autoload": { @@ -3922,15 +4558,14 @@ "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" - }, - { - "name": "Twig Team", - "homepage": "https://twig.symfony.com/contributors", - "role": "Contributors" } ], "description": "Twig, the flexible, fast, and secure template language for PHP", @@ -3938,7 +4573,17 @@ "keywords": [ "templating" ], - "time": "2019-04-16T17:12:57+00:00" + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" + } + ], + "time": "2020-08-05T15:05:05+00:00" }, { "name": "umpirsky/twig-php-function", @@ -3983,32 +4628,30 @@ }, { "name": "webmozart/assert", - "version": "1.4.0", + "version": "1.9.1", "source": { "type": "git", "url": "https://github.com/webmozart/assert.git", - "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9" + "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9", - "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9", + "url": "https://api.github.com/repos/webmozart/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", + "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0", + "php": "^5.3.3 || ^7.0 || ^8.0", "symfony/polyfill-ctype": "^1.8" }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<3.9.1" + }, "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" + "phpunit/phpunit": "^4.8.36 || ^7.5.13" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } - }, "autoload": { "psr-4": { "Webmozart\\Assert\\": "src/" @@ -4030,19 +4673,19 @@ "check", "validate" ], - "time": "2018-12-25T11:19:39+00:00" + "time": "2020-07-08T17:02:28+00:00" }, { "name": "wyrihaximus/twig-view", "version": "4.3.8", "source": { "type": "git", - "url": "https://github.com/WyriHaximus/TwigView.git", + "url": "https://github.com/cakephp/legacy-twig-view.git", "reference": "a5ec66690aa045d6eda17ab1c8a5baf0efdcfa45" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/WyriHaximus/TwigView/zipball/a5ec66690aa045d6eda17ab1c8a5baf0efdcfa45", + "url": "https://api.github.com/repos/cakephp/legacy-twig-view/zipball/a5ec66690aa045d6eda17ab1c8a5baf0efdcfa45", "reference": "a5ec66690aa045d6eda17ab1c8a5baf0efdcfa45", "shasum": "" }, @@ -4104,6 +4747,7 @@ }, "platform-dev": [], "platform-overrides": { - "php": "7.0.10" - } + "php": "7.2" + }, + "plugin-api-version": "1.1.0" } diff --git a/config/.env.default b/config/.env.default index 83662154f..15060f7be 100644 --- a/config/.env.default +++ b/config/.env.default @@ -4,6 +4,9 @@ # the aspects of your application that vary by # environment. # +# Having this file in production is considered a **SECURITY RISK** and also decreases +# the boostrap performance of your application. +# # To use this file, first copy it into `config/.env`. Also ensure the related # code block for loading this file is uncommented in `config/boostrap.php` # @@ -14,6 +17,7 @@ export APP_NAME="__APP_NAME__" export DEBUG="true" export APP_ENCODING="UTF-8" export APP_DEFAULT_LOCALE="en_US" +export APP_DEFAULT_TIMEZONE="UTC" export SECURITY_SALT="__SALT__" # Uncomment these to define cache configuration via environment variables. @@ -30,5 +34,5 @@ export SECURITY_SALT="__SALT__" #export DATABASE_TEST_URL="mysql://my_app:secret@localhost/test_${APP_NAME}?encoding=utf8&timezone=UTC&cacheMetadata=true"eIdentifiers=false&persistent=false" # Uncomment these to define logging configuration via environment variables. -#export LOG_DEBUG_URL="file://logs?levels[]=notice&levels[]=info&levels[]=debug&file=debug" -#export LOG_ERROR_URL="file://logs?levels[]=warning&levels[]=error&levels[]=critical&levels[]=alert&levels[]=emergency&file=error" +#export LOG_DEBUG_URL="file://logs/?levels[]=notice&levels[]=info&levels[]=debug&file=debug" +#export LOG_ERROR_URL="file://logs/?levels[]=warning&levels[]=error&levels[]=critical&levels[]=alert&levels[]=emergency&file=error" diff --git a/config/app.default.php b/config/app.default.php index 6072e677e..57f8ccdac 100644 --- a/config/app.default.php +++ b/config/app.default.php @@ -1,6 +1,14 @@ filter_var(env('DEBUG', true), FILTER_VALIDATE_BOOLEAN), - /** + /* * Configure basic information about the application. * * - namespace - The namespace to find app classes under. @@ -28,7 +36,10 @@ * /.htaccess * /webroot/.htaccess * And uncomment the baseUrl key below. - * - fullBaseUrl - A base URL to use for absolute links. + * - 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. @@ -40,11 +51,12 @@ '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'), + //'baseUrl' => env('SCRIPT_NAME'), 'fullBaseUrl' => false, 'imageBaseUrl' => 'img/', 'cssBaseUrl' => 'css/', @@ -56,7 +68,7 @@ ], ], - /** + /* * Security and encryption configuration * * - salt - A random string used in security hashing methods. @@ -64,10 +76,10 @@ * You should treat it as extremely sensitive data. */ 'Security' => [ - 'salt' => env('SECURITY_SALT', '__SALT__'), + '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. @@ -76,27 +88,28 @@ * enable timestamping regardless of debug value. */ 'Asset' => [ - // 'timestamp' => true, + //'timestamp' => true, + // 'cacheTime' => '+1 year' ], - /** + /* * Configure the cache adapters. */ 'Cache' => [ 'default' => [ - 'className' => 'File', + 'className' => FileEngine::class, 'path' => CACHE, 'url' => env('CACHE_DEFAULT_URL', null), ], - /** + /* * 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' => 'File', + 'className' => FileEngine::class, 'prefix' => 'myapp_cake_core_', 'path' => CACHE . 'persistent/', 'serialize' => true, @@ -104,23 +117,37 @@ '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' => 'File', + 'className' => FileEngine::class, 'prefix' => 'myapp_cake_model_', 'path' => CACHE . 'models/', '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 @@ -144,20 +171,20 @@ * - `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\Network\Exception\NotFoundException', 'Cake\Network\Exception\UnauthorizedException']` + * `'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. */ 'Error' => [ 'errorLevel' => E_ALL, - 'exceptionRenderer' => 'Cake\Error\ExceptionRenderer', + 'exceptionRenderer' => ExceptionRenderer::class, 'skipLog' => [], 'log' => true, 'trace' => true, ], - /** + /* * Email configuration. * * By defining transports separately from delivery profiles you can easily @@ -178,20 +205,26 @@ */ 'EmailTransport' => [ 'default' => [ - 'className' => 'Mail', - // The following keys are used in SMTP transports + 'className' => MailTransport::class, + /* + * The keys host, port, timeout, username, password, client and tls + * are used in SMTP transports + */ 'host' => 'localhost', 'port' => 25, 'timeout' => 30, - 'username' => null, - 'password' => null, + /* + * It is recommended to set these options through your environment or app_local.php + */ + //'username' => null, + //'password' => null, 'client' => null, - 'tls' => null, + 'tls' => false, 'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null), ], ], - /** + /* * Email delivery profiles * * Delivery profiles allow you to predefine various properties about email @@ -204,41 +237,55 @@ '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. - * Do not use periods in database name - it may lead to error. - * See https://github.com/cakephp/cakephp/issues/6471 for details. - * Drivers include Mysql Postgres Sqlite Sqlserver - * See vendor\cakephp\cakephp\src\Database\Driver for complete list + * + * ### 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' => [ 'default' => [ - 'className' => 'Cake\Database\Connection', - 'driver' => 'Cake\Database\Driver\Mysql', + 'className' => Connection::class, + 'driver' => Mysql::class, 'persistent' => false, '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' => 'my_app', - 'encoding' => 'utf8', + /* + * It is recommended to set these options through your environment or app_local.php + */ + //'username' => 'my_app', + //'password' => 'secret', + //'database' => 'my_app', + /* + * You do not need to set this flag to use full utf-8 encoding (internal default since CakePHP 3.6). + */ + //'encoding' => 'utf8mb4', 'timezone' => 'UTC', '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 @@ -248,7 +295,7 @@ */ '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 @@ -260,19 +307,19 @@ 'url' => env('DATABASE_URL', null), ], - /** + /* * The test connection is used during the test suite. */ 'test' => [ - 'className' => 'Cake\Database\Connection', - 'driver' => 'Cake\Database\Driver\Mysql', + 'className' => Connection::class, + 'driver' => Mysql::class, 'persistent' => false, 'host' => 'localhost', //'port' => 'non_standard_port_number', 'username' => 'my_app', 'password' => 'secret', 'database' => 'test_myapp', - 'encoding' => 'utf8', + //'encoding' => 'utf8mb4', 'timezone' => 'UTC', 'cacheMetadata' => true, 'quoteIdentifiers' => false, @@ -282,12 +329,12 @@ ], ], - /** + /* * Configures logging options */ 'Log' => [ 'debug' => [ - 'className' => 'Cake\Log\Engine\FileLog', + 'className' => FileLog::class, 'path' => LOGS, 'file' => 'debug', 'url' => env('LOG_DEBUG_URL', null), @@ -295,7 +342,7 @@ 'levels' => ['notice', 'info', 'debug'], ], 'error' => [ - 'className' => 'Cake\Log\Engine\FileLog', + 'className' => FileLog::class, 'path' => LOGS, 'file' => 'error', 'url' => env('LOG_ERROR_URL', null), @@ -304,7 +351,7 @@ ], // To enable this dedicated query log, you need set your datasource's log flag to true 'queries' => [ - 'className' => 'Cake\Log\Engine\FileLog', + 'className' => FileLog::class, 'path' => LOGS, 'file' => 'queries', 'url' => env('LOG_QUERIES_URL', null), @@ -312,7 +359,7 @@ ], ], - /** + /* * Session configuration. * * Contains an array of settings to use for session configuration. The diff --git a/config/app.php b/config/app.php index 050c5a2d7..b83d52fa3 100644 --- a/config/app.php +++ b/config/app.php @@ -1,389 +1,404 @@ ~`+=,.;:/?|'; - - // Convert the hash to an int to seed the RNG - srand(hexdec(substr($hash,0,8))); - // Create a random string the same length as the default - $val = ''; - for($i = 1; $i <= strlen($original); $i++){ - $val .= substr( $chars, rand(0,strlen($chars))-1, 1); - } - // Reset the RNG - srand(); - // Return the value - return $val; - -} +use Cake\Cache\Engine\FileEngine; +use Cake\Database\Connection; +use Cake\Database\Driver\Mysql; +use Cake\Error\ExceptionRenderer; +use Cake\Log\Engine\FileLog; +use Cake\Mailer\Transport\MailTransport; return [ - /** - * Debug Level: - * - * Production Mode: - * false: No error messages, errors, or warnings shown. - * - * Development Mode: - * true: Errors and warnings shown. - */ - 'debug' => filter_var(env('DEBUG', true), FILTER_VALIDATE_BOOLEAN), + /* + * Debug Level: + * + * Production Mode: + * false: No error messages, errors, or warnings shown. + * + * Development Mode: + * true: Errors and warnings shown. + */ + 'debug' => 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' => [APP . 'Template' . DS], + 'locales' => [APP . 'Locale' . DS], + ], + ], - /** - * 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. - * - 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'), - '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' => [APP . 'Template' . DS], - 'locales' => [APP . 'Locale' . 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'), + ], - /** - * 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', create_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' + ], - /** - * 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, - ], + /* + * Configure the cache adapters. + */ + 'Cache' => [ + 'default' => [ + 'className' => FileEngine::class, + 'path' => CACHE, + 'url' => env('CACHE_DEFAULT_URL', null), + ], - /** - * Configure the cache adapters. - */ - 'Cache' => [ - 'default' => [ - 'className' => 'File', - 'path' => CACHE, - 'url' => env('CACHE_DEFAULT_URL', null), - ], + /* + * 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/', + 'serialize' => true, + 'duration' => '+1 years', + 'url' => env('CACHE_CAKECORE_URL', null), + ], - /** - * 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' => 'File', - 'prefix' => 'myapp_cake_core_', - 'path' => CACHE . 'persistent/', - '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/', + 'serialize' => true, + 'duration' => '+1 years', + 'url' => env('CACHE_CAKEMODEL_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' => 'File', - 'prefix' => 'myapp_cake_model_', - 'path' => CACHE . 'models/', - '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. If you choose a custom class you should place - * the file for that class in src/Error. This class needs to implement a - * render method. - * - `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\Network\Exception\NotFoundException', 'Cake\Network\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. - */ - 'Error' => [ - 'errorLevel' => E_ALL & ~E_USER_DEPRECATED, - 'exceptionRenderer' => 'Cake\Error\ExceptionRenderer', - 'skipLog' => [], - 'log' => true, - 'trace' => true, - ], + /* + * 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. If you choose a custom class you should place + * the file for that class in src/Error. This class needs to implement a + * render method. + * - `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. + */ + 'Error' => [ + 'errorLevel' => E_ALL, + 'exceptionRenderer' => ExceptionRenderer::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' => 'Mail', - // The following keys are used in SMTP transports - 'host' => 'localhost', - 'port' => 25, - 'timeout' => 30, - 'username' => null, - 'password' => null, - 'client' => null, - 'tls' => null, - 'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null), - ], - ], + /* + * 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' => null, + //'password' => null, + 'client' => null, + 'tls' => false, + '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', - //'charset' => 'utf-8', - //'headerCharset' => 'utf-8', - ], - ], + /* + * 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. - * Do not use periods in database name - it may lead to error. - * See https://github.com/cakephp/cakephp/issues/6471 for details. - * Drivers include Mysql Postgres Sqlite Sqlserver - * See vendor\cakephp\cakephp\src\Database\Driver for complete list - */ - 'Datasources' => [ - 'default' => [ - 'className' => 'Cake\Database\Connection', - 'driver' => 'Cake\Database\Driver\\' . ucfirst(env('DATABASE_ENGINE', 'Mysql')), - 'persistent' => false, - 'host' => env(strtoupper(env("DATABASE_SERVICE_NAME", 'Mysql'))."_SERVICE_HOST", ''), - /** - * 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' => env(strtoupper(env("DATABASE_SERVICE_NAME", 'Mysql'))."_SERVICE_PORT", ''), - 'username' => env("DATABASE_USER", ''), - 'password' => env("DATABASE_PASSWORD", ''), - 'database' => env("DATABASE_NAME", ''), - 'encoding' => 'utf8', - 'timezone' => 'UTC', - 'flags' => [], - 'cacheMetadata' => true, - 'log' => false, + /* + * 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' => [ + 'default' => [ + 'className' => Connection::class, + 'driver' => Mysql::class, + 'persistent' => false, + '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', + /* + * It is recommended to set these options through your environment or app_local.php + */ + //'username' => 'my_app', + //'password' => 'secret', + //'database' => 'my_app', + /* + * You do not need to set this flag to use full utf-8 encoding (internal default since CakePHP 3.6). + */ + //'encoding' => 'utf8mb4', + 'timezone' => 'UTC', + '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, + /* + * 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'], + /* + * 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), - ], + 'url' => env('DATABASE_URL', null), + ], - /** - * The test connection is used during the test suite. - */ - 'test' => [ - 'className' => 'Cake\Database\Connection', - 'driver' => 'Cake\Database\Driver\\' . ucfirst(env('DATABASE_ENGINE', 'Mysql')), - 'persistent' => false, - 'database' => 'test_database', - 'encoding' => 'utf8', - 'timezone' => 'UTC', - 'cacheMetadata' => true, - 'quoteIdentifiers' => false, - 'log' => false, - 'url' => env('DATABASE_TEST_URL', null), - ], - ], + /* + * The test connection is used during the test suite. + */ + 'test' => [ + 'className' => Connection::class, + 'driver' => Mysql::class, + 'persistent' => false, + 'host' => 'localhost', + //'port' => 'non_standard_port_number', + 'username' => 'my_app', + 'password' => 'secret', + 'database' => 'test_myapp', + //'encoding' => 'utf8mb4', + 'timezone' => 'UTC', + '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' => 'Cake\Log\Engine\FileLog', - 'path' => LOGS, - 'file' => 'debug', - 'url' => env('LOG_DEBUG_URL', null), - 'scopes' => false, - 'levels' => ['notice', 'info', 'debug'], - ], - 'error' => [ - 'className' => 'Cake\Log\Engine\FileLog', - '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' => 'Cake\Log\Engine\FileLog', - 'path' => LOGS, - 'file' => 'queries', - 'url' => env('LOG_QUERIES_URL', null), - 'scopes' => ['queriesLog'], - ], - ], + /* + * 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 'CAKEPHP'. 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', - ], + /* + * 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 'CAKEPHP'. 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.php b/config/app_local.php new file mode 100644 index 000000000..c47a79598 --- /dev/null +++ b/config/app_local.php @@ -0,0 +1,131 @@ +~`+=,.;:/?|'; + + // Convert the hash to an int to seed the RNG + srand(hexdec(substr($hash,0,8))); + // Create a random string the same length as the default + $val = ''; + for($i = 1; $i <= strlen($original); $i++){ + $val .= substr( $chars, rand(0,strlen($chars))-1, 1); + } + // Reset the RNG + srand(); + // Return the value + return $val; + +} + +return [ + + 'debug' => filter_var(env('DEBUG', true), FILTER_VALIDATE_BOOLEAN), + /* + * 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', create_salt()), + ], + + /* + * Connection information used by the ORM to connect + * to your application's datastores. + * + * See app.php for more configuration options. + */ + 'Datasources' => [ + 'default' => [ + 'className' => Connection::class, + 'driver' => 'Cake\Database\Driver\\' . ucfirst(env('DATABASE_ENGINE', 'Mysql')), + 'persistent' => false, + 'host' => env(strtoupper(env("DATABASE_SERVICE_NAME", 'Mysql'))."_SERVICE_HOST", ''), + /** + * 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' => env(strtoupper(env("DATABASE_SERVICE_NAME", 'Mysql'))."_SERVICE_PORT", ''), + 'username' => env("DATABASE_USER", ''), + 'password' => env("DATABASE_PASSWORD", ''), + 'database' => env("DATABASE_NAME", ''), + 'encoding' => 'utf8', /* + * You do not need to set this flag to use full utf-8 encoding (internal default since CakePHP 3.6). + */ + //'encoding' => 'utf8mb4', + 'timezone' => 'UTC', + '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' => 'Cake\Database\Driver\\' . ucfirst(env('DATABASE_ENGINE', 'Mysql')), + 'persistent' => false, + 'database' => 'test_database', + //'encoding' => 'utf8mb4', + 'timezone' => 'UTC', + 'cacheMetadata' => true, + 'quoteIdentifiers' => false, + 'log' => false, + //'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'], + 'url' => env('DATABASE_TEST_URL', null), + ], + ], + +]; diff --git a/config/bootstrap.php b/config/bootstrap.php index f521b6e80..8c4ef3cc7 100755 --- a/config/bootstrap.php +++ b/config/bootstrap.php @@ -31,23 +31,26 @@ use Cake\Cache\Cache; use Cake\Console\ConsoleErrorHandler; -use Cake\Core\App; use Cake\Core\Configure; use Cake\Core\Configure\Engine\PhpConfig; -use Cake\Core\Plugin; use Cake\Database\Type; use Cake\Datasource\ConnectionManager; use Cake\Error\ErrorHandler; use Cake\Http\ServerRequest; use Cake\Log\Log; use Cake\Mailer\Email; -use Cake\Utility\Inflector; +use Cake\Mailer\TransportFactory; +//use Cake\Utility\Inflector; use Cake\Utility\Security; -/** +/* * Uncomment block of code below if you want to use `.env` file during development. * You should copy `config/.env.default to `config/.env` and set/modify the * variables as required. + * + * It is HIGHLY discouraged to use a .env file in production, due to security risks + * and decreased performance on each request. The purpose of the .env file is to emulate + * the presence of the environment variables like they would be present in production. */ // if (!env('APP_NAME') && file_exists(CONFIG . '.env')) { // $dotenv = new \josegonzalez\Dotenv\Loader([CONFIG . '.env']); @@ -77,7 +80,9 @@ * You can use a file like app_local.php to provide local overrides to your * shared configuration. */ -//Configure::load('app_local', 'default'); +if (file_exists(CONFIG . 'app_local.php')) { + Configure::load('app_local', 'default'); +} /* * When debug = true the metadata cache should only last @@ -86,14 +91,15 @@ if (Configure::read('debug')) { Configure::write('Cache._cake_model_.duration', '+2 minutes'); Configure::write('Cache._cake_core_.duration', '+2 minutes'); + // disable router cache during development + 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. @@ -144,7 +150,7 @@ Cache::setConfig(Configure::consume('Cache')); ConnectionManager::setConfig(Configure::consume('Datasources')); -Email::setConfigTransport(Configure::consume('EmailTransport')); +TransportFactory::setConfig(Configure::consume('EmailTransport')); Email::setConfig(Configure::consume('Email')); Log::setConfig(Configure::consume('Log')); Security::setSalt(Configure::consume('Security.salt')); @@ -176,7 +182,7 @@ * 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/3.0/en/core-libraries/internationalization-and-localization.html#parsing-localized-datetime-data + * @link https://book.cakephp.org/3/en/core-libraries/internationalization-and-localization.html#parsing-localized-datetime-data */ Type::build('time') ->useImmutable(); @@ -196,21 +202,3 @@ //Inflector::rules('irregular', ['red' => 'redlings']); //Inflector::rules('uninflected', ['dontinflectme']); //Inflector::rules('transliteration', ['/å/' => 'aa']); - -/* - * 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 - * - */ - -/* - * Only try to load DebugKit in development mode - * Debug Kit should not be installed on a production system - */ -if (Configure::read('debug')) { - Plugin::load('DebugKit', ['bootstrap' => true]); -} diff --git a/config/bootstrap_cli.php b/config/bootstrap_cli.php index 85e119e9e..d3679d754 100644 --- a/config/bootstrap_cli.php +++ b/config/bootstrap_cli.php @@ -13,8 +13,6 @@ * @license https://opensource.org/licenses/mit-license.php MIT License */ use Cake\Core\Configure; -use Cake\Core\Exception\MissingPluginException; -use Cake\Core\Plugin; /** * Additional bootstrapping and configuration for CLI environments should @@ -28,11 +26,3 @@ // Set logs to different files so they don't have permission conflicts. Configure::write('Log.debug.file', 'cli-debug'); Configure::write('Log.error.file', 'cli-error'); - -try { - Plugin::load('Bake'); -} catch (MissingPluginException $e) { - // Do not halt if the plugin is missing -} - -Plugin::load('Migrations'); diff --git a/config/paths.php b/config/paths.php index 48d004185..1c8121588 100644 --- a/config/paths.php +++ b/config/paths.php @@ -48,6 +48,10 @@ /** * File path to the webroot directory. + * + * To derive your webroot from your webserver change this to: + * + * `define('WWW_ROOT', rtrim($_SERVER['DOCUMENT_ROOT'], DS) . DS);` */ define('WWW_ROOT', ROOT . DS . 'webroot' . DS); diff --git a/config/routes.php b/config/routes.php index 43d669717..0b53d380a 100755 --- a/config/routes.php +++ b/config/routes.php @@ -17,8 +17,7 @@ * @link https://cakephp.org CakePHP(tm) Project * @license https://opensource.org/licenses/mit-license.php MIT License */ - -use Cake\Core\Plugin; +use Cake\Http\Middleware\CsrfProtectionMiddleware; use Cake\Routing\RouteBuilder; use Cake\Routing\Router; use Cake\Routing\Route\DashedRoute; @@ -40,10 +39,24 @@ * inconsistently cased URLs when used with `:plugin`, `:controller` and * `:action` markers. * + * Cache: Routes are cached to improve performance, check the RoutingMiddleware + * constructor in your `src/Application.php` file to change this behavior. + * */ Router::defaultRouteClass(DashedRoute::class); Router::scope('/', 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 via `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 @@ -60,8 +73,11 @@ * 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']);` + * + * ``` + * $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 @@ -76,7 +92,13 @@ }); /** - * Load all plugin routes. See the Plugin documentation on - * how to customize the loading of plugin routes. + * If you need a different set of middleware or none at all, + * open new scope and define routes there. + * + * ``` + * Router::scope('/api', function (RouteBuilder $routes) { + * // No $routes->applyMiddleware() here. + * // Connect API actions here. + * }); + * ``` */ -Plugin::routes(); diff --git a/health.php b/health.php index 8db455569..93a64220e 100644 --- a/health.php +++ b/health.php @@ -13,4 +13,3 @@ die("Connection failed: " . $conn->connect_error); } echo "OK"; -?> diff --git a/lib/Cake/Console/cake b/lib/Cake/Console/cake index 8a7631989..ab3f39d64 100755 --- a/lib/Cake/Console/cake +++ b/lib/Cake/Console/cake @@ -1,3 +1,4 @@ #!/usr/bin/env bash +set -m exec vendor/bin/phpunit -exit \ No newline at end of file +exit diff --git a/logs/empty b/logs/empty new file mode 100644 index 000000000..e69de29bb diff --git a/openshift/templates/cakephp-mysql-persistent.json b/openshift/templates/cakephp-mysql-persistent.json index 23e9299fa..16baea738 100644 --- a/openshift/templates/cakephp-mysql-persistent.json +++ b/openshift/templates/cakephp-mysql-persistent.json @@ -352,7 +352,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${NAMESPACE}", - "name": "mysql:8.0-el8" + "name": "mysql:8.0" } } }, diff --git a/src/Application.php b/src/Application.php index 35c7ac54d..d2bc2a56f 100644 --- a/src/Application.php +++ b/src/Application.php @@ -15,6 +15,7 @@ namespace App; use Cake\Core\Configure; +use Cake\Core\Exception\MissingPluginException; use Cake\Error\Middleware\ErrorHandlerMiddleware; use Cake\Http\BaseApplication; use Cake\Routing\Middleware\AssetMiddleware; @@ -28,6 +29,37 @@ */ class Application extends BaseApplication { + /** + * {@inheritDoc} + */ + public function bootstrap() + { + try { + $this->addPlugin('Bake'); + } catch (MissingPluginException $e) { + // Do not halt if the plugin is missing + } + + $this->addPlugin('Migrations'); + + // Call parent to load bootstrap from files. + parent::bootstrap(); + + if (PHP_SAPI === 'cli') { + $this->bootstrapCli(); + } + + /* + * Only try to load DebugKit in development mode + * Debug Kit should not be installed on a production system + */ + if (Configure::read('debug')) { + $this->addPlugin(\DebugKit\Plugin::class); + } + + // Load more plugins here + } + /** * Setup the middleware queue your application will use. * @@ -39,14 +71,45 @@ public function middleware($middlewareQueue) $middlewareQueue // Catch any exceptions in the lower layers, // and make an error page/response - ->add(ErrorHandlerMiddleware::class) + ->add(new ErrorHandlerMiddleware(null, Configure::read('Error'))) // Handle plugin/theme assets like CakePHP normally does. - ->add(AssetMiddleware::class) + ->add(new AssetMiddleware([ + 'cacheTime' => Configure::read('Asset.cacheTime') + ])) // Add routing middleware. + // 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 RoutingMiddleware($this)); return $middlewareQueue; } + + /** + * @return void + */ + protected function bootstrapCli() + { + try { + $this->addPlugin('Bake'); + } catch (MissingPluginException $e) { + // Do not halt if the plugin is missing + } + + $this->addPlugin('Migrations'); + + /* + * Only try to load DebugKit in development mode + * Debug Kit should not be installed on a production system + */ + if (Configure::read('debug')) { + $this->addPlugin(\DebugKit\Plugin::class); + } + + // Load more plugins here + } } diff --git a/src/Controller/PagesController.php b/src/Controller/PagesController.php index ffbdba765..62f1bd93f 100644 --- a/src/Controller/PagesController.php +++ b/src/Controller/PagesController.php @@ -15,8 +15,8 @@ namespace App\Controller; use Cake\Core\Configure; -use Cake\Network\Exception\ForbiddenException; -use Cake\Network\Exception\NotFoundException; +use Cake\Http\Exception\ForbiddenException; +use Cake\Http\Exception\NotFoundException; use Cake\View\Exception\MissingTemplateException; /** @@ -24,7 +24,7 @@ * * This controller will render views from Template/Pages/ * - * @link https://book.cakephp.org/3.0/en/controllers/pages-controller.html + * @link https://book.cakephp.org/3/en/controllers/pages-controller.html */ class PagesController extends AppController { @@ -34,14 +34,14 @@ class PagesController extends AppController * * @param array ...$path Path segments. * @return \Cake\Http\Response|null - * @throws \Cake\Network\Exception\ForbiddenException When a directory traversal attempt. - * @throws \Cake\Network\Exception\NotFoundException When the view file could not - * be found or \Cake\View\Exception\MissingTemplateException in debug mode. + * @throws \Cake\Http\Exception\ForbiddenException When a directory traversal attempt. + * @throws \Cake\Http\Exception\NotFoundException When the view file could not + * be found + * @throws \Cake\View\Exception\MissingTemplateException In debug mode. */ public function display(...$path) { - $count = count($path); - if (!$count) { + if (!$path) { return $this->redirect('/'); } if (in_array('..', $path, true) || in_array('.', $path, true)) { diff --git a/src/Template/Cell/empty b/src/Template/Cell/empty new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/src/Template/Cell/empty @@ -0,0 +1 @@ + diff --git a/src/Template/Layout/ajax.ctp b/src/Template/Layout/ajax.ctp index 29b439ccc..cd51169db 100644 --- a/src/Template/Layout/ajax.ctp +++ b/src/Template/Layout/ajax.ctp @@ -11,6 +11,7 @@ * @link https://cakephp.org CakePHP(tm) Project * @since 0.10.0 * @license https://opensource.org/licenses/mit-license.php MIT License + * @var \App\View\AppView $this */ echo $this->fetch('content'); diff --git a/src/Template/Layout/default.ctp.default b/src/Template/Layout/default.ctp.default index 84f0ec180..77b2828d9 100644 --- a/src/Template/Layout/default.ctp.default +++ b/src/Template/Layout/default.ctp.default @@ -11,6 +11,7 @@ * @link https://cakephp.org CakePHP(tm) Project * @since 0.10.0 * @license https://opensource.org/licenses/mit-license.php MIT License + * @var \App\View\AppView $this */ $cakeDescription = 'CakePHP: the rapid development php framework'; @@ -27,7 +28,7 @@ $cakeDescription = 'CakePHP: the rapid development php framework'; Html->meta('icon') ?> Html->css('base.css') ?> - Html->css('cake.css') ?> + Html->css('style.css') ?> fetch('meta') ?> fetch('css') ?> @@ -42,7 +43,7 @@ $cakeDescription = 'CakePHP: the rapid development php framework'; diff --git a/src/Template/Layout/error.ctp b/src/Template/Layout/error.ctp index 80be38d47..7367c1bf7 100644 --- a/src/Template/Layout/error.ctp +++ b/src/Template/Layout/error.ctp @@ -23,7 +23,7 @@ Html->meta('icon') ?> Html->css('base.css') ?> - Html->css('cake.css') ?> + Html->css('style.css') ?> fetch('meta') ?> fetch('css') ?> diff --git a/src/View/AppView.php b/src/View/AppView.php index 7b92ebfe6..242ab6bde 100644 --- a/src/View/AppView.php +++ b/src/View/AppView.php @@ -18,7 +18,7 @@ /** * Application View * - * Your application’s default view class + * Your application's default view class * * @link https://book.cakephp.org/3.0/en/views.html#the-app-view */ diff --git a/src/View/Cell/empty b/src/View/Cell/empty new file mode 100644 index 000000000..e69de29bb diff --git a/tests/TestCase/ApplicationTest.php b/tests/TestCase/ApplicationTest.php index 0981ef2bd..8dbf017b0 100644 --- a/tests/TestCase/ApplicationTest.php +++ b/tests/TestCase/ApplicationTest.php @@ -15,11 +15,13 @@ namespace App\Test\TestCase; use App\Application; +use Cake\Core\Configure; use Cake\Error\Middleware\ErrorHandlerMiddleware; use Cake\Http\MiddlewareQueue; use Cake\Routing\Middleware\AssetMiddleware; use Cake\Routing\Middleware\RoutingMiddleware; use Cake\TestSuite\IntegrationTestCase; +use InvalidArgumentException; /** * ApplicationTest class @@ -27,6 +29,45 @@ class ApplicationTest extends IntegrationTestCase { + /** + * testBootstrap + * + * @return void + */ + public function testBootstrap() + { + $app = new Application(dirname(dirname(__DIR__)) . '/config'); + $app->bootstrap(); + $plugins = $app->getPlugins(); + + $this->assertCount(Configure::read('debug') ? 3 : 2, $plugins); + $this->assertSame('Bake', $plugins->get('Bake')->getName()); + $this->assertSame('Migrations', $plugins->get('Migrations')->getName()); + if (Configure::read('debug')) { + $this->assertSame('DebugKit', $plugins->get('DebugKit')->getName()); + } + } + + /** + * testBootstrapPluginWitoutHalt + * + * @return void + */ + public function testBootstrapPluginWithoutHalt() + { + $this->expectException(InvalidArgumentException::class); + + $app = $this->getMockBuilder(Application::class) + ->setConstructorArgs([dirname(dirname(__DIR__)) . '/config']) + ->setMethods(['addPlugin']) + ->getMock(); + + $app->method('addPlugin') + ->will($this->throwException(new InvalidArgumentException('test exception.'))); + + $app->bootstrap(); + } + /** * testMiddleware * diff --git a/webroot/css/cake.css b/webroot/css/style.css similarity index 99% rename from webroot/css/cake.css rename to webroot/css/style.css index 10841c893..40c1d2a9f 100644 --- a/webroot/css/cake.css +++ b/webroot/css/style.css @@ -424,7 +424,6 @@ div.message { overflow: hidden; height: 50px; line-height: 2.5em; - box-radius: 5px; } div.message:before { diff --git a/webroot/font/cakedingbats-webfont.eot b/webroot/font/cakedingbats-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..e8605d92685dc69e3555a2d46c934332ade64789 GIT binary patch literal 75538 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 J{3OkB{|TIQ9Sr~g literal 0 HcmV?d00001 diff --git a/webroot/font/cakedingbats-webfont.ttf b/webroot/font/cakedingbats-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..13d54454e71f4ed2ca3ad46bf8910b77acff1b24 GIT binary patch literal 75412 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

~D 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 literal 0 HcmV?d00001