From aa735367d9452cea4d3bf3e73ba7d7d2eadbd733 Mon Sep 17 00:00:00 2001 From: Kevin Frantz Date: Sat, 2 Feb 2019 23:02:28 +0100 Subject: [PATCH] Implemented FixtureManagement --- application/symfony/composer.json | 1 + application/symfony/composer.lock | 513 ++++++++++-------- .../symfony/src/DBAL/Types/SystemSlugType.php | 15 + .../src/DataFixtures/SourceFixtures.php | 62 +-- .../FixtureSource/AbstractFixtureSource.php | 12 + .../FixtureSource/FixtureSourceInterface.php | 26 + .../FixtureSource/GuestUserFixtureSource.php | 37 ++ .../FixtureSource/ImpressumFixtureSource.php | 36 ++ .../FixtureManagement/FixtureSource/README.md | 2 + .../FixtureSourceFactory.php | 64 +++ .../FixtureSourceFactoryInterface.php | 18 + application/symfony/symfony.lock | 3 + .../SourceFixturesIntegrationTest.php | 7 +- .../FixtureSourceFactoryTest.php | 46 ++ 14 files changed, 549 insertions(+), 293 deletions(-) create mode 100644 application/symfony/src/Domain/FixtureManagement/FixtureSource/AbstractFixtureSource.php create mode 100644 application/symfony/src/Domain/FixtureManagement/FixtureSource/FixtureSourceInterface.php create mode 100644 application/symfony/src/Domain/FixtureManagement/FixtureSource/GuestUserFixtureSource.php create mode 100644 application/symfony/src/Domain/FixtureManagement/FixtureSource/ImpressumFixtureSource.php create mode 100644 application/symfony/src/Domain/FixtureManagement/FixtureSource/README.md create mode 100644 application/symfony/src/Domain/FixtureManagement/FixtureSourceFactory.php create mode 100644 application/symfony/src/Domain/FixtureManagement/FixtureSourceFactoryInterface.php create mode 100644 application/symfony/tests/Integration/Domain/FixtureManagement/FixtureSourceFactoryTest.php diff --git a/application/symfony/composer.json b/application/symfony/composer.json index 8f336f4..b759417 100644 --- a/application/symfony/composer.json +++ b/application/symfony/composer.json @@ -8,6 +8,7 @@ "fresh/doctrine-enum-bundle": "~6.2", "friendsofsymfony/rest-bundle": "^2.4", "friendsofsymfony/user-bundle": "~2.1", + "haydenpierce/class-finder": "^0.2.0", "jms/serializer-bundle": "^2.4", "knplabs/knp-menu-bundle": "^2.0", "sensio/framework-extra-bundle": "^5.1", diff --git a/application/symfony/composer.lock b/application/symfony/composer.lock index 389d7b0..0569aa3 100644 --- a/application/symfony/composer.lock +++ b/application/symfony/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": "1738254a55152c54dd250b3f3a002bd8", + "content-hash": "63671fed9b0b77872da797b10a1ef41a", "packages": [ { "name": "doctrine/annotations", @@ -1562,6 +1562,47 @@ ], "time": "2018-03-08T08:59:27+00:00" }, + { + "name": "haydenpierce/class-finder", + "version": "0.2.0", + "source": { + "type": "git", + "url": "https://gitlab.com/hpierce1102/ClassFinder.git", + "reference": "8a653d80ba9bd5966322022d1b5d3498adfe7516" + }, + "dist": { + "type": "zip", + "url": "https://gitlab.com/api/v4/projects/hpierce1102%2FClassFinder/repository/archive.zip?sha=8a653d80ba9bd5966322022d1b5d3498adfe7516", + "reference": "8a653d80ba9bd5966322022d1b5d3498adfe7516", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": ">=5.3" + }, + "require-dev": { + "mikey179/vfsstream": "^1.6", + "phpunit/phpunit": "4.8.36" + }, + "type": "library", + "autoload": { + "psr-4": { + "HaydenPierce\\ClassFinder\\": "src/", + "HaydenPierce\\ClassFinder\\UnitTest\\": "test/unit" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Hayden Pierce", + "email": "hayden@haydenpierce.com" + } + ], + "time": "2018-09-23T17:59:52+00:00" + }, { "name": "jdorn/sql-formatter", "version": "v1.2.17", @@ -2853,16 +2894,16 @@ }, { "name": "symfony/asset", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/asset.git", - "reference": "445af147d72720a3c4ab46e76e9a5f266a4dc74c" + "reference": "99f63179af547dc3c9081cc6b28b6b202178fbcc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/asset/zipball/445af147d72720a3c4ab46e76e9a5f266a4dc74c", - "reference": "445af147d72720a3c4ab46e76e9a5f266a4dc74c", + "url": "https://api.github.com/repos/symfony/asset/zipball/99f63179af547dc3c9081cc6b28b6b202178fbcc", + "reference": "99f63179af547dc3c9081cc6b28b6b202178fbcc", "shasum": "" }, "require": { @@ -2905,20 +2946,20 @@ ], "description": "Symfony Asset Component", "homepage": "https://symfony.com", - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-16T18:21:11+00:00" }, { "name": "symfony/cache", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "c5e40c7978da3552ac8dab6174c89e42d0f2beaf" + "reference": "9d56206e46cb2c8aa4b4aa39902aad8474a43751" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/c5e40c7978da3552ac8dab6174c89e42d0f2beaf", - "reference": "c5e40c7978da3552ac8dab6174c89e42d0f2beaf", + "url": "https://api.github.com/repos/symfony/cache/zipball/9d56206e46cb2c8aa4b4aa39902aad8474a43751", + "reference": "9d56206e46cb2c8aa4b4aa39902aad8474a43751", "shasum": "" }, "require": { @@ -2974,20 +3015,20 @@ "caching", "psr6" ], - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-16T19:07:26+00:00" }, { "name": "symfony/config", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "6acf9aad0d92d61ca7eaf34708169b8e083220da" + "reference": "11a25a6407b7f01d5cd28a2a18269e5c7fe8e1a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/6acf9aad0d92d61ca7eaf34708169b8e083220da", - "reference": "6acf9aad0d92d61ca7eaf34708169b8e083220da", + "url": "https://api.github.com/repos/symfony/config/zipball/11a25a6407b7f01d5cd28a2a18269e5c7fe8e1a8", + "reference": "11a25a6407b7f01d5cd28a2a18269e5c7fe8e1a8", "shasum": "" }, "require": { @@ -3037,20 +3078,20 @@ ], "description": "Symfony Config Component", "homepage": "https://symfony.com", - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-16T19:07:26+00:00" }, { "name": "symfony/console", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "e798b40183701b297c43bb45f81fb2fa8d177b0a" + "reference": "9e87c798f67dc9fceeb4f3d57847b52d945d1a02" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/e798b40183701b297c43bb45f81fb2fa8d177b0a", - "reference": "e798b40183701b297c43bb45f81fb2fa8d177b0a", + "url": "https://api.github.com/repos/symfony/console/zipball/9e87c798f67dc9fceeb4f3d57847b52d945d1a02", + "reference": "9e87c798f67dc9fceeb4f3d57847b52d945d1a02", "shasum": "" }, "require": { @@ -3061,6 +3102,9 @@ "symfony/dependency-injection": "<3.4", "symfony/process": "<3.3" }, + "provide": { + "psr/log-implementation": "1.0" + }, "require-dev": { "psr/log": "~1.0", "symfony/config": "~3.4|~4.0", @@ -3070,7 +3114,7 @@ "symfony/process": "~3.4|~4.0" }, "suggest": { - "psr/log-implementation": "For using the console logger", + "psr/log": "For using the console logger", "symfony/event-dispatcher": "", "symfony/lock": "", "symfony/process": "" @@ -3105,20 +3149,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2019-01-04T15:13:30+00:00" + "time": "2019-01-25T14:34:37+00:00" }, { "name": "symfony/debug", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "3ba0dfd9afb03974eee325f5e2e76ee6102ce1c4" + "reference": "caf0f3fa57d59f2bc3a249087d6dcf017093758d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/3ba0dfd9afb03974eee325f5e2e76ee6102ce1c4", - "reference": "3ba0dfd9afb03974eee325f5e2e76ee6102ce1c4", + "url": "https://api.github.com/repos/symfony/debug/zipball/caf0f3fa57d59f2bc3a249087d6dcf017093758d", + "reference": "caf0f3fa57d59f2bc3a249087d6dcf017093758d", "shasum": "" }, "require": { @@ -3161,20 +3205,20 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-25T14:34:37+00:00" }, { "name": "symfony/dependency-injection", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "e73fc6d7ef09ab571cefcdd686bf3287bcc7ab4b" + "reference": "ceb1eed8c3adfe2e84c6666dbe037c9d46b481fa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/e73fc6d7ef09ab571cefcdd686bf3287bcc7ab4b", - "reference": "e73fc6d7ef09ab571cefcdd686bf3287bcc7ab4b", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/ceb1eed8c3adfe2e84c6666dbe037c9d46b481fa", + "reference": "ceb1eed8c3adfe2e84c6666dbe037c9d46b481fa", "shasum": "" }, "require": { @@ -3232,20 +3276,20 @@ ], "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "time": "2019-01-05T16:36:16+00:00" + "time": "2019-01-24T21:39:39+00:00" }, { "name": "symfony/doctrine-bridge", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "83cb5aa15db95fe8db936630d2e4e779e8bf0b10" + "reference": "f1939a563057ee76c29c176676bef1d7a4d2735d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/83cb5aa15db95fe8db936630d2e4e779e8bf0b10", - "reference": "83cb5aa15db95fe8db936630d2e4e779e8bf0b10", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/f1939a563057ee76c29c176676bef1d7a4d2735d", + "reference": "f1939a563057ee76c29c176676bef1d7a4d2735d", "shasum": "" }, "require": { @@ -3312,20 +3356,20 @@ ], "description": "Symfony Doctrine Bridge", "homepage": "https://symfony.com", - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-24T21:39:39+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "9da78639776ee15285a1505f1dc405a6e6844a87" + "reference": "51be1b61dfe04d64a260223f2b81475fa8066b97" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9da78639776ee15285a1505f1dc405a6e6844a87", - "reference": "9da78639776ee15285a1505f1dc405a6e6844a87", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/51be1b61dfe04d64a260223f2b81475fa8066b97", + "reference": "51be1b61dfe04d64a260223f2b81475fa8066b97", "shasum": "" }, "require": { @@ -3375,20 +3419,20 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2019-01-04T15:09:47+00:00" + "time": "2019-01-16T18:35:49+00:00" }, { "name": "symfony/expression-language", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/expression-language.git", - "reference": "699b8763c18f3fe75571bbd9a62585816c72a08c" + "reference": "3fbfc1339da476720d032227213e448aa7d69f36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/expression-language/zipball/699b8763c18f3fe75571bbd9a62585816c72a08c", - "reference": "699b8763c18f3fe75571bbd9a62585816c72a08c", + "url": "https://api.github.com/repos/symfony/expression-language/zipball/3fbfc1339da476720d032227213e448aa7d69f36", + "reference": "3fbfc1339da476720d032227213e448aa7d69f36", "shasum": "" }, "require": { @@ -3425,20 +3469,20 @@ ], "description": "Symfony ExpressionLanguage Component", "homepage": "https://symfony.com", - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-16T18:35:49+00:00" }, { "name": "symfony/filesystem", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "9c10a20d6a23cd887a8a5aae172904cdd775f884" + "reference": "93f4b83148903dcfb430867b8ae4902335e3446f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/9c10a20d6a23cd887a8a5aae172904cdd775f884", - "reference": "9c10a20d6a23cd887a8a5aae172904cdd775f884", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/93f4b83148903dcfb430867b8ae4902335e3446f", + "reference": "93f4b83148903dcfb430867b8ae4902335e3446f", "shasum": "" }, "require": { @@ -3475,20 +3519,20 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-16T19:07:26+00:00" }, { "name": "symfony/finder", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "04d34762160cfbff5768851162a887f2ed92d0cf" + "reference": "33bae4a56d3c95ac13bc586c1aa57b2baeaa5088" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/04d34762160cfbff5768851162a887f2ed92d0cf", - "reference": "04d34762160cfbff5768851162a887f2ed92d0cf", + "url": "https://api.github.com/repos/symfony/finder/zipball/33bae4a56d3c95ac13bc586c1aa57b2baeaa5088", + "reference": "33bae4a56d3c95ac13bc586c1aa57b2baeaa5088", "shasum": "" }, "require": { @@ -3524,7 +3568,7 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-16T18:21:11+00:00" }, { "name": "symfony/flex", @@ -3575,16 +3619,16 @@ }, { "name": "symfony/form", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/form.git", - "reference": "068ed0c083d45e437edd7515e7720e994eb7482d" + "reference": "4bcc0f21abfc07c5d712c6da8922a31e75891f2c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/form/zipball/068ed0c083d45e437edd7515e7720e994eb7482d", - "reference": "068ed0c083d45e437edd7515e7720e994eb7482d", + "url": "https://api.github.com/repos/symfony/form/zipball/4bcc0f21abfc07c5d712c6da8922a31e75891f2c", + "reference": "4bcc0f21abfc07c5d712c6da8922a31e75891f2c", "shasum": "" }, "require": { @@ -3652,20 +3696,20 @@ ], "description": "Symfony Form Component", "homepage": "https://symfony.com", - "time": "2019-01-05T16:36:16+00:00" + "time": "2019-01-29T09:21:38+00:00" }, { "name": "symfony/framework-bundle", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "083d40ea2c865fad955de852c48f9ec3f7c06c08" + "reference": "7bcfcb8a9559d91a801adcd369fee814e038888f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/083d40ea2c865fad955de852c48f9ec3f7c06c08", - "reference": "083d40ea2c865fad955de852c48f9ec3f7c06c08", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/7bcfcb8a9559d91a801adcd369fee814e038888f", + "reference": "7bcfcb8a9559d91a801adcd369fee814e038888f", "shasum": "" }, "require": { @@ -3709,7 +3753,7 @@ "symfony/css-selector": "~3.4|~4.0", "symfony/dom-crawler": "~3.4|~4.0", "symfony/expression-language": "~3.4|~4.0", - "symfony/form": "^4.1", + "symfony/form": "^4.1.11|^4.2.3", "symfony/lock": "~3.4|~4.0", "symfony/messenger": "^4.1", "symfony/polyfill-intl-icu": "~1.0", @@ -3769,20 +3813,20 @@ ], "description": "Symfony FrameworkBundle", "homepage": "https://symfony.com", - "time": "2019-01-04T15:09:47+00:00" + "time": "2019-01-29T09:21:38+00:00" }, { "name": "symfony/http-foundation", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "690d8919c2b2eb759cebb96328e0dc896c75815b" + "reference": "5c2ae34a651e818edca319e133f6b695bdaeea12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/690d8919c2b2eb759cebb96328e0dc896c75815b", - "reference": "690d8919c2b2eb759cebb96328e0dc896c75815b", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/5c2ae34a651e818edca319e133f6b695bdaeea12", + "reference": "5c2ae34a651e818edca319e133f6b695bdaeea12", "shasum": "" }, "require": { @@ -3823,20 +3867,20 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2019-01-05T16:36:16+00:00" + "time": "2019-01-29T09:21:38+00:00" }, { "name": "symfony/http-kernel", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "e2b8122f806652e53663d7b7aa7377523b40eca9" + "reference": "a5a4acd13e8d3c3a4d24b276c313dbbc16377c48" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e2b8122f806652e53663d7b7aa7377523b40eca9", - "reference": "e2b8122f806652e53663d7b7aa7377523b40eca9", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/a5a4acd13e8d3c3a4d24b276c313dbbc16377c48", + "reference": "a5a4acd13e8d3c3a4d24b276c313dbbc16377c48", "shasum": "" }, "require": { @@ -3910,20 +3954,20 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2019-01-06T16:16:13+00:00" + "time": "2019-01-29T10:40:58+00:00" }, { "name": "symfony/inflector", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/inflector.git", - "reference": "959d0380bbc85a274b904352533c2546f4435281" + "reference": "eb5c654f16c0e18d3a332984dc0ce44b0d218813" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/inflector/zipball/959d0380bbc85a274b904352533c2546f4435281", - "reference": "959d0380bbc85a274b904352533c2546f4435281", + "url": "https://api.github.com/repos/symfony/inflector/zipball/eb5c654f16c0e18d3a332984dc0ce44b0d218813", + "reference": "eb5c654f16c0e18d3a332984dc0ce44b0d218813", "shasum": "" }, "require": { @@ -3968,20 +4012,20 @@ "symfony", "words" ], - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-16T18:21:11+00:00" }, { "name": "symfony/intl", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/intl.git", - "reference": "1a57deaea0d538a0b44b49208c255c3e9762de93" + "reference": "abd522a6ddddba892e00003127710add0788faab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/1a57deaea0d538a0b44b49208c255c3e9762de93", - "reference": "1a57deaea0d538a0b44b49208c255c3e9762de93", + "url": "https://api.github.com/repos/symfony/intl/zipball/abd522a6ddddba892e00003127710add0788faab", + "reference": "abd522a6ddddba892e00003127710add0788faab", "shasum": "" }, "require": { @@ -4043,20 +4087,20 @@ "l10n", "localization" ], - "time": "2019-01-05T08:55:10+00:00" + "time": "2019-01-16T18:35:49+00:00" }, { "name": "symfony/monolog-bridge", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bridge.git", - "reference": "f6dabcec70ecbb37706adf94ac01525cbd621439" + "reference": "38914f9d9e7f8fcffd9c37afa1ec89746983cd3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/f6dabcec70ecbb37706adf94ac01525cbd621439", - "reference": "f6dabcec70ecbb37706adf94ac01525cbd621439", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/38914f9d9e7f8fcffd9c37afa1ec89746983cd3b", + "reference": "38914f9d9e7f8fcffd9c37afa1ec89746983cd3b", "shasum": "" }, "require": { @@ -4110,7 +4154,7 @@ ], "description": "Symfony Monolog Bridge", "homepage": "https://symfony.com", - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-28T20:24:44+00:00" }, { "name": "symfony/monolog-bundle", @@ -4177,16 +4221,16 @@ }, { "name": "symfony/options-resolver", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "6975c604c2993f61dbadd164e01cf2c80e390cf6" + "reference": "71ac11db68d3d0ca8e6cf9547fb9752cdccd8f17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/6975c604c2993f61dbadd164e01cf2c80e390cf6", - "reference": "6975c604c2993f61dbadd164e01cf2c80e390cf6", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/71ac11db68d3d0ca8e6cf9547fb9752cdccd8f17", + "reference": "71ac11db68d3d0ca8e6cf9547fb9752cdccd8f17", "shasum": "" }, "require": { @@ -4227,7 +4271,7 @@ "configuration", "options" ], - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-16T18:21:11+00:00" }, { "name": "symfony/orm-pack", @@ -4376,16 +4420,16 @@ }, { "name": "symfony/process", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "5bcfa3a267431d95ab723101d2de3f48db1a0800" + "reference": "72d838aafaa7c790330fe362b9cecec362c64629" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/5bcfa3a267431d95ab723101d2de3f48db1a0800", - "reference": "5bcfa3a267431d95ab723101d2de3f48db1a0800", + "url": "https://api.github.com/repos/symfony/process/zipball/72d838aafaa7c790330fe362b9cecec362c64629", + "reference": "72d838aafaa7c790330fe362b9cecec362c64629", "shasum": "" }, "require": { @@ -4421,20 +4465,20 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-16T19:07:26+00:00" }, { "name": "symfony/property-access", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "6834de6f47e11004ea2733505e625cd189e193eb" + "reference": "bea157e52fe4d62df0dbf3d7c6bca2adef75b201" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/6834de6f47e11004ea2733505e625cd189e193eb", - "reference": "6834de6f47e11004ea2733505e625cd189e193eb", + "url": "https://api.github.com/repos/symfony/property-access/zipball/bea157e52fe4d62df0dbf3d7c6bca2adef75b201", + "reference": "bea157e52fe4d62df0dbf3d7c6bca2adef75b201", "shasum": "" }, "require": { @@ -4488,20 +4532,20 @@ "property path", "reflection" ], - "time": "2019-01-05T11:52:22+00:00" + "time": "2019-01-16T18:35:49+00:00" }, { "name": "symfony/property-info", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "c1b20c309b107b3ae60964611df05a3e05650cd8" + "reference": "48161081edc4ea5c818d6e0107ec6075612f0173" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/c1b20c309b107b3ae60964611df05a3e05650cd8", - "reference": "c1b20c309b107b3ae60964611df05a3e05650cd8", + "url": "https://api.github.com/repos/symfony/property-info/zipball/48161081edc4ea5c818d6e0107ec6075612f0173", + "reference": "48161081edc4ea5c818d6e0107ec6075612f0173", "shasum": "" }, "require": { @@ -4564,20 +4608,20 @@ "type", "validator" ], - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-16T18:35:49+00:00" }, { "name": "symfony/routing", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "9708dbe372c3dccfe090bf988adf4488c58bb52a" + "reference": "da122c1ee55cf15bf9784e739b2251dec638f9cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/9708dbe372c3dccfe090bf988adf4488c58bb52a", - "reference": "9708dbe372c3dccfe090bf988adf4488c58bb52a", + "url": "https://api.github.com/repos/symfony/routing/zipball/da122c1ee55cf15bf9784e739b2251dec638f9cc", + "reference": "da122c1ee55cf15bf9784e739b2251dec638f9cc", "shasum": "" }, "require": { @@ -4641,20 +4685,20 @@ "uri", "url" ], - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-29T09:39:33+00:00" }, { "name": "symfony/security", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/security.git", - "reference": "d624de8d5bcd36ab0edc5af6308d2dc01c9c9628" + "reference": "2b930a88abf05f6fee1cfd4d4b6bcb810ac05b5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security/zipball/d624de8d5bcd36ab0edc5af6308d2dc01c9c9628", - "reference": "d624de8d5bcd36ab0edc5af6308d2dc01c9c9628", + "url": "https://api.github.com/repos/symfony/security/zipball/2b930a88abf05f6fee1cfd4d4b6bcb810ac05b5e", + "reference": "2b930a88abf05f6fee1cfd4d4b6bcb810ac05b5e", "shasum": "" }, "require": { @@ -4721,20 +4765,20 @@ ], "description": "Symfony Security Component", "homepage": "https://symfony.com", - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-29T09:21:38+00:00" }, { "name": "symfony/security-bundle", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/security-bundle.git", - "reference": "d896014fc002391b6953c02ba5734c17e8a5cb61" + "reference": "6161cf206bf36c3994d03edbe0a73e40c9ea4700" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-bundle/zipball/d896014fc002391b6953c02ba5734c17e8a5cb61", - "reference": "d896014fc002391b6953c02ba5734c17e8a5cb61", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/6161cf206bf36c3994d03edbe0a73e40c9ea4700", + "reference": "6161cf206bf36c3994d03edbe0a73e40c9ea4700", "shasum": "" }, "require": { @@ -4801,20 +4845,20 @@ ], "description": "Symfony SecurityBundle", "homepage": "https://symfony.com", - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-16T18:35:49+00:00" }, { "name": "symfony/serializer", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "44da094ff23d50df40ef393a22b14fbf77f0909d" + "reference": "64681d473fd15ed79ab9e24ecb03756b17c962c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/44da094ff23d50df40ef393a22b14fbf77f0909d", - "reference": "44da094ff23d50df40ef393a22b14fbf77f0909d", + "url": "https://api.github.com/repos/symfony/serializer/zipball/64681d473fd15ed79ab9e24ecb03756b17c962c8", + "reference": "64681d473fd15ed79ab9e24ecb03756b17c962c8", "shasum": "" }, "require": { @@ -4881,7 +4925,7 @@ ], "description": "Symfony Serializer Component", "homepage": "https://symfony.com", - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-29T09:21:38+00:00" }, { "name": "symfony/serializer-pack", @@ -4915,16 +4959,16 @@ }, { "name": "symfony/stopwatch", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "6aae163ae0f236b8ab88cb1ecaeed3dd25f65c9e" + "reference": "2b2c0bb9e41058ad86b1b5c5bf054146ae6a0491" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/6aae163ae0f236b8ab88cb1ecaeed3dd25f65c9e", - "reference": "6aae163ae0f236b8ab88cb1ecaeed3dd25f65c9e", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/2b2c0bb9e41058ad86b1b5c5bf054146ae6a0491", + "reference": "2b2c0bb9e41058ad86b1b5c5bf054146ae6a0491", "shasum": "" }, "require": { @@ -4960,7 +5004,7 @@ ], "description": "Symfony Stopwatch Component", "homepage": "https://symfony.com", - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-16T18:21:11+00:00" }, { "name": "symfony/swiftmailer-bundle", @@ -5026,16 +5070,16 @@ }, { "name": "symfony/templating", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/templating.git", - "reference": "d93303dd37a1713c762fcb21bc754031d2f00ec1" + "reference": "c14b05d166f825dfe1f50154536c49971a8d5930" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/templating/zipball/d93303dd37a1713c762fcb21bc754031d2f00ec1", - "reference": "d93303dd37a1713c762fcb21bc754031d2f00ec1", + "url": "https://api.github.com/repos/symfony/templating/zipball/c14b05d166f825dfe1f50154536c49971a8d5930", + "reference": "c14b05d166f825dfe1f50154536c49971a8d5930", "shasum": "" }, "require": { @@ -5078,20 +5122,20 @@ ], "description": "Symfony Templating Component", "homepage": "https://symfony.com", - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-16T18:21:11+00:00" }, { "name": "symfony/translation", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "d012dfeda5c55decc59c0c1d84dc6070dd354223" + "reference": "347b9f093a2554ce3174ae56cc25a21381352c76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/d012dfeda5c55decc59c0c1d84dc6070dd354223", - "reference": "d012dfeda5c55decc59c0c1d84dc6070dd354223", + "url": "https://api.github.com/repos/symfony/translation/zipball/347b9f093a2554ce3174ae56cc25a21381352c76", + "reference": "347b9f093a2554ce3174ae56cc25a21381352c76", "shasum": "" }, "require": { @@ -5147,29 +5191,29 @@ ], "description": "Symfony Translation Component", "homepage": "https://symfony.com", - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-25T14:34:37+00:00" }, { "name": "symfony/twig-bridge", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "17752f3f2564b8a1175349add85a028bded152be" + "reference": "9996f433a00f858c562ed9f6f5a01579b3f63224" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/17752f3f2564b8a1175349add85a028bded152be", - "reference": "17752f3f2564b8a1175349add85a028bded152be", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/9996f433a00f858c562ed9f6f5a01579b3f63224", + "reference": "9996f433a00f858c562ed9f6f5a01579b3f63224", "shasum": "" }, "require": { "php": "^7.1.3", - "twig/twig": "^1.35|^2.4.4" + "twig/twig": "^1.37.1|^2.6.2" }, "conflict": { "symfony/console": "<3.4", - "symfony/form": "<4.1.2" + "symfony/form": "<4.1.11|<4.2.3,>=4.2.0" }, "require-dev": { "symfony/asset": "~3.4|~4.0", @@ -5177,7 +5221,7 @@ "symfony/dependency-injection": "~3.4|~4.0", "symfony/expression-language": "~3.4|~4.0", "symfony/finder": "~3.4|~4.0", - "symfony/form": "^4.1.5", + "symfony/form": "~4.1.11|^4.2.3", "symfony/http-foundation": "~3.4|~4.0", "symfony/http-kernel": "~3.4|~4.0", "symfony/polyfill-intl-icu": "~1.0", @@ -5237,20 +5281,20 @@ ], "description": "Symfony Twig Bridge", "homepage": "https://symfony.com", - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-25T15:35:59+00:00" }, { "name": "symfony/twig-bundle", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/twig-bundle.git", - "reference": "7365ee10ff02a6491cbcd155c8999981f00f7489" + "reference": "59f37edc168ce420ed8ad4e6c9f1272bc99e7ecc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/7365ee10ff02a6491cbcd155c8999981f00f7489", - "reference": "7365ee10ff02a6491cbcd155c8999981f00f7489", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/59f37edc168ce420ed8ad4e6c9f1272bc99e7ecc", + "reference": "59f37edc168ce420ed8ad4e6c9f1272bc99e7ecc", "shasum": "" }, "require": { @@ -5311,20 +5355,20 @@ ], "description": "Symfony TwigBundle", "homepage": "https://symfony.com", - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-16T18:35:49+00:00" }, { "name": "symfony/validator", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "713af46edac1670c99ea629d88692f2dcb5548d9" + "reference": "a2956c89d13da760d07b438a0a0cd7045a628fd4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/713af46edac1670c99ea629d88692f2dcb5548d9", - "reference": "713af46edac1670c99ea629d88692f2dcb5548d9", + "url": "https://api.github.com/repos/symfony/validator/zipball/a2956c89d13da760d07b438a0a0cd7045a628fd4", + "reference": "a2956c89d13da760d07b438a0a0cd7045a628fd4", "shasum": "" }, "require": { @@ -5397,20 +5441,20 @@ ], "description": "Symfony Validator Component", "homepage": "https://symfony.com", - "time": "2019-01-06T14:13:40+00:00" + "time": "2019-01-25T14:34:37+00:00" }, { "name": "symfony/web-link", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/web-link.git", - "reference": "1488e23fac726fdf5b5890b820b61c7fcf5146c8" + "reference": "e6b5dd07b30ff6dd8b576e9172a11d85468c8000" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-link/zipball/1488e23fac726fdf5b5890b820b61c7fcf5146c8", - "reference": "1488e23fac726fdf5b5890b820b61c7fcf5146c8", + "url": "https://api.github.com/repos/symfony/web-link/zipball/e6b5dd07b30ff6dd8b576e9172a11d85468c8000", + "reference": "e6b5dd07b30ff6dd8b576e9172a11d85468c8000", "shasum": "" }, "require": { @@ -5468,20 +5512,20 @@ "psr13", "push" ], - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-16T18:21:11+00:00" }, { "name": "symfony/yaml", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "dd31d71146af4e346e710e30b85f4abe3ab6f6a5" + "reference": "874d9210fe0ad4f6326a45d163ad815a71ad8b38" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/dd31d71146af4e346e710e30b85f4abe3ab6f6a5", - "reference": "dd31d71146af4e346e710e30b85f4abe3ab6f6a5", + "url": "https://api.github.com/repos/symfony/yaml/zipball/874d9210fe0ad4f6326a45d163ad815a71ad8b38", + "reference": "874d9210fe0ad4f6326a45d163ad815a71ad8b38", "shasum": "" }, "require": { @@ -5527,7 +5571,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-16T19:07:26+00:00" }, { "name": "twig/twig", @@ -5912,16 +5956,16 @@ }, { "name": "composer/xdebug-handler", - "version": "1.3.1", + "version": "1.3.2", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "dc523135366eb68f22268d069ea7749486458562" + "reference": "d17708133b6c276d6e42ef887a877866b909d892" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/dc523135366eb68f22268d069ea7749486458562", - "reference": "dc523135366eb68f22268d069ea7749486458562", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/d17708133b6c276d6e42ef887a877866b909d892", + "reference": "d17708133b6c276d6e42ef887a877866b909d892", "shasum": "" }, "require": { @@ -5952,7 +5996,7 @@ "Xdebug", "performance" ], - "time": "2018-11-29T10:59:02+00:00" + "time": "2019-01-28T20:25:53+00:00" }, { "name": "doctrine/data-fixtures", @@ -6852,16 +6896,16 @@ }, { "name": "phpunit/phpunit", - "version": "7.5.2", + "version": "7.5.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "7c89093bd00f7d5ddf0ab81dee04f801416b4944" + "reference": "2cb759721e53bc05f56487f628c6b9fbb6c18746" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/7c89093bd00f7d5ddf0ab81dee04f801416b4944", - "reference": "7c89093bd00f7d5ddf0ab81dee04f801416b4944", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/2cb759721e53bc05f56487f628c6b9fbb6c18746", + "reference": "2cb759721e53bc05f56487f628c6b9fbb6c18746", "shasum": "" }, "require": { @@ -6932,7 +6976,7 @@ "testing", "xunit" ], - "time": "2019-01-15T08:19:08+00:00" + "time": "2019-02-01T05:24:07+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -7101,28 +7145,31 @@ }, { "name": "sebastian/environment", - "version": "4.0.1", + "version": "4.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "febd209a219cea7b56ad799b30ebbea34b71eb8f" + "reference": "6fda8ce1974b62b14935adc02a9ed38252eca656" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/febd209a219cea7b56ad799b30ebbea34b71eb8f", - "reference": "febd209a219cea7b56ad799b30ebbea34b71eb8f", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/6fda8ce1974b62b14935adc02a9ed38252eca656", + "reference": "6fda8ce1974b62b14935adc02a9ed38252eca656", "shasum": "" }, "require": { "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "^7.4" + "phpunit/phpunit": "^7.5" + }, + "suggest": { + "ext-posix": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "4.1-dev" } }, "autoload": { @@ -7147,7 +7194,7 @@ "environment", "hhvm" ], - "time": "2018-11-25T09:31:21+00:00" + "time": "2019-02-01T05:27:49+00:00" }, { "name": "sebastian/exporter", @@ -7499,16 +7546,16 @@ }, { "name": "symfony/browser-kit", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "4bb3f07e4197a936f2b51d9974e3816c1d0d2e0a" + "reference": "a3e81b995be65597ec709bb5fa188397a38a8c25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/4bb3f07e4197a936f2b51d9974e3816c1d0d2e0a", - "reference": "4bb3f07e4197a936f2b51d9974e3816c1d0d2e0a", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/a3e81b995be65597ec709bb5fa188397a38a8c25", + "reference": "a3e81b995be65597ec709bb5fa188397a38a8c25", "shasum": "" }, "require": { @@ -7552,20 +7599,20 @@ ], "description": "Symfony BrowserKit Component", "homepage": "https://symfony.com", - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-16T19:07:26+00:00" }, { "name": "symfony/css-selector", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "0acb5c774f54b3c4ddc9ce6b0f94aef125a01632" + "reference": "70f0cdf76779af4d5be14a3cd11c0200fd304ee6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/0acb5c774f54b3c4ddc9ce6b0f94aef125a01632", - "reference": "0acb5c774f54b3c4ddc9ce6b0f94aef125a01632", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/70f0cdf76779af4d5be14a3cd11c0200fd304ee6", + "reference": "70f0cdf76779af4d5be14a3cd11c0200fd304ee6", "shasum": "" }, "require": { @@ -7605,20 +7652,20 @@ ], "description": "Symfony CssSelector Component", "homepage": "https://symfony.com", - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-16T18:35:49+00:00" }, { "name": "symfony/debug-bundle", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/debug-bundle.git", - "reference": "5f7d07c51715edafeea7fe40be774fd2515a5538" + "reference": "29b2b8e2a06b067c16d8a5364b69c29488d4a902" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/5f7d07c51715edafeea7fe40be774fd2515a5538", - "reference": "5f7d07c51715edafeea7fe40be774fd2515a5538", + "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/29b2b8e2a06b067c16d8a5364b69c29488d4a902", + "reference": "29b2b8e2a06b067c16d8a5364b69c29488d4a902", "shasum": "" }, "require": { @@ -7670,7 +7717,7 @@ ], "description": "Symfony DebugBundle", "homepage": "https://symfony.com", - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-16T18:35:49+00:00" }, { "name": "symfony/debug-pack", @@ -7704,16 +7751,16 @@ }, { "name": "symfony/dom-crawler", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "508847e967aa04ce739c892aa08531d67b410232" + "reference": "191419afb4e38633a7dd6dfe1450c2211a057e9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/508847e967aa04ce739c892aa08531d67b410232", - "reference": "508847e967aa04ce739c892aa08531d67b410232", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/191419afb4e38633a7dd6dfe1450c2211a057e9e", + "reference": "191419afb4e38633a7dd6dfe1450c2211a057e9e", "shasum": "" }, "require": { @@ -7757,20 +7804,20 @@ ], "description": "Symfony DomCrawler Component", "homepage": "https://symfony.com", - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-16T19:07:26+00:00" }, { "name": "symfony/dotenv", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/dotenv.git", - "reference": "b0872a65099eaf704bd9f80f58b26004a2a0d3ee" + "reference": "67feddcfa6f31f6845899514e007af7532b84663" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/b0872a65099eaf704bd9f80f58b26004a2a0d3ee", - "reference": "b0872a65099eaf704bd9f80f58b26004a2a0d3ee", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/67feddcfa6f31f6845899514e007af7532b84663", + "reference": "67feddcfa6f31f6845899514e007af7532b84663", "shasum": "" }, "require": { @@ -7814,7 +7861,7 @@ "env", "environment" ], - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-24T21:39:39+00:00" }, { "name": "symfony/maker-bundle", @@ -8131,16 +8178,16 @@ }, { "name": "symfony/var-dumper", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "5fa94d64830d115f21a2a2b91643cf7c986c9be0" + "reference": "229cd66245a78088fe580a22bfcc48ba2f014605" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/5fa94d64830d115f21a2a2b91643cf7c986c9be0", - "reference": "5fa94d64830d115f21a2a2b91643cf7c986c9be0", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/229cd66245a78088fe580a22bfcc48ba2f014605", + "reference": "229cd66245a78088fe580a22bfcc48ba2f014605", "shasum": "" }, "require": { @@ -8203,20 +8250,20 @@ "debug", "dump" ], - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-28T18:03:55+00:00" }, { "name": "symfony/web-profiler-bundle", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/web-profiler-bundle.git", - "reference": "fc3c3010aefeca07e75c01a8c13451035175906d" + "reference": "3114509724ebf58aa1e30c33e7528015111411df" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/fc3c3010aefeca07e75c01a8c13451035175906d", - "reference": "fc3c3010aefeca07e75c01a8c13451035175906d", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/3114509724ebf58aa1e30c33e7528015111411df", + "reference": "3114509724ebf58aa1e30c33e7528015111411df", "shasum": "" }, "require": { @@ -8269,20 +8316,20 @@ ], "description": "Symfony WebProfilerBundle", "homepage": "https://symfony.com", - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-25T14:52:25+00:00" }, { "name": "symfony/web-server-bundle", - "version": "v4.1.10", + "version": "v4.1.11", "source": { "type": "git", "url": "https://github.com/symfony/web-server-bundle.git", - "reference": "49e079bac72c94d12ab75470cba4ea1f641dad21" + "reference": "95ca07ea9caed4e94f584cd2324599b922f648eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-server-bundle/zipball/49e079bac72c94d12ab75470cba4ea1f641dad21", - "reference": "49e079bac72c94d12ab75470cba4ea1f641dad21", + "url": "https://api.github.com/repos/symfony/web-server-bundle/zipball/95ca07ea9caed4e94f584cd2324599b922f648eb", + "reference": "95ca07ea9caed4e94f584cd2324599b922f648eb", "shasum": "" }, "require": { @@ -8328,7 +8375,7 @@ ], "description": "Symfony WebServerBundle", "homepage": "https://symfony.com", - "time": "2019-01-03T09:05:57+00:00" + "time": "2019-01-16T18:21:11+00:00" }, { "name": "theseer/tokenizer", diff --git a/application/symfony/src/DBAL/Types/SystemSlugType.php b/application/symfony/src/DBAL/Types/SystemSlugType.php index a10aa89..743fbc9 100644 --- a/application/symfony/src/DBAL/Types/SystemSlugType.php +++ b/application/symfony/src/DBAL/Types/SystemSlugType.php @@ -3,6 +3,8 @@ namespace App\DBAL\Types; use Fresh\DoctrineEnumBundle\DBAL\Types\AbstractEnumType; +use App\Domain\FixtureManagement\FixtureSource\ImpressumFixtureSource; +use App\Domain\FixtureManagement\FixtureSource\GuestUserFixtureSource; /** * Containes the system slugs. @@ -15,10 +17,23 @@ use Fresh\DoctrineEnumBundle\DBAL\Types\AbstractEnumType; */ final class SystemSlugType extends AbstractEnumType { + /** + * @deprecated + * @see ImpressumFixtureSource + */ public const IMPRINT = 'IMPRINT'; + /** + * @deprecated + * @see GuestUserFixtureSource + */ public const GUEST_USER = 'GUEST_USER'; + /** + * @deprecated + * + * @var array + */ protected static $choices = [ self::IMPRINT => 'imprint', self::GUEST_USER => 'guest user', diff --git a/application/symfony/src/DataFixtures/SourceFixtures.php b/application/symfony/src/DataFixtures/SourceFixtures.php index 9585eb7..59009ff 100644 --- a/application/symfony/src/DataFixtures/SourceFixtures.php +++ b/application/symfony/src/DataFixtures/SourceFixtures.php @@ -4,34 +4,13 @@ namespace App\DataFixtures; use Doctrine\Bundle\FixturesBundle\Fixture; use Doctrine\Common\Persistence\ObjectManager; -use App\Entity\Source\Primitive\Text\TextSource; -use App\Entity\Source\Primitive\Text\TextSourceInterface; -use App\DBAL\Types\SystemSlugType; -use App\Entity\Source\Complex\UserSource; -use App\Entity\Source\Complex\UserSourceInterface; -use App\Entity\Meta\Right; -use App\DBAL\Types\Meta\Right\LayerType; -use App\DBAL\Types\Meta\Right\CRUDType; -use App\Entity\Meta\RightInterface; -use App\Domain\SourceManagement\SourceRightManager; +use App\Domain\FixtureManagement\FixtureSourceFactory; /** * @author kevinfrantz - * - * @todo Create a collection class for all users */ class SourceFixtures extends Fixture { - /** - * @var TextSourceInterface The example source for the impressum - */ - private $impressumSource; - - /** - * @var UserSourceInterface The UserSource which should be used for the anonymous user - */ - private $guestUserSource; - /** * {@inheritdoc} * @@ -39,41 +18,10 @@ class SourceFixtures extends Fixture */ public function load(ObjectManager $manager) { - $this->setGuestUserSource(); - $this->setImpressumSource(); - $manager->persist($this->impressumSource); - $manager->persist($this->getImpressumRight()); - $manager->persist($this->guestUserSource); + $fixtureSources = FixtureSourceFactory::getAllFixtureSources(); + foreach ($fixtureSources as $fixtureSource) { + $manager->persist($fixtureSource->getORMReadyObject()); + } $manager->flush(); } - - private function setImpressumSource(): void - { - $this->impressumSource = new TextSource(); - $this->impressumSource->setText('Example Impressum'); - $this->impressumSource->setSlug(SystemSlugType::IMPRINT); - } - - /** - * @todo Implement that right gets automaticly created by persisting of law - * - * @return RightInterface - */ - private function getImpressumRight(): RightInterface - { - $right = new Right(); - $sourceRightManager = new SourceRightManager($this->impressumSource); - $sourceRightManager->addRight($right); - $right->setLayer(LayerType::SOURCE); - $right->setCrud(CRUDType::READ); - $right->setReciever($this->guestUserSource); - - return $right; - } - - private function setGuestUserSource(): void - { - $this->guestUserSource = new UserSource(); - $this->guestUserSource->setSlug(SystemSlugType::GUEST_USER); - } } diff --git a/application/symfony/src/Domain/FixtureManagement/FixtureSource/AbstractFixtureSource.php b/application/symfony/src/Domain/FixtureManagement/FixtureSource/AbstractFixtureSource.php new file mode 100644 index 0000000..7c42b37 --- /dev/null +++ b/application/symfony/src/Domain/FixtureManagement/FixtureSource/AbstractFixtureSource.php @@ -0,0 +1,12 @@ +setSlug(self::SLUG); + + return $userSource; + } + + /** + * @return string + */ + public static function getSlug(): string + { + return self::SLUG; + } +} diff --git a/application/symfony/src/Domain/FixtureManagement/FixtureSource/ImpressumFixtureSource.php b/application/symfony/src/Domain/FixtureManagement/FixtureSource/ImpressumFixtureSource.php new file mode 100644 index 0000000..19e2799 --- /dev/null +++ b/application/symfony/src/Domain/FixtureManagement/FixtureSource/ImpressumFixtureSource.php @@ -0,0 +1,36 @@ +setText('Example Impressum'); + $impressumSource->setSlug(self::SLUG); + + return $impressumSource; + } + + /** + * @return string + */ + public static function getSlug(): string + { + return self::SLUG; + } +} diff --git a/application/symfony/src/Domain/FixtureManagement/FixtureSource/README.md b/application/symfony/src/Domain/FixtureManagement/FixtureSource/README.md new file mode 100644 index 0000000..c2bb92d --- /dev/null +++ b/application/symfony/src/Domain/FixtureManagement/FixtureSource/README.md @@ -0,0 +1,2 @@ +# Fixture Sources +This folder containes all source class objects which will be load into the database. This structure allows unit tests for the source fixtures. \ No newline at end of file diff --git a/application/symfony/src/Domain/FixtureManagement/FixtureSourceFactory.php b/application/symfony/src/Domain/FixtureManagement/FixtureSourceFactory.php new file mode 100644 index 0000000..5d42175 --- /dev/null +++ b/application/symfony/src/Domain/FixtureManagement/FixtureSourceFactory.php @@ -0,0 +1,64 @@ +isFinal()) { + $filtered[] = $unfilteredClass; + } + } + + return $filtered; + } + + /** + * @param array $classes|FixtureSourceInterface[] + * + * @return array|FixtureSourceInterface[] + */ + private static function loadObjects(array $classes): array + { + $objects = []; + foreach ($classes as $class) { + $objects[] = new $class(); + } + + return $objects; + } + + public static function getAllFixtureSources(): array + { + $unfilteredClasses = self::getAllClassesInSourceFixtureNamespace(); + $filtered = self::filterFinal($unfilteredClasses); + $objects = self::loadObjects($filtered); + + return $objects; + } +} diff --git a/application/symfony/src/Domain/FixtureManagement/FixtureSourceFactoryInterface.php b/application/symfony/src/Domain/FixtureManagement/FixtureSourceFactoryInterface.php new file mode 100644 index 0000000..61a4a69 --- /dev/null +++ b/application/symfony/src/Domain/FixtureManagement/FixtureSourceFactoryInterface.php @@ -0,0 +1,18 @@ +entityManager->getRepository(AbstractSource::class); - $imprint = $sourceRepository->findOneBySlug(SystemSlugType::IMPRINT); + $imprint = $sourceRepository->findOneBySlug(ImpressumFixtureSource::SLUG); $this->assertInternalType('string', $imprint->getText()); } public function testGuestUserSource(): void { $sourceRepository = $this->entityManager->getRepository(AbstractSource::class); - $userSource = $sourceRepository->findOneBySlug(SystemSlugType::GUEST_USER); + $userSource = $sourceRepository->findOneBySlug(GuestUserFixtureSource::SLUG); $this->assertInstanceOf(UserSourceInterface::class, $userSource); } } diff --git a/application/symfony/tests/Integration/Domain/FixtureManagement/FixtureSourceFactoryTest.php b/application/symfony/tests/Integration/Domain/FixtureManagement/FixtureSourceFactoryTest.php new file mode 100644 index 0000000..4517385 --- /dev/null +++ b/application/symfony/tests/Integration/Domain/FixtureManagement/FixtureSourceFactoryTest.php @@ -0,0 +1,46 @@ +fixtureSources = FixtureSourceFactory::getAllFixtureSources(); + } + + public function testFixtureSourcesSlugs(): void + { + $slugs = []; + foreach ($this->fixtureSources as $fixtureSource) { + $this->assertInstanceOf(FixtureSourceInterface::class, $fixtureSource); + $slug = $fixtureSource->getSlug(); + $this->assertIsString($slug); + $this->assertFalse(in_array($slug, $slugs), 'A slug has to be unique'); + $slugs[] = $slug; + } + } + + public function testFixtureSourcesObjects(): void + { + $objects = []; + foreach ($this->fixtureSources as $fixtureSource) { + $this->assertInstanceOf(SourceInterface::class, $fixtureSource->getORMReadyObject()); + $this->assertFalse(in_array($fixtureSource, $objects), 'A slug has to be unique'); + $objects[] = $fixtureSource; + } + } +}