From 75dcae6fbeec5076a06694b32b1e003c4ef352e4 Mon Sep 17 00:00:00 2001 From: Kevin Papst Date: Tue, 4 Feb 2020 15:29:26 +0100 Subject: [PATCH] update to Symfony 4.4 (#1275) --- UPGRADING.md | 3 + bin/console | 2 +- composer.json | 11 +- composer.lock | 1614 ++++++++--------- config/packages/dev/easy_log_handler.yaml | 16 - config/packages/twig.yaml | 1 + config/routes/annotations.yaml | 2 +- config/routes/dev/twig.yaml | 2 +- phpunit.xml.dist | 13 +- public/index.php | 2 +- src/API/BaseApiController.php | 9 - src/API/CustomerController.php | 6 +- src/API/ProjectController.php | 6 +- src/API/TeamController.php | 5 +- src/API/TimesheetController.php | 15 +- src/Controller/InvoiceController.php | 1 + src/Entity/Role.php | 4 +- src/Form/Type/SearchTermType.php | 2 +- src/Invoice/Calculator/AbstractCalculator.php | 9 +- src/Invoice/CalculatorInterface.php | 1 + src/Invoice/InvoiceModel.php | 12 +- src/Repository/TimesheetRepository.php | 2 +- symfony.lock | 15 +- templates/export/index.html.twig | 10 +- templates/invoice/index.html.twig | 2 +- templates/plugin/index.html.twig | 2 +- tests/API/TagControllerTest.php | 3 +- tests/API/TeamControllerTest.php | 45 +- tests/API/TimesheetControllerTest.php | 8 +- tests/Controller/AboutControllerTest.php | 2 +- tests/Controller/ActivityControllerTest.php | 18 +- tests/Controller/ControllerBaseTest.php | 6 +- tests/Controller/CustomerControllerTest.php | 22 +- tests/Controller/ExportControllerTest.php | 10 +- tests/Controller/InvoiceControllerTest.php | 17 +- tests/Controller/ProfileControllerTest.php | 4 +- tests/Controller/ProjectControllerTest.php | 28 +- tests/Controller/TagControllerTest.php | 16 +- tests/Controller/UserControllerTest.php | 2 +- tests/Event/ThemeEventTest.php | 14 +- tests/Event/UserPreferenceEventTest.php | 23 +- .../RegistrationSubscriberTest.php | 3 + .../Calculator/AbstractCalculatorTest.php | 8 +- .../ActivityInvoiceCalculatorTest.php | 4 +- .../Calculator/DateInvoiceCalculatorTest.php | 4 +- .../Calculator/DefaultCalculatorTest.php | 4 +- .../ProjectInvoiceCalculatorTest.php | 4 +- .../Calculator/ShortInvoiceCalculatorTest.php | 12 +- .../Calculator/UserInvoiceCalculatorTest.php | 4 +- tests/Invoice/InvoiceModelTest.php | 16 +- tests/Invoice/Renderer/RendererTestTrait.php | 4 +- tests/KernelTestTrait.php | 15 +- tests/Repository/WidgetRepositoryTest.php | 2 + 53 files changed, 1046 insertions(+), 1019 deletions(-) delete mode 100644 config/packages/dev/easy_log_handler.yaml diff --git a/UPGRADING.md b/UPGRADING.md index 98fcd1b4..32b1cae1 100644 --- a/UPGRADING.md +++ b/UPGRADING.md @@ -15,6 +15,9 @@ New permissions: - `comments_create_customer` - NEW: permission that allows to add new comments for customers - `comments_create_team_customer` - NEW: permission that allows to add new comments for team members of the current customer - `comments_create_teamlead_customer` - NEW: permission that allows to add new comments for a teamlead of the current customer +- `comments_create_project` - NEW: permission that allows to add new comments for project +- `comments_create_team_project` - NEW: permission that allows to add new comments for team members of the current project +- `comments_create_teamlead_project` - NEW: permission that allows to add new comments for a teamlead of the current project - `edit_teamlead_project` - removed default permission from ROLE_TEAMLEAD (if you use it: change it in the Role & Permission UI) - `edit_teamlead_customer` - removed default permission from ROLE_TEAMLEAD (if you use it: change it in the Role & Permission UI) diff --git a/bin/console b/bin/console index 1528cdc0..8b7e217f 100755 --- a/bin/console +++ b/bin/console @@ -13,7 +13,7 @@ require __DIR__.'/../vendor/autoload.php'; use App\Kernel; use Symfony\Bundle\FrameworkBundle\Console\Application; use Symfony\Component\Console\Input\ArgvInput; -use Symfony\Component\Debug\Debug; +use Symfony\Component\ErrorHandler\Debug; use Symfony\Component\Dotenv\Dotenv; if (!isset($_SERVER['APP_ENV'])) { diff --git a/composer.json b/composer.json index 273fb39a..1e264ab3 100644 --- a/composer.json +++ b/composer.json @@ -40,7 +40,6 @@ "sensio/framework-extra-bundle": "^5.2", "symfony/asset": "^4.0", "symfony/console": "^4.0", - "symfony/debug-pack": "^1.0", "symfony/dotenv": "^4.0", "symfony/expression-language": "^4.0", "symfony/flex": "^1.0", @@ -62,7 +61,7 @@ "white-october/pagerfanta-bundle": "^1.1" }, "require-dev": { - "dama/doctrine-test-bundle": "^5.0", + "dama/doctrine-test-bundle": "^6.0", "doctrine/doctrine-fixtures-bundle": "^3.2", "friendsofphp/php-cs-fixer": "^2.10", "fzaninotto/faker": "^1.8", @@ -73,9 +72,11 @@ "phpunit/phpunit": "^8.0", "symfony/browser-kit": "^4.0", "symfony/css-selector": "^4.0", + "symfony/debug-bundle": "^4.0", "symfony/maker-bundle": "^1.12", "symfony/phpunit-bridge": "^4.0", - "symfony/profiler-pack": "^1.0" + "symfony/profiler-pack": "^1.0", + "symfony/var-dumper": "^4.0" }, "repositories": [ { @@ -136,7 +137,7 @@ ], "kimai:code-lint": [ "bin/console lint:yaml config --parse-tags", - "bin/console lint:twig templates", + "bin/console lint:twig templates --show-deprecations", "bin/console lint:xliff translations", "bin/console doctrine:schema:validate --skip-sync -vvv --no-interaction" ], @@ -157,7 +158,7 @@ "symfony": { "id": "01C3FWRDJJEX9K6Y3A4XDFXPBR", "allow-contrib": true, - "require": "4.3.*" + "require": "4.4.*" } } } diff --git a/composer.lock b/composer.lock index 55a2dd0c..2544209a 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": "2fee31e8ce28cbf8048bae137c7e3f31", + "content-hash": "0367a6d800c3a64f39ccd00564953d04", "packages": [ { "name": "beberlei/doctrineextensions", @@ -1247,56 +1247,6 @@ ], "time": "2020-01-08T19:53:19+00:00" }, - { - "name": "easycorp/easy-log-handler", - "version": "v1.0.9", - "source": { - "type": "git", - "url": "https://github.com/EasyCorp/easy-log-handler.git", - "reference": "224e1dfcf9455aceee89cd0af306ac097167fac1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/EasyCorp/easy-log-handler/zipball/224e1dfcf9455aceee89cd0af306ac097167fac1", - "reference": "224e1dfcf9455aceee89cd0af306ac097167fac1", - "shasum": "" - }, - "require": { - "monolog/monolog": "~1.6|~2.0", - "php": ">=7.1", - "symfony/yaml": "^3.4|^4.0|^5.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "EasyCorp\\EasyLog\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Javier Eguiluz", - "email": "javiereguiluz@gmail.com" - }, - { - "name": "Project Contributors", - "homepage": "https://github.com/EasyCorp/easy-log-handler" - } - ], - "description": "A handler for Monolog that optimizes log messages to be processed by humans instead of software. Improve your productivity with logs that are easy to understand.", - "homepage": "https://github.com/EasyCorp/easy-log-handler", - "keywords": [ - "easy", - "log", - "logging", - "monolog", - "productivity" - ], - "time": "2019-10-24T07:13:31+00:00" - }, { "name": "egulias/email-validator", "version": "2.1.15", @@ -1442,16 +1392,16 @@ }, { "name": "friendsofsymfony/rest-bundle", - "version": "2.6.0", + "version": "2.7.0", "source": { "type": "git", "url": "https://github.com/FriendsOfSymfony/FOSRestBundle.git", - "reference": "54758949bff9fc520997415341323eebf3f54892" + "reference": "42bdfed7db4e253fbd1b295ad06777f01a6d0450" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfSymfony/FOSRestBundle/zipball/54758949bff9fc520997415341323eebf3f54892", - "reference": "54758949bff9fc520997415341323eebf3f54892", + "url": "https://api.github.com/repos/FriendsOfSymfony/FOSRestBundle/zipball/42bdfed7db4e253fbd1b295ad06777f01a6d0450", + "reference": "42bdfed7db4e253fbd1b295ad06777f01a6d0450", "shasum": "" }, "require": { @@ -1477,7 +1427,8 @@ "sensio/framework-extra-bundle": "<3.0.13" }, "require-dev": { - "jms/serializer": "^1.13|^2.0", + "friendsofphp/php-cs-fixer": "^2.0", + "jms/serializer": "^1.13|^2.0|^3.0", "jms/serializer-bundle": "^2.3.1|^3.0", "phpoption/phpoption": "^1.1", "psr/http-message": "^1.0", @@ -1506,7 +1457,7 @@ "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "2.7-dev" } }, "autoload": { @@ -1540,7 +1491,7 @@ "keywords": [ "rest" ], - "time": "2019-10-21T08:22:30+00:00" + "time": "2020-01-31T15:56:38+00:00" }, { "name": "friendsofsymfony/user-bundle", @@ -5172,24 +5123,24 @@ }, { "name": "symfony/asset", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/asset.git", - "reference": "5bdbd8878b69e3be16d036890ea3081172ea28c5" + "reference": "2c67c89d064bfb689ea6bc41217c87100bb94c17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/asset/zipball/5bdbd8878b69e3be16d036890ea3081172ea28c5", - "reference": "5bdbd8878b69e3be16d036890ea3081172ea28c5", + "url": "https://api.github.com/repos/symfony/asset/zipball/2c67c89d064bfb689ea6bc41217c87100bb94c17", + "reference": "2c67c89d064bfb689ea6bc41217c87100bb94c17", "shasum": "" }, "require": { "php": "^7.1.3" }, "require-dev": { - "symfony/http-foundation": "~3.4|~4.0", - "symfony/http-kernel": "~3.4|~4.0" + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/http-kernel": "^3.4|^4.0|^5.0" }, "suggest": { "symfony/http-foundation": "" @@ -5197,7 +5148,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -5224,34 +5175,35 @@ ], "description": "Symfony Asset Component", "homepage": "https://symfony.com", - "time": "2020-01-04T12:24:57+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "symfony/cache", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "8794ccf68ac341fc19311919d2287f7557bfccba" + "reference": "0198a01c8d918d6d717f96dfdcba9582bc5f6468" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/8794ccf68ac341fc19311919d2287f7557bfccba", - "reference": "8794ccf68ac341fc19311919d2287f7557bfccba", + "url": "https://api.github.com/repos/symfony/cache/zipball/0198a01c8d918d6d717f96dfdcba9582bc5f6468", + "reference": "0198a01c8d918d6d717f96dfdcba9582bc5f6468", "shasum": "" }, "require": { "php": "^7.1.3", "psr/cache": "~1.0", "psr/log": "~1.0", - "symfony/cache-contracts": "^1.1", - "symfony/service-contracts": "^1.1", - "symfony/var-exporter": "^4.2" + "symfony/cache-contracts": "^1.1.7|^2", + "symfony/service-contracts": "^1.1|^2", + "symfony/var-exporter": "^4.2|^5.0" }, "conflict": { "doctrine/dbal": "<2.5", "symfony/dependency-injection": "<3.4", - "symfony/var-dumper": "<3.4" + "symfony/http-kernel": "<4.4", + "symfony/var-dumper": "<4.4" }, "provide": { "psr/cache-implementation": "1.0", @@ -5264,14 +5216,14 @@ "doctrine/dbal": "~2.5", "predis/predis": "~1.1", "psr/simple-cache": "^1.0", - "symfony/config": "~4.2", - "symfony/dependency-injection": "~3.4|~4.1", - "symfony/var-dumper": "^4.1.1" + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^3.4|^4.1|^5.0", + "symfony/var-dumper": "^4.4|^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -5302,7 +5254,7 @@ "caching", "psr6" ], - "time": "2020-01-27T09:15:09+00:00" + "time": "2020-01-29T14:35:06+00:00" }, { "name": "symfony/cache-contracts", @@ -5364,32 +5316,32 @@ }, { "name": "symfony/config", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "7b7d5d35a5ba5a62f2c6c69f574e36595e587d11" + "reference": "4d3979f54472637169080f802dc82197e21fdcce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/7b7d5d35a5ba5a62f2c6c69f574e36595e587d11", - "reference": "7b7d5d35a5ba5a62f2c6c69f574e36595e587d11", + "url": "https://api.github.com/repos/symfony/config/zipball/4d3979f54472637169080f802dc82197e21fdcce", + "reference": "4d3979f54472637169080f802dc82197e21fdcce", "shasum": "" }, "require": { "php": "^7.1.3", - "symfony/filesystem": "~3.4|~4.0", + "symfony/filesystem": "^3.4|^4.0|^5.0", "symfony/polyfill-ctype": "~1.8" }, "conflict": { "symfony/finder": "<3.4" }, "require-dev": { - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/event-dispatcher": "~3.4|~4.0", - "symfony/finder": "~3.4|~4.0", - "symfony/messenger": "~4.1", - "symfony/yaml": "~3.4|~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" @@ -5397,7 +5349,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -5424,31 +5376,32 @@ ], "description": "Symfony Config Component", "homepage": "https://symfony.com", - "time": "2020-01-04T12:24:57+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "symfony/console", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "82aeab8f852a63e83d781617841237944392cd45" + "reference": "f512001679f37e6a042b51897ed24a2f05eba656" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/82aeab8f852a63e83d781617841237944392cd45", - "reference": "82aeab8f852a63e83d781617841237944392cd45", + "url": "https://api.github.com/repos/symfony/console/zipball/f512001679f37e6a042b51897ed24a2f05eba656", + "reference": "f512001679f37e6a042b51897ed24a2f05eba656", "shasum": "" }, "require": { "php": "^7.1.3", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php73": "^1.8", - "symfony/service-contracts": "^1.1" + "symfony/service-contracts": "^1.1|^2" }, "conflict": { "symfony/dependency-injection": "<3.4", - "symfony/event-dispatcher": "<4.3", + "symfony/event-dispatcher": "<4.3|>=5", + "symfony/lock": "<4.4", "symfony/process": "<3.3" }, "provide": { @@ -5456,12 +5409,12 @@ }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~3.4|~4.0", - "symfony/dependency-injection": "~3.4|~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": "~3.4|~4.0", - "symfony/process": "~3.4|~4.0", - "symfony/var-dumper": "^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", @@ -5472,7 +5425,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -5499,20 +5452,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2020-01-25T12:32:28+00:00" + "time": "2020-01-25T12:44:29+00:00" }, { "name": "symfony/debug", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "8e362996356f2555d493ee3d8285424853955e8f" + "reference": "20236471058bbaa9907382500fc14005c84601f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/8e362996356f2555d493ee3d8285424853955e8f", - "reference": "8e362996356f2555d493ee3d8285424853955e8f", + "url": "https://api.github.com/repos/symfony/debug/zipball/20236471058bbaa9907382500fc14005c84601f0", + "reference": "20236471058bbaa9907382500fc14005c84601f0", "shasum": "" }, "require": { @@ -5523,12 +5476,12 @@ "symfony/http-kernel": "<3.4" }, "require-dev": { - "symfony/http-kernel": "~3.4|~4.0" + "symfony/http-kernel": "^3.4|^4.0|^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -5555,125 +5508,29 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2020-01-25T12:32:28+00:00" - }, - { - "name": "symfony/debug-bundle", - "version": "v4.3.11", - "source": { - "type": "git", - "url": "https://github.com/symfony/debug-bundle.git", - "reference": "37f558ddd74933f0254bb5e3b6b758e1ee7ff699" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/37f558ddd74933f0254bb5e3b6b758e1ee7ff699", - "reference": "37f558ddd74933f0254bb5e3b6b758e1ee7ff699", - "shasum": "" - }, - "require": { - "ext-xml": "*", - "php": "^7.1.3", - "symfony/http-kernel": "~3.4|~4.0", - "symfony/twig-bridge": "~3.4|~4.0", - "symfony/var-dumper": "^4.1.1" - }, - "conflict": { - "symfony/config": "<4.2", - "symfony/dependency-injection": "<3.4" - }, - "require-dev": { - "symfony/config": "~4.2", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/web-profiler-bundle": "~3.4|~4.0" - }, - "suggest": { - "symfony/config": "For service container configuration", - "symfony/dependency-injection": "For using as a service from the container" - }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "4.3-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Bundle\\DebugBundle\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony DebugBundle", - "homepage": "https://symfony.com", - "time": "2020-01-04T12:24:57+00:00" - }, - { - "name": "symfony/debug-pack", - "version": "v1.0.7", - "source": { - "type": "git", - "url": "https://github.com/symfony/debug-pack.git", - "reference": "09a4a1e9bf2465987d4f79db0ad6c11cc632bc79" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/debug-pack/zipball/09a4a1e9bf2465987d4f79db0ad6c11cc632bc79", - "reference": "09a4a1e9bf2465987d4f79db0ad6c11cc632bc79", - "shasum": "" - }, - "require": { - "easycorp/easy-log-handler": "^1.0.7", - "php": "^7.0", - "symfony/debug-bundle": "*", - "symfony/monolog-bundle": "^3.0", - "symfony/profiler-pack": "*", - "symfony/var-dumper": "*" - }, - "type": "symfony-pack", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "A debug pack for Symfony projects", - "time": "2018-12-10T12:11:11+00:00" + "time": "2020-01-25T12:44:29+00:00" }, { "name": "symfony/dependency-injection", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "468bfb60a60b7caa03e4722c43f5359df47b4349" + "reference": "ec60a7d12f5e8ab0f99456adce724717d9c1784a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/468bfb60a60b7caa03e4722c43f5359df47b4349", - "reference": "468bfb60a60b7caa03e4722c43f5359df47b4349", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/ec60a7d12f5e8ab0f99456adce724717d9c1784a", + "reference": "ec60a7d12f5e8ab0f99456adce724717d9c1784a", "shasum": "" }, "require": { "php": "^7.1.3", "psr/container": "^1.0", - "symfony/service-contracts": "^1.1.6" + "symfony/service-contracts": "^1.1.6|^2" }, "conflict": { - "symfony/config": "<4.3", + "symfony/config": "<4.3|>=5.0", "symfony/finder": "<3.4", "symfony/proxy-manager-bridge": "<3.4", "symfony/yaml": "<3.4" @@ -5684,8 +5541,8 @@ }, "require-dev": { "symfony/config": "^4.3", - "symfony/expression-language": "~3.4|~4.0", - "symfony/yaml": "~3.4|~4.0" + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0" }, "suggest": { "symfony/config": "", @@ -5697,7 +5554,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -5724,20 +5581,20 @@ ], "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "time": "2020-01-14T16:43:06+00:00" + "time": "2020-01-31T09:49:27+00:00" }, { "name": "symfony/doctrine-bridge", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "64cbcf5635fb1b38131332d0b3784faeec9a9e9a" + "reference": "b8d43116f0e5abef4b7abcbeec81c3b9328ca7b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/64cbcf5635fb1b38131332d0b3784faeec9a9e9a", - "reference": "64cbcf5635fb1b38131332d0b3784faeec9a9e9a", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/b8d43116f0e5abef4b7abcbeec81c3b9328ca7b7", + "reference": "b8d43116f0e5abef4b7abcbeec81c3b9328ca7b7", "shasum": "" }, "require": { @@ -5746,14 +5603,16 @@ "php": "^7.1.3", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0", - "symfony/service-contracts": "^1.1" + "symfony/service-contracts": "^1.1|^2" }, "conflict": { "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", "symfony/dependency-injection": "<3.4", - "symfony/form": "<4.3", + "symfony/form": "<4.4", "symfony/http-kernel": "<4.3.7", - "symfony/messenger": "<4.3" + "symfony/messenger": "<4.3", + "symfony/security-core": "<4.4", + "symfony/validator": "<4.4.2|<5.0.2,>=5.0" }, "require-dev": { "doctrine/annotations": "~1.7", @@ -5763,19 +5622,20 @@ "doctrine/dbal": "~2.4", "doctrine/orm": "^2.6.3", "doctrine/reflection": "~1.0", - "symfony/config": "^4.2", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/expression-language": "~3.4|~4.0", - "symfony/form": "~4.3", + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/form": "^4.4|^5.0", "symfony/http-kernel": "^4.3.7", - "symfony/messenger": "~4.3", - "symfony/property-access": "~3.4|~4.0", - "symfony/property-info": "~3.4|~4.0", - "symfony/proxy-manager-bridge": "~3.4|~4.0", - "symfony/security-core": "~3.4|~4.0", - "symfony/stopwatch": "~3.4|~4.0", - "symfony/translation": "~3.4|~4.0", - "symfony/validator": "^3.4.31|^4.3.4" + "symfony/messenger": "^4.4|^5.0", + "symfony/property-access": "^3.4|^4.0|^5.0", + "symfony/property-info": "^3.4|^4.0|^5.0", + "symfony/proxy-manager-bridge": "^3.4|^4.0|^5.0", + "symfony/security-core": "^4.4|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/translation": "^3.4|^4.0|^5.0", + "symfony/validator": "^4.4.2|^5.0.2", + "symfony/var-dumper": "^3.4|^4.0|^5.0" }, "suggest": { "doctrine/data-fixtures": "", @@ -5788,7 +5648,7 @@ "type": "symfony-bridge", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -5815,32 +5675,32 @@ ], "description": "Symfony Doctrine Bridge", "homepage": "https://symfony.com", - "time": "2020-01-23T10:55:13+00:00" + "time": "2020-01-23T10:56:47+00:00" }, { "name": "symfony/dotenv", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/dotenv.git", - "reference": "3e41dc2a3c517819b23cb4d1c95f5116182a8dd0" + "reference": "b74a1638f53e3c65e4bbfc2a03c23fdc400fd243" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/3e41dc2a3c517819b23cb4d1c95f5116182a8dd0", - "reference": "3e41dc2a3c517819b23cb4d1c95f5116182a8dd0", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/b74a1638f53e3c65e4bbfc2a03c23fdc400fd243", + "reference": "b74a1638f53e3c65e4bbfc2a03c23fdc400fd243", "shasum": "" }, "require": { "php": "^7.1.3" }, "require-dev": { - "symfony/process": "^3.4.2|^4.0" + "symfony/process": "^3.4.2|^4.0|^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -5872,20 +5732,76 @@ "env", "environment" ], - "time": "2020-01-08T17:19:22+00:00" + "time": "2020-01-08T17:29:02+00:00" }, { - "name": "symfony/event-dispatcher", - "version": "v4.3.11", + "name": "symfony/error-handler", + "version": "v4.4.4", "source": { "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "75f99d7489409207d09c6cd75a6c773ccbb516d5" + "url": "https://github.com/symfony/error-handler.git", + "reference": "d2721499ffcaf246a743e01cdf6696d3d5dd74c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/75f99d7489409207d09c6cd75a6c773ccbb516d5", - "reference": "75f99d7489409207d09c6cd75a6c773ccbb516d5", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/d2721499ffcaf246a743e01cdf6696d3d5dd74c1", + "reference": "d2721499ffcaf246a743e01cdf6696d3d5dd74c1", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "psr/log": "~1.0", + "symfony/debug": "^4.4", + "symfony/var-dumper": "^4.4|^5.0" + }, + "require-dev": { + "symfony/http-kernel": "^4.4|^5.0", + "symfony/serializer": "^4.4|^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\ErrorHandler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony ErrorHandler Component", + "homepage": "https://symfony.com", + "time": "2020-01-27T09:48:47+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v4.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "9e3de195e5bc301704dd6915df55892f6dfc208b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9e3de195e5bc301704dd6915df55892f6dfc208b", + "reference": "9e3de195e5bc301704dd6915df55892f6dfc208b", "shasum": "" }, "require": { @@ -5901,12 +5817,12 @@ }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~3.4|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/expression-language": "~3.4|~4.0", - "symfony/http-foundation": "^3.4|^4.0", - "symfony/service-contracts": "^1.1", - "symfony/stopwatch": "~3.4|~4.0" + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/stopwatch": "^3.4|^4.0|^5.0" }, "suggest": { "symfony/dependency-injection": "", @@ -5915,7 +5831,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -5942,7 +5858,7 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2020-01-09T13:17:05+00:00" + "time": "2020-01-10T21:54:01+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -6004,27 +5920,27 @@ }, { "name": "symfony/expression-language", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/expression-language.git", - "reference": "fcc3e2085e4832f52bed94d72663962f650dfb23" + "reference": "8b145496d7e2e7103b1a1b8f1fce81c6e084b380" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/expression-language/zipball/fcc3e2085e4832f52bed94d72663962f650dfb23", - "reference": "fcc3e2085e4832f52bed94d72663962f650dfb23", + "url": "https://api.github.com/repos/symfony/expression-language/zipball/8b145496d7e2e7103b1a1b8f1fce81c6e084b380", + "reference": "8b145496d7e2e7103b1a1b8f1fce81c6e084b380", "shasum": "" }, "require": { "php": "^7.1.3", - "symfony/cache": "~3.4|~4.0", - "symfony/service-contracts": "^1.1" + "symfony/cache": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1|^2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -6051,20 +5967,20 @@ ], "description": "Symfony ExpressionLanguage Component", "homepage": "https://symfony.com", - "time": "2020-01-04T12:24:57+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "symfony/filesystem", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "fdc0ac5e64f7555818411a17993bb24be4270769" + "reference": "266c9540b475f26122b61ef8b23dd9198f5d1cfd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/fdc0ac5e64f7555818411a17993bb24be4270769", - "reference": "fdc0ac5e64f7555818411a17993bb24be4270769", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/266c9540b475f26122b61ef8b23dd9198f5d1cfd", + "reference": "266c9540b475f26122b61ef8b23dd9198f5d1cfd", "shasum": "" }, "require": { @@ -6074,7 +5990,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -6101,20 +6017,20 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2020-01-21T08:20:29+00:00" + "time": "2020-01-21T08:20:44+00:00" }, { "name": "symfony/finder", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "8174c13b932c71f10cdd8dfcd8f5e494f1e7003d" + "reference": "3a50be43515590faf812fbd7708200aabc327ec3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/8174c13b932c71f10cdd8dfcd8f5e494f1e7003d", - "reference": "8174c13b932c71f10cdd8dfcd8f5e494f1e7003d", + "url": "https://api.github.com/repos/symfony/finder/zipball/3a50be43515590faf812fbd7708200aabc327ec3", + "reference": "3a50be43515590faf812fbd7708200aabc327ec3", "shasum": "" }, "require": { @@ -6123,7 +6039,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -6150,7 +6066,7 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2020-01-04T12:24:57+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "symfony/flex", @@ -6203,27 +6119,27 @@ }, { "name": "symfony/form", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/form.git", - "reference": "05fac4992a100642806a50cc0c84fb4a8a326c14" + "reference": "442d561fa10841183f94909830d9d27bd9cf7f77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/form/zipball/05fac4992a100642806a50cc0c84fb4a8a326c14", - "reference": "05fac4992a100642806a50cc0c84fb4a8a326c14", + "url": "https://api.github.com/repos/symfony/form/zipball/442d561fa10841183f94909830d9d27bd9cf7f77", + "reference": "442d561fa10841183f94909830d9d27bd9cf7f77", "shasum": "" }, "require": { "php": "^7.1.3", "symfony/event-dispatcher": "^4.3", - "symfony/intl": "^4.3", - "symfony/options-resolver": "~4.3", + "symfony/intl": "^4.4|^5.0", + "symfony/options-resolver": "~4.3|^5.0", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0", - "symfony/property-access": "~3.4|~4.0", - "symfony/service-contracts": "~1.1" + "symfony/property-access": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1|^2" }, "conflict": { "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", @@ -6231,22 +6147,22 @@ "symfony/dependency-injection": "<3.4", "symfony/doctrine-bridge": "<3.4", "symfony/framework-bundle": "<3.4", - "symfony/http-kernel": "<4.3", + "symfony/http-kernel": "<4.4", "symfony/intl": "<4.3", "symfony/translation": "<4.2", "symfony/twig-bridge": "<3.4.5|<4.0.5,>=4.0" }, "require-dev": { "doctrine/collections": "~1.0", - "symfony/config": "~3.4|~4.0", - "symfony/console": "^4.3", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/http-foundation": "~3.4|~4.0", - "symfony/http-kernel": "~4.3", - "symfony/security-csrf": "~3.4|~4.0", - "symfony/translation": "~4.2", - "symfony/validator": "^3.4.31|^4.3.4", - "symfony/var-dumper": "^4.3" + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/console": "^4.3|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/security-csrf": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.2|^5.0", + "symfony/validator": "^3.4.31|^4.3.4|^5.0", + "symfony/var-dumper": "^4.3|^5.0" }, "suggest": { "symfony/security-csrf": "For protecting forms against CSRF attacks.", @@ -6256,7 +6172,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -6283,35 +6199,35 @@ ], "description": "Symfony Form Component", "homepage": "https://symfony.com", - "time": "2020-01-04T12:24:57+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "symfony/framework-bundle", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "4ea8f63e005af800e140c1bcfb1f748a006defd1" + "reference": "afc96daad6049cbed34312b34005d33fc670d022" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/4ea8f63e005af800e140c1bcfb1f748a006defd1", - "reference": "4ea8f63e005af800e140c1bcfb1f748a006defd1", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/afc96daad6049cbed34312b34005d33fc670d022", + "reference": "afc96daad6049cbed34312b34005d33fc670d022", "shasum": "" }, "require": { "ext-xml": "*", "php": "^7.1.3", - "symfony/cache": "^4.3.4", - "symfony/config": "^4.3.4", - "symfony/debug": "~4.0", - "symfony/dependency-injection": "^4.3", - "symfony/filesystem": "~3.4|~4.0", - "symfony/finder": "~3.4|~4.0", - "symfony/http-foundation": "^4.3", - "symfony/http-kernel": "^4.3.4", + "symfony/cache": "^4.4|^5.0", + "symfony/config": "^4.3.4|^5.0", + "symfony/dependency-injection": "^4.4.1|^5.0.1", + "symfony/error-handler": "^4.4.1|^5.0.1", + "symfony/filesystem": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/http-kernel": "^4.4", "symfony/polyfill-mbstring": "~1.0", - "symfony/routing": "^4.3" + "symfony/routing": "^4.4|^5.0" }, "conflict": { "doctrine/persistence": "<1.3", @@ -6322,50 +6238,57 @@ "symfony/browser-kit": "<4.3", "symfony/console": "<4.3", "symfony/dom-crawler": "<4.3", - "symfony/dotenv": "<4.2", + "symfony/dotenv": "<4.3.6", "symfony/form": "<4.3.5", - "symfony/messenger": "<4.3.6", + "symfony/http-client": "<4.4", + "symfony/lock": "<4.4", + "symfony/mailer": "<4.4", + "symfony/messenger": "<4.4", + "symfony/mime": "<4.4", "symfony/property-info": "<3.4", - "symfony/serializer": "<4.2", + "symfony/security-bundle": "<4.4", + "symfony/serializer": "<4.4", "symfony/stopwatch": "<3.4", - "symfony/translation": "<4.3.6", + "symfony/translation": "<4.4", "symfony/twig-bridge": "<4.1.1", - "symfony/validator": "<4.1", + "symfony/twig-bundle": "<4.4", + "symfony/validator": "<4.4", + "symfony/web-profiler-bundle": "<4.4", "symfony/workflow": "<4.3.6" }, "require-dev": { "doctrine/annotations": "~1.7", "doctrine/cache": "~1.0", - "fig/link-util": "^1.0", + "paragonie/sodium_compat": "^1.8", "phpdocumentor/reflection-docblock": "^3.0|^4.0", - "symfony/asset": "~3.4|~4.0", - "symfony/browser-kit": "^4.3", - "symfony/console": "^4.3.4", - "symfony/css-selector": "~3.4|~4.0", - "symfony/dom-crawler": "^4.3", - "symfony/expression-language": "~3.4|~4.0", - "symfony/form": "^4.3.5", - "symfony/http-client": "^4.3", - "symfony/lock": "~3.4|~4.0", - "symfony/mailer": "^4.3", - "symfony/messenger": "^4.3.6", - "symfony/mime": "^4.3", + "symfony/asset": "^3.4|^4.0|^5.0", + "symfony/browser-kit": "^4.3|^5.0", + "symfony/console": "^4.3.4|^5.0", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dom-crawler": "^4.3|^5.0", + "symfony/dotenv": "^4.3.6|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/form": "^4.3.5|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/lock": "^4.4|^5.0", + "symfony/mailer": "^4.4|^5.0", + "symfony/messenger": "^4.4|^5.0", + "symfony/mime": "^4.4|^5.0", "symfony/polyfill-intl-icu": "~1.0", - "symfony/process": "~3.4|~4.0", - "symfony/property-info": "~3.4|~4.0", - "symfony/security-csrf": "~3.4|~4.0", - "symfony/security-http": "~3.4|~4.0", - "symfony/serializer": "^4.3", - "symfony/stopwatch": "~3.4|~4.0", - "symfony/templating": "~3.4|~4.0", - "symfony/translation": "^4.3.7", - "symfony/twig-bundle": "~2.8|~3.2|~4.0", - "symfony/validator": "^4.1", - "symfony/var-dumper": "^4.3", - "symfony/web-link": "~3.4|~4.0", - "symfony/workflow": "^4.3.6", - "symfony/yaml": "~3.4|~4.0", - "twig/twig": "~1.41|~2.10" + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/property-info": "^3.4|^4.0|^5.0", + "symfony/security-csrf": "^3.4|^4.0|^5.0", + "symfony/security-http": "^3.4|^4.0|^5.0", + "symfony/serializer": "^4.4|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/templating": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.4|^5.0", + "symfony/twig-bundle": "^4.4|^5.0", + "symfony/validator": "^4.4|^5.0", + "symfony/web-link": "^4.4|^5.0", + "symfony/workflow": "^4.3.6|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0", + "twig/twig": "^1.41|^2.10|^3.0" }, "suggest": { "ext-apcu": "For best performance of the system caches", @@ -6380,7 +6303,7 @@ "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -6407,35 +6330,35 @@ ], "description": "Symfony FrameworkBundle", "homepage": "https://symfony.com", - "time": "2020-01-14T14:28:35+00:00" + "time": "2020-01-30T16:24:07+00:00" }, { "name": "symfony/http-foundation", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "90af881cedc857dca17990cae96f37727b8ae1d6" + "reference": "491a20dfa87e0b3990170593bc2de0bb34d828a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/90af881cedc857dca17990cae96f37727b8ae1d6", - "reference": "90af881cedc857dca17990cae96f37727b8ae1d6", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/491a20dfa87e0b3990170593bc2de0bb34d828a5", + "reference": "491a20dfa87e0b3990170593bc2de0bb34d828a5", "shasum": "" }, "require": { "php": "^7.1.3", - "symfony/mime": "^4.3", + "symfony/mime": "^4.3|^5.0", "symfony/polyfill-mbstring": "~1.1" }, "require-dev": { "predis/predis": "~1.0", - "symfony/expression-language": "~3.4|~4.0" + "symfony/expression-language": "^3.4|^4.0|^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -6462,37 +6385,37 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2020-01-31T09:10:37+00:00" + "time": "2020-01-31T09:11:17+00:00" }, { "name": "symfony/http-kernel", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "fcd8fe5b98d435da856b310a01a4f281668607c0" + "reference": "62116a9c8fb15faabb158ad9cb785c353c2572e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/fcd8fe5b98d435da856b310a01a4f281668607c0", - "reference": "fcd8fe5b98d435da856b310a01a4f281668607c0", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/62116a9c8fb15faabb158ad9cb785c353c2572e5", + "reference": "62116a9c8fb15faabb158ad9cb785c353c2572e5", "shasum": "" }, "require": { "php": "^7.1.3", "psr/log": "~1.0", - "symfony/debug": "~3.4|~4.0", - "symfony/event-dispatcher": "^4.3", - "symfony/http-foundation": "^4.1.1", - "symfony/polyfill-ctype": "~1.8", + "symfony/error-handler": "^4.4", + "symfony/event-dispatcher": "^4.4", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/polyfill-ctype": "^1.8", "symfony/polyfill-php73": "^1.9" }, "conflict": { "symfony/browser-kit": "<4.3", "symfony/config": "<3.4", + "symfony/console": ">=5", "symfony/dependency-injection": "<4.3", "symfony/translation": "<4.2", - "symfony/var-dumper": "<4.1.1", "twig/twig": "<1.34|<2.4,>=2" }, "provide": { @@ -6500,34 +6423,32 @@ }, "require-dev": { "psr/cache": "~1.0", - "symfony/browser-kit": "^4.3", - "symfony/config": "~3.4|~4.0", - "symfony/console": "~3.4|~4.0", - "symfony/css-selector": "~3.4|~4.0", - "symfony/dependency-injection": "^4.3", - "symfony/dom-crawler": "~3.4|~4.0", - "symfony/expression-language": "~3.4|~4.0", - "symfony/finder": "~3.4|~4.0", - "symfony/process": "~3.4|~4.0", - "symfony/routing": "~3.4|~4.0", - "symfony/stopwatch": "~3.4|~4.0", - "symfony/templating": "~3.4|~4.0", - "symfony/translation": "~4.2", - "symfony/translation-contracts": "^1.1", - "symfony/var-dumper": "^4.1.1", - "twig/twig": "^1.34|^2.4" + "symfony/browser-kit": "^4.3|^5.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/console": "^3.4|^4.0", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^4.3|^5.0", + "symfony/dom-crawler": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/routing": "^3.4|^4.0|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/templating": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.2|^5.0", + "symfony/translation-contracts": "^1.1|^2", + "twig/twig": "^1.34|^2.4|^3.0" }, "suggest": { "symfony/browser-kit": "", "symfony/config": "", "symfony/console": "", - "symfony/dependency-injection": "", - "symfony/var-dumper": "" + "symfony/dependency-injection": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -6554,20 +6475,20 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2020-01-31T12:38:38+00:00" + "time": "2020-01-31T12:45:06+00:00" }, { "name": "symfony/inflector", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/inflector.git", - "reference": "8c699257379098d26fa400edad29f703b380efcf" + "reference": "f419ab2853cc00471ffd7fc18e544b5f5a90adb1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/inflector/zipball/8c699257379098d26fa400edad29f703b380efcf", - "reference": "8c699257379098d26fa400edad29f703b380efcf", + "url": "https://api.github.com/repos/symfony/inflector/zipball/f419ab2853cc00471ffd7fc18e544b5f5a90adb1", + "reference": "f419ab2853cc00471ffd7fc18e544b5f5a90adb1", "shasum": "" }, "require": { @@ -6577,7 +6498,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -6612,20 +6533,20 @@ "symfony", "words" ], - "time": "2020-01-04T12:24:57+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "symfony/intl", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/intl.git", - "reference": "2d139d02ddae582c382d30cccd2ee4c814043518" + "reference": "ab482c70a9748abed5139a967b8182db15e4ffac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/2d139d02ddae582c382d30cccd2ee4c814043518", - "reference": "2d139d02ddae582c382d30cccd2ee4c814043518", + "url": "https://api.github.com/repos/symfony/intl/zipball/ab482c70a9748abed5139a967b8182db15e4ffac", + "reference": "ab482c70a9748abed5139a967b8182db15e4ffac", "shasum": "" }, "require": { @@ -6633,7 +6554,7 @@ "symfony/polyfill-intl-icu": "~1.0" }, "require-dev": { - "symfony/filesystem": "~3.4|~4.0" + "symfony/filesystem": "^3.4|^4.0|^5.0" }, "suggest": { "ext-intl": "to use the component with locales other than \"en\"" @@ -6641,7 +6562,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -6687,20 +6608,20 @@ "l10n", "localization" ], - "time": "2020-01-04T12:24:57+00:00" + "time": "2020-01-30T15:14:06+00:00" }, { "name": "symfony/mime", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "50f65ca2a6c33702728024d33e4b9461f67623c4" + "reference": "225034620ecd4b34fd826e9983d85e2b7a359094" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/50f65ca2a6c33702728024d33e4b9461f67623c4", - "reference": "50f65ca2a6c33702728024d33e4b9461f67623c4", + "url": "https://api.github.com/repos/symfony/mime/zipball/225034620ecd4b34fd826e9983d85e2b7a359094", + "reference": "225034620ecd4b34fd826e9983d85e2b7a359094", "shasum": "" }, "require": { @@ -6708,14 +6629,17 @@ "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0" }, + "conflict": { + "symfony/mailer": "<4.4" + }, "require-dev": { "egulias/email-validator": "^2.1.10", - "symfony/dependency-injection": "~3.4|^4.1" + "symfony/dependency-injection": "^3.4|^4.1|^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -6746,36 +6670,37 @@ "mime", "mime-type" ], - "time": "2020-01-01T11:51:43+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "symfony/monolog-bridge", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bridge.git", - "reference": "8c6a51c55add464d9e6ef7000f1877e4c75f9fbf" + "reference": "b582d06cc125f3659f5ca00757bbfd8b822c0706" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/8c6a51c55add464d9e6ef7000f1877e4c75f9fbf", - "reference": "8c6a51c55add464d9e6ef7000f1877e4c75f9fbf", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/b582d06cc125f3659f5ca00757bbfd8b822c0706", + "reference": "b582d06cc125f3659f5ca00757bbfd8b822c0706", "shasum": "" }, "require": { - "monolog/monolog": "~1.19", + "monolog/monolog": "^1.25.1", "php": "^7.1.3", "symfony/http-kernel": "^4.3", - "symfony/service-contracts": "^1.1" + "symfony/service-contracts": "^1.1|^2" }, "conflict": { "symfony/console": "<3.4", "symfony/http-foundation": "<3.4" }, "require-dev": { - "symfony/console": "~3.4|~4.0", - "symfony/security-core": "~3.4|~4.0", - "symfony/var-dumper": "~3.4|~4.0" + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/security-core": "^3.4|^4.0|^5.0", + "symfony/var-dumper": "^3.4|^4.0|^5.0" }, "suggest": { "symfony/console": "For the possibility to show log messages in console commands depending on verbosity settings.", @@ -6785,7 +6710,7 @@ "type": "symfony-bridge", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -6812,7 +6737,7 @@ ], "description": "Symfony Monolog Bridge", "homepage": "https://symfony.com", - "time": "2020-01-04T12:24:57+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "symfony/monolog-bundle", @@ -6879,16 +6804,16 @@ }, { "name": "symfony/options-resolver", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "3438c6fe65a9794b0e9f3686d0e3771412a2c47a" + "reference": "9a02d6662660fe7bfadad63b5f0b0718d4c8b6b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/3438c6fe65a9794b0e9f3686d0e3771412a2c47a", - "reference": "3438c6fe65a9794b0e9f3686d0e3771412a2c47a", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/9a02d6662660fe7bfadad63b5f0b0718d4c8b6b0", + "reference": "9a02d6662660fe7bfadad63b5f0b0718d4c8b6b0", "shasum": "" }, "require": { @@ -6897,7 +6822,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -6929,7 +6854,7 @@ "configuration", "options" ], - "time": "2020-01-04T12:24:57+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "symfony/orm-pack", @@ -7309,54 +7234,26 @@ ], "time": "2019-11-27T16:25:15+00:00" }, - { - "name": "symfony/profiler-pack", - "version": "v1.0.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/profiler-pack.git", - "reference": "99c4370632c2a59bb0444852f92140074ef02209" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/profiler-pack/zipball/99c4370632c2a59bb0444852f92140074ef02209", - "reference": "99c4370632c2a59bb0444852f92140074ef02209", - "shasum": "" - }, - "require": { - "php": "^7.0", - "symfony/stopwatch": "*", - "symfony/twig-bundle": "*", - "symfony/web-profiler-bundle": "*" - }, - "type": "symfony-pack", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "A pack for the Symfony web profiler", - "time": "2018-12-10T12:11:44+00:00" - }, { "name": "symfony/property-access", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "28ecead27bd17937b3f904396b026a8e3915d0cd" + "reference": "090b4bc92ded1ec512f7e2ed1691210769dffdb3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/28ecead27bd17937b3f904396b026a8e3915d0cd", - "reference": "28ecead27bd17937b3f904396b026a8e3915d0cd", + "url": "https://api.github.com/repos/symfony/property-access/zipball/090b4bc92ded1ec512f7e2ed1691210769dffdb3", + "reference": "090b4bc92ded1ec512f7e2ed1691210769dffdb3", "shasum": "" }, "require": { "php": "^7.1.3", - "symfony/inflector": "~3.4|~4.0" + "symfony/inflector": "^3.4|^4.0|^5.0" }, "require-dev": { - "symfony/cache": "~3.4|~4.0" + "symfony/cache": "^3.4|^4.0|^5.0" }, "suggest": { "psr/cache-implementation": "To cache access methods." @@ -7364,7 +7261,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -7402,25 +7299,25 @@ "property path", "reflection" ], - "time": "2020-01-04T12:24:57+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "symfony/property-info", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "169aafe8f2a01ec50fb324f5d24bbd61a5799df1" + "reference": "e6355ba81c738be31c3c3b3cd7929963f98da576" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/169aafe8f2a01ec50fb324f5d24bbd61a5799df1", - "reference": "169aafe8f2a01ec50fb324f5d24bbd61a5799df1", + "url": "https://api.github.com/repos/symfony/property-info/zipball/e6355ba81c738be31c3c3b3cd7929963f98da576", + "reference": "e6355ba81c738be31c3c3b3cd7929963f98da576", "shasum": "" }, "require": { "php": "^7.1.3", - "symfony/inflector": "~3.4|~4.0" + "symfony/inflector": "^3.4|^4.0|^5.0" }, "conflict": { "phpdocumentor/reflection-docblock": "<3.0||>=3.2.0,<3.2.2", @@ -7430,9 +7327,9 @@ "require-dev": { "doctrine/annotations": "~1.7", "phpdocumentor/reflection-docblock": "^3.0|^4.0", - "symfony/cache": "~3.4|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/serializer": "~3.4|~4.0" + "symfony/cache": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/serializer": "^3.4|^4.0|^5.0" }, "suggest": { "phpdocumentor/reflection-docblock": "To use the PHPDoc", @@ -7443,7 +7340,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -7478,20 +7375,20 @@ "type", "validator" ], - "time": "2020-01-04T12:24:57+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "symfony/routing", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "6cc4b6a92e3c623b2c7e56180728839b0caf8564" + "reference": "7bf4e38573728e317b926ca4482ad30470d0e86a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/6cc4b6a92e3c623b2c7e56180728839b0caf8564", - "reference": "6cc4b6a92e3c623b2c7e56180728839b0caf8564", + "url": "https://api.github.com/repos/symfony/routing/zipball/7bf4e38573728e317b926ca4482ad30470d0e86a", + "reference": "7bf4e38573728e317b926ca4482ad30470d0e86a", "shasum": "" }, "require": { @@ -7505,11 +7402,11 @@ "require-dev": { "doctrine/annotations": "~1.2", "psr/log": "~1.0", - "symfony/config": "~4.2", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/expression-language": "~3.4|~4.0", - "symfony/http-foundation": "~3.4|~4.0", - "symfony/yaml": "~3.4|~4.0" + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0" }, "suggest": { "doctrine/annotations": "For using the annotation loader", @@ -7521,7 +7418,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -7554,64 +7451,63 @@ "uri", "url" ], - "time": "2020-01-08T14:00:15+00:00" + "time": "2020-01-08T17:29:02+00:00" }, { "name": "symfony/security-bundle", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/security-bundle.git", - "reference": "1cc02bd8e44eef0bd4ecfd53a8b4d7b26f675d85" + "reference": "7829cc34b8231cb8d10621cdf27d04bfdc600334" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-bundle/zipball/1cc02bd8e44eef0bd4ecfd53a8b4d7b26f675d85", - "reference": "1cc02bd8e44eef0bd4ecfd53a8b4d7b26f675d85", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/7829cc34b8231cb8d10621cdf27d04bfdc600334", + "reference": "7829cc34b8231cb8d10621cdf27d04bfdc600334", "shasum": "" }, "require": { "ext-xml": "*", "php": "^7.1.3", - "symfony/config": "^4.2", - "symfony/dependency-injection": "^4.2", - "symfony/http-kernel": "^4.3", - "symfony/security-core": "~4.3", - "symfony/security-csrf": "~4.2", - "symfony/security-guard": "~4.2", - "symfony/security-http": "~4.3.10|^4.4.3" + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/security-core": "^4.4", + "symfony/security-csrf": "^4.2|^5.0", + "symfony/security-guard": "^4.2|^5.0", + "symfony/security-http": "^4.4.3" }, "conflict": { "symfony/browser-kit": "<4.2", "symfony/console": "<3.4", - "symfony/framework-bundle": "<4.3.4", - "symfony/twig-bundle": "<4.2", - "symfony/var-dumper": "<3.4" + "symfony/framework-bundle": "<4.4", + "symfony/ldap": "<4.4", + "symfony/twig-bundle": "<4.4" }, "require-dev": { - "doctrine/doctrine-bundle": "~1.5", - "symfony/asset": "~3.4|~4.0", - "symfony/browser-kit": "~4.2", - "symfony/console": "~3.4|~4.0", - "symfony/css-selector": "~3.4|~4.0", - "symfony/dom-crawler": "~3.4|~4.0", - "symfony/expression-language": "~3.4|~4.0", - "symfony/form": "~3.4|~4.0", - "symfony/framework-bundle": "^4.3.4", - "symfony/http-foundation": "~3.4|~4.0", - "symfony/process": "~3.4|~4.0", - "symfony/translation": "~3.4|~4.0", - "symfony/twig-bridge": "~3.4|~4.0", - "symfony/twig-bundle": "~4.2", - "symfony/validator": "~3.4|~4.0", - "symfony/var-dumper": "~3.4|~4.0", - "symfony/yaml": "~3.4|~4.0", - "twig/twig": "~1.41|~2.10" + "doctrine/doctrine-bundle": "^1.5|^2.0", + "symfony/asset": "^3.4|^4.0|^5.0", + "symfony/browser-kit": "^4.2|^5.0", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dom-crawler": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/form": "^3.4|^4.0|^5.0", + "symfony/framework-bundle": "^4.4|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/serializer": "^4.4|^5.0", + "symfony/translation": "^3.4|^4.0|^5.0", + "symfony/twig-bridge": "^3.4|^4.0|^5.0", + "symfony/twig-bundle": "^4.4|^5.0", + "symfony/validator": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0", + "twig/twig": "^1.41|^2.10|^3.0" }, "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -7638,39 +7534,40 @@ ], "description": "Symfony SecurityBundle", "homepage": "https://symfony.com", - "time": "2020-01-08T17:19:22+00:00" + "time": "2020-01-27T10:02:23+00:00" }, { "name": "symfony/security-core", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/security-core.git", - "reference": "8d008438e4bbdf04086d1048d51cc1b5dfac2046" + "reference": "d2550b4ecd63f612763e0af2cbcb1a69a700fe99" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-core/zipball/8d008438e4bbdf04086d1048d51cc1b5dfac2046", - "reference": "8d008438e4bbdf04086d1048d51cc1b5dfac2046", + "url": "https://api.github.com/repos/symfony/security-core/zipball/d2550b4ecd63f612763e0af2cbcb1a69a700fe99", + "reference": "d2550b4ecd63f612763e0af2cbcb1a69a700fe99", "shasum": "" }, "require": { "php": "^7.1.3", - "symfony/event-dispatcher-contracts": "^1.1", - "symfony/service-contracts": "^1.1" + "symfony/event-dispatcher-contracts": "^1.1|^2", + "symfony/service-contracts": "^1.1.6|^2" }, "conflict": { - "symfony/event-dispatcher": "<4.3", + "symfony/event-dispatcher": "<4.3|>=5", + "symfony/ldap": "<4.4", "symfony/security-guard": "<4.3" }, "require-dev": { "psr/container": "^1.0", "psr/log": "~1.0", "symfony/event-dispatcher": "^4.3", - "symfony/expression-language": "~3.4|~4.0", - "symfony/http-foundation": "~3.4|~4.0", - "symfony/ldap": "~3.4|~4.0", - "symfony/validator": "^3.4.31|^4.3.4" + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/ldap": "^4.4|^5.0", + "symfony/validator": "^3.4.31|^4.3.4|^5.0" }, "suggest": { "psr/container-implementation": "To instantiate the Security class", @@ -7683,7 +7580,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -7710,31 +7607,31 @@ ], "description": "Symfony Security Component - Core Library", "homepage": "https://symfony.com", - "time": "2020-01-31T09:10:37+00:00" + "time": "2020-01-31T09:11:17+00:00" }, { "name": "symfony/security-csrf", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/security-csrf.git", - "reference": "9e435026ab45f073880d1fbe0e1b17e7df6bf642" + "reference": "da4664d94164e2b50ce75f2453724c6c33222505" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-csrf/zipball/9e435026ab45f073880d1fbe0e1b17e7df6bf642", - "reference": "9e435026ab45f073880d1fbe0e1b17e7df6bf642", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/da4664d94164e2b50ce75f2453724c6c33222505", + "reference": "da4664d94164e2b50ce75f2453724c6c33222505", "shasum": "" }, "require": { "php": "^7.1.3", - "symfony/security-core": "~3.4|~4.0" + "symfony/security-core": "^3.4|^4.0|^5.0" }, "conflict": { "symfony/http-foundation": "<3.4" }, "require-dev": { - "symfony/http-foundation": "~3.4|~4.0" + "symfony/http-foundation": "^3.4|^4.0|^5.0" }, "suggest": { "symfony/http-foundation": "For using the class SessionTokenStorage." @@ -7742,7 +7639,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -7769,26 +7666,26 @@ ], "description": "Symfony Security Component - CSRF Library", "homepage": "https://symfony.com", - "time": "2020-01-04T12:24:57+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "symfony/security-guard", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/security-guard.git", - "reference": "5d87ee4ffa5aa6e594008fa3cc65bc8f86ad6438" + "reference": "f457f2d6d7392259b1ede1d036a26b6c1fa20202" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-guard/zipball/5d87ee4ffa5aa6e594008fa3cc65bc8f86ad6438", - "reference": "5d87ee4ffa5aa6e594008fa3cc65bc8f86ad6438", + "url": "https://api.github.com/repos/symfony/security-guard/zipball/f457f2d6d7392259b1ede1d036a26b6c1fa20202", + "reference": "f457f2d6d7392259b1ede1d036a26b6c1fa20202", "shasum": "" }, "require": { "php": "^7.1.3", - "symfony/security-core": "~3.4.22|^4.2.3", - "symfony/security-http": "^4.3" + "symfony/security-core": "^3.4.22|^4.2.3|^5.0", + "symfony/security-http": "^4.4.1" }, "require-dev": { "psr/log": "~1.0" @@ -7796,7 +7693,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -7823,36 +7720,37 @@ ], "description": "Symfony Security Component - Guard", "homepage": "https://symfony.com", - "time": "2020-01-04T18:57:41+00:00" + "time": "2020-01-08T17:29:02+00:00" }, { "name": "symfony/security-http", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/security-http.git", - "reference": "2b4b8632956c680400006376fad0a4f9889d4be1" + "reference": "736d09554f78f3444f5aeed3d18a928c7a8a53fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-http/zipball/2b4b8632956c680400006376fad0a4f9889d4be1", - "reference": "2b4b8632956c680400006376fad0a4f9889d4be1", + "url": "https://api.github.com/repos/symfony/security-http/zipball/736d09554f78f3444f5aeed3d18a928c7a8a53fb", + "reference": "736d09554f78f3444f5aeed3d18a928c7a8a53fb", "shasum": "" }, "require": { "php": "^7.1.3", - "symfony/http-foundation": "~3.4|~4.0", - "symfony/http-kernel": "^4.3", - "symfony/property-access": "~3.4|~4.0", - "symfony/security-core": "^4.3" + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/property-access": "^3.4|^4.0|^5.0", + "symfony/security-core": "^4.4" }, "conflict": { + "symfony/event-dispatcher": ">=5", "symfony/security-csrf": "<3.4.11|~4.0,<4.0.11" }, "require-dev": { "psr/log": "~1.0", - "symfony/routing": "~3.4|~4.0", - "symfony/security-csrf": "^3.4.11|^4.0.11" + "symfony/routing": "^3.4|^4.0|^5.0", + "symfony/security-csrf": "^3.4.11|^4.0.11|^5.0" }, "suggest": { "symfony/routing": "For using the HttpUtils class to create sub-requests, redirect the user, and match URLs", @@ -7861,7 +7759,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -7888,20 +7786,20 @@ ], "description": "Symfony Security Component - HTTP Integration", "homepage": "https://symfony.com", - "time": "2020-01-31T09:10:37+00:00" + "time": "2020-01-31T09:11:17+00:00" }, { "name": "symfony/serializer", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "cd4f545209e1f3d408b5adda729c59bfd714a1a5" + "reference": "76ecc214a93b763c29b924277e85f64326f9fbb2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/cd4f545209e1f3d408b5adda729c59bfd714a1a5", - "reference": "cd4f545209e1f3d408b5adda729c59bfd714a1a5", + "url": "https://api.github.com/repos/symfony/serializer/zipball/76ecc214a93b763c29b924277e85f64326f9fbb2", + "reference": "76ecc214a93b763c29b924277e85f64326f9fbb2", "shasum": "" }, "require": { @@ -7918,15 +7816,16 @@ "require-dev": { "doctrine/annotations": "~1.0", "doctrine/cache": "~1.0", - "phpdocumentor/reflection-docblock": "^3.0|^4.0", - "symfony/cache": "~3.4|~4.0", - "symfony/config": "~3.4|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/http-foundation": "~3.4|~4.0", - "symfony/property-access": "~3.4|~4.0", - "symfony/property-info": "^3.4.13|~4.0", - "symfony/validator": "~3.4|~4.0", - "symfony/yaml": "~3.4|~4.0" + "phpdocumentor/reflection-docblock": "^3.2|^4.0", + "symfony/cache": "^3.4|^4.0|^5.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/error-handler": "^4.4|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/property-access": "^3.4|^4.0|^5.0", + "symfony/property-info": "^3.4.13|~4.0|^5.0", + "symfony/validator": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0" }, "suggest": { "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", @@ -7941,7 +7840,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -7968,7 +7867,7 @@ ], "description": "Symfony Serializer Component", "homepage": "https://symfony.com", - "time": "2020-01-04T12:24:57+00:00" + "time": "2020-01-07T22:30:39+00:00" }, { "name": "symfony/service-contracts", @@ -8030,26 +7929,26 @@ }, { "name": "symfony/stopwatch", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "4aff3715c98706ee25bdb4aced6591a9dffc3d9b" + "reference": "abc08d7c48987829bac301347faa10f7e8bbf4fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/4aff3715c98706ee25bdb4aced6591a9dffc3d9b", - "reference": "4aff3715c98706ee25bdb4aced6591a9dffc3d9b", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/abc08d7c48987829bac301347faa10f7e8bbf4fb", + "reference": "abc08d7c48987829bac301347faa10f7e8bbf4fb", "shasum": "" }, "require": { "php": "^7.1.3", - "symfony/service-contracts": "^1.0" + "symfony/service-contracts": "^1.0|^2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -8076,7 +7975,7 @@ ], "description": "Symfony Stopwatch Component", "homepage": "https://symfony.com", - "time": "2020-01-04T12:24:57+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "symfony/swiftmailer-bundle", @@ -8145,16 +8044,16 @@ }, { "name": "symfony/templating", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/templating.git", - "reference": "f566e0d4624eb4a4ec5847fdb46808ffc4168a0c" + "reference": "9995a4f65149d5ab7f0d9cca6d88136ae8bfaa72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/templating/zipball/f566e0d4624eb4a4ec5847fdb46808ffc4168a0c", - "reference": "f566e0d4624eb4a4ec5847fdb46808ffc4168a0c", + "url": "https://api.github.com/repos/symfony/templating/zipball/9995a4f65149d5ab7f0d9cca6d88136ae8bfaa72", + "reference": "9995a4f65149d5ab7f0d9cca6d88136ae8bfaa72", "shasum": "" }, "require": { @@ -8170,7 +8069,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -8197,30 +8096,31 @@ ], "description": "Symfony Templating Component", "homepage": "https://symfony.com", - "time": "2020-01-04T12:24:57+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "symfony/translation", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "46e462be71935ae15eab531e4d491d801857f24c" + "reference": "f5d2ac46930238b30a9c2f1b17c905f3697d808c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/46e462be71935ae15eab531e4d491d801857f24c", - "reference": "46e462be71935ae15eab531e4d491d801857f24c", + "url": "https://api.github.com/repos/symfony/translation/zipball/f5d2ac46930238b30a9c2f1b17c905f3697d808c", + "reference": "f5d2ac46930238b30a9c2f1b17c905f3697d808c", "shasum": "" }, "require": { "php": "^7.1.3", "symfony/polyfill-mbstring": "~1.0", - "symfony/translation-contracts": "^1.1.6" + "symfony/translation-contracts": "^1.1.6|^2" }, "conflict": { "symfony/config": "<3.4", "symfony/dependency-injection": "<3.4", + "symfony/http-kernel": "<4.4", "symfony/yaml": "<3.4" }, "provide": { @@ -8228,15 +8128,14 @@ }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~3.4|~4.0", - "symfony/console": "~3.4|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/http-kernel": "~3.4|~4.0", - "symfony/intl": "~3.4|~4.0", - "symfony/service-contracts": "^1.1.2", - "symfony/var-dumper": "~3.4|~4.0", - "symfony/yaml": "~3.4|~4.0" + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/finder": "~2.8|~3.0|~4.0|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/intl": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1.2|^2", + "symfony/yaml": "^3.4|^4.0|^5.0" }, "suggest": { "psr/log-implementation": "To use logging capability in translator", @@ -8246,7 +8145,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -8273,7 +8172,7 @@ ], "description": "Symfony Translation Component", "homepage": "https://symfony.com", - "time": "2020-01-04T12:24:57+00:00" + "time": "2020-01-15T13:29:06+00:00" }, { "name": "symfony/translation-contracts", @@ -8334,55 +8233,57 @@ }, { "name": "symfony/twig-bridge", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "9574613b74ed066f775eaf94bb15476ef58609de" + "reference": "d5f3e83e2cc2fcdd60c351b5be1beb9533cf698c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/9574613b74ed066f775eaf94bb15476ef58609de", - "reference": "9574613b74ed066f775eaf94bb15476ef58609de", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/d5f3e83e2cc2fcdd60c351b5be1beb9533cf698c", + "reference": "d5f3e83e2cc2fcdd60c351b5be1beb9533cf698c", "shasum": "" }, "require": { "php": "^7.1.3", - "symfony/translation-contracts": "^1.1", - "twig/twig": "^1.41|^2.10" + "symfony/translation-contracts": "^1.1|^2", + "twig/twig": "^1.41|^2.10|^3.0" }, "conflict": { "symfony/console": "<3.4", - "symfony/form": "<4.3.5", + "symfony/form": "<4.4", "symfony/http-foundation": "<4.3", "symfony/translation": "<4.2", "symfony/workflow": "<4.3" }, "require-dev": { "egulias/email-validator": "^2.1.10", - "fig/link-util": "^1.0", - "symfony/asset": "~3.4|~4.0", - "symfony/console": "~3.4|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/expression-language": "~3.4|~4.0", - "symfony/finder": "~3.4|~4.0", + "symfony/asset": "^3.4|^4.0|^5.0", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/error-handler": "^4.4|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", "symfony/form": "^4.3.5", - "symfony/http-foundation": "~4.3", - "symfony/http-kernel": "~3.4|~4.0", - "symfony/mime": "~4.3", + "symfony/http-foundation": "^4.3|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/mime": "^4.3|^5.0", "symfony/polyfill-intl-icu": "~1.0", - "symfony/routing": "~3.4|~4.0", - "symfony/security-acl": "~2.8|~3.0", - "symfony/security-core": "~3.0|~4.0", - "symfony/security-csrf": "~3.4|~4.0", - "symfony/security-http": "~3.4|~4.0", - "symfony/stopwatch": "~3.4|~4.0", - "symfony/templating": "~3.4|~4.0", - "symfony/translation": "^4.2.1", - "symfony/var-dumper": "~3.4|~4.0", - "symfony/web-link": "~3.4|~4.0", - "symfony/workflow": "~4.3", - "symfony/yaml": "~3.4|~4.0" + "symfony/routing": "^3.4|^4.0|^5.0", + "symfony/security-acl": "^2.8|^3.0", + "symfony/security-core": "^3.0|^4.0|^5.0", + "symfony/security-csrf": "^3.4|^4.0|^5.0", + "symfony/security-http": "^3.4|^4.0|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/templating": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.2.1|^5.0", + "symfony/web-link": "^4.4|^5.0", + "symfony/workflow": "^4.3|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0", + "twig/cssinliner-extra": "^2.12", + "twig/inky-extra": "^2.12", + "twig/markdown-extra": "^2.12" }, "suggest": { "symfony/asset": "For using the AssetExtension", @@ -8404,7 +8305,7 @@ "type": "symfony-bridge", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -8431,57 +8332,55 @@ ], "description": "Symfony Twig Bridge", "homepage": "https://symfony.com", - "time": "2020-01-08T17:19:22+00:00" + "time": "2020-01-08T17:29:02+00:00" }, { "name": "symfony/twig-bundle", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/twig-bundle.git", - "reference": "0471344717bfb081f10209ad6b8fd520ca8ebd9d" + "reference": "d3e3e46e9e683e946746219570299ba07506260a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/0471344717bfb081f10209ad6b8fd520ca8ebd9d", - "reference": "0471344717bfb081f10209ad6b8fd520ca8ebd9d", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/d3e3e46e9e683e946746219570299ba07506260a", + "reference": "d3e3e46e9e683e946746219570299ba07506260a", "shasum": "" }, "require": { "php": "^7.1.3", - "symfony/config": "~4.2", - "symfony/debug": "~4.0", - "symfony/http-foundation": "~4.3", - "symfony/http-kernel": "~4.1", + "symfony/http-foundation": "^4.3|^5.0", + "symfony/http-kernel": "^4.4", "symfony/polyfill-ctype": "~1.8", - "symfony/twig-bridge": "^4.3", - "twig/twig": "~1.41|~2.10" + "symfony/twig-bridge": "^4.4|^5.0", + "twig/twig": "^1.41|^2.10|^3.0" }, "conflict": { "symfony/dependency-injection": "<4.1", - "symfony/framework-bundle": "<4.3", + "symfony/framework-bundle": "<4.4", "symfony/translation": "<4.2" }, "require-dev": { "doctrine/annotations": "~1.7", "doctrine/cache": "~1.0", - "symfony/asset": "~3.4|~4.0", - "symfony/dependency-injection": "^4.2.5", - "symfony/expression-language": "~3.4|~4.0", - "symfony/finder": "~3.4|~4.0", - "symfony/form": "~3.4|~4.0", - "symfony/framework-bundle": "~4.3", - "symfony/routing": "~3.4|~4.0", - "symfony/stopwatch": "~3.4|~4.0", - "symfony/templating": "~3.4|~4.0", - "symfony/translation": "^4.2", - "symfony/web-link": "~3.4|~4.0", - "symfony/yaml": "~3.4|~4.0" + "symfony/asset": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^4.2.5|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/form": "^3.4|^4.0|^5.0", + "symfony/framework-bundle": "^4.4|^5.0", + "symfony/routing": "^3.4|^4.0|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/templating": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.2|^5.0", + "symfony/web-link": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0" }, "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -8508,60 +8407,59 @@ ], "description": "Symfony TwigBundle", "homepage": "https://symfony.com", - "time": "2020-01-04T12:24:57+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "symfony/validator", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "0d2dcf4ae26db5b6781f40fcab9785f427ee7fa4" + "reference": "eb3e15de5c63873ca6e2a88b56a029f7be4c5953" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/0d2dcf4ae26db5b6781f40fcab9785f427ee7fa4", - "reference": "0d2dcf4ae26db5b6781f40fcab9785f427ee7fa4", + "url": "https://api.github.com/repos/symfony/validator/zipball/eb3e15de5c63873ca6e2a88b56a029f7be4c5953", + "reference": "eb3e15de5c63873ca6e2a88b56a029f7be4c5953", "shasum": "" }, "require": { "php": "^7.1.3", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0", - "symfony/translation-contracts": "^1.1" + "symfony/translation-contracts": "^1.1|^2" }, "conflict": { "doctrine/lexer": "<1.0.2", "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", "symfony/dependency-injection": "<3.4", - "symfony/http-kernel": "<3.4", + "symfony/http-kernel": "<4.4", "symfony/intl": "<4.3", - "symfony/translation": "<4.2", + "symfony/translation": ">=5.0", "symfony/yaml": "<3.4" }, "require-dev": { "doctrine/annotations": "~1.7", "doctrine/cache": "~1.0", "egulias/email-validator": "^2.1.10", - "symfony/cache": "~3.4|~4.0", - "symfony/config": "~3.4|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/expression-language": "~3.4|~4.0", - "symfony/http-client": "^4.3", - "symfony/http-foundation": "~4.1", - "symfony/http-kernel": "~3.4|~4.0", - "symfony/intl": "^4.3", - "symfony/property-access": "~3.4|~4.0", - "symfony/property-info": "~3.4|~4.0", - "symfony/translation": "~4.2", - "symfony/var-dumper": "~3.4|~4.0", - "symfony/yaml": "~3.4|~4.0" + "symfony/cache": "^3.4|^4.0|^5.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-client": "^4.3|^5.0", + "symfony/http-foundation": "^4.1|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/intl": "^4.3|^5.0", + "symfony/property-access": "^3.4|^4.0|^5.0", + "symfony/property-info": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.2", + "symfony/yaml": "^3.4|^4.0|^5.0" }, "suggest": { "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", - "doctrine/cache": "For using the default cached annotation reader and metadata cache.", + "doctrine/cache": "For using the default cached annotation reader.", "egulias/email-validator": "Strict (RFC compliant) email validation", - "psr/cache-implementation": "For using the metadata cache.", + "psr/cache-implementation": "For using the mapping cache.", "symfony/config": "", "symfony/expression-language": "For using the Expression validator", "symfony/http-foundation": "", @@ -8574,7 +8472,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -8601,20 +8499,20 @@ ], "description": "Symfony Validator Component", "homepage": "https://symfony.com", - "time": "2020-01-31T09:10:37+00:00" + "time": "2020-01-31T09:11:17+00:00" }, { "name": "symfony/var-dumper", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "75669a7e681cbd4a291a08ed31d2d3998fe86e48" + "reference": "46b53fd714568af343953c039ff47b67ce8af8d6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/75669a7e681cbd4a291a08ed31d2d3998fe86e48", - "reference": "75669a7e681cbd4a291a08ed31d2d3998fe86e48", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/46b53fd714568af343953c039ff47b67ce8af8d6", + "reference": "46b53fd714568af343953c039ff47b67ce8af8d6", "shasum": "" }, "require": { @@ -8628,9 +8526,9 @@ }, "require-dev": { "ext-iconv": "*", - "symfony/console": "~3.4|~4.0", - "symfony/process": "~3.4|~4.0", - "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).", @@ -8643,7 +8541,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -8677,32 +8575,32 @@ "debug", "dump" ], - "time": "2020-01-25T12:32:28+00:00" + "time": "2020-01-25T12:44:29+00:00" }, { "name": "symfony/var-exporter", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "563f728784ea09c8154ea57cf8192ae5d6f0d277" + "reference": "1a76a943f2af334da13bc9f33f49392fa530eec9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/563f728784ea09c8154ea57cf8192ae5d6f0d277", - "reference": "563f728784ea09c8154ea57cf8192ae5d6f0d277", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/1a76a943f2af334da13bc9f33f49392fa530eec9", + "reference": "1a76a943f2af334da13bc9f33f49392fa530eec9", "shasum": "" }, "require": { "php": "^7.1.3" }, "require-dev": { - "symfony/var-dumper": "^4.1.1" + "symfony/var-dumper": "^4.1.1|^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -8737,75 +8635,7 @@ "instantiate", "serialize" ], - "time": "2020-01-01T11:51:43+00:00" - }, - { - "name": "symfony/web-profiler-bundle", - "version": "v4.3.11", - "source": { - "type": "git", - "url": "https://github.com/symfony/web-profiler-bundle.git", - "reference": "ef55f4aac938cdf8c2051ead22e18ad80ed4e4f8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/ef55f4aac938cdf8c2051ead22e18ad80ed4e4f8", - "reference": "ef55f4aac938cdf8c2051ead22e18ad80ed4e4f8", - "shasum": "" - }, - "require": { - "php": "^7.1.3", - "symfony/config": "^4.2", - "symfony/http-kernel": "^4.3", - "symfony/routing": "^4.3", - "symfony/twig-bundle": "~4.2", - "symfony/var-dumper": "^4.3", - "twig/twig": "^1.41|^2.10" - }, - "conflict": { - "symfony/dependency-injection": "<3.4", - "symfony/form": "<4.3", - "symfony/messenger": "<4.2", - "symfony/var-dumper": "<3.4" - }, - "require-dev": { - "symfony/browser-kit": "^4.3", - "symfony/console": "^4.3", - "symfony/css-selector": "~3.4|~4.0", - "symfony/framework-bundle": "^4.3", - "symfony/stopwatch": "~3.4|~4.0" - }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "4.3-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Bundle\\WebProfilerBundle\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony WebProfilerBundle", - "homepage": "https://symfony.com", - "time": "2020-01-09T12:29:25+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "symfony/webpack-encore-bundle", @@ -8862,16 +8692,16 @@ }, { "name": "symfony/yaml", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "8e0a95493b734ca8195acf3e1f3d89e88b957db5" + "reference": "cd014e425b3668220adb865f53bff64b3ad21767" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/8e0a95493b734ca8195acf3e1f3d89e88b957db5", - "reference": "8e0a95493b734ca8195acf3e1f3d89e88b957db5", + "url": "https://api.github.com/repos/symfony/yaml/zipball/cd014e425b3668220adb865f53bff64b3ad21767", + "reference": "cd014e425b3668220adb865f53bff64b3ad21767", "shasum": "" }, "require": { @@ -8882,7 +8712,7 @@ "symfony/console": "<3.4" }, "require-dev": { - "symfony/console": "~3.4|~4.0" + "symfony/console": "^3.4|^4.0|^5.0" }, "suggest": { "symfony/console": "For validating YAML files using the lint command" @@ -8890,7 +8720,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -8917,7 +8747,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2020-01-21T11:09:03+00:00" + "time": "2020-01-21T11:12:16+00:00" }, { "name": "twig/extensions", @@ -9570,33 +9400,34 @@ }, { "name": "dama/doctrine-test-bundle", - "version": "v5.0.5", + "version": "v6.3.1", "source": { "type": "git", "url": "https://github.com/dmaicher/doctrine-test-bundle.git", - "reference": "a60b0712f4659eab710c49783713b4b43e3c3149" + "reference": "13eaeacf5bda4fd716c5d6d8ec6bf7bac89d3947" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dmaicher/doctrine-test-bundle/zipball/a60b0712f4659eab710c49783713b4b43e3c3149", - "reference": "a60b0712f4659eab710c49783713b4b43e3c3149", + "url": "https://api.github.com/repos/dmaicher/doctrine-test-bundle/zipball/13eaeacf5bda4fd716c5d6d8ec6bf7bac89d3947", + "reference": "13eaeacf5bda4fd716c5d6d8ec6bf7bac89d3947", "shasum": "" }, "require": { "doctrine/dbal": "^2.9,>=2.9.3", - "doctrine/doctrine-bundle": "~1.4|~2.0", + "doctrine/doctrine-bundle": "^1.11 || ^2.0", "php": "^7.1", - "symfony/framework-bundle": "~3.4|~4.0" + "symfony/framework-bundle": "^3.4 || ^4.3 || ^5.0" }, "require-dev": { - "phpunit/phpunit": "~7.0|~8.0", - "symfony/phpunit-bridge": "^4.3", - "symfony/yaml": "~2.8|~3.0|~4.0" + "phpstan/phpstan": "^0.12", + "phpunit/phpunit": "^7.0 || ^8.0", + "symfony/phpunit-bridge": "^4.3 || ^5.0", + "symfony/yaml": "^3.4 || ^4.3 || ^5.0" }, "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "5.1.x-dev" + "dev-master": "7.0.x-dev" } }, "autoload": { @@ -9616,16 +9447,13 @@ ], "description": "Symfony bundle to isolate doctrine database tests and improve test performance", "keywords": [ - "Symfony 3", - "Symfony 4", "doctrine", "isolation", "performance", "symfony", - "symfony 2", "tests" ], - "time": "2019-11-25T10:12:28+00:00" + "time": "2019-12-09T22:53:03+00:00" }, { "name": "doctrine/data-fixtures", @@ -11346,27 +11174,27 @@ }, { "name": "symfony/browser-kit", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "66d301ce3458b522e3b1f2a76ecfccd1834dcf90" + "reference": "45cae6dd8683d2de56df7ec23638e9429c70135f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/66d301ce3458b522e3b1f2a76ecfccd1834dcf90", - "reference": "66d301ce3458b522e3b1f2a76ecfccd1834dcf90", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/45cae6dd8683d2de56df7ec23638e9429c70135f", + "reference": "45cae6dd8683d2de56df7ec23638e9429c70135f", "shasum": "" }, "require": { "php": "^7.1.3", - "symfony/dom-crawler": "~3.4|~4.0" + "symfony/dom-crawler": "^3.4|^4.0|^5.0" }, "require-dev": { - "symfony/css-selector": "~3.4|~4.0", - "symfony/http-client": "^4.3", - "symfony/mime": "^4.3", - "symfony/process": "~3.4|~4.0" + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/http-client": "^4.3|^5.0", + "symfony/mime": "^4.3|^5.0", + "symfony/process": "^3.4|^4.0|^5.0" }, "suggest": { "symfony/process": "" @@ -11374,7 +11202,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -11401,20 +11229,20 @@ ], "description": "Symfony BrowserKit Component", "homepage": "https://symfony.com", - "time": "2020-01-04T12:24:57+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "symfony/css-selector", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "32203e7cc318dcfd1d5fb12ab35e595fc6016206" + "reference": "a167b1860995b926d279f9bb538f873e3bfa3465" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/32203e7cc318dcfd1d5fb12ab35e595fc6016206", - "reference": "32203e7cc318dcfd1d5fb12ab35e595fc6016206", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/a167b1860995b926d279f9bb538f873e3bfa3465", + "reference": "a167b1860995b926d279f9bb538f873e3bfa3465", "shasum": "" }, "require": { @@ -11423,7 +11251,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -11454,20 +11282,86 @@ ], "description": "Symfony CssSelector Component", "homepage": "https://symfony.com", - "time": "2020-01-04T12:24:57+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { - "name": "symfony/dom-crawler", - "version": "v4.3.11", + "name": "symfony/debug-bundle", + "version": "v4.4.4", "source": { "type": "git", - "url": "https://github.com/symfony/dom-crawler.git", - "reference": "ccf895f6f3ed9430f53ae1ce34566e9bb6c58446" + "url": "https://github.com/symfony/debug-bundle.git", + "reference": "570c3c69e69f7709f184ee3acbebe45e5ff1adce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/ccf895f6f3ed9430f53ae1ce34566e9bb6c58446", - "reference": "ccf895f6f3ed9430f53ae1ce34566e9bb6c58446", + "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/570c3c69e69f7709f184ee3acbebe45e5ff1adce", + "reference": "570c3c69e69f7709f184ee3acbebe45e5ff1adce", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": "^7.1.3", + "symfony/http-kernel": "^3.4|^4.0|^5.0", + "symfony/twig-bridge": "^3.4|^4.0|^5.0", + "symfony/var-dumper": "^4.1.1|^5.0" + }, + "conflict": { + "symfony/config": "<4.2", + "symfony/dependency-injection": "<3.4" + }, + "require-dev": { + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/web-profiler-bundle": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/config": "For service container configuration", + "symfony/dependency-injection": "For using as a service from the container" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\DebugBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony DebugBundle", + "homepage": "https://symfony.com", + "time": "2020-01-04T13:00:46+00:00" + }, + { + "name": "symfony/dom-crawler", + "version": "v4.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "b66fe8ccc850ea11c4cd31677706c1219768bea1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/b66fe8ccc850ea11c4cd31677706c1219768bea1", + "reference": "b66fe8ccc850ea11c4cd31677706c1219768bea1", "shasum": "" }, "require": { @@ -11480,7 +11374,7 @@ }, "require-dev": { "masterminds/html5": "^2.6", - "symfony/css-selector": "~3.4|~4.0" + "symfony/css-selector": "^3.4|^4.0|^5.0" }, "suggest": { "symfony/css-selector": "" @@ -11488,7 +11382,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -11515,7 +11409,7 @@ ], "description": "Symfony DomCrawler Component", "homepage": "https://symfony.com", - "time": "2020-01-04T12:24:57+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "symfony/maker-bundle", @@ -11652,16 +11546,16 @@ }, { "name": "symfony/process", - "version": "v4.3.11", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "61ab103012c3072fb340447a34598714ba74ba6f" + "reference": "f5697ab4cb14a5deed7473819e63141bf5352c36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/61ab103012c3072fb340447a34598714ba74ba6f", - "reference": "61ab103012c3072fb340447a34598714ba74ba6f", + "url": "https://api.github.com/repos/symfony/process/zipball/f5697ab4cb14a5deed7473819e63141bf5352c36", + "reference": "f5697ab4cb14a5deed7473819e63141bf5352c36", "shasum": "" }, "require": { @@ -11670,7 +11564,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -11697,7 +11591,101 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2020-01-09T09:39:05+00:00" + "time": "2020-01-09T09:50:08+00:00" + }, + { + "name": "symfony/profiler-pack", + "version": "v1.0.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/profiler-pack.git", + "reference": "99c4370632c2a59bb0444852f92140074ef02209" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/profiler-pack/zipball/99c4370632c2a59bb0444852f92140074ef02209", + "reference": "99c4370632c2a59bb0444852f92140074ef02209", + "shasum": "" + }, + "require": { + "php": "^7.0", + "symfony/stopwatch": "*", + "symfony/twig-bundle": "*", + "symfony/web-profiler-bundle": "*" + }, + "type": "symfony-pack", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A pack for the Symfony web profiler", + "time": "2018-12-10T12:11:44+00:00" + }, + { + "name": "symfony/web-profiler-bundle", + "version": "v4.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/web-profiler-bundle.git", + "reference": "59822e61467f910a877e9ce432b461034f843cfa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/59822e61467f910a877e9ce432b461034f843cfa", + "reference": "59822e61467f910a877e9ce432b461034f843cfa", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/config": "^4.2|^5.0", + "symfony/framework-bundle": "^4.4|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/routing": "^4.3|^5.0", + "symfony/twig-bundle": "^4.2|^5.0", + "twig/twig": "^1.41|^2.10|^3.0" + }, + "conflict": { + "symfony/form": "<4.3", + "symfony/messenger": "<4.2" + }, + "require-dev": { + "symfony/browser-kit": "^4.3|^5.0", + "symfony/console": "^4.3|^5.0", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\WebProfilerBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony WebProfilerBundle", + "homepage": "https://symfony.com", + "time": "2020-01-21T16:34:10+00:00" }, { "name": "theseer/tokenizer", diff --git a/config/packages/dev/easy_log_handler.yaml b/config/packages/dev/easy_log_handler.yaml deleted file mode 100644 index 27bfc608..00000000 --- a/config/packages/dev/easy_log_handler.yaml +++ /dev/null @@ -1,16 +0,0 @@ -services: - EasyCorp\EasyLog\EasyLogHandler: - public: false - arguments: ['%kernel.logs_dir%/%kernel.environment%.log'] - -#// FIXME: How to add this configuration automatically without messing up with the monolog configuration? -#monolog: -# handlers: -# buffered: -# type: buffer -# handler: easylog -# channels: ['!event'] -# level: debug -# easylog: -# type: service -# id: EasyCorp\EasyLog\EasyLogHandler diff --git a/config/packages/twig.yaml b/config/packages/twig.yaml index 3531e358..31c0a5e4 100644 --- a/config/packages/twig.yaml +++ b/config/packages/twig.yaml @@ -4,3 +4,4 @@ twig: strict_variables: '%kernel.debug%' form_themes: - 'form/kimai-theme.html.twig' + exception_controller: null \ No newline at end of file diff --git a/config/routes/annotations.yaml b/config/routes/annotations.yaml index 1a86f800..0c3ab74f 100644 --- a/config/routes/annotations.yaml +++ b/config/routes/annotations.yaml @@ -1,5 +1,5 @@ controllers: - resource: '../src/Controller/' + resource: '../../src/Controller/' type: annotation prefix: /{_locale} requirements: diff --git a/config/routes/dev/twig.yaml b/config/routes/dev/twig.yaml index a85c61e5..3694650a 100644 --- a/config/routes/dev/twig.yaml +++ b/config/routes/dev/twig.yaml @@ -1,5 +1,5 @@ _errors: - resource: '@TwigBundle/Resources/config/routing/errors.xml' + resource: '@FrameworkBundle/Resources/config/routing/errors.xml' prefix: /{_locale}/_error requirements: _locale: '%app_locales%' diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 2be48b37..037a9bea 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -9,6 +9,7 @@ > + @@ -56,10 +57,16 @@ + + + + + - - \ No newline at end of file diff --git a/public/index.php b/public/index.php index fd7a6f44..476a13fd 100644 --- a/public/index.php +++ b/public/index.php @@ -1,7 +1,7 @@ getUser(); + $query = new CustomerQuery(); - $query->setCurrentUser($this->getUser()); + $query->setCurrentUser($user); if (null !== ($order = $paramFetcher->get('order'))) { $query->setOrder($order); diff --git a/src/API/ProjectController.php b/src/API/ProjectController.php index fa3eea1d..dad00cb8 100644 --- a/src/API/ProjectController.php +++ b/src/API/ProjectController.php @@ -12,6 +12,7 @@ declare(strict_types=1); namespace App\API; use App\Entity\Project; +use App\Entity\User; use App\Event\ProjectMetaDefinitionEvent; use App\Form\API\ProjectApiEditForm; use App\Repository\ProjectRepository; @@ -89,8 +90,11 @@ class ProjectController extends BaseApiController */ public function cgetAction(ParamFetcherInterface $paramFetcher): Response { + /** @var User $user */ + $user = $this->getUser(); + $query = new ProjectQuery(); - $query->setCurrentUser($this->getUser()); + $query->setCurrentUser($user); if (null !== ($order = $paramFetcher->get('order'))) { $query->setOrder($order); diff --git a/src/API/TeamController.php b/src/API/TeamController.php index 021b9232..31aca915 100644 --- a/src/API/TeamController.php +++ b/src/API/TeamController.php @@ -170,8 +170,11 @@ final class TeamController extends BaseApiController */ public function postAction(Request $request): Response { + /** @var User $user */ + $user = $this->getUser(); + $team = new Team(); - $team->setTeamLead($this->getUser()); + $team->setTeamLead($user); $form = $this->createForm(TeamApiEditForm::class, $team); diff --git a/src/API/TimesheetController.php b/src/API/TimesheetController.php index d7bdc94e..a61aa181 100644 --- a/src/API/TimesheetController.php +++ b/src/API/TimesheetController.php @@ -302,7 +302,10 @@ class TimesheetController extends BaseApiController */ public function postAction(Request $request): Response { - $timesheet = $this->service->createNewTimesheet($this->getUser(), $request); + /** @var User $user */ + $user = $this->getUser(); + + $timesheet = $this->service->createNewTimesheet($user, $request); $mode = $this->getTrackingMode(); @@ -520,7 +523,10 @@ class TimesheetController extends BaseApiController */ public function activeAction(): Response { - $data = $this->repository->getActiveEntries($this->getUser()); + /** @var User $user */ + $user = $this->getUser(); + + $data = $this->repository->getActiveEntries($user); $view = new View($data, 200); $view->getContext()->setGroups(['Default', 'Subresource', 'Timesheet']); @@ -600,7 +606,10 @@ class TimesheetController extends BaseApiController throw new AccessDeniedHttpException('You are not allowed to re-start this timesheet'); } - $copyTimesheet = $this->service->createNewTimesheet($this->getUser()); + /** @var User $user */ + $user = $this->getUser(); + + $copyTimesheet = $this->service->createNewTimesheet($user); $copyTimesheet ->setBegin($this->dateTime->createDateTime()) diff --git a/src/Controller/InvoiceController.php b/src/Controller/InvoiceController.php index 496827d9..7dd5ed29 100644 --- a/src/Controller/InvoiceController.php +++ b/src/Controller/InvoiceController.php @@ -112,6 +112,7 @@ final class InvoiceController extends AbstractController } return $this->render('invoice/index.html.twig', [ + 'query' => $query, 'model' => $model, 'form' => $form->createView(), 'preview' => $showPreview, diff --git a/src/Entity/Role.php b/src/Entity/Role.php index 114e46f7..adcf85cf 100644 --- a/src/Entity/Role.php +++ b/src/Entity/Role.php @@ -36,7 +36,9 @@ class Role * @var string * * @ORM\Column(name="name", type="string", length=50, nullable=false) - * @Assert\Length(min=5, max=50) + * @Assert\NotNull() + * @Assert\NotBlank() + * @Assert\Length(allowEmptyString=false, min=5, max=50) */ private $name; diff --git a/src/Form/Type/SearchTermType.php b/src/Form/Type/SearchTermType.php index 9f72b0a8..88d6b106 100644 --- a/src/Form/Type/SearchTermType.php +++ b/src/Form/Type/SearchTermType.php @@ -36,7 +36,7 @@ class SearchTermType extends AbstractType 'label' => 'search', 'required' => false, 'constraints' => [ - new Length(['min' => 3]) + new Length(['min' => 3, 'allowEmptyString' => true]) ], ]); } diff --git a/src/Invoice/Calculator/AbstractCalculator.php b/src/Invoice/Calculator/AbstractCalculator.php index a8ee3a51..a04309ea 100644 --- a/src/Invoice/Calculator/AbstractCalculator.php +++ b/src/Invoice/Calculator/AbstractCalculator.php @@ -9,6 +9,7 @@ namespace App\Invoice\Calculator; +use App\Invoice\CalculatorInterface; use App\Invoice\InvoiceItem; use App\Invoice\InvoiceModel; @@ -87,11 +88,17 @@ abstract class AbstractCalculator } /** + * @deprecated since 1.8 will be removed with 2.0 * @return string */ public function getCurrency(): string { - return $this->model->getCustomer()->getCurrency(); + @trigger_error( + sprintf('%s::getCurrency() is deprecated and will be removed with 2.0', CalculatorInterface::class), + E_USER_DEPRECATED + ); + + return $this->model->getCurrency(); } /** diff --git a/src/Invoice/CalculatorInterface.php b/src/Invoice/CalculatorInterface.php index a36ba763..8114ee41 100644 --- a/src/Invoice/CalculatorInterface.php +++ b/src/Invoice/CalculatorInterface.php @@ -52,6 +52,7 @@ interface CalculatorInterface /** * Returns the currency for the invoices amounts. * + * @deprecated since 1.8 will be removed with 2.0 * @return string */ public function getCurrency(): string; diff --git a/src/Invoice/InvoiceModel.php b/src/Invoice/InvoiceModel.php index cf8457b3..12d2d83c 100644 --- a/src/Invoice/InvoiceModel.php +++ b/src/Invoice/InvoiceModel.php @@ -211,13 +211,23 @@ final class InvoiceModel return $this->formatter; } + public function getCurrency(): string + { + if (null === $this->getCustomer()) { + // this should be set from the configuration + return Customer::DEFAULT_CURRENCY; + } + + return $this->getCustomer()->getCurrency(); + } + public function toArray(): array { $model = $this; $customer = $model->getCustomer(); $project = $model->getQuery()->getProject(); $activity = $model->getQuery()->getActivity(); - $currency = $model->getCalculator()->getCurrency(); + $currency = $this->getCurrency(); $tax = $model->getCalculator()->getTax(); $total = $model->getCalculator()->getTotal(); $subtotal = $model->getCalculator()->getSubtotal(); diff --git a/src/Repository/TimesheetRepository.php b/src/Repository/TimesheetRepository.php index 80e8f275..680fa44d 100644 --- a/src/Repository/TimesheetRepository.php +++ b/src/Repository/TimesheetRepository.php @@ -143,7 +143,7 @@ class TimesheetRepository extends EntityRepository $entityManager = $this->getEntityManager(); $entityManager->persist($entry); - $entityManager->flush($entry); + $entityManager->flush(); return true; } diff --git a/symfony.lock b/symfony.lock index 99c400a4..e53b54fa 100644 --- a/symfony.lock +++ b/symfony.lock @@ -99,15 +99,6 @@ "doctrine/reflection": { "version": "v1.0.0" }, - "easycorp/easy-log-handler": { - "version": "1.0", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "master", - "version": "1.0", - "ref": "70062abc2cd58794d2a90274502f81b55cd9951b" - } - }, "egulias/email-validator": { "version": "2.1.3" }, @@ -468,9 +459,6 @@ "ref": "71d29aaf710fd59cd3abff2b1ade907ed73103c6" } }, - "symfony/debug-pack": { - "version": "v1.0.4" - }, "symfony/dependency-injection": { "version": "v4.0.3" }, @@ -483,6 +471,9 @@ "symfony/dotenv": { "version": "v4.0.3" }, + "symfony/error-handler": { + "version": "v4.4.3" + }, "symfony/event-dispatcher": { "version": "v4.0.3" }, diff --git a/templates/export/index.html.twig b/templates/export/index.html.twig index 16e7699f..0be8b59b 100644 --- a/templates/export/index.html.twig +++ b/templates/export/index.html.twig @@ -7,7 +7,6 @@ {% set columns = { 'date': 'alwaysVisible', 'user': 'hidden-xs hidden-sm', - 'customer': 'hidden-xs hidden-sm', 'project': 'hidden-xs hidden-sm', 'activity': 'hidden-xs hidden-sm', 'description': 'hidden-xs hidden-sm', @@ -59,7 +58,7 @@ {% if entries is empty %} {{ widgets.callout('warning', 'error.no_entries_found') }} {% else %} - {{ tables.data_table_header(tableName, columns) }} + {{ tables.datatable_header(tableName, columns, query, {}) }} {% for entry in entries %} {% set currency = entry.project.customer.currency %} {% set duration = entry.duration|duration %} @@ -74,8 +73,11 @@ {{ entry.begin|date_short }} {{ widgets.label_user(entry.user) }} - {{ widgets.label_customer(entry.project.customer) }} - {{ widgets.label_project(entry.project) }} + + {{ widgets.label_project(entry.project) }} +
+ {{ widgets.label_customer(entry.project.customer) }} + {{ widgets.label_activity(entry.activity) }} {{ entry.description|escape|desc2html }} diff --git a/templates/invoice/index.html.twig b/templates/invoice/index.html.twig index 3e26ffe8..ca0a6eaf 100644 --- a/templates/invoice/index.html.twig +++ b/templates/invoice/index.html.twig @@ -62,7 +62,7 @@ {{ widgets.callout('warning', 'error.no_entries_found') }} {% else %} {% set entries = model.calculator.entries %} - {{ tables.data_table_header(tableName, columns) }} + {{ tables.datatable_header(tableName, columns, query, {}) }} {% for entry in entries %} {% set amount = entry.amount %} {% set duration = entry.duration|duration %} diff --git a/templates/plugin/index.html.twig b/templates/plugin/index.html.twig index 16187c46..a79879ea 100644 --- a/templates/plugin/index.html.twig +++ b/templates/plugin/index.html.twig @@ -23,7 +23,7 @@ {% set tableName = 'plugins' %} - {{ tables.data_table_header(tableName, columns) }} + {{ tables.datatable_header(tableName, columns, null, {}) }} {% for plugin in plugins %} {{ plugin.name }} diff --git a/tests/API/TagControllerTest.php b/tests/API/TagControllerTest.php index 82af3a08..7badedda 100644 --- a/tests/API/TagControllerTest.php +++ b/tests/API/TagControllerTest.php @@ -21,14 +21,13 @@ class TagControllerTest extends APIControllerBaseTest protected function setUp(): void { $client = $this->getClientForAuthenticatedUser(User::ROLE_USER); - $em = $client->getContainer()->get('doctrine.orm.entity_manager'); $tagList = ['Test', 'Administration', 'Support', '#2018-001', '#2018-002', '#2018-003', 'Development', 'Marketing', 'First Level Support', 'Bug Fixing']; $fixture = new TagFixtures(); $fixture->setTagArray($tagList); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); } public function testIsSecure() diff --git a/tests/API/TeamControllerTest.php b/tests/API/TeamControllerTest.php index 58e8d794..28af41bd 100644 --- a/tests/API/TeamControllerTest.php +++ b/tests/API/TeamControllerTest.php @@ -13,6 +13,7 @@ use App\Entity\Customer; use App\Entity\Project; use App\Entity\User; use App\Tests\DataFixtures\TeamFixtures; +use Symfony\Bundle\FrameworkBundle\Client; use Symfony\Component\HttpFoundation\Response; /** @@ -20,13 +21,11 @@ use Symfony\Component\HttpFoundation\Response; */ class TeamControllerTest extends APIControllerBaseTest { - protected function setUp(): void + protected function importTeamFixtures(Client $client): void { - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); - $em = $client->getContainer()->get('doctrine.orm.entity_manager'); $fixture = new TeamFixtures(); $fixture->setAmount(1); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); } public function testIsSecure() @@ -39,6 +38,7 @@ class TeamControllerTest extends APIControllerBaseTest public function testGetCollection() { $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); + $this->importTeamFixtures($client); $this->assertAccessIsGranted($client, '/api/teams'); $result = json_decode($client->getResponse()->getContent(), true); @@ -51,6 +51,7 @@ class TeamControllerTest extends APIControllerBaseTest public function testGetEntity() { $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); + $this->importTeamFixtures($client); $this->assertAccessIsGranted($client, '/api/teams/2'); $result = json_decode($client->getResponse()->getContent(), true); @@ -110,7 +111,6 @@ class TeamControllerTest extends APIControllerBaseTest $this->assertTrue($client->getResponse()->isSuccessful()); $result = json_decode($client->getResponse()->getContent(), true); - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $data = [ 'name' => 'foo', 'teamlead' => 2, @@ -129,6 +129,7 @@ class TeamControllerTest extends APIControllerBaseTest public function testDeleteAction() { $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); + $this->importTeamFixtures($client); $this->assertAccessIsGranted($client, '/api/teams/2'); $result = json_decode($client->getResponse()->getContent(), true); @@ -157,7 +158,6 @@ class TeamControllerTest extends APIControllerBaseTest $result = json_decode($client->getResponse()->getContent(), true); self::assertCount(1, $result['users']); - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/members/2', 'POST'); $this->assertTrue($client->getResponse()->isSuccessful()); @@ -180,33 +180,28 @@ class TeamControllerTest extends APIControllerBaseTest $result = json_decode($client->getResponse()->getContent(), true); // team not found - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/999/members/999', 'POST'); self::assertEquals(Response::HTTP_NOT_FOUND, $client->getResponse()->getStatusCode()); $json = json_decode($client->getResponse()->getContent(), true); self::assertEquals('Team not found', $json['message']); // user not found - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/members/999', 'POST'); self::assertEquals(Response::HTTP_NOT_FOUND, $client->getResponse()->getStatusCode()); $json = json_decode($client->getResponse()->getContent(), true); self::assertEquals('User not found', $json['message']); // add user - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/members/5', 'POST'); $this->assertTrue($client->getResponse()->isSuccessful()); // cannot add existing member - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/members/5', 'POST'); self::assertEquals(Response::HTTP_BAD_REQUEST, $client->getResponse()->getStatusCode()); $json = json_decode($client->getResponse()->getContent(), true); self::assertEquals('User is already member of the team', $json['message']); // cannot add disabled user - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/members/3', 'POST'); self::assertEquals(Response::HTTP_BAD_REQUEST, $client->getResponse()->getStatusCode()); $json = json_decode($client->getResponse()->getContent(), true); @@ -226,7 +221,6 @@ class TeamControllerTest extends APIControllerBaseTest $result = json_decode($client->getResponse()->getContent(), true); self::assertCount(4, $result['users']); - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/members/2', 'DELETE'); $this->assertTrue($client->getResponse()->isSuccessful()); @@ -249,33 +243,28 @@ class TeamControllerTest extends APIControllerBaseTest $result = json_decode($client->getResponse()->getContent(), true); // team not found - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/999/members/999', 'DELETE'); self::assertEquals(Response::HTTP_NOT_FOUND, $client->getResponse()->getStatusCode()); $json = json_decode($client->getResponse()->getContent(), true); self::assertEquals('Team not found', $json['message']); // user not found - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/members/999', 'DELETE'); self::assertEquals(Response::HTTP_NOT_FOUND, $client->getResponse()->getStatusCode()); $json = json_decode($client->getResponse()->getContent(), true); self::assertEquals('User not found', $json['message']); // remove user - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/members/2', 'DELETE'); $this->assertTrue($client->getResponse()->isSuccessful()); // cannot remove non-member - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/members/2', 'DELETE'); self::assertEquals(Response::HTTP_BAD_REQUEST, $client->getResponse()->getStatusCode()); $json = json_decode($client->getResponse()->getContent(), true); self::assertEquals('User is not a member of the team', $json['message']); // cannot remove teamlead - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/members/1', 'DELETE'); self::assertEquals(Response::HTTP_BAD_REQUEST, $client->getResponse()->getStatusCode()); $json = json_decode($client->getResponse()->getContent(), true); @@ -294,7 +283,6 @@ class TeamControllerTest extends APIControllerBaseTest $result = json_decode($client->getResponse()->getContent(), true); self::assertCount(0, $result['customers']); - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/customers/1', 'POST'); $this->assertTrue($client->getResponse()->isSuccessful()); @@ -318,28 +306,24 @@ class TeamControllerTest extends APIControllerBaseTest $result = json_decode($client->getResponse()->getContent(), true); // team not found - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/999/customers/999', 'POST'); self::assertEquals(Response::HTTP_NOT_FOUND, $client->getResponse()->getStatusCode()); $json = json_decode($client->getResponse()->getContent(), true); self::assertEquals('Team not found', $json['message']); // customer not found - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/customers/999', 'POST'); self::assertEquals(Response::HTTP_NOT_FOUND, $client->getResponse()->getStatusCode()); $json = json_decode($client->getResponse()->getContent(), true); self::assertEquals('Customer not found', $json['message']); // add customer - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/customers/1', 'POST'); $this->assertTrue($client->getResponse()->isSuccessful()); $result = json_decode($client->getResponse()->getContent(), true); self::assertCount(1, $result['customers']); // cannot add existing customer - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/customers/1', 'POST'); self::assertEquals(Response::HTTP_BAD_REQUEST, $client->getResponse()->getStatusCode()); $json = json_decode($client->getResponse()->getContent(), true); @@ -355,7 +339,6 @@ class TeamControllerTest extends APIControllerBaseTest $em->flush(); // cannot add invisible customer - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/customers/' . $customer->getId(), 'POST'); self::assertEquals(Response::HTTP_BAD_REQUEST, $client->getResponse()->getStatusCode()); $json = json_decode($client->getResponse()->getContent(), true); @@ -376,13 +359,11 @@ class TeamControllerTest extends APIControllerBaseTest self::assertCount(0, $result['customers']); // add customer - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/customers/1', 'POST'); $this->assertTrue($client->getResponse()->isSuccessful()); $result = json_decode($client->getResponse()->getContent(), true); self::assertCount(1, $result['customers']); - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/customers/1', 'DELETE'); $this->assertTrue($client->getResponse()->isSuccessful()); @@ -405,21 +386,18 @@ class TeamControllerTest extends APIControllerBaseTest $result = json_decode($client->getResponse()->getContent(), true); // team not found - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/999/customers/999', 'DELETE'); self::assertEquals(Response::HTTP_NOT_FOUND, $client->getResponse()->getStatusCode()); $json = json_decode($client->getResponse()->getContent(), true); self::assertEquals('Team not found', $json['message']); // customer not found - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/customers/999', 'DELETE'); self::assertEquals(Response::HTTP_NOT_FOUND, $client->getResponse()->getStatusCode()); $json = json_decode($client->getResponse()->getContent(), true); self::assertEquals('Customer not found', $json['message']); // cannot remove customer - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/customers/1', 'DELETE'); self::assertEquals(Response::HTTP_BAD_REQUEST, $client->getResponse()->getStatusCode()); $json = json_decode($client->getResponse()->getContent(), true); @@ -438,7 +416,6 @@ class TeamControllerTest extends APIControllerBaseTest $result = json_decode($client->getResponse()->getContent(), true); self::assertCount(0, $result['projects']); - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/projects/1', 'POST'); $this->assertTrue($client->getResponse()->isSuccessful()); @@ -462,28 +439,24 @@ class TeamControllerTest extends APIControllerBaseTest $result = json_decode($client->getResponse()->getContent(), true); // team not found - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/999/projects/999', 'POST'); self::assertEquals(Response::HTTP_NOT_FOUND, $client->getResponse()->getStatusCode()); $json = json_decode($client->getResponse()->getContent(), true); self::assertEquals('Team not found', $json['message']); // project not found - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/projects/999', 'POST'); self::assertEquals(Response::HTTP_NOT_FOUND, $client->getResponse()->getStatusCode()); $json = json_decode($client->getResponse()->getContent(), true); self::assertEquals('Project not found', $json['message']); // add project - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/projects/1', 'POST'); $this->assertTrue($client->getResponse()->isSuccessful()); $result = json_decode($client->getResponse()->getContent(), true); self::assertCount(1, $result['projects']); // cannot add existing project - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/projects/1', 'POST'); self::assertEquals(Response::HTTP_BAD_REQUEST, $client->getResponse()->getStatusCode()); $json = json_decode($client->getResponse()->getContent(), true); @@ -505,7 +478,6 @@ class TeamControllerTest extends APIControllerBaseTest $em->flush(); // cannot add invisible project - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/projects/' . $project->getId(), 'POST'); self::assertEquals(Response::HTTP_BAD_REQUEST, $client->getResponse()->getStatusCode()); $json = json_decode($client->getResponse()->getContent(), true); @@ -526,13 +498,11 @@ class TeamControllerTest extends APIControllerBaseTest self::assertCount(0, $result['projects']); // add project - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/projects/1', 'POST'); $this->assertTrue($client->getResponse()->isSuccessful()); $result = json_decode($client->getResponse()->getContent(), true); self::assertCount(1, $result['projects']); - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/projects/1', 'DELETE'); $this->assertTrue($client->getResponse()->isSuccessful()); @@ -555,21 +525,18 @@ class TeamControllerTest extends APIControllerBaseTest $result = json_decode($client->getResponse()->getContent(), true); // team not found - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/999/projects/999', 'DELETE'); self::assertEquals(Response::HTTP_NOT_FOUND, $client->getResponse()->getStatusCode()); $json = json_decode($client->getResponse()->getContent(), true); self::assertEquals('Team not found', $json['message']); // project not found - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/projects/999', 'DELETE'); self::assertEquals(Response::HTTP_NOT_FOUND, $client->getResponse()->getStatusCode()); $json = json_decode($client->getResponse()->getContent(), true); self::assertEquals('Project not found', $json['message']); // cannot remove project - $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/api/teams/' . $result['id'] . '/projects/1', 'DELETE'); self::assertEquals(Response::HTTP_BAD_REQUEST, $client->getResponse()->getStatusCode()); $json = json_decode($client->getResponse()->getContent(), true); diff --git a/tests/API/TimesheetControllerTest.php b/tests/API/TimesheetControllerTest.php index 64f5cc81..b9955f57 100644 --- a/tests/API/TimesheetControllerTest.php +++ b/tests/API/TimesheetControllerTest.php @@ -56,7 +56,7 @@ class TimesheetControllerTest extends APIControllerBaseTest ->setStartDate((new \DateTime('first day of this month'))->setTime(0, 0, 1)) ->setAllowEmptyDescriptions(false) ; - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); } public function testIsSecure() @@ -501,7 +501,7 @@ class TimesheetControllerTest extends APIControllerBaseTest $timesheet = $em->getRepository(Timesheet::class)->find(1); $timesheet->setExported(true); $em->persist($timesheet); - $em->flush($timesheet); + $em->flush(); $this->request($client, '/api/timesheets/1', 'DELETE'); $this->assertApiResponseAccessDenied($client->getResponse(), 'You are not allowed to delete this timesheet'); @@ -516,7 +516,7 @@ class TimesheetControllerTest extends APIControllerBaseTest $timesheet = $em->getRepository(Timesheet::class)->find(1); $timesheet->setExported(true); $em->persist($timesheet); - $em->flush($timesheet); + $em->flush(); $this->request($client, '/api/timesheets/1', 'DELETE'); $this->assertTrue($client->getResponse()->isSuccessful()); @@ -734,7 +734,7 @@ class TimesheetControllerTest extends APIControllerBaseTest $timesheet->setMetaField((new TimesheetMeta())->setName('xxxxxxx')->setValue('asdasdasd')); $timesheet->setMetaField((new TimesheetMeta())->setName('1234567890')->setValue('1234567890')->setIsVisible(true)); $em->persist($timesheet); - $em->flush($timesheet); + $em->flush(); $timesheet = $em->getRepository(Timesheet::class)->find(1); $this->assertEquals('foo', $timesheet->getDescription()); diff --git a/tests/Controller/AboutControllerTest.php b/tests/Controller/AboutControllerTest.php index 47ce8e6d..0d9d89f5 100644 --- a/tests/Controller/AboutControllerTest.php +++ b/tests/Controller/AboutControllerTest.php @@ -26,6 +26,6 @@ class AboutControllerTest extends ControllerBaseTest $result = $client->getCrawler()->filter('div.box-body pre'); $this->assertEquals(1, count($result)); - $this->assertStringContainsString('MIT License', $result->text()); + $this->assertStringContainsString('MIT License', $result->text(null, true)); } } diff --git a/tests/Controller/ActivityControllerTest.php b/tests/Controller/ActivityControllerTest.php index 201ac9c4..8363bc2d 100644 --- a/tests/Controller/ActivityControllerTest.php +++ b/tests/Controller/ActivityControllerTest.php @@ -40,7 +40,7 @@ class ActivityControllerTest extends ControllerBaseTest public function testIndexActionWithSearchTermQuery() { $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); - $em = $client->getContainer()->get('doctrine.orm.entity_manager'); + $fixture = new ActivityFixtures(); $fixture->setAmount(5); $fixture->setCallback(function (Activity $activity) { @@ -49,7 +49,7 @@ class ActivityControllerTest extends ControllerBaseTest $activity->setMetaField((new ActivityMeta())->setName('location')->setValue('homeoffice')); $activity->setMetaField((new ActivityMeta())->setName('feature')->setValue('timetracking')); }); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->assertAccessIsGranted($client, '/admin/activity/'); @@ -77,7 +77,7 @@ class ActivityControllerTest extends ControllerBaseTest $fixture->setAmount(10); $fixture->setActivities($em->getRepository(Activity::class)->findAll()); $fixture->setUser($this->getUserByRole($em, User::ROLE_ADMIN)); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->assertAccessIsGranted($client, '/admin/activity/1/budget'); @@ -125,11 +125,9 @@ class ActivityControllerTest extends ControllerBaseTest { $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); - /** @var EntityManager $em */ - $em = $client->getContainer()->get('doctrine.orm.entity_manager'); $fixture = new ProjectFixtures(); $fixture->setAmount(10); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $this->assertAccessIsGranted($client, '/admin/activity/create'); $form = $client->getCrawler()->filter('form[name=activity_edit_form]')->form(); @@ -224,10 +222,11 @@ class ActivityControllerTest extends ControllerBaseTest /** @var EntityManager $em */ $em = $client->getContainer()->get('doctrine.orm.entity_manager'); + $fixture = new TimesheetFixtures(); $fixture->setUser($this->getUserByRole($em, User::ROLE_USER)); $fixture->setAmount(10); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $timesheets = $em->getRepository(Timesheet::class)->findAll(); $this->assertEquals(10, count($timesheets)); @@ -264,13 +263,14 @@ class ActivityControllerTest extends ControllerBaseTest /** @var EntityManager $em */ $em = $client->getContainer()->get('doctrine.orm.entity_manager'); + $fixture = new TimesheetFixtures(); $fixture->setUser($this->getUserByRole($em, User::ROLE_USER)); $fixture->setAmount(10); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $fixture = new ActivityFixtures(); $fixture->setAmount(1)->setIsGlobal(true)->setIsVisible(true); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $timesheets = $em->getRepository(Timesheet::class)->findAll(); $this->assertEquals(10, count($timesheets)); diff --git a/tests/Controller/ControllerBaseTest.php b/tests/Controller/ControllerBaseTest.php index 81aedeb6..3c0a825d 100644 --- a/tests/Controller/ControllerBaseTest.php +++ b/tests/Controller/ControllerBaseTest.php @@ -279,7 +279,7 @@ abstract class ControllerBaseTest extends WebTestCase protected function assertCalloutWidgetWithMessage(Client $client, string $message) { $node = $client->getCrawler()->filter('div.callout.callout-warning.lead'); - self::assertStringContainsString($message, $node->text()); + self::assertStringContainsString($message, $node->text(null, true)); } protected function assertHasFlashDeleteSuccess(Client $client) @@ -301,7 +301,7 @@ abstract class ControllerBaseTest extends WebTestCase $node = $client->getCrawler()->filter('div.alert.alert-success.alert-dismissible'); self::assertGreaterThan(0, $node->count(), 'Could not find flash success message'); if (null !== $message) { - self::assertStringContainsString($message, $node->text()); + self::assertStringContainsString($message, $node->text(null, true)); } } @@ -314,7 +314,7 @@ abstract class ControllerBaseTest extends WebTestCase $node = $client->getCrawler()->filter('div.alert.alert-error.alert-dismissible'); self::assertGreaterThan(0, $node->count(), 'Could not find flash error message'); if (null !== $message) { - self::assertStringContainsString($message, $node->text()); + self::assertStringContainsString($message, $node->text(null, true)); } } diff --git a/tests/Controller/CustomerControllerTest.php b/tests/Controller/CustomerControllerTest.php index 85ffcc69..175e95ab 100644 --- a/tests/Controller/CustomerControllerTest.php +++ b/tests/Controller/CustomerControllerTest.php @@ -42,7 +42,7 @@ class CustomerControllerTest extends ControllerBaseTest public function testIndexActionWithSearchTermQuery() { $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); - $em = $client->getContainer()->get('doctrine.orm.entity_manager'); + $fixture = new CustomerFixtures(); $fixture->setAmount(5); $fixture->setCallback(function (Customer $customer) { @@ -51,7 +51,7 @@ class CustomerControllerTest extends ControllerBaseTest $customer->setMetaField((new CustomerMeta())->setName('location')->setValue('homeoffice')); $customer->setMetaField((new CustomerMeta())->setName('feature')->setValue('timetracking')); }); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->assertAccessIsGranted($client, '/admin/customer/'); @@ -161,14 +161,14 @@ class CustomerControllerTest extends ControllerBaseTest $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->assertAccessIsGranted($client, '/admin/customer/1/details'); $node = $client->getCrawler()->filter('div.box#team_listing_box .box-body'); - self::assertStringContainsString('Visible to everyone, as no team was assigned yet.', $node->text()); + self::assertStringContainsString('Visible to everyone, as no team was assigned yet.', $node->text(null, true)); $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/admin/customer/1/create_team'); $this->assertIsRedirect($client, $this->createUrl('/admin/customer/1/details')); $client->followRedirect(); $node = $client->getCrawler()->filter('div.box#team_listing_box .box-body'); - self::assertStringContainsString('Only visible to the following teams and all admins.', $node->text()); + self::assertStringContainsString('Only visible to the following teams and all admins.', $node->text(null, true)); $node = $client->getCrawler()->filter('div.box#team_listing_box .box-body table tbody tr'); self::assertEquals(1, $node->count()); } @@ -183,10 +183,11 @@ class CustomerControllerTest extends ControllerBaseTest /** @var EntityManager $em */ $em = $client->getContainer()->get('doctrine.orm.entity_manager'); $customer = $em->getRepository(Customer::class)->find(1); + $fixture = new ProjectFixtures(); $fixture->setAmount(9); // to trigger a second page (every third activity is hidden) $fixture->setCustomers([$customer]); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->assertAccessIsGranted($client, '/admin/customer/1/projects/1'); @@ -267,7 +268,7 @@ class CustomerControllerTest extends ControllerBaseTest $fixture = new TeamFixtures(); $fixture->setAmount(2); $fixture->setAddCustomer(false); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $this->assertAccessIsGranted($client, '/admin/customer/1/permissions'); $form = $client->getCrawler()->filter('form[name=customer_team_permission_form]')->form(); @@ -292,10 +293,9 @@ class CustomerControllerTest extends ControllerBaseTest { $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); - $em = $client->getContainer()->get('doctrine.orm.entity_manager'); $fixture = new CustomerFixtures(); $fixture->setAmount(1); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $this->request($client, '/admin/customer/2/edit'); $this->assertTrue($client->getResponse()->isSuccessful()); @@ -322,7 +322,7 @@ class CustomerControllerTest extends ControllerBaseTest $fixture = new TimesheetFixtures(); $fixture->setUser($this->getUserByRole($em, User::ROLE_USER)); $fixture->setAmount(10); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $timesheets = $em->getRepository(Timesheet::class)->findAll(); $this->assertEquals(10, count($timesheets)); @@ -361,10 +361,10 @@ class CustomerControllerTest extends ControllerBaseTest $fixture = new TimesheetFixtures(); $fixture->setUser($this->getUserByRole($em, User::ROLE_USER)); $fixture->setAmount(10); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $fixture = new CustomerFixtures(); $fixture->setAmount(1)->setIsVisible(true); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $timesheets = $em->getRepository(Timesheet::class)->findAll(); $this->assertEquals(10, count($timesheets)); diff --git a/tests/Controller/ExportControllerTest.php b/tests/Controller/ExportControllerTest.php index 6a04c168..1a4dab14 100644 --- a/tests/Controller/ExportControllerTest.php +++ b/tests/Controller/ExportControllerTest.php @@ -66,7 +66,7 @@ class ExportControllerTest extends ControllerBaseTest $em->persist($team); }) ; - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $teamlead = $this->getUserByRole($em, User::ROLE_TEAMLEAD); @@ -76,7 +76,7 @@ class ExportControllerTest extends ControllerBaseTest ->setAmount(2) ->setStartDate($begin) ; - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $em->flush(); $this->request($client, '/export/?preview='); @@ -112,7 +112,7 @@ class ExportControllerTest extends ControllerBaseTest ->setAmount(20) ->setStartDate($begin) ; - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $this->request($client, '/export/?preview='); $this->assertTrue($client->getResponse()->isSuccessful()); @@ -128,7 +128,7 @@ class ExportControllerTest extends ControllerBaseTest ->setAmount(2) ->setStartDate($begin) ; - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $this->request($client, '/export/?preview='); $this->assertTrue($client->getResponse()->isSuccessful()); @@ -194,7 +194,7 @@ class ExportControllerTest extends ControllerBaseTest ->setAmount(20) ->setStartDate($begin) ; - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $this->request($client, '/export/'); $this->assertTrue($client->getResponse()->isSuccessful()); diff --git a/tests/Controller/InvoiceControllerTest.php b/tests/Controller/InvoiceControllerTest.php index f0a1411e..e0ba858c 100644 --- a/tests/Controller/InvoiceControllerTest.php +++ b/tests/Controller/InvoiceControllerTest.php @@ -40,9 +40,8 @@ class InvoiceControllerTest extends ControllerBaseTest { $client = $this->getClientForAuthenticatedUser(User::ROLE_TEAMLEAD); - $em = $client->getContainer()->get('doctrine.orm.entity_manager'); $fixture = new InvoiceFixtures(); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $this->request($client, '/invoice/?preview='); $this->assertTrue($client->getResponse()->isSuccessful()); @@ -54,9 +53,8 @@ class InvoiceControllerTest extends ControllerBaseTest { $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); - $em = $client->getContainer()->get('doctrine.orm.entity_manager'); $fixture = new InvoiceFixtures(); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $this->request($client, '/invoice/template'); @@ -94,7 +92,7 @@ class InvoiceControllerTest extends ControllerBaseTest $em = $client->getContainer()->get('doctrine.orm.entity_manager'); $fixture = new InvoiceFixtures(); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); /** @var InvoiceTemplate $template */ $template = $em->getRepository(InvoiceTemplate::class)->find(1); @@ -123,7 +121,7 @@ class InvoiceControllerTest extends ControllerBaseTest $em = $client->getContainer()->get('doctrine.orm.entity_manager'); $fixture = new InvoiceFixtures(); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $begin = new \DateTime('first day of this month'); $end = new \DateTime('last day of this month'); @@ -133,7 +131,7 @@ class InvoiceControllerTest extends ControllerBaseTest ->setAmount(20) ->setStartDate($begin) ; - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $this->request($client, '/invoice/'); $this->assertTrue($client->getResponse()->isSuccessful()); @@ -186,9 +184,8 @@ class InvoiceControllerTest extends ControllerBaseTest { $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); - $em = $client->getContainer()->get('doctrine.orm.entity_manager'); $fixture = new InvoiceFixtures(); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $this->request($client, '/invoice/template/1/edit?page=1'); $form = $client->getCrawler()->filter('form[name=invoice_template_form]')->form(); @@ -216,7 +213,7 @@ class InvoiceControllerTest extends ControllerBaseTest $em = $client->getContainer()->get('doctrine.orm.entity_manager'); $fixture = new InvoiceFixtures(); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $this->request($client, '/invoice/template/1/delete'); $this->assertIsRedirect($client, '/invoice/template'); diff --git a/tests/Controller/ProfileControllerTest.php b/tests/Controller/ProfileControllerTest.php index b8db3821..1ca18d4b 100644 --- a/tests/Controller/ProfileControllerTest.php +++ b/tests/Controller/ProfileControllerTest.php @@ -55,7 +55,7 @@ class ProfileControllerTest extends ControllerBaseTest $fixture->setAmount(10); $fixture->setUser($this->getUserByRole($em, User::ROLE_USER)); $fixture->setStartDate($start); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); } $this->request($client, '/profile/' . UserFixtures::USERNAME_USER); @@ -338,7 +338,7 @@ class ProfileControllerTest extends ControllerBaseTest $fixture->setAddCustomer(true); $fixture->setAddUser(false); $fixture->addUserToIgnore($user); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $this->request($client, '/profile/' . UserFixtures::USERNAME_USER . '/teams'); diff --git a/tests/Controller/ProjectControllerTest.php b/tests/Controller/ProjectControllerTest.php index 0f041c93..8dbf267c 100644 --- a/tests/Controller/ProjectControllerTest.php +++ b/tests/Controller/ProjectControllerTest.php @@ -43,7 +43,7 @@ class ProjectControllerTest extends ControllerBaseTest public function testIndexActionWithSearchTermQuery() { $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); - $em = $client->getContainer()->get('doctrine.orm.entity_manager'); + $fixture = new ProjectFixtures(); $fixture->setAmount(5); $fixture->setCallback(function (Project $project) { @@ -52,7 +52,7 @@ class ProjectControllerTest extends ControllerBaseTest $project->setMetaField((new ProjectMeta())->setName('location')->setValue('homeoffice')); $project->setMetaField((new ProjectMeta())->setName('feature')->setValue('timetracking')); }); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->assertAccessIsGranted($client, '/admin/project/'); @@ -82,13 +82,13 @@ class ProjectControllerTest extends ControllerBaseTest $fixture->setAmount(10); $fixture->setProjects([$project]); $fixture->setUser($this->getUserByRole($em, User::ROLE_ADMIN)); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $project = $em->getRepository(Project::class)->find(1); $fixture = new ActivityFixtures(); $fixture->setAmount(6); // to trigger a second page $fixture->setProjects([$project]); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->assertAccessIsGranted($client, '/admin/project/1/details'); @@ -180,14 +180,14 @@ class ProjectControllerTest extends ControllerBaseTest $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->assertAccessIsGranted($client, '/admin/project/1/details'); $node = $client->getCrawler()->filter('div.box#team_listing_box .box-body'); - self::assertStringContainsString('Visible to everyone, as no team was assigned yet.', $node->text()); + self::assertStringContainsString('Visible to everyone, as no team was assigned yet.', $node->text(null, true)); $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->request($client, '/admin/project/1/create_team'); $this->assertIsRedirect($client, $this->createUrl('/admin/project/1/details')); $client->followRedirect(); $node = $client->getCrawler()->filter('div.box#team_listing_box .box-body'); - self::assertStringContainsString('Only visible to the following teams and all admins.', $node->text()); + self::assertStringContainsString('Only visible to the following teams and all admins.', $node->text(null, true)); $node = $client->getCrawler()->filter('div.box#team_listing_box .box-body table tbody tr'); self::assertEquals(1, $node->count()); } @@ -204,7 +204,7 @@ class ProjectControllerTest extends ControllerBaseTest $fixture = new ActivityFixtures(); $fixture->setAmount(9); // to trigger a second page (every third activity is hidden) $fixture->setProjects([$project]); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $this->assertAccessIsGranted($client, '/admin/project/1/activities/1'); @@ -249,10 +249,9 @@ class ProjectControllerTest extends ControllerBaseTest { $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); - $em = $client->getContainer()->get('doctrine.orm.entity_manager'); $fixture = new CustomerFixtures(); $fixture->setAmount(10); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $this->assertAccessIsGranted($client, '/admin/project/create'); $form = $client->getCrawler()->filter('form[name=project_edit_form]')->form(); @@ -308,7 +307,7 @@ class ProjectControllerTest extends ControllerBaseTest $fixture = new TeamFixtures(); $fixture->setAmount(2); $fixture->setAddCustomer(false); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $this->assertAccessIsGranted($client, '/admin/project/1/permissions'); $form = $client->getCrawler()->filter('form[name=project_team_permission_form]')->form(); @@ -333,10 +332,9 @@ class ProjectControllerTest extends ControllerBaseTest { $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); - $em = $client->getContainer()->get('doctrine.orm.entity_manager'); $fixture = new ProjectFixtures(); $fixture->setAmount(1); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $this->request($client, '/admin/project/2/edit'); $this->assertTrue($client->getResponse()->isSuccessful()); @@ -363,7 +361,7 @@ class ProjectControllerTest extends ControllerBaseTest $fixture = new TimesheetFixtures(); $fixture->setUser($this->getUserByRole($em, User::ROLE_USER)); $fixture->setAmount(10); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $timesheets = $em->getRepository(Timesheet::class)->findAll(); $this->assertEquals(10, count($timesheets)); @@ -402,10 +400,10 @@ class ProjectControllerTest extends ControllerBaseTest $fixture = new TimesheetFixtures(); $fixture->setUser($this->getUserByRole($em, User::ROLE_USER)); $fixture->setAmount(10); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $fixture = new ProjectFixtures(); $fixture->setAmount(1)->setIsVisible(true); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $timesheets = $em->getRepository(Timesheet::class)->findAll(); $this->assertEquals(10, count($timesheets)); diff --git a/tests/Controller/TagControllerTest.php b/tests/Controller/TagControllerTest.php index 0ed1bce9..f6d3d200 100644 --- a/tests/Controller/TagControllerTest.php +++ b/tests/Controller/TagControllerTest.php @@ -12,23 +12,21 @@ namespace App\Tests\Controller; use App\Entity\Tag; use App\Entity\User; use App\Tests\DataFixtures\TagFixtures; +use Symfony\Bundle\FrameworkBundle\Client; /** * @group integration */ class TagControllerTest extends ControllerBaseTest { - protected function setUp(): void + protected function importTags(Client $client): void { - $client = $this->getClientForAuthenticatedUser(User::ROLE_USER); - $em = $client->getContainer()->get('doctrine.orm.entity_manager'); - $tagList = ['Test', 'Administration', 'Support', '#2018-001', '#2018-002', '#2018-003', 'Development', 'Marketing', 'First Level Support', 'Bug Fixing']; $fixture = new TagFixtures(); $fixture->setTagArray($tagList); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); } public function testDebugIsSecure() @@ -39,6 +37,7 @@ class TagControllerTest extends ControllerBaseTest public function testIndexAction() { $client = $this->getClientForAuthenticatedUser(User::ROLE_TEAMLEAD); + $this->importTags($client); $this->assertAccessIsGranted($client, '/admin/tags/'); $this->assertHasDataTable($client); @@ -48,6 +47,7 @@ class TagControllerTest extends ControllerBaseTest public function testIndexActionWithSearchTermQuery() { $client = $this->getClientForAuthenticatedUser(User::ROLE_TEAMLEAD); + $this->importTags($client); $this->request($client, '/admin/tags/'); $this->assertTrue($client->getResponse()->isSuccessful()); @@ -76,7 +76,7 @@ class TagControllerTest extends ControllerBaseTest $client->followRedirect(); $this->assertHasDataTable($client); - $this->request($client, '/admin/tags/11/edit'); + $this->request($client, '/admin/tags/1/edit'); $editForm = $client->getCrawler()->filter('form[name=tag_edit_form]')->form(); $this->assertEquals('A tAG Name!', $editForm->get('tag_edit_form[name]')->getValue()); } @@ -84,6 +84,8 @@ class TagControllerTest extends ControllerBaseTest public function testEditAction() { $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); + $this->importTags($client); + $this->assertAccessIsGranted($client, '/admin/tags/1/edit'); $form = $client->getCrawler()->filter('form[name=tag_edit_form]')->form(); $client->submit($form, [ @@ -100,6 +102,8 @@ class TagControllerTest extends ControllerBaseTest public function testMultiDeleteAction() { $client = $this->getClientForAuthenticatedUser(User::ROLE_TEAMLEAD); + $this->importTags($client); + $this->assertAccessIsGranted($client, '/admin/tags/'); $form = $client->getCrawler()->filter('form[name=multi_update_table]')->form(); diff --git a/tests/Controller/UserControllerTest.php b/tests/Controller/UserControllerTest.php index fa872981..134f6e5e 100644 --- a/tests/Controller/UserControllerTest.php +++ b/tests/Controller/UserControllerTest.php @@ -147,7 +147,7 @@ class UserControllerTest extends ControllerBaseTest $fixture = new TimesheetFixtures(); $fixture->setUser($user); $fixture->setAmount(10); - $this->importFixture($em, $fixture); + $this->importFixture($client, $fixture); $timesheets = $em->getRepository(Timesheet::class)->findAll(); $this->assertEquals(10, count($timesheets)); diff --git a/tests/Event/ThemeEventTest.php b/tests/Event/ThemeEventTest.php index 785673b7..66d3ffab 100644 --- a/tests/Event/ThemeEventTest.php +++ b/tests/Event/ThemeEventTest.php @@ -25,11 +25,23 @@ class ThemeEventTest extends TestCase $sut = new ThemeEvent($user); - $this->assertEquals($user, $sut->getUser()); $this->assertNull($sut->getPayload()); $this->assertEquals('', $sut->getContent()); } + /** + * @group legacy + */ + public function testDeprecation() + { + $user = new User(); + $user->setAlias('foo'); + + $sut = new ThemeEvent($user); + + $this->assertEquals($user, $sut->getUser()); + } + public function testGetterAndSetter() { $user = new User(); diff --git a/tests/Event/UserPreferenceEventTest.php b/tests/Event/UserPreferenceEventTest.php index 9a1a4830..13a65b61 100644 --- a/tests/Event/UserPreferenceEventTest.php +++ b/tests/Event/UserPreferenceEventTest.php @@ -50,7 +50,28 @@ class UserPreferenceEventTest extends TestCase $sut = new UserPreferenceEvent($user, []); - $sut->addUserPreference($pref); // change me, once the deprecated method will be deleted + $sut->addPreference($pref); $sut->addPreference($pref2); } + + /** + * @group legacy + */ + public function testDeprecations() + { + $this->expectException(\InvalidArgumentException::class); + + $user = new User(); + $user->setAlias('foo'); + $pref = new UserPreference(); + $pref->setName('foo')->setValue('bar'); + + $pref2 = new UserPreference(); + $pref2->setName('foo')->setValue('hello'); + + $sut = new UserPreferenceEvent($user, []); + + $sut->addUserPreference($pref); // change me, once the deprecated method will be deleted + $sut->addUserPreference($pref2); // change me, once the deprecated method will be deleted + } } diff --git a/tests/EventSubscriber/RegistrationSubscriberTest.php b/tests/EventSubscriber/RegistrationSubscriberTest.php index 695cc39a..5f9ca429 100644 --- a/tests/EventSubscriber/RegistrationSubscriberTest.php +++ b/tests/EventSubscriber/RegistrationSubscriberTest.php @@ -32,7 +32,10 @@ class RegistrationSubscriberTest extends TestCase } /** + * Legacy test becuase the user bundle won't update to a new release + * * @dataProvider getTestData + * @group legacy */ public function testRoleAssignmentForNewUser(array $existingUsers, $expectedRoles) { diff --git a/tests/Invoice/Calculator/AbstractCalculatorTest.php b/tests/Invoice/Calculator/AbstractCalculatorTest.php index ceeb9b27..69269352 100644 --- a/tests/Invoice/Calculator/AbstractCalculatorTest.php +++ b/tests/Invoice/Calculator/AbstractCalculatorTest.php @@ -25,11 +25,13 @@ abstract class AbstractCalculatorTest extends TestCase { protected function assertEmptyModel(CalculatorInterface $sut) { - $sut->setModel($this->getEmptyModel()); + $model = $this->getEmptyModel(); + $this->assertEquals('EUR', $model->getCurrency()); + + $sut->setModel($model); $this->assertEquals(0, $sut->getTotal()); $this->assertEquals(0, $sut->getVat()); - $this->assertEquals('EUR', $sut->getCurrency()); $this->assertEquals(0, $sut->getSubtotal()); $this->assertEquals(0, $sut->getTimeWorked()); $this->assertEquals(0, count($sut->getEntries())); @@ -89,7 +91,7 @@ abstract class AbstractCalculatorTest extends TestCase $model = new InvoiceModel(new DebugFormatter()); $model->setCustomer($customer); $model->setTemplate($template); - $model->setEntries([$timesheet]); + $model->addEntries([$timesheet]); $model->setQuery($query); $sut->setModel($model); diff --git a/tests/Invoice/Calculator/ActivityInvoiceCalculatorTest.php b/tests/Invoice/Calculator/ActivityInvoiceCalculatorTest.php index 88ff5cee..04e26769 100644 --- a/tests/Invoice/Calculator/ActivityInvoiceCalculatorTest.php +++ b/tests/Invoice/Calculator/ActivityInvoiceCalculatorTest.php @@ -136,7 +136,7 @@ class ActivityInvoiceCalculatorTest extends AbstractCalculatorTest $model = new InvoiceModel(new DebugFormatter()); $model->setCustomer($customer); $model->setTemplate($template); - $model->setEntries($entries); + $model->addEntries($entries); $model->setQuery($query); $sut = new ActivityInvoiceCalculator(); @@ -145,7 +145,7 @@ class ActivityInvoiceCalculatorTest extends AbstractCalculatorTest $this->assertEquals('activity', $sut->getId()); $this->assertEquals(3000.13, $sut->getTotal()); $this->assertEquals(19, $sut->getVat()); - $this->assertEquals('EUR', $sut->getCurrency()); + $this->assertEquals('EUR', $model->getCurrency()); $this->assertEquals(2521.12, $sut->getSubtotal()); $this->assertEquals(6600, $sut->getTimeWorked()); $this->assertEquals(3, count($sut->getEntries())); diff --git a/tests/Invoice/Calculator/DateInvoiceCalculatorTest.php b/tests/Invoice/Calculator/DateInvoiceCalculatorTest.php index 1e8a95d2..f162ee9e 100644 --- a/tests/Invoice/Calculator/DateInvoiceCalculatorTest.php +++ b/tests/Invoice/Calculator/DateInvoiceCalculatorTest.php @@ -110,7 +110,7 @@ class DateInvoiceCalculatorTest extends AbstractCalculatorTest $model = new InvoiceModel(new DebugFormatter()); $model->setCustomer($customer); $model->setTemplate($template); - $model->setEntries($entries); + $model->addEntries($entries); $model->setQuery($query); $sut = new DateInvoiceCalculator(); @@ -119,7 +119,7 @@ class DateInvoiceCalculatorTest extends AbstractCalculatorTest $this->assertEquals('date', $sut->getId()); $this->assertEquals(3000.13, $sut->getTotal()); $this->assertEquals(19, $sut->getVat()); - $this->assertEquals('EUR', $sut->getCurrency()); + $this->assertEquals('EUR', $model->getCurrency()); $this->assertEquals(2521.12, $sut->getSubtotal()); $this->assertEquals(6600, $sut->getTimeWorked()); $this->assertEquals(3, count($sut->getEntries())); diff --git a/tests/Invoice/Calculator/DefaultCalculatorTest.php b/tests/Invoice/Calculator/DefaultCalculatorTest.php index c003e2e2..368f1268 100644 --- a/tests/Invoice/Calculator/DefaultCalculatorTest.php +++ b/tests/Invoice/Calculator/DefaultCalculatorTest.php @@ -61,7 +61,7 @@ class DefaultCalculatorTest extends AbstractCalculatorTest $model = new InvoiceModel(new DebugFormatter()); $model->setCustomer($customer); $model->setTemplate($template); - $model->setEntries($entries); + $model->addEntries($entries); $model->setQuery(new InvoiceQuery()); $sut = new DefaultCalculator(); @@ -70,7 +70,7 @@ class DefaultCalculatorTest extends AbstractCalculatorTest $this->assertEquals('default', $sut->getId()); $this->assertEquals(581.17, $sut->getTotal()); $this->assertEquals(19, $sut->getVat()); - $this->assertEquals('EUR', $sut->getCurrency()); + $this->assertEquals('EUR', $model->getCurrency()); $this->assertEquals(488.38, $sut->getSubtotal()); $this->assertEquals(5800, $sut->getTimeWorked()); } diff --git a/tests/Invoice/Calculator/ProjectInvoiceCalculatorTest.php b/tests/Invoice/Calculator/ProjectInvoiceCalculatorTest.php index 0117668d..3a041f6f 100644 --- a/tests/Invoice/Calculator/ProjectInvoiceCalculatorTest.php +++ b/tests/Invoice/Calculator/ProjectInvoiceCalculatorTest.php @@ -110,7 +110,7 @@ class ProjectInvoiceCalculatorTest extends AbstractCalculatorTest $model = new InvoiceModel(new DebugFormatter()); $model->setCustomer($customer); $model->setTemplate($template); - $model->setEntries($entries); + $model->addEntries($entries); $model->setQuery($query); $sut = new ProjectInvoiceCalculator(); @@ -119,7 +119,7 @@ class ProjectInvoiceCalculatorTest extends AbstractCalculatorTest $this->assertEquals('project', $sut->getId()); $this->assertEquals(3000.13, $sut->getTotal()); $this->assertEquals(19, $sut->getVat()); - $this->assertEquals('EUR', $sut->getCurrency()); + $this->assertEquals('EUR', $model->getCurrency()); $this->assertEquals(2521.12, $sut->getSubtotal()); $this->assertEquals(6600, $sut->getTimeWorked()); $this->assertEquals(3, count($sut->getEntries())); diff --git a/tests/Invoice/Calculator/ShortInvoiceCalculatorTest.php b/tests/Invoice/Calculator/ShortInvoiceCalculatorTest.php index c571c7de..3808206b 100644 --- a/tests/Invoice/Calculator/ShortInvoiceCalculatorTest.php +++ b/tests/Invoice/Calculator/ShortInvoiceCalculatorTest.php @@ -90,7 +90,7 @@ class ShortInvoiceCalculatorTest extends AbstractCalculatorTest $model = new InvoiceModel(new DebugFormatter()); $model->setCustomer($customer); $model->setTemplate($template); - $model->setEntries($entries); + $model->addEntries($entries); $model->setQuery($query); $sut = new ShortInvoiceCalculator(); @@ -99,7 +99,7 @@ class ShortInvoiceCalculatorTest extends AbstractCalculatorTest $this->assertEquals('short', $sut->getId()); $this->assertEquals(562.28, $sut->getTotal()); $this->assertEquals(19, $sut->getVat()); - $this->assertEquals('EUR', $sut->getCurrency()); + $this->assertEquals('EUR', $model->getCurrency()); $this->assertEquals(472.5, $sut->getSubtotal()); $this->assertEquals(5800, $sut->getTimeWorked()); $this->assertEquals(1, count($sut->getEntries())); @@ -171,7 +171,7 @@ class ShortInvoiceCalculatorTest extends AbstractCalculatorTest $model = new InvoiceModel(new DebugFormatter()); $model->setCustomer($customer); $model->setTemplate($template); - $model->setEntries($entries); + $model->addEntries($entries); $model->setQuery($query); $sut = new ShortInvoiceCalculator(); @@ -180,7 +180,7 @@ class ShortInvoiceCalculatorTest extends AbstractCalculatorTest $this->assertEquals('short', $sut->getId()); $this->assertEquals(581.17, $sut->getTotal()); $this->assertEquals(19, $sut->getVat()); - $this->assertEquals('EUR', $sut->getCurrency()); + $this->assertEquals('EUR', $model->getCurrency()); $this->assertEquals(488.38, $sut->getSubtotal()); $this->assertEquals(5800, $sut->getTimeWorked()); $this->assertEquals(1, count($sut->getEntries())); @@ -250,7 +250,7 @@ class ShortInvoiceCalculatorTest extends AbstractCalculatorTest $model = new InvoiceModel(new DebugFormatter()); $model->setCustomer($customer); $model->setTemplate($template); - $model->setEntries($entries); + $model->addEntries($entries); $model->setQuery($query); $sut = new ShortInvoiceCalculator(); @@ -259,7 +259,7 @@ class ShortInvoiceCalculatorTest extends AbstractCalculatorTest $this->assertEquals('short', $sut->getId()); $this->assertEquals(581.17, $sut->getTotal()); $this->assertEquals(19, $sut->getVat()); - $this->assertEquals('EUR', $sut->getCurrency()); + $this->assertEquals('EUR', $model->getCurrency()); $this->assertEquals(488.38, $sut->getSubtotal()); $this->assertEquals(5400, $sut->getTimeWorked()); $this->assertEquals(1, count($sut->getEntries())); diff --git a/tests/Invoice/Calculator/UserInvoiceCalculatorTest.php b/tests/Invoice/Calculator/UserInvoiceCalculatorTest.php index e9e9e546..2dc4e4d7 100644 --- a/tests/Invoice/Calculator/UserInvoiceCalculatorTest.php +++ b/tests/Invoice/Calculator/UserInvoiceCalculatorTest.php @@ -108,7 +108,7 @@ class UserInvoiceCalculatorTest extends AbstractCalculatorTest $model = new InvoiceModel(new DebugFormatter()); $model->setCustomer($customer); $model->setTemplate($template); - $model->setEntries($entries); + $model->addEntries($entries); $model->setQuery($query); $sut = new UserInvoiceCalculator(); @@ -117,7 +117,7 @@ class UserInvoiceCalculatorTest extends AbstractCalculatorTest $this->assertEquals('user', $sut->getId()); $this->assertEquals(3000.13, $sut->getTotal()); $this->assertEquals(19, $sut->getVat()); - $this->assertEquals('EUR', $sut->getCurrency()); + $this->assertEquals('EUR', $model->getCurrency()); $this->assertEquals(2521.12, $sut->getSubtotal()); $this->assertEquals(6600, $sut->getTimeWorked()); $this->assertEquals(3, count($sut->getEntries())); diff --git a/tests/Invoice/InvoiceModelTest.php b/tests/Invoice/InvoiceModelTest.php index a58d9deb..457d9e09 100644 --- a/tests/Invoice/InvoiceModelTest.php +++ b/tests/Invoice/InvoiceModelTest.php @@ -59,10 +59,6 @@ class InvoiceModelTest extends TestCase self::assertInstanceOf(InvoiceModel::class, $sut->setCalculator($calculator)); self::assertSame($calculator, $sut->getCalculator()); - $entries = [new Timesheet()]; - self::assertInstanceOf(InvoiceModel::class, $sut->setEntries($entries)); - self::assertSame($entries, $sut->getEntries()); - $generator = new DateNumberGenerator(); self::assertInstanceOf(InvoiceModel::class, $sut->setNumberGenerator($generator)); self::assertSame($generator, $sut->getNumberGenerator()); @@ -73,4 +69,16 @@ class InvoiceModelTest extends TestCase self::assertSame($template, $sut->getTemplate()); self::assertInstanceOf(\DateTime::class, $sut->getDueDate()); } + + /** + * @group legacy + */ + public function testDeprecations() + { + $sut = new InvoiceModel(new DebugFormatter()); + + $entries = [new Timesheet()]; + self::assertInstanceOf(InvoiceModel::class, $sut->setEntries($entries)); + self::assertSame($entries, $sut->getEntries()); + } } diff --git a/tests/Invoice/Renderer/RendererTestTrait.php b/tests/Invoice/Renderer/RendererTestTrait.php index f759ce0f..3b4b5eb6 100644 --- a/tests/Invoice/Renderer/RendererTestTrait.php +++ b/tests/Invoice/Renderer/RendererTestTrait.php @@ -204,7 +204,7 @@ trait RendererTestTrait $model = new InvoiceModel($this->getFormatter()); $model->setCustomer($customer); $model->setTemplate($template); - $model->setEntries($entries); + $model->addEntries($entries); $model->setQuery($query); $model->setUser($user); @@ -276,7 +276,7 @@ trait RendererTestTrait $model = new InvoiceModel($this->getFormatter()); $model->setCustomer($customer); $model->setTemplate($template); - $model->setEntries($entries); + $model->addEntries($entries); $model->setQuery($query); $model->setUser($user); diff --git a/tests/KernelTestTrait.php b/tests/KernelTestTrait.php index 583f291a..774498b9 100644 --- a/tests/KernelTestTrait.php +++ b/tests/KernelTestTrait.php @@ -15,18 +15,23 @@ use Doctrine\Bundle\FixturesBundle\Fixture; use Doctrine\Common\DataFixtures\Executor\ORMExecutor; use Doctrine\Common\DataFixtures\Loader; use Doctrine\ORM\EntityManager; +use Symfony\Bundle\FrameworkBundle\Client; /** * A trait to be used in all tests that extend the KernelTestCase. */ trait KernelTestTrait { - /** - * @param EntityManager $em - * @param Fixture $fixture - */ - protected function importFixture(EntityManager $em, Fixture $fixture) + protected function importFixture($client, Fixture $fixture) { + if ($client instanceof Client) { + $em = $client->getContainer()->get('doctrine.orm.entity_manager'); + } elseif ($client instanceof EntityManager) { + $em = $client; + } else { + throw new \InvalidArgumentException('Fixtures need an EntityManager to be imported'); + } + $loader = new Loader(); $loader->addFixture($fixture); diff --git a/tests/Repository/WidgetRepositoryTest.php b/tests/Repository/WidgetRepositoryTest.php index df623636..636959c1 100644 --- a/tests/Repository/WidgetRepositoryTest.php +++ b/tests/Repository/WidgetRepositoryTest.php @@ -14,6 +14,7 @@ use App\Repository\TimesheetRepository; use App\Repository\WidgetRepository; use App\Tests\Mocks\Security\CurrentUserFactory; use App\Widget\Type\CompoundChart; +use App\Widget\Type\Counter; use App\Widget\WidgetException; use PHPUnit\Framework\TestCase; @@ -87,6 +88,7 @@ class WidgetRepositoryTest extends TestCase 'end' => null, 'query' => $query, 'title' => 'Test widget', + 'type' => Counter::class, ]; $sut = new WidgetRepository($repoMock, $userMock, ['test' => $widget]);