diff --git a/.env b/.env new file mode 100644 index 000000000..560f463e9 --- /dev/null +++ b/.env @@ -0,0 +1,40 @@ +# In all environments, the following files are loaded if they exist, +# the latter taking precedence over the former: +# +# * .env contains default values for the environment variables needed by the app +# * .env.local uncommitted file with local overrides +# * .env.$APP_ENV committed environment-specific defaults +# * .env.$APP_ENV.local uncommitted environment-specific overrides +# +# Real environment variables win over .env files. +# +# DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES. +# +# Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2). +# https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration + +###> symfony/framework-bundle ### +#APP_ENV=dev +#APP_SECRET=8a978a0a9df7d35ad963ac184f0b1608 +#TRUSTED_PROXIES=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 +#TRUSTED_HOSTS='^(localhost|example\.com)$' +###< symfony/framework-bundle ### + +###> doctrine/doctrine-bundle ### +# Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url +# For an SQLite database, use: "sqlite:///%kernel.project_dir%/var/data.db" +# For a PostgreSQL database, use: "postgresql://db_user:db_password@127.0.0.1:5432/db_name?serverVersion=11&charset=utf8" +# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml +#DATABASE_URL=mysql://db_user:db_password@127.0.0.1:3306/db_name?serverVersion=5.7 +###< doctrine/doctrine-bundle ### + +###> symfony/mailer ### +# MAILER_DSN=smtp://localhost +###< symfony/mailer ### + +###> symfony/swiftmailer-bundle ### +# For Gmail as a transport, use: "gmail://username:password@localhost" +# For a generic SMTP server, use: "smtp://localhost:25?encryption=&auth_mode=" +# Delivery is disabled by default via "null://localhost" +#MAILER_URL=null://localhost +###< symfony/swiftmailer-bundle ### diff --git a/.env.test b/.env.test new file mode 100644 index 000000000..24a43c03b --- /dev/null +++ b/.env.test @@ -0,0 +1,4 @@ +# define your env variables for the test env here +KERNEL_CLASS='App\Kernel' +APP_SECRET='$ecretf0rt3st' +SYMFONY_DEPRECATIONS_HELPER=999999 diff --git a/.gitignore b/.gitignore index 14b2e4870..65d48798d 100644 --- a/.gitignore +++ b/.gitignore @@ -2,15 +2,39 @@ /web/app_dev.php /web/app_test.php /web/app_dev.php.dist -/app/bootstrap.php.cache -/app/cache/* -/app/config/parameters.yml -/app/logs/* -!app/cache/.gitkeep -!app/logs/.gitkeep +/config/legacy/parameters.yaml +/var/cache/* +/var/logs/* +!var/cache/.gitkeep +!var/log/.gitkeep /build/ /vendor/ -/composer.phar /cache.properties -/app/SymfonyRequirements.php -/app/check.php +config/services.yml + + +###> symfony/framework-bundle ### +/.env.local +/.env.local.php +/.env.*.local +/config/secrets/prod/prod.decrypt.private.php +/public/bundles/ +/var/ +/vendor/ +###< symfony/framework-bundle ### + +###> phpunit/phpunit ### +/phpunit.xml +.phpunit.result.cache +###< phpunit/phpunit ### + +###> squizlabs/php_codesniffer ### +/.phpcs-cache +/phpcs.xml +###< squizlabs/php_codesniffer ### + +###> symfony/phpunit-bridge ### +.phpunit +.phpunit.result.cache +/phpunit.xml +###< symfony/phpunit-bridge ### diff --git a/.travis.yml b/.travis.yml index 0b0605f49..d79802df3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,16 +8,16 @@ language: php php: - - 5.6 - - 7.0 + - 7.2 + - 7.4 matrix: allow_failures: - - php: 7.0 + - php: 7.4 env: global: - - SYMFONY_ENV=test + - APP_ENV=test cache: directories: @@ -38,7 +38,6 @@ before_script: script: - ant - branches: only: - master diff --git a/README.md b/README.md index 6e024bc4b..a4d954dae 100644 --- a/README.md +++ b/README.md @@ -73,4 +73,4 @@ gssp_allowed_sps: ## Release strategy Please read: https://github.com/OpenConext/Stepup-Deploy/wiki/Release-Management fro more information on the release strategy used in Stepup projects. -[event-serialization-example]: ./src/Surfnet/Stepup/Tests/Configuration/Event/EventSerializationAndDeserializationTest.php +[event-serialization-example]: src/Surfnet/Stepup/Tests/Configuration/Event/EventSerializationAndDeserializationTest.php diff --git a/app/AppCache.php b/app/AppCache.php deleted file mode 100644 index 5f832c6e1..000000000 --- a/app/AppCache.php +++ /dev/null @@ -1,23 +0,0 @@ -getEnvironment(), array('dev', 'test', 'smoketest', 'smoketest_event_replay'))) { - $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle(); - $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle(); - $bundles[] = new Liip\FunctionalTestBundle\LiipFunctionalTestBundle(); - } - - return $bundles; - } - - public function registerContainerConfiguration(LoaderInterface $loader) - { - $loader->load(__DIR__.'/config/config_'.$this->getEnvironment().'.yml'); - } -} diff --git a/app/autoload.php b/app/autoload.php deleted file mode 100644 index b7728de8f..000000000 --- a/app/autoload.php +++ /dev/null @@ -1,29 +0,0 @@ -getParameterOption(['--env', '-e'], getenv('SYMFONY_ENV') ?: 'dev'); -$debug = getenv('SYMFONY_DEBUG') !== '0' && !$input->hasParameterOption(['--no-debug', '']) && $env !== 'prod'; - -if ($debug) { - Debug::enable(); -} - -$kernel = new AppKernel($env, $debug); -$application = new Application($kernel); -$application->run($input); diff --git a/app/logs/.gitkeep b/app/logs/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/app/phpunit.xml.dist b/app/phpunit.xml.dist deleted file mode 100644 index da45a35ff..000000000 --- a/app/phpunit.xml.dist +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - ../src - - - - - - - - - - - ../src - - ../src - - - - - - - diff --git a/app/symfony_requirements b/app/symfony_requirements deleted file mode 100755 index eeead3267..000000000 --- a/app/symfony_requirements +++ /dev/null @@ -1,146 +0,0 @@ -#!/usr/bin/env php -getPhpIniConfigPath(); - -echo_title('Symfony Requirements Checker'); - -echo '> PHP is using the following php.ini file:'.PHP_EOL; -if ($iniPath) { - echo_style('green', ' '.$iniPath); -} else { - echo_style('yellow', ' WARNING: No configuration file (php.ini) used by PHP!'); -} - -echo PHP_EOL.PHP_EOL; - -echo '> Checking Symfony requirements:'.PHP_EOL.' '; - -$messages = array(); -foreach ($symfonyRequirements->getRequirements() as $req) { - if ($helpText = get_error_message($req, $lineSize)) { - echo_style('red', 'E'); - $messages['error'][] = $helpText; - } else { - echo_style('green', '.'); - } -} - -$checkPassed = empty($messages['error']); - -foreach ($symfonyRequirements->getRecommendations() as $req) { - if ($helpText = get_error_message($req, $lineSize)) { - echo_style('yellow', 'W'); - $messages['warning'][] = $helpText; - } else { - echo_style('green', '.'); - } -} - -if ($checkPassed) { - echo_block('success', 'OK', 'Your system is ready to run Symfony projects'); -} else { - echo_block('error', 'ERROR', 'Your system is not ready to run Symfony projects'); - - echo_title('Fix the following mandatory requirements', 'red'); - - foreach ($messages['error'] as $helpText) { - echo ' * '.$helpText.PHP_EOL; - } -} - -if (!empty($messages['warning'])) { - echo_title('Optional recommendations to improve your setup', 'yellow'); - - foreach ($messages['warning'] as $helpText) { - echo ' * '.$helpText.PHP_EOL; - } -} - -echo PHP_EOL; -echo_style('title', 'Note'); -echo ' The command console could use a different php.ini file'.PHP_EOL; -echo_style('title', '~~~~'); -echo ' than the one used with your web server. To be on the'.PHP_EOL; -echo ' safe side, please check the requirements from your web'.PHP_EOL; -echo ' server using the '; -echo_style('yellow', 'web/config.php'); -echo ' script.'.PHP_EOL; -echo PHP_EOL; - -exit($checkPassed ? 0 : 1); - -function get_error_message(Requirement $requirement, $lineSize) -{ - if ($requirement->isFulfilled()) { - return; - } - - $errorMessage = wordwrap($requirement->getTestMessage(), $lineSize - 3, PHP_EOL.' ').PHP_EOL; - $errorMessage .= ' > '.wordwrap($requirement->getHelpText(), $lineSize - 5, PHP_EOL.' > ').PHP_EOL; - - return $errorMessage; -} - -function echo_title($title, $style = null) -{ - $style = $style ?: 'title'; - - echo PHP_EOL; - echo_style($style, $title.PHP_EOL); - echo_style($style, str_repeat('~', strlen($title)).PHP_EOL); - echo PHP_EOL; -} - -function echo_style($style, $message) -{ - // ANSI color codes - $styles = array( - 'reset' => "\033[0m", - 'red' => "\033[31m", - 'green' => "\033[32m", - 'yellow' => "\033[33m", - 'error' => "\033[37;41m", - 'success' => "\033[37;42m", - 'title' => "\033[34m", - ); - $supports = has_color_support(); - - echo($supports ? $styles[$style] : '').$message.($supports ? $styles['reset'] : ''); -} - -function echo_block($style, $title, $message) -{ - $message = ' '.trim($message).' '; - $width = strlen($message); - - echo PHP_EOL.PHP_EOL; - - echo_style($style, str_repeat(' ', $width)); - echo PHP_EOL; - echo_style($style, str_pad(' ['.$title.']', $width, ' ', STR_PAD_RIGHT)); - echo PHP_EOL; - echo_style($style, $message); - echo PHP_EOL; - echo_style($style, str_repeat(' ', $width)); - echo PHP_EOL; -} - -function has_color_support() -{ - static $support; - - if (null === $support) { - if (DIRECTORY_SEPARATOR == '\\') { - $support = false !== getenv('ANSICON') || 'ON' === getenv('ConEmuANSI'); - } else { - $support = function_exists('posix_isatty') && @posix_isatty(STDOUT); - } - } - - return $support; -} diff --git a/app_dev.php.dist b/app_dev.php.dist deleted file mode 100644 index 9ce760a54..000000000 --- a/app_dev.php.dist +++ /dev/null @@ -1,25 +0,0 @@ -loadClassCache(); -} - -$request = Request::createFromGlobals(); - -$kernel->boot(); - -$trustedProxies = $kernel->getContainer()->getParameter('trusted_proxies'); -Request::setTrustedProxies($trustedProxies, Request::HEADER_X_FORWARDED_ALL); - -$response = $kernel->handle($request); -$response->send(); -$kernel->terminate($request, $response); diff --git a/app_test.php.dist b/app_test.php.dist deleted file mode 100644 index 461f0e602..000000000 --- a/app_test.php.dist +++ /dev/null @@ -1,25 +0,0 @@ -loadClassCache(); -} - -$request = Request::createFromGlobals(); - -$kernel->boot(); - -$trustedProxies = $kernel->getContainer()->getParameter('trusted_proxies'); -Request::setTrustedProxies($trustedProxies, Request::HEADER_X_FORWARDED_ALL); - -$response = $kernel->handle($request); -$response->send(); -$kernel->terminate($request, $response); diff --git a/bin/console b/bin/console new file mode 100755 index 000000000..5de0e1c5b --- /dev/null +++ b/bin/console @@ -0,0 +1,42 @@ +#!/usr/bin/env php +getParameterOption(['--env', '-e'], null, true)) { + putenv('APP_ENV='.$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = $env); +} + +if ($input->hasParameterOption('--no-debug', true)) { + putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0'); +} + +require dirname(__DIR__).'/config/bootstrap.php'; + +if ($_SERVER['APP_DEBUG']) { + umask(0000); + + if (class_exists(Debug::class)) { + Debug::enable(); + } +} + +$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']); +$application = new Application($kernel); +$application->run($input); diff --git a/bin/doctrine-migrations-diff.sh b/bin/doctrine-migrations-diff.sh new file mode 100755 index 000000000..88ac05787 --- /dev/null +++ b/bin/doctrine-migrations-diff.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +php72 ./bin/console do:mi:di --em=middleware --filter-expression='~^(?!event_stream).*$~' +sleep 1 +php72 ./bin/console do:mi:di --em=gateway \ No newline at end of file diff --git a/bin/doctrine-migrations-migrate.sh b/bin/doctrine-migrations-migrate.sh new file mode 100755 index 000000000..210513247 --- /dev/null +++ b/bin/doctrine-migrations-migrate.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +php72 ./bin/console doctrine:migrations:migrate --env=prod --em=deploy \ No newline at end of file diff --git a/bin/phpunit b/bin/phpunit new file mode 100755 index 000000000..0b79fd4a5 --- /dev/null +++ b/bin/phpunit @@ -0,0 +1,19 @@ +#!/usr/bin/env php + - + @@ -77,7 +77,7 @@ - + diff --git a/composer.json b/composer.json index e175aa72c..5d90d8b15 100644 --- a/composer.json +++ b/composer.json @@ -4,83 +4,121 @@ "description": "The SURFnet Step-up Middleware exposes an API for managing Step-up Identities and Tokens.", "autoload": { "psr-4": { - "Surfnet\\": "src\\Surfnet" + "Surfnet\\Stepup\\": "src\\Surfnet\\Stepup", + "Surfnet\\StepupMiddleware\\": "src\\Surfnet\\StepupMiddleware" }, "classmap": [ - "app/AppKernel.php", - "app/AppCache.php" + "src/Kernel.php" ] }, "autoload-dev": { - "classmap": ["src/Surfnet/StepupMiddleware/ApiBundle/Tests/Request/commands.php"] + "classmap": [ + "src/Surfnet/StepupMiddleware/ApiBundle/Tests/Request/commands.php" + ] }, "minimum-stability": "stable", "require": { - "php": "^5.6|^7.0", + "php": "^7.1", "ext-gmp": "*", - "symfony/symfony": "3.4.*", - "symfony/swiftmailer-bundle": "~2.3", - "symfony/monolog-bundle": "~2.4", - "twig/twig": "^1.35", - "twig/extensions": "~1.5", - "doctrine/cache": "~1.4", - "doctrine/common": "~2.5", - "doctrine/dbal": "~2.5", - "doctrine/doctrine-bundle": "~1.4", - "doctrine/doctrine-migrations-bundle": "^1.1", - "doctrine/migrations": "~1.4", - "doctrine/orm": "~2.5", - "sensio/distribution-bundle": "~5.0", - "sensio/framework-extra-bundle": "~3.0", + "ext-json": "*", + "broadway/broadway": "^2.3", + "broadway/event-store-dbal": "^0.5.0", + "doctrine/doctrine-bundle": "^1.12", + "doctrine/doctrine-migrations-bundle": "^1.2", + "doctrine/orm": "^2.5", "incenteev/composer-parameter-handler": "~2.0", - "nelmio/security-bundle": "~1.4", - "broadway/broadway": "~0.5.0", - "pagerfanta/pagerfanta": "~1.0", "jms/translation-bundle": "~1.3", + "nelmio/security-bundle": "2.9.*", + "openconext/monitor-bundle": "^2.0", + "pagerfanta/pagerfanta": "~1.0", "ramsey/uuid": "^2.9", + "sensiolabs/security-checker": "^6.0", "surfnet/stepup-bundle": "^4.0", - "openconext/monitor-bundle": "^1.0" + "symfony/asset": "4.4.*", + "symfony/expression-language": "4.4.*", + "symfony/flex": "^1.7", + "symfony/form": "4.4.*", + "symfony/intl": "^4.4", + "symfony/mailer": "4.4.*", + "symfony/monolog-bundle": "^3.5", + "symfony/profiler-pack": "^1.0", + "symfony/security-bundle": "4.4.*", + "symfony/swiftmailer-bundle": "^3.4", + "symfony/translation": "4.4.*", + "symfony/twig-pack": "^1.0", + "symfony/validator": "4.4.*", + "twig/extensions": "^1.5" }, "require-dev": { + "doctrine/data-fixtures": "~1.1", + "doctrine/doctrine-fixtures-bundle": "^3.3", + "liip/test-fixtures-bundle": "^1.0.0", + "mockery/mockery": "^1.3", "moontoast/math": "~1.1", - "mockery/mockery": "~0.9", "phpmd/phpmd": "^2.6", - "phpunit/phpunit": "^5.7", - "sebastian/exporter": "~2.0", - "sebastian/phpcpd": "^2.0", + "phpunit/phpunit": "8.5.*", + "sebastian/exporter": "3.1.*", + "sebastian/phpcpd": "^4.0", "squizlabs/php_codesniffer": "^3.4", - "symfony/phpunit-bridge": "^3.0", - "liip/functional-test-bundle": "~1.2", - "doctrine/data-fixtures": "~1.1" + "symfony/browser-kit": "4.4.*", + "symfony/dotenv": "4.4.*", + "symfony/maker-bundle": "^1.19", + "symfony/phpunit-bridge": "^3.0" + }, + "conflict": { + "symfony/symfony": "*" }, "scripts": { + "auto-scripts": { + "cache:clear": "symfony-cmd", + "assets:install %PUBLIC_DIR%": "symfony-cmd" + }, "post-install-cmd": [ "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", - "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", - "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", - "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", - "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile", - "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::removeSymfonyStandardFiles" + "@auto-scripts" ], "post-update-cmd": [ "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", - "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", - "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", - "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", - "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile", - "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::removeSymfonyStandardFiles" + "@auto-scripts" + ], + "frontend-install": [ + "echo 'Skipping task: no frontend assets available'" + ] + }, + "archive": { + "exclude": [ + "*", + ".*", + "*/Tests/*", + "!/bin", + "!/config", + "!/public", + "!/src", + "!/templates", + "!/translations", + "!/var/cache/prod", + "!/vendor" ] }, "config": { - "optimize-autoloader": true + "optimize-autoloader": true, + "platform": { + "php": "7.2" + }, + "sort-packages": true }, "extra": { "symfony-app-dir": "app", - "symfony-var-dir": "app", - "symfony-bin-dir": "app", + "symfony-var-dir": "var", + "symfony-bin-dir": "bin", "symfony-web-dir": "web", "incenteev-parameters": { - "file": "app/config/parameters.yml" - } + "file": "config/legacy/parameters.yaml" + }, + "symfony": { + "allow-contrib": false, + "require": "4.4.*" + }, + "src-dir": "src/Surfnet" } } diff --git a/composer.lock b/composer.lock index b365b4743..4b924b187 100644 --- a/composer.lock +++ b/composer.lock @@ -1,32 +1,39 @@ { "_readme": [ "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "4ab7dbc8ec7681c36499c36acc43ff07", + "content-hash": "a984dced2e4fd65d1d971f423dbb4ca6", "packages": [ { "name": "beberlei/assert", - "version": "v2.9.6", + "version": "v3.2.7", "source": { "type": "git", "url": "https://github.com/beberlei/assert.git", - "reference": "ec9e4cf0b63890edce844ee3922e2b95a526e936" + "reference": "d63a6943fc4fd1a2aedb65994e3548715105abcf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/beberlei/assert/zipball/ec9e4cf0b63890edce844ee3922e2b95a526e936", - "reference": "ec9e4cf0b63890edce844ee3922e2b95a526e936", + "url": "https://api.github.com/repos/beberlei/assert/zipball/d63a6943fc4fd1a2aedb65994e3548715105abcf", + "reference": "d63a6943fc4fd1a2aedb65994e3548715105abcf", "shasum": "" }, "require": { + "ext-ctype": "*", + "ext-json": "*", "ext-mbstring": "*", - "php": ">=5.3" + "ext-simplexml": "*", + "php": "^7" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^2.1.1", - "phpunit/phpunit": "^4.8.35|^5.7" + "friendsofphp/php-cs-fixer": "*", + "phpstan/phpstan-shim": "*", + "phpunit/phpunit": ">=6.0.0 <8" + }, + "suggest": { + "ext-intl": "Needed to allow Assertion::count(), Assertion::isCountable(), Assertion::minCount(), and Assertion::maxCount() to operate on ResourceBundles" }, "type": "library", "autoload": { @@ -59,54 +66,50 @@ "assertion", "validation" ], - "time": "2018-06-11T17:15:25+00:00" + "time": "2019-12-19T17:51:41+00:00" }, { "name": "broadway/broadway", - "version": "0.5.2", + "version": "2.3.1", "source": { "type": "git", "url": "https://github.com/broadway/broadway.git", - "reference": "0fce8c532086ad249a46fec179759c1fa089e35d" + "reference": "cd8783bba1d8c2267362055d9e5e7dcd27abeab5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/broadway/broadway/zipball/0fce8c532086ad249a46fec179759c1fa089e35d", - "reference": "0fce8c532086ad249a46fec179759c1fa089e35d", + "url": "https://api.github.com/repos/broadway/broadway/zipball/cd8783bba1d8c2267362055d9e5e7dcd27abeab5", + "reference": "cd8783bba1d8c2267362055d9e5e7dcd27abeab5", "shasum": "" }, "require": { - "beberlei/assert": "~2.0", - "broadway/uuid-generator": "~0.1.0", - "php": ">=5.3.3", - "rhumsaa/uuid": "~2.4" + "beberlei/assert": "^3.0", + "broadway/uuid-generator": "^1.0", + "php": ">=7.2" }, "require-dev": { - "doctrine/dbal": "~2.4", - "doctrine/mongodb": "~1.0", - "elasticsearch/elasticsearch": "~1.0", - "instaclick/base-test-bundle": "~0.5", + "broadway/coding-standard": "^1.0", "monolog/monolog": "~1.8", - "symfony/console": "~2.4", - "symfony/proxy-manager-bridge": "~2.4" + "phpstan/phpstan": "@stable", + "phpunit/phpunit": "^8.0", + "ramsey/uuid": "^3.0" }, "suggest": { - "doctrine/dbal": "For the BroadwayBundle (to persist events)", - "doctrine/mongodb": "For persisting saga states (required for BroadwayBundle)", - "elasticsearch/elasticsearch": "For persisting read models (required for BroadwayBundle)", - "psr/log-implementation": "Implementation for PSR3, LoggerInterface", - "symfony/console": "For the BroadwayBundle", - "symfony/proxy-manager-bridge": "For the BroadwayBundle" + "broadway/broadway-bundle": "Symfony bundle for broadway/broadway", + "broadway/broadway-saga": "Saga component for Broadway", + "broadway/event-store-dbal": "Event store implementation using doctrine/dbal", + "broadway/read-model-elasticsearch": "Elasticsearch read model implementation", + "psr/log-implementation": "Implementation for PSR3, LoggerInterface" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "0.6.x-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { - "psr-0": { - "Broadway\\": "src/" + "psr-4": { + "Broadway\\": "src/Broadway/" } }, "notification-url": "https://packagist.org/downloads/", @@ -114,22 +117,10 @@ "MIT" ], "authors": [ - { - "name": "othillo", - "email": "othillo@othillo.nl" - }, { "name": "Alexander", "email": "iam.asm89@gmail.com" }, - { - "name": "Qandidate.com", - "homepage": "http://labs.qandidate.com/" - }, - { - "name": "Willem-Jan", - "email": "wjzijderveld@gmail.com" - }, { "name": "Emil", "email": "emil@broekmeulen.com" @@ -137,6 +128,18 @@ { "name": "Fritsjan", "email": "fritsjan@qandidate.com" + }, + { + "name": "othillo", + "email": "othillo@othillo.nl" + }, + { + "name": "Willem-Jan", + "email": "wjzijderveld@gmail.com" + }, + { + "name": "Qandidate.com", + "homepage": "http://labs.qandidate.com/" } ], "description": "Infrastructure and testing helpers for creating CQRS and event sourced applications.", @@ -146,32 +149,113 @@ "domain-driven design", "event sourcing" ], - "time": "2015-03-31T18:15:05+00:00" + "time": "2020-03-06T17:11:59+00:00" + }, + { + "name": "broadway/event-store-dbal", + "version": "0.5.0", + "source": { + "type": "git", + "url": "https://github.com/broadway/event-store-dbal.git", + "reference": "3ff2bd3d9f5d2ef5fc8c7945d3e1150a458243d6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/broadway/event-store-dbal/zipball/3ff2bd3d9f5d2ef5fc8c7945d3e1150a458243d6", + "reference": "3ff2bd3d9f5d2ef5fc8c7945d3e1150a458243d6", + "shasum": "" + }, + "require": { + "broadway/broadway": "^2.3.1", + "doctrine/dbal": "^2.4", + "php": ">=7.2" + }, + "require-dev": { + "broadway/coding-standard": "^1.0", + "ext-pdo_sqlite": "*", + "phpstan/phpstan": "@stable", + "phpunit/phpunit": "^8.0", + "ramsey/uuid": "^3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Broadway\\EventStore\\Dbal\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alexander", + "email": "iam.asm89@gmail.com" + }, + { + "name": "Emil", + "email": "emil@broekmeulen.com" + }, + { + "name": "Fritsjan", + "email": "fritsjan@qandidate.com" + }, + { + "name": "othillo", + "email": "othillo@othillo.nl" + }, + { + "name": "Willem-Jan", + "email": "wjzijderveld@gmail.com" + }, + { + "name": "Qandidate.com", + "homepage": "http://labs.qandidate.com/" + } + ], + "description": "Event store implementation using doctrine/dbal", + "time": "2020-03-08T14:20:20+00:00" }, { "name": "broadway/uuid-generator", - "version": "0.1.0", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/qandidate-labs/broadway-uuid-generator.git", - "reference": "58380b723c671807131fe9ac0ff077f162be47bb" + "url": "https://github.com/broadway/broadway-uuid-generator.git", + "reference": "908de6999cdb77f1b323abd3e64e8ce6f86db3e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/qandidate-labs/broadway-uuid-generator/zipball/58380b723c671807131fe9ac0ff077f162be47bb", - "reference": "58380b723c671807131fe9ac0ff077f162be47bb", + "url": "https://api.github.com/repos/broadway/broadway-uuid-generator/zipball/908de6999cdb77f1b323abd3e64e8ce6f86db3e5", + "reference": "908de6999cdb77f1b323abd3e64e8ce6f86db3e5", "shasum": "" }, + "require": { + "php": ">=7.2" + }, "require-dev": { - "rhumsaa/uuid": "~2.4" + "broadway/coding-standard": "^1.0", + "phpstan/phpstan": "@stable", + "phpunit/phpunit": "^8.0", + "ramsey/uuid": "^3.0" }, "suggest": { - "rhumsaa/uuid": "Allows creating UUIDs" + "ramsey/uuid": "Allows creating UUIDs" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, "autoload": { - "psr-0": { - "Broadway\\UuidGenerator\\": "src/" + "psr-4": { + "Broadway\\UuidGenerator\\": "src/Broadway/UuidGenerator" } }, "notification-url": "https://packagist.org/downloads/", @@ -179,31 +263,31 @@ "MIT" ], "description": "UUID generator for broadway/broadway.", - "time": "2014-09-12T14:14:07+00:00" + "time": "2020-03-06T10:09:30+00:00" }, { "name": "composer/ca-bundle", - "version": "1.1.3", + "version": "1.2.7", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "8afa52cd417f4ec417b4bfe86b68106538a87660" + "reference": "95c63ab2117a72f48f5a55da9740a3273d45b7fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/8afa52cd417f4ec417b4bfe86b68106538a87660", - "reference": "8afa52cd417f4ec417b4bfe86b68106538a87660", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/95c63ab2117a72f48f5a55da9740a3273d45b7fd", + "reference": "95c63ab2117a72f48f5a55da9740a3273d45b7fd", "shasum": "" }, "require": { "ext-openssl": "*", "ext-pcre": "*", - "php": "^5.3.2 || ^7.0" + "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5", + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8", "psr/log": "^1.0", - "symfony/process": "^2.5 || ^3.0 || ^4.0" + "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0" }, "type": "library", "extra": { @@ -235,34 +319,45 @@ "ssl", "tls" ], - "time": "2018-10-18T06:09:13+00:00" + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-04-08T08:27:21+00:00" }, { "name": "doctrine/annotations", - "version": "v1.4.0", + "version": "1.10.3", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "54cacc9b81758b14e3ce750f205a393d52339e97" + "reference": "5db60a4969eba0e0c197a19c077780aadbc43c5d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/54cacc9b81758b14e3ce750f205a393d52339e97", - "reference": "54cacc9b81758b14e3ce750f205a393d52339e97", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/5db60a4969eba0e0c197a19c077780aadbc43c5d", + "reference": "5db60a4969eba0e0c197a19c077780aadbc43c5d", "shasum": "" }, "require": { "doctrine/lexer": "1.*", - "php": "^5.6 || ^7.0" + "ext-tokenizer": "*", + "php": "^7.1 || ^8.0" }, "require-dev": { "doctrine/cache": "1.*", - "phpunit/phpunit": "^5.7" + "phpunit/phpunit": "^7.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "1.9.x-dev" } }, "autoload": { @@ -275,6 +370,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -283,10 +382,6 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" @@ -303,37 +398,42 @@ "docblock", "parser" ], - "time": "2017-02-24T16:22:25+00:00" + "time": "2020-05-25T17:24:27+00:00" }, { "name": "doctrine/cache", - "version": "v1.6.2", + "version": "1.10.1", "source": { "type": "git", "url": "https://github.com/doctrine/cache.git", - "reference": "eb152c5100571c7a45470ff2a35095ab3f3b900b" + "reference": "35a4a70cd94e09e2259dfae7488afc6b474ecbd3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/eb152c5100571c7a45470ff2a35095ab3f3b900b", - "reference": "eb152c5100571c7a45470ff2a35095ab3f3b900b", + "url": "https://api.github.com/repos/doctrine/cache/zipball/35a4a70cd94e09e2259dfae7488afc6b474ecbd3", + "reference": "35a4a70cd94e09e2259dfae7488afc6b474ecbd3", "shasum": "" }, "require": { - "php": "~5.5|~7.0" + "php": "~7.1 || ^8.0" }, "conflict": { "doctrine/common": ">2.2,<2.4" }, "require-dev": { - "phpunit/phpunit": "~4.8|~5.0", - "predis/predis": "~1.0", - "satooshi/php-coveralls": "~0.6" + "alcaeus/mongo-php-adapter": "^1.1", + "doctrine/coding-standard": "^6.0", + "mongodb/mongodb": "^1.1", + "phpunit/phpunit": "^7.0", + "predis/predis": "~1.0" + }, + "suggest": { + "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.6.x-dev" + "dev-master": "1.9.x-dev" } }, "autoload": { @@ -346,6 +446,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -354,10 +458,6 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" @@ -367,44 +467,62 @@ "email": "schmittjoh@gmail.com" } ], - "description": "Caching library offering an object-oriented API for many cache backends", - "homepage": "http://www.doctrine-project.org", + "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", + "homepage": "https://www.doctrine-project.org/projects/cache.html", "keywords": [ + "abstraction", + "apcu", "cache", - "caching" + "caching", + "couchdb", + "memcached", + "php", + "redis", + "xcache" + ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache", + "type": "tidelift" + } ], - "time": "2017-07-22T12:49:21+00:00" + "time": "2020-05-27T16:24:54+00:00" }, { "name": "doctrine/collections", - "version": "v1.4.0", + "version": "1.6.5", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "1a4fb7e902202c33cce8c55989b945612943c2ba" + "reference": "fc0206348e17e530d09463fef07ba8968406cd6d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/1a4fb7e902202c33cce8c55989b945612943c2ba", - "reference": "1a4fb7e902202c33cce8c55989b945612943c2ba", + "url": "https://api.github.com/repos/doctrine/collections/zipball/fc0206348e17e530d09463fef07ba8968406cd6d", + "reference": "fc0206348e17e530d09463fef07ba8968406cd6d", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.1.3 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "~0.1@dev", - "phpunit/phpunit": "^5.7" + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan-shim": "^0.9.2", + "phpunit/phpunit": "^7.0", + "vimeo/psalm": "^3.8.1" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, "autoload": { - "psr-0": { - "Doctrine\\Common\\Collections\\": "lib/" + "psr-4": { + "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections" } }, "notification-url": "https://packagist.org/downloads/", @@ -412,6 +530,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -420,10 +542,6 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" @@ -433,44 +551,67 @@ "email": "schmittjoh@gmail.com" } ], - "description": "Collections Abstraction library", - "homepage": "http://www.doctrine-project.org", + "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.", + "homepage": "https://www.doctrine-project.org/projects/collections.html", "keywords": [ "array", "collections", - "iterator" + "iterators", + "php" + ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcollections", + "type": "tidelift" + } ], - "time": "2017-01-03T10:49:41+00:00" + "time": "2020-05-25T19:24:35+00:00" }, { "name": "doctrine/common", - "version": "v2.7.3", + "version": "2.13.3", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", - "reference": "4acb8f89626baafede6ee5475bc5844096eba8a9" + "reference": "f3812c026e557892c34ef37f6ab808a6b567da7f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/4acb8f89626baafede6ee5475bc5844096eba8a9", - "reference": "4acb8f89626baafede6ee5475bc5844096eba8a9", + "url": "https://api.github.com/repos/doctrine/common/zipball/f3812c026e557892c34ef37f6ab808a6b567da7f", + "reference": "f3812c026e557892c34ef37f6ab808a6b567da7f", "shasum": "" }, "require": { - "doctrine/annotations": "1.*", - "doctrine/cache": "1.*", - "doctrine/collections": "1.*", - "doctrine/inflector": "1.*", - "doctrine/lexer": "1.*", - "php": "~5.6|~7.0" + "doctrine/annotations": "^1.0", + "doctrine/cache": "^1.0", + "doctrine/collections": "^1.0", + "doctrine/event-manager": "^1.0", + "doctrine/inflector": "^1.0", + "doctrine/lexer": "^1.0", + "doctrine/persistence": "^1.3.3", + "doctrine/reflection": "^1.0", + "php": "^7.1 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^5.4.6" + "doctrine/coding-standard": "^1.0", + "phpstan/phpstan": "^0.11", + "phpstan/phpstan-phpunit": "^0.11", + "phpunit/phpunit": "^7.0", + "squizlabs/php_codesniffer": "^3.0", + "symfony/phpunit-bridge": "^4.0.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.7.x-dev" + "dev-master": "2.11.x-dev" } }, "autoload": { @@ -483,6 +624,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -491,10 +636,6 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" @@ -502,40 +643,63 @@ { "name": "Johannes Schmitt", "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" } ], - "description": "Common Library for Doctrine projects", - "homepage": "http://www.doctrine-project.org", + "description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, persistence interfaces, proxies, event system and much more.", + "homepage": "https://www.doctrine-project.org/projects/common.html", "keywords": [ - "annotations", - "collections", - "eventmanager", - "persistence", - "spl" + "common", + "doctrine", + "php" + ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcommon", + "type": "tidelift" + } ], - "time": "2017-07-22T08:35:12+00:00" + "time": "2020-06-05T16:46:05+00:00" }, { "name": "doctrine/dbal", - "version": "v2.5.13", + "version": "2.10.2", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "729340d8d1eec8f01bff708e12e449a3415af873" + "reference": "aab745e7b6b2de3b47019da81e7225e14dcfdac8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/729340d8d1eec8f01bff708e12e449a3415af873", - "reference": "729340d8d1eec8f01bff708e12e449a3415af873", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/aab745e7b6b2de3b47019da81e7225e14dcfdac8", + "reference": "aab745e7b6b2de3b47019da81e7225e14dcfdac8", "shasum": "" }, "require": { - "doctrine/common": ">=2.4,<2.8-dev", - "php": ">=5.3.2" + "doctrine/cache": "^1.0", + "doctrine/event-manager": "^1.0", + "ext-pdo": "*", + "php": "^7.2" }, "require-dev": { - "phpunit/phpunit": "4.*", - "symfony/console": "2.*||^3.0" + "doctrine/coding-standard": "^6.0", + "jetbrains/phpstorm-stubs": "^2019.1", + "nikic/php-parser": "^4.4", + "phpstan/phpstan": "^0.12", + "phpunit/phpunit": "^8.4.1", + "symfony/console": "^2.0.5|^3.0|^4.0|^5.0", + "vimeo/psalm": "^3.11" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." @@ -546,12 +710,13 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.5.x-dev" + "dev-master": "2.10.x-dev", + "dev-develop": "3.0.x-dev" } }, "autoload": { - "psr-0": { - "Doctrine\\DBAL\\": "lib/" + "psr-4": { + "Doctrine\\DBAL\\": "lib/Doctrine/DBAL" } }, "notification-url": "https://packagist.org/downloads/", @@ -559,6 +724,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -567,62 +736,96 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" } ], - "description": "Database Abstraction Layer", - "homepage": "http://www.doctrine-project.org", + "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", + "homepage": "https://www.doctrine-project.org/projects/dbal.html", "keywords": [ + "abstraction", "database", + "db2", "dbal", - "persistence", - "queryobject" + "mariadb", + "mssql", + "mysql", + "oci8", + "oracle", + "pdo", + "pgsql", + "postgresql", + "queryobject", + "sasql", + "sql", + "sqlanywhere", + "sqlite", + "sqlserver", + "sqlsrv" + ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal", + "type": "tidelift" + } ], - "time": "2017-07-22T20:44:48+00:00" + "time": "2020-04-20T17:19:26+00:00" }, { "name": "doctrine/doctrine-bundle", - "version": "1.10.1", + "version": "1.12.10", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "98551d71f515692c2278073e0d483763ac70b341" + "reference": "2ee4c25a847e744e93d7fc2895e059ad9ef7d10c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/98551d71f515692c2278073e0d483763ac70b341", - "reference": "98551d71f515692c2278073e0d483763ac70b341", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/2ee4c25a847e744e93d7fc2895e059ad9ef7d10c", + "reference": "2ee4c25a847e744e93d7fc2895e059ad9ef7d10c", "shasum": "" }, "require": { "doctrine/dbal": "^2.5.12", "doctrine/doctrine-cache-bundle": "~1.2", + "doctrine/persistence": "^1.3.3", "jdorn/sql-formatter": "^1.2.16", - "php": "^5.5.9|^7.0", - "symfony/console": "~2.7|~3.0|~4.0", - "symfony/dependency-injection": "~2.7|~3.0|~4.0", - "symfony/doctrine-bridge": "~2.7|~3.0|~4.0", - "symfony/framework-bundle": "^2.7.22|~3.0|~4.0" + "php": "^7.1 || ^8.0", + "symfony/cache": "^3.4.30|^4.3.3", + "symfony/config": "^3.4.30|^4.3.3", + "symfony/console": "^3.4.30|^4.3.3", + "symfony/dependency-injection": "^3.4.30|^4.3.3", + "symfony/doctrine-bridge": "^3.4.30|^4.3.3", + "symfony/framework-bundle": "^3.4.30|^4.3.3", + "symfony/service-contracts": "^1.1.1|^2.0" }, "conflict": { - "symfony/http-foundation": "<2.6" + "doctrine/orm": "<2.6", + "twig/twig": "<1.34|>=2.0,<2.4" }, "require-dev": { - "doctrine/orm": "~2.4", + "doctrine/coding-standard": "^6.0", + "doctrine/orm": "^2.6", + "ocramius/proxy-manager": "^2.1", "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^4.8.36|^5.7|^6.4", - "symfony/phpunit-bridge": "~2.7|~3.0|~4.0", - "symfony/property-info": "~2.8|~3.0|~4.0", - "symfony/validator": "~2.7|~3.0|~4.0", - "symfony/web-profiler-bundle": "~2.7|~3.0|~4.0", - "symfony/yaml": "~2.7|~3.0|~4.0", - "twig/twig": "~1.26|~2.0" + "phpunit/phpunit": "^7.5", + "symfony/phpunit-bridge": "^4.2", + "symfony/property-info": "^3.4.30|^4.3.3", + "symfony/proxy-manager-bridge": "^3.4|^4|^5", + "symfony/twig-bridge": "^3.4|^4.1", + "symfony/validator": "^3.4.30|^4.3.3", + "symfony/web-profiler-bundle": "^3.4.30|^4.3.3", + "symfony/yaml": "^3.4.30|^4.3.3", + "twig/twig": "^1.34|^2.12" }, "suggest": { "doctrine/orm": "The Doctrine ORM integration is optional in the bundle.", @@ -631,7 +834,7 @@ "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "1.9.x-dev" + "dev-master": "1.12.x-dev" } }, "autoload": { @@ -645,20 +848,20 @@ ], "authors": [ { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, { - "name": "Doctrine Project", - "homepage": "http://www.doctrine-project.org/" + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" }, { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Doctrine Project", + "homepage": "http://www.doctrine-project.org/" } ], "description": "Symfony DoctrineBundle", @@ -669,43 +872,57 @@ "orm", "persistence" ], - "time": "2019-01-07T15:31:08+00:00" + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-bundle", + "type": "tidelift" + } + ], + "time": "2020-05-25T19:50:59+00:00" }, { "name": "doctrine/doctrine-cache-bundle", - "version": "1.3.5", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineCacheBundle.git", - "reference": "5514c90d9fb595e1095e6d66ebb98ce9ef049927" + "reference": "6bee2f9b339847e8a984427353670bad4e7bdccb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/5514c90d9fb595e1095e6d66ebb98ce9ef049927", - "reference": "5514c90d9fb595e1095e6d66ebb98ce9ef049927", + "url": "https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/6bee2f9b339847e8a984427353670bad4e7bdccb", + "reference": "6bee2f9b339847e8a984427353670bad4e7bdccb", "shasum": "" }, "require": { "doctrine/cache": "^1.4.2", - "doctrine/inflector": "~1.0", - "php": ">=5.3.2", - "symfony/doctrine-bridge": "~2.7|~3.3|~4.0" + "doctrine/inflector": "^1.0", + "php": "^7.1", + "symfony/doctrine-bridge": "^3.4|^4.0" }, "require-dev": { "instaclick/coding-standard": "~1.1", "instaclick/object-calisthenics-sniffs": "dev-master", "instaclick/symfony2-coding-standard": "dev-remaster", - "phpunit/phpunit": "~4.8.36|~5.6|~6.5|~7.0", + "phpunit/phpunit": "^7.0", "predis/predis": "~0.8", "satooshi/php-coveralls": "^1.0", "squizlabs/php_codesniffer": "~1.5", - "symfony/console": "~2.7|~3.3|~4.0", - "symfony/finder": "~2.7|~3.3|~4.0", - "symfony/framework-bundle": "~2.7|~3.3|~4.0", - "symfony/phpunit-bridge": "~2.7|~3.3|~4.0", - "symfony/security-acl": "~2.7|~3.3", - "symfony/validator": "~2.7|~3.3|~4.0", - "symfony/yaml": "~2.7|~3.3|~4.0" + "symfony/console": "^3.4|^4.0", + "symfony/finder": "^3.4|^4.0", + "symfony/framework-bundle": "^3.4|^4.0", + "symfony/phpunit-bridge": "^3.4|^4.0", + "symfony/security-acl": "^2.8", + "symfony/validator": "^3.4|^4.0", + "symfony/yaml": "^3.4|^4.0" }, "suggest": { "symfony/security-acl": "For using this bundle to cache ACLs" @@ -713,7 +930,7 @@ "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "1.3.x-dev" + "dev-master": "1.4.x-dev" } }, "autoload": { @@ -730,8 +947,8 @@ ], "authors": [ { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Benjamin Eberlei", @@ -746,12 +963,12 @@ "email": "guilhermeblanco@hotmail.com" }, { - "name": "Doctrine Project", - "homepage": "http://www.doctrine-project.org/" + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" }, { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Doctrine Project", + "homepage": "http://www.doctrine-project.org/" } ], "description": "Symfony Bundle for Doctrine Cache", @@ -760,7 +977,7 @@ "cache", "caching" ], - "time": "2018-11-09T06:25:35+00:00" + "time": "2019-11-29T11:22:01+00:00" }, { "name": "doctrine/doctrine-migrations-bundle", @@ -824,34 +1041,38 @@ "time": "2018-12-03T11:55:33+00:00" }, { - "name": "doctrine/inflector", - "version": "v1.1.0", + "name": "doctrine/event-manager", + "version": "1.1.0", "source": { "type": "git", - "url": "https://github.com/doctrine/inflector.git", - "reference": "90b2128806bfde671b6952ab8bea493942c1fdae" + "url": "https://github.com/doctrine/event-manager.git", + "reference": "629572819973f13486371cb611386eb17851e85c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/90b2128806bfde671b6952ab8bea493942c1fdae", - "reference": "90b2128806bfde671b6952ab8bea493942c1fdae", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/629572819973f13486371cb611386eb17851e85c", + "reference": "629572819973f13486371cb611386eb17851e85c", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": "^7.1" + }, + "conflict": { + "doctrine/common": "<2.9@dev" }, "require-dev": { - "phpunit/phpunit": "4.*" + "doctrine/coding-standard": "^6.0", + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { - "psr-0": { - "Doctrine\\Common\\Inflector\\": "lib/" + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" } }, "notification-url": "https://packagist.org/downloads/", @@ -860,17 +1081,94 @@ ], "authors": [ { - "name": "Roman Borschel", + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", "email": "roman@code-factory.org" }, { "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", + "homepage": "https://www.doctrine-project.org/projects/event-manager.html", + "keywords": [ + "event", + "event dispatcher", + "event manager", + "event system", + "events" + ], + "time": "2019-11-10T09:48:07+00:00" + }, + { + "name": "doctrine/inflector", + "version": "1.4.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "4650c8b30c753a76bf44fb2ed00117d6f367490c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/4650c8b30c753a76bf44fb2ed00117d6f367490c", + "reference": "4650c8b30c753a76bf44fb2ed00117d6f367490c", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^7.0", + "phpstan/phpstan": "^0.11", + "phpstan/phpstan-phpunit": "^0.11", + "phpstan/phpstan-strict-rules": "^0.11", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector", + "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ { "name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com" }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" @@ -880,44 +1178,66 @@ "email": "schmittjoh@gmail.com" } ], - "description": "Common String Manipulations with regard to casing and singular/plural rules.", - "homepage": "http://www.doctrine-project.org", + "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", + "homepage": "https://www.doctrine-project.org/projects/inflector.html", "keywords": [ "inflection", - "pluralize", - "singularize", - "string" + "inflector", + "lowercase", + "manipulation", + "php", + "plural", + "singular", + "strings", + "uppercase", + "words" + ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", + "type": "tidelift" + } ], - "time": "2015-11-06T14:35:42+00:00" + "time": "2020-05-29T07:19:59+00:00" }, { "name": "doctrine/instantiator", - "version": "1.0.5", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" + "reference": "f350df0268e904597e3bd9c4685c53e0e333feea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/f350df0268e904597e3bd9c4685c53e0e333feea", + "reference": "f350df0268e904597e3bd9c4685c53e0e333feea", "shasum": "" }, "require": { - "php": ">=5.3,<8.0-DEV" + "php": "^7.1 || ^8.0" }, "require-dev": { - "athletic/athletic": "~0.1.8", + "doctrine/coding-standard": "^6.0", "ext-pdo": "*", "ext-phar": "*", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~2.0" + "phpbench/phpbench": "^0.13", + "phpstan/phpstan-phpunit": "^0.11", + "phpstan/phpstan-shim": "^0.11", + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { @@ -937,39 +1257,58 @@ } ], "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://github.com/doctrine/instantiator", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", "keywords": [ "constructor", "instantiate" ], - "time": "2015-06-14T21:17:01+00:00" + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2020-05-29T17:27:14+00:00" }, { "name": "doctrine/lexer", - "version": "v1.0.1", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c" + "reference": "e864bbf5904cb8f5bb334f99209b48018522f042" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c", - "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042", + "reference": "e864bbf5904cb8f5bb334f99209b48018522f042", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan": "^0.11.8", + "phpunit/phpunit": "^8.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { - "psr-0": { - "Doctrine\\Common\\Lexer\\": "lib/" + "psr-4": { + "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" } }, "notification-url": "https://packagist.org/downloads/", @@ -977,60 +1316,76 @@ "MIT" ], "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, { "name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com" }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, { "name": "Johannes Schmitt", "email": "schmittjoh@gmail.com" } ], - "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "http://www.doctrine-project.org", + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", "keywords": [ + "annotations", + "docblock", "lexer", - "parser" + "parser", + "php" + ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } ], - "time": "2014-09-09T13:34:57+00:00" + "time": "2020-05-25T17:44:05+00:00" }, { "name": "doctrine/migrations", - "version": "v1.5.0", + "version": "v1.8.1", "source": { "type": "git", "url": "https://github.com/doctrine/migrations.git", - "reference": "c81147c0f2938a6566594455367e095150547f72" + "reference": "215438c0eef3e5f9b7da7d09c6b90756071b43e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/migrations/zipball/c81147c0f2938a6566594455367e095150547f72", - "reference": "c81147c0f2938a6566594455367e095150547f72", + "url": "https://api.github.com/repos/doctrine/migrations/zipball/215438c0eef3e5f9b7da7d09c6b90756071b43e6", + "reference": "215438c0eef3e5f9b7da7d09c6b90756071b43e6", "shasum": "" }, "require": { - "doctrine/dbal": "~2.2", + "doctrine/dbal": "~2.6", "ocramius/proxy-manager": "^1.0|^2.0", - "php": "^5.5|^7.0", - "symfony/console": "~2.3|~3.0", - "symfony/yaml": "~2.3|~3.0" + "php": "^7.1", + "symfony/console": "~3.3|^4.0" }, "require-dev": { - "doctrine/coding-standard": "dev-master", - "doctrine/orm": "2.*", + "doctrine/coding-standard": "^1.0", + "doctrine/orm": "~2.5", "jdorn/sql-formatter": "~1.1", - "johnkary/phpunit-speedtrap": "~1.0@dev", "mikey179/vfsstream": "^1.6", - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "~4.7", - "satooshi/php-coveralls": "^1.0" + "phpunit/phpunit": "~7.0", + "squizlabs/php_codesniffer": "^3.0", + "symfony/yaml": "~3.3|^4.0" }, "suggest": { - "jdorn/sql-formatter": "Allows to generate formatted SQL with the diff command." + "jdorn/sql-formatter": "Allows to generate formatted SQL with the diff command.", + "symfony/yaml": "Allows the use of yaml for migration configuration files." }, "bin": [ "bin/doctrine-migrations" @@ -1038,17 +1393,18 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "v1.6.x-dev" + "dev-master": "v1.8.x-dev" } }, "autoload": { "psr-4": { - "Doctrine\\DBAL\\Migrations\\": "lib/Doctrine/DBAL/Migrations" + "Doctrine\\DBAL\\Migrations\\": "lib/Doctrine/DBAL/Migrations", + "Doctrine\\Migrations\\": "lib/Doctrine/Migrations" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "LGPL-2.1" + "MIT" ], "authors": [ { @@ -1065,57 +1421,65 @@ } ], "description": "Database Schema migrations using Doctrine DBAL", - "homepage": "http://www.doctrine-project.org", + "homepage": "https://www.doctrine-project.org/projects/migrations.html", "keywords": [ "database", "migrations" ], - "time": "2016-12-25T22:54:00+00:00" + "time": "2018-06-06T21:00:30+00:00" }, { "name": "doctrine/orm", - "version": "v2.5.14", + "version": "v2.7.3", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "810a7baf81462a5ddf10e8baa8cb94b6eec02754" + "reference": "d95e03ba660d50d785a9925f41927fef0ee553cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/810a7baf81462a5ddf10e8baa8cb94b6eec02754", - "reference": "810a7baf81462a5ddf10e8baa8cb94b6eec02754", + "url": "https://api.github.com/repos/doctrine/orm/zipball/d95e03ba660d50d785a9925f41927fef0ee553cf", + "reference": "d95e03ba660d50d785a9925f41927fef0ee553cf", "shasum": "" }, "require": { - "doctrine/cache": "~1.4", - "doctrine/collections": "~1.2", - "doctrine/common": ">=2.5-dev,<2.9-dev", - "doctrine/dbal": ">=2.5-dev,<2.7-dev", - "doctrine/instantiator": "^1.0.1", + "doctrine/annotations": "^1.8", + "doctrine/cache": "^1.9.1", + "doctrine/collections": "^1.5", + "doctrine/common": "^2.11 || ^3.0", + "doctrine/dbal": "^2.9.3", + "doctrine/event-manager": "^1.1", + "doctrine/inflector": "^1.0", + "doctrine/instantiator": "^1.3", + "doctrine/lexer": "^1.0", + "doctrine/persistence": "^1.3.3 || ^2.0", "ext-pdo": "*", - "php": ">=5.4", - "symfony/console": "~2.5|~3.0|~4.0" + "ocramius/package-versions": "^1.2", + "php": "^7.1", + "symfony/console": "^3.0|^4.0|^5.0" }, "require-dev": { - "phpunit/phpunit": "~4.0", - "symfony/yaml": "~2.3|~3.0|~4.0" + "doctrine/coding-standard": "^5.0", + "phpstan/phpstan": "^0.12.18", + "phpunit/phpunit": "^7.5", + "symfony/yaml": "^3.4|^4.0|^5.0", + "vimeo/psalm": "^3.11" }, "suggest": { "symfony/yaml": "If you want to use YAML Metadata Mapping Driver" }, "bin": [ - "bin/doctrine", - "bin/doctrine.php" + "bin/doctrine" ], "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6.x-dev" + "dev-master": "2.7.x-dev" } }, "autoload": { - "psr-0": { - "Doctrine\\ORM\\": "lib/" + "psr-4": { + "Doctrine\\ORM\\": "lib/Doctrine/ORM" } }, "notification-url": "https://packagist.org/downloads/", @@ -1123,6 +1487,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -1131,57 +1499,77 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" } ], "description": "Object-Relational-Mapper for PHP", - "homepage": "http://www.doctrine-project.org", + "homepage": "https://www.doctrine-project.org/projects/orm.html", "keywords": [ "database", "orm" ], - "time": "2017-12-17T02:57:51+00:00" + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine/orm", + "type": "tidelift" + } + ], + "time": "2020-05-26T16:03:49+00:00" }, { - "name": "fig/link-util", - "version": "1.1.0", + "name": "doctrine/persistence", + "version": "1.3.7", "source": { "type": "git", - "url": "https://github.com/php-fig/link-util.git", - "reference": "47f55860678a9e202206047bc02767556d298106" + "url": "https://github.com/doctrine/persistence.git", + "reference": "0af483f91bada1c9ded6c2cfd26ab7d5ab2094e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/link-util/zipball/47f55860678a9e202206047bc02767556d298106", - "reference": "47f55860678a9e202206047bc02767556d298106", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/0af483f91bada1c9ded6c2cfd26ab7d5ab2094e0", + "reference": "0af483f91bada1c9ded6c2cfd26ab7d5ab2094e0", "shasum": "" }, "require": { - "php": ">=5.5.0", - "psr/link": "~1.0@dev" + "doctrine/annotations": "^1.0", + "doctrine/cache": "^1.0", + "doctrine/collections": "^1.0", + "doctrine/event-manager": "^1.0", + "doctrine/reflection": "^1.2", + "php": "^7.1" }, - "provide": { - "psr/link-implementation": "1.0" + "conflict": { + "doctrine/common": "<2.10@dev" }, "require-dev": { - "phpunit/phpunit": "^5.1", - "squizlabs/php_codesniffer": "^2.3.1" + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan": "^0.11", + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.3.x-dev" } }, "autoload": { "psr-4": { - "Fig\\Link\\": "src/" + "Doctrine\\Common\\": "lib/Doctrine/Common", + "Doctrine\\Persistence\\": "lib/Doctrine/Persistence" } }, "notification-url": "https://packagist.org/downloads/", @@ -1190,62 +1578,94 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" } ], - "description": "Common utility implementations for HTTP links", + "description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.", + "homepage": "https://doctrine-project.org/projects/persistence.html", "keywords": [ - "http", - "http-link", - "link", - "psr", - "psr-13", - "rest" + "mapper", + "object", + "odm", + "orm", + "persistence" + ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fpersistence", + "type": "tidelift" + } ], - "time": "2019-12-18T15:40:05+00:00" + "time": "2020-03-21T15:13:52+00:00" }, { - "name": "guzzlehttp/guzzle", - "version": "6.4.1", + "name": "doctrine/reflection", + "version": "1.2.1", "source": { "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "0895c932405407fd3a7368b6910c09a24d26db11" + "url": "https://github.com/doctrine/reflection.git", + "reference": "55e71912dfcd824b2fdd16f2d9afe15684cfce79" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/0895c932405407fd3a7368b6910c09a24d26db11", - "reference": "0895c932405407fd3a7368b6910c09a24d26db11", + "url": "https://api.github.com/repos/doctrine/reflection/zipball/55e71912dfcd824b2fdd16f2d9afe15684cfce79", + "reference": "55e71912dfcd824b2fdd16f2d9afe15684cfce79", "shasum": "" }, "require": { - "ext-json": "*", - "guzzlehttp/promises": "^1.0", - "guzzlehttp/psr7": "^1.6.1", - "php": ">=5.5" + "doctrine/annotations": "^1.0", + "ext-tokenizer": "*", + "php": "^7.1" }, - "require-dev": { - "ext-curl": "*", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", - "psr/log": "^1.1" + "conflict": { + "doctrine/common": "<2.9" }, - "suggest": { - "psr/log": "Required for using the Log middleware" + "require-dev": { + "doctrine/coding-standard": "^5.0", + "doctrine/common": "^2.10", + "phpstan/phpstan": "^0.11.0", + "phpstan/phpstan-phpunit": "^0.11.0", + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "6.3-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { "psr-4": { - "GuzzleHttp\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] + "Doctrine\\Common\\": "lib/Doctrine/Common" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1253,57 +1673,75 @@ ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" } ], - "description": "Guzzle is a PHP HTTP client library", - "homepage": "http://guzzlephp.org/", + "description": "The Doctrine Reflection project is a simple library used by the various Doctrine projects which adds some additional functionality on top of the reflection functionality that comes with PHP. It allows you to get the reflection information about classes, methods and properties statically.", + "homepage": "https://www.doctrine-project.org/projects/reflection.html", "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "rest", - "web service" + "reflection", + "static" ], - "time": "2019-10-23T15:58:00+00:00" + "time": "2020-03-27T11:06:43+00:00" }, { - "name": "guzzlehttp/promises", - "version": "v1.3.1", + "name": "egulias/email-validator", + "version": "2.1.18", "source": { "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "cfa3d44471c7f5bfb684ac2b0da7114283d78441" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/cfa3d44471c7f5bfb684ac2b0da7114283d78441", + "reference": "cfa3d44471c7f5bfb684ac2b0da7114283d78441", "shasum": "" }, "require": { - "php": ">=5.5.0" + "doctrine/lexer": "^1.0.1", + "php": ">=5.5", + "symfony/polyfill-intl-idn": "^1.10" }, "require-dev": { - "phpunit/phpunit": "^4.0" + "dominicsayers/isemail": "^3.0.7", + "phpunit/phpunit": "^4.8.36|^7.5.15", + "satooshi/php-coveralls": "^1.0.1" + }, + "suggest": { + "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "2.1.x-dev" } }, "autoload": { "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] + "Egulias\\EmailValidator\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1311,12 +1749,133 @@ ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" + "name": "Eduardo Gulias Davis" } ], - "description": "Guzzle promises library", + "description": "A library for validating emails against several RFCs", + "homepage": "https://github.com/egulias/EmailValidator", + "keywords": [ + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" + ], + "time": "2020-06-16T20:11:17+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "6.5.5", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/9d4290de1cfd701f38099ef7e183b64b4b7b0c5e", + "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.0", + "guzzlehttp/psr7": "^1.6.1", + "php": ">=5.5", + "symfony/polyfill-intl-idn": "^1.17.0" + }, + "require-dev": { + "ext-curl": "*", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", + "psr/log": "^1.1" + }, + "suggest": { + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.5-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "rest", + "web service" + ], + "time": "2020-06-16T21:01:06+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "v1.3.1", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", + "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", + "shasum": "" + }, + "require": { + "php": ">=5.5.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "Guzzle promises library", "keywords": [ "promise" ], @@ -1395,26 +1954,26 @@ }, { "name": "incenteev/composer-parameter-handler", - "version": "v2.1.3", + "version": "v2.1.4", "source": { "type": "git", "url": "https://github.com/Incenteev/ParameterHandler.git", - "reference": "933c45a34814f27f2345c11c37d46b3ca7303550" + "reference": "084befb11ec21faeadcddefb88b66132775ff59b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/933c45a34814f27f2345c11c37d46b3ca7303550", - "reference": "933c45a34814f27f2345c11c37d46b3ca7303550", + "url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/084befb11ec21faeadcddefb88b66132775ff59b", + "reference": "084befb11ec21faeadcddefb88b66132775ff59b", "shasum": "" }, "require": { "php": ">=5.3.3", - "symfony/yaml": "^2.3 || ^3.0 || ^4.0" + "symfony/yaml": "^2.3 || ^3.0 || ^4.0 || ^5.0" }, "require-dev": { "composer/composer": "^1.0@dev", - "symfony/filesystem": "^2.3 || ^3 || ^4", - "symfony/phpunit-bridge": "^4.0" + "symfony/filesystem": "^2.3 || ^3 || ^4 || ^5", + "symfony/phpunit-bridge": "^4.0 || ^5.0" }, "type": "library", "extra": { @@ -1442,7 +2001,7 @@ "keywords": [ "parameters management" ], - "time": "2018-02-13T18:05:56+00:00" + "time": "2020-03-17T21:10:00+00:00" }, { "name": "jdorn/sql-formatter", @@ -1496,45 +2055,54 @@ }, { "name": "jms/translation-bundle", - "version": "1.4.3", - "target-dir": "JMS/TranslationBundle", + "version": "1.5.4", "source": { "type": "git", "url": "https://github.com/schmittjoh/JMSTranslationBundle.git", - "reference": "64c2a7d1ad4e61987bc79fbfb59067fc9460dc21" + "reference": "9f60da19f0b98528f893f3a78d4dfb31ee2f16e7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/JMSTranslationBundle/zipball/64c2a7d1ad4e61987bc79fbfb59067fc9460dc21", - "reference": "64c2a7d1ad4e61987bc79fbfb59067fc9460dc21", + "url": "https://api.github.com/repos/schmittjoh/JMSTranslationBundle/zipball/9f60da19f0b98528f893f3a78d4dfb31ee2f16e7", + "reference": "9f60da19f0b98528f893f3a78d4dfb31ee2f16e7", "shasum": "" }, "require": { "nikic/php-parser": "^1.4 || ^2.0 || ^3.0 || ^4.0", - "php": "^5.3.3 || ^7.0", - "symfony/console": "^2.3 || ^3.0 || ^4.0", - "symfony/framework-bundle": "^2.3 || ^3.0 || ^4.0", - "symfony/validator": "^2.3 || ^3.0 || ^4.0", - "twig/twig": "^1.27 || ^2.0" + "php": "^7.2", + "symfony/console": "^3.4 || ^4.3 || ^5.0", + "symfony/framework-bundle": "^3.4.31 || ^4.3 || ^5.0", + "symfony/translation": "^3.4 || ^4.3 || ^5.0", + "symfony/translation-contracts": "^1.1 || ^2.0", + "symfony/validator": "^3.4 || ^4.3 || ^5.0", + "twig/twig": "^1.42.4 || ^2.12.5 || ^3.0" }, "require-dev": { - "matthiasnoback/symfony-dependency-injection-test": "^1.2", + "doctrine/annotations": "^1.8", + "doctrine/coding-standard": "^7.0", + "matthiasnoback/symfony-dependency-injection-test": "^4.1", "nyholm/nsa": "^1.0.1", - "phpunit/phpunit": "^4.8 || ^5.0", + "phpunit/phpunit": "^8.3", "psr/log": "^1.0", - "sensio/framework-extra-bundle": "^2.3 || ^3.0 || ^4.0", - "symfony/expression-language": "^2.6 || ^3.0 || ^4.0", - "symfony/symfony": "^2.3 || ^3.0 || ^4.0" + "sensio/framework-extra-bundle": "^5.4", + "symfony/asset": "^3.4 || ^4.3 || ^5.0", + "symfony/browser-kit": "^3.4 || ^4.3 || ^5.0", + "symfony/css-selector": "^3.4 || ^4.3 || ^5.0", + "symfony/expression-language": "^3.4 || ^4.3 || ^5.0", + "symfony/form": "^3.4 || ^4.3 || ^5.0", + "symfony/security-csrf": "^3.4 || ^4.3 || ^5.0", + "symfony/templating": "^3.4 || ^4.3 || ^5.0", + "symfony/twig-bundle": "^3.4.37 || ^4.3.11 || ^5.0" }, "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "1.5-dev" } }, "autoload": { - "psr-0": { - "JMS\\TranslationBundle": "" + "psr-4": { + "JMS\\TranslationBundle\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -1559,20 +2127,20 @@ "ui", "webinterface" ], - "time": "2018-06-28T05:04:47+00:00" + "time": "2020-04-21T12:50:41+00:00" }, { "name": "monolog/monolog", - "version": "1.25.1", + "version": "1.25.4", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "70e65a5470a42cfec1a7da00d30edb6e617e8dcf" + "reference": "3022efff205e2448b560c833c6fbbf91c3139168" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/70e65a5470a42cfec1a7da00d30edb6e617e8dcf", - "reference": "70e65a5470a42cfec1a7da00d30edb6e617e8dcf", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/3022efff205e2448b560c833c6fbbf91c3139168", + "reference": "3022efff205e2448b560c833c6fbbf91c3139168", "shasum": "" }, "require": { @@ -1586,11 +2154,10 @@ "aws/aws-sdk-php": "^2.4.9 || ^3.0", "doctrine/couchdb": "~1.0@dev", "graylog2/gelf-php": "~1.0", - "jakub-onderka/php-parallel-lint": "0.9", "php-amqplib/php-amqplib": "~2.4", "php-console/php-console": "^3.1.3", + "php-parallel-lint/php-parallel-lint": "^1.0", "phpunit/phpunit": "~4.5", - "phpunit/phpunit-mock-objects": "2.3.0", "ruflin/elastica": ">=0.90 <3.0", "sentry/sentry": "^0.13", "swiftmailer/swiftmailer": "^5.3|^6.0" @@ -1637,39 +2204,64 @@ "logging", "psr-3" ], - "time": "2019-09-06T13:49:17+00:00" + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2020-05-22T07:31:27+00:00" }, { "name": "nelmio/security-bundle", - "version": "1.10.0", + "version": "v2.9.1", "source": { "type": "git", "url": "https://github.com/nelmio/NelmioSecurityBundle.git", - "reference": "4be243f1fc85ff85f10aadcf88c8c11ba2096cd9" + "reference": "89ac385b28496691bfa7eef24d60aec9f20021a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nelmio/NelmioSecurityBundle/zipball/4be243f1fc85ff85f10aadcf88c8c11ba2096cd9", - "reference": "4be243f1fc85ff85f10aadcf88c8c11ba2096cd9", + "url": "https://api.github.com/repos/nelmio/NelmioSecurityBundle/zipball/89ac385b28496691bfa7eef24d60aec9f20021a1", + "reference": "89ac385b28496691bfa7eef24d60aec9f20021a1", "shasum": "" }, "require": { - "symfony/framework-bundle": "~2.3|~3.0", - "symfony/security": "~2.3|~3.0" + "paragonie/random_compat": "~1.0|~2.0|9.99.99", + "php": ">5.4", + "symfony/framework-bundle": "~2.3|~v3.0|~4.0|~5.0", + "symfony/security-core": "~2.3|~3.0|~4.0|~5.0", + "symfony/security-csrf": "~2.3|~3.0|~4.0|~5.0", + "symfony/security-http": "~2.3|~3.0|~4.0|~5.0", + "ua-parser/uap-php": "^3.4.4" }, "require-dev": { - "phpunit/phpunit": "^5.2" + "doctrine/cache": "^1.0", + "psr/cache": "^1.0", + "symfony/phpunit-bridge": "^5.0.5", + "symfony/yaml": "~2.3|~3.0|~4.0|~5.0", + "twig/twig": "^1.38|^2.10|^3.0" + }, + "suggest": { + "ua-parser/uap-php": "To allow adapt CSP directives given the user-agent" }, "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "1.10.x-dev" + "dev-master": "2.9.x-dev" } }, "autoload": { "psr-4": { "Nelmio\\SecurityBundle\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1689,28 +2281,29 @@ "keywords": [ "security" ], - "time": "2016-02-23T10:42:13+00:00" + "time": "2020-05-11T08:12:17+00:00" }, { "name": "nikic/php-parser", - "version": "v3.1.5", + "version": "v4.5.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "bb87e28e7d7b8d9a7fda231d37457c9210faf6ce" + "reference": "53c2753d756f5adb586dca79c2ec0e2654dd9463" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/bb87e28e7d7b8d9a7fda231d37457c9210faf6ce", - "reference": "bb87e28e7d7b8d9a7fda231d37457c9210faf6ce", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/53c2753d756f5adb586dca79c2ec0e2654dd9463", + "reference": "53c2753d756f5adb586dca79c2ec0e2654dd9463", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": ">=5.5" + "php": ">=7.0" }, "require-dev": { - "phpunit/phpunit": "~4.0|~5.0" + "ircmaxell/php-yacc": "0.0.5", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0" }, "bin": [ "bin/php-parse" @@ -1718,7 +2311,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "4.3-dev" } }, "autoload": { @@ -1740,42 +2333,99 @@ "parser", "php" ], - "time": "2018-02-28T20:30:58+00:00" + "time": "2020-06-03T07:24:19+00:00" + }, + { + "name": "ocramius/package-versions", + "version": "1.4.2", + "source": { + "type": "git", + "url": "https://github.com/Ocramius/PackageVersions.git", + "reference": "44af6f3a2e2e04f2af46bcb302ad9600cba41c7d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/44af6f3a2e2e04f2af46bcb302ad9600cba41c7d", + "reference": "44af6f3a2e2e04f2af46bcb302ad9600cba41c7d", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0.0", + "php": "^7.1.0" + }, + "require-dev": { + "composer/composer": "^1.6.3", + "doctrine/coding-standard": "^5.0.1", + "ext-zip": "*", + "infection/infection": "^0.7.1", + "phpunit/phpunit": "^7.5.17" + }, + "type": "composer-plugin", + "extra": { + "class": "PackageVersions\\Installer", + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "PackageVersions\\": "src/PackageVersions" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "time": "2019-11-15T16:17:10+00:00" }, { "name": "ocramius/proxy-manager", - "version": "1.0.2", + "version": "2.2.3", "source": { "type": "git", "url": "https://github.com/Ocramius/ProxyManager.git", - "reference": "57e9272ec0e8deccf09421596e0e2252df440e11" + "reference": "4d154742e31c35137d5374c998e8f86b54db2e2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Ocramius/ProxyManager/zipball/57e9272ec0e8deccf09421596e0e2252df440e11", - "reference": "57e9272ec0e8deccf09421596e0e2252df440e11", + "url": "https://api.github.com/repos/Ocramius/ProxyManager/zipball/4d154742e31c35137d5374c998e8f86b54db2e2f", + "reference": "4d154742e31c35137d5374c998e8f86b54db2e2f", "shasum": "" }, "require": { - "php": ">=5.3.3", - "zendframework/zend-code": ">2.2.5,<3.0" + "ocramius/package-versions": "^1.1.3", + "php": "^7.2.0", + "zendframework/zend-code": "^3.3.0" }, "require-dev": { + "couscous/couscous": "^1.6.1", "ext-phar": "*", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "1.5.*" + "humbug/humbug": "1.0.0-RC.0@RC", + "nikic/php-parser": "^3.1.1", + "padraic/phpunit-accelerator": "dev-master@DEV", + "phpbench/phpbench": "^0.12.2", + "phpstan/phpstan": "dev-master#856eb10a81c1d27c701a83f167dc870fd8f4236a as 0.9.999", + "phpstan/phpstan-phpunit": "dev-master#5629c0a1f4a9c417cb1077cf6693ad9753895761", + "phpunit/phpunit": "^6.4.3", + "squizlabs/php_codesniffer": "^2.9.1" }, "suggest": { "ocramius/generated-hydrator": "To have very fast object to array to object conversion for ghost objects", "zendframework/zend-json": "To have the JsonRpc adapter (Remote Object feature)", "zendframework/zend-soap": "To have the Soap adapter (Remote Object feature)", - "zendframework/zend-stdlib": "To use the hydrator proxy", "zendframework/zend-xmlrpc": "To have the XmlRpc adapter (Remote Object feature)" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { @@ -1791,7 +2441,7 @@ { "name": "Marco Pivetta", "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" + "homepage": "http://ocramius.github.io/" } ], "description": "A library providing utilities to generate, instantiate and generally operate with Object Proxies", @@ -1803,26 +2453,26 @@ "proxy pattern", "service proxies" ], - "time": "2015-08-09T04:28:19+00:00" + "time": "2019-08-10T08:37:15+00:00" }, { "name": "openconext/monitor-bundle", - "version": "1.0.5", + "version": "2.0", "source": { "type": "git", "url": "https://github.com/OpenConext/Monitor-bundle.git", - "reference": "0c1fe3abfb68e5c315ccf651fa4a23b98d6ad2e0" + "reference": "90909dfb64437d8d88554fe2894bb1d9f618203f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/OpenConext/Monitor-bundle/zipball/0c1fe3abfb68e5c315ccf651fa4a23b98d6ad2e0", - "reference": "0c1fe3abfb68e5c315ccf651fa4a23b98d6ad2e0", + "url": "https://api.github.com/repos/OpenConext/Monitor-bundle/zipball/90909dfb64437d8d88554fe2894bb1d9f618203f", + "reference": "90909dfb64437d8d88554fe2894bb1d9f618203f", "shasum": "" }, "require": { "php": ">=5.4,<8.0-dev", - "symfony/dependency-injection": ">=2.7,<4", - "symfony/framework-bundle": ">=2.7,<4", + "symfony/dependency-injection": ">=3.4,<5", + "symfony/framework-bundle": ">=3.4,<5", "webmozart/assert": "^1.2" }, "require-dev": { @@ -1847,7 +2497,7 @@ "license": [ "Apache-2.0" ], - "description": "A Symfony 3 bundle that facilitates health and info endpoints to a Symfony application. The bundle is backwards compatible with Symfony 2 projects.", + "description": "A Symfony 4 bundle that facilitates health and info endpoints to a Symfony application. The bundle is backwards compatible with Symfony 2 projects.", "keywords": [ "OpenConext", "health", @@ -1855,19 +2505,19 @@ "stepup", "surfnet" ], - "time": "2018-09-12T13:38:01+00:00" + "time": "2020-06-22T08:25:58+00:00" }, { "name": "pagerfanta/pagerfanta", "version": "v1.1.0", "source": { "type": "git", - "url": "https://github.com/whiteoctober/Pagerfanta.git", + "url": "https://github.com/BabDev/Pagerfanta.git", "reference": "8400ab498e500018cff9a099ac22555e7949aa9a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/whiteoctober/Pagerfanta/zipball/8400ab498e500018cff9a099ac22555e7949aa9a", + "url": "https://api.github.com/repos/BabDev/Pagerfanta/zipball/8400ab498e500018cff9a099ac22555e7949aa9a", "reference": "8400ab498e500018cff9a099ac22555e7949aa9a", "shasum": "" }, @@ -1924,6 +2574,12 @@ "paginator", "paging" ], + "funding": [ + { + "url": "https://github.com/mbabker", + "type": "github" + } + ], "time": "2018-05-01T10:49:10+00:00" }, { @@ -2120,67 +2776,18 @@ ], "time": "2016-08-06T14:39:51+00:00" }, - { - "name": "psr/link", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/link.git", - "reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/link/zipball/eea8e8662d5cd3ae4517c9b864493f59fca95562", - "reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Link\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interfaces for HTTP links", - "keywords": [ - "http", - "http-link", - "link", - "psr", - "psr-13", - "rest" - ], - "time": "2016-10-28T16:06:13+00:00" - }, { "name": "psr/log", - "version": "1.1.2", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", + "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", "shasum": "" }, "require": { @@ -2214,55 +2821,7 @@ "psr", "psr-3" ], - "time": "2019-11-01T11:05:21+00:00" - }, - { - "name": "psr/simple-cache", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/simple-cache.git", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\SimpleCache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interfaces for simple caching", - "keywords": [ - "cache", - "caching", - "psr", - "psr-16", - "simple-cache" - ], - "time": "2017-10-23T01:57:42+00:00" + "time": "2020-03-23T09:12:05+00:00" }, { "name": "ralouphie/getallheaders", @@ -2353,13 +2912,13 @@ "MIT" ], "authors": [ - { - "name": "Marijn Huizendveld", - "email": "marijn.huizendveld@gmail.com" - }, { "name": "Ben Ramsey", "homepage": "http://benramsey.com" + }, + { + "name": "Marijn Huizendveld", + "email": "marijn.huizendveld@gmail.com" } ], "description": "A PHP 5.3+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).", @@ -2373,16 +2932,16 @@ }, { "name": "robrichards/xmlseclibs", - "version": "3.0.4", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/robrichards/xmlseclibs.git", - "reference": "0a53d3c3aa87564910cae4ed01416441d3ae0db5" + "reference": "8d8e56ca7914440a8c60caff1a865e7dff1d9a5a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/0a53d3c3aa87564910cae4ed01416441d3ae0db5", - "reference": "0a53d3c3aa87564910cae4ed01416441d3ae0db5", + "url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/8d8e56ca7914440a8c60caff1a865e7dff1d9a5a", + "reference": "8d8e56ca7914440a8c60caff1a865e7dff1d9a5a", "shasum": "" }, "require": { @@ -2407,112 +2966,63 @@ "xml", "xmldsig" ], - "time": "2019-11-05T11:44:22+00:00" + "time": "2020-04-22T17:19:51+00:00" }, { - "name": "sensio/distribution-bundle", - "version": "v5.0.24", + "name": "sensio/framework-extra-bundle", + "version": "v5.5.6", "source": { "type": "git", - "url": "https://github.com/sensiolabs/SensioDistributionBundle.git", - "reference": "59eac70f15f97ee945924948a6f5e2f6f86b7a4b" + "url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git", + "reference": "b49f079d8a87a6e6dd434062085ff5a132af466b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/59eac70f15f97ee945924948a6f5e2f6f86b7a4b", - "reference": "59eac70f15f97ee945924948a6f5e2f6f86b7a4b", + "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/b49f079d8a87a6e6dd434062085ff5a132af466b", + "reference": "b49f079d8a87a6e6dd434062085ff5a132af466b", "shasum": "" }, "require": { - "php": ">=5.3.9", - "sensiolabs/security-checker": "~5.0", - "symfony/class-loader": "~2.3|~3.0", - "symfony/config": "~2.3|~3.0", - "symfony/dependency-injection": "~2.3|~3.0", - "symfony/filesystem": "~2.3|~3.0", - "symfony/http-kernel": "~2.3|~3.0", - "symfony/process": "~2.3|~3.0" + "doctrine/annotations": "^1.0", + "php": ">=7.1.3", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/framework-bundle": "^4.4|^5.0", + "symfony/http-kernel": "^4.4|^5.0" }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "5.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Sensio\\Bundle\\DistributionBundle\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "description": "Base bundle for Symfony Distributions", - "keywords": [ - "configuration", - "distribution" - ], - "time": "2018-12-14T17:36:15+00:00" - }, - { - "name": "sensio/framework-extra-bundle", - "version": "v3.0.29", - "source": { - "type": "git", - "url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git", - "reference": "bb907234df776b68922eb4b25bfa061683597b6a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/bb907234df776b68922eb4b25bfa061683597b6a", - "reference": "bb907234df776b68922eb4b25bfa061683597b6a", - "shasum": "" - }, - "require": { - "doctrine/common": "~2.2", - "symfony/dependency-injection": "~2.3|~3.0", - "symfony/framework-bundle": "~2.3|~3.0|~4.0" + "conflict": { + "doctrine/doctrine-cache-bundle": "<1.3.1" }, "require-dev": { - "doctrine/doctrine-bundle": "~1.5", - "doctrine/orm": "~2.4,>=2.4.5", - "symfony/asset": "~2.7|~3.0|~4.0", - "symfony/browser-kit": "~2.3|~3.0|~4.0", - "symfony/dom-crawler": "~2.3|~3.0|~4.0", - "symfony/expression-language": "~2.4|~3.0|~4.0", - "symfony/finder": "~2.3|~3.0|~4.0", - "symfony/phpunit-bridge": "~3.2|~4.0", - "symfony/psr-http-message-bridge": "^0.3|^1.0", - "symfony/security-bundle": "~2.4|~3.0|~4.0", - "symfony/templating": "~2.3|~3.0|~4.0", - "symfony/translation": "~2.3|~3.0|~4.0", - "symfony/twig-bundle": "~2.3|~3.0|~4.0", - "symfony/yaml": "~2.3|~3.0|~4.0", - "twig/twig": "~1.12|~2.0", - "zendframework/zend-diactoros": "^1.3" - }, - "suggest": { - "symfony/expression-language": "", - "symfony/psr-http-message-bridge": "To use the PSR-7 converters", - "symfony/security-bundle": "" + "doctrine/doctrine-bundle": "^1.11|^2.0", + "doctrine/orm": "^2.5", + "nyholm/psr7": "^1.1", + "symfony/browser-kit": "^4.4|^5.0", + "symfony/dom-crawler": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/finder": "^4.4|^5.0", + "symfony/monolog-bridge": "^4.0|^5.0", + "symfony/monolog-bundle": "^3.2", + "symfony/phpunit-bridge": "^4.3.5|^5.0", + "symfony/psr-http-message-bridge": "^1.1", + "symfony/security-bundle": "^4.4|^5.0", + "symfony/twig-bundle": "^4.4|^5.0", + "symfony/yaml": "^4.4|^5.0", + "twig/twig": "^1.34|^2.4|^3.0" }, "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "5.5.x-dev" } }, "autoload": { "psr-4": { - "Sensio\\Bundle\\FrameworkExtraBundle\\": "" - } + "Sensio\\Bundle\\FrameworkExtraBundle\\": "src/" + }, + "exclude-from-classmap": [ + "/tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2529,26 +3039,28 @@ "annotations", "controllers" ], - "time": "2017-12-14T19:03:23+00:00" + "time": "2020-06-15T20:28:02+00:00" }, { "name": "sensiolabs/security-checker", - "version": "v5.0.3", + "version": "v6.0.3", "source": { "type": "git", "url": "https://github.com/sensiolabs/security-checker.git", - "reference": "46be3f58adac13084497961e10eed9a7fb4d44d1" + "reference": "a576c01520d9761901f269c4934ba55448be4a54" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/46be3f58adac13084497961e10eed9a7fb4d44d1", - "reference": "46be3f58adac13084497961e10eed9a7fb4d44d1", + "url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/a576c01520d9761901f269c4934ba55448be4a54", + "reference": "a576c01520d9761901f269c4934ba55448be4a54", "shasum": "" }, "require": { - "composer/ca-bundle": "^1.0", - "php": ">=5.5.9", - "symfony/console": "~2.7|~3.0|~4.0" + "php": ">=7.1.3", + "symfony/console": "^2.8|^3.4|^4.2|^5.0", + "symfony/http-client": "^4.3|^5.0", + "symfony/mime": "^4.3|^5.0", + "symfony/polyfill-ctype": "^1.11" }, "bin": [ "security-checker" @@ -2556,7 +3068,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-master": "6.0-dev" } }, "autoload": { @@ -2575,7 +3087,7 @@ } ], "description": "A security checker for your composer.lock", - "time": "2018-12-19T17:14:59+00:00" + "time": "2019-11-01T13:20:14+00:00" }, { "name": "simplesamlphp/saml2", @@ -2636,41 +3148,43 @@ }, { "name": "surfnet/stepup-bundle", - "version": "4.0.2", + "version": "4.1.3", "source": { "type": "git", "url": "https://github.com/OpenConext/Stepup-bundle.git", - "reference": "3329ca027f57208d7a20882707ef4a01dd2a4fb6" + "reference": "76f776d3c0f656e9498fd06a99525572ce98616b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/OpenConext/Stepup-bundle/zipball/3329ca027f57208d7a20882707ef4a01dd2a4fb6", - "reference": "3329ca027f57208d7a20882707ef4a01dd2a4fb6", + "url": "https://api.github.com/repos/OpenConext/Stepup-bundle/zipball/76f776d3c0f656e9498fd06a99525572ce98616b", + "reference": "76f776d3c0f656e9498fd06a99525572ce98616b", "shasum": "" }, "require": { "ext-gmp": "*", + "ext-json": "*", "ext-openssl": "*", "guzzlehttp/guzzle": "^6.0", "monolog/monolog": "~1.11", "php": "^5.6|^7.0", - "sensio/framework-extra-bundle": "~3", - "surfnet/stepup-saml-bundle": "^4.0", - "symfony/config": ">=2.7,<4", - "symfony/dependency-injection": ">=2.7,<4", - "symfony/form": ">=2.7,<4", - "symfony/framework-bundle": ">=2.7,<4", - "symfony/http-kernel": ">=2.7,<4", - "symfony/twig-bridge": ">=2.7,<4", - "symfony/validator": ">=2.7,<4" + "sensio/framework-extra-bundle": "~3||^5.4", + "surfnet/stepup-saml-bundle": "^4.1.8", + "symfony/config": "^3.4||^4.3", + "symfony/dependency-injection": "^3.4||^4.3", + "symfony/form": "^3.4||^4.3", + "symfony/framework-bundle": "^3.4||^4.3", + "symfony/http-kernel": "^3.4||^4.3", + "symfony/twig-bridge": "^3.4||^4.3", + "symfony/validator": "^3.4||^4.3" }, "require-dev": { "mockery/mockery": "0.9.*", "phpmd/phpmd": "^2.0", - "phpunit/phpunit": "^4.0", + "phpunit/phpunit": "^5.0", "sebastian/phpcpd": "^2.0", - "sensiolabs/security-checker": "^2.0", - "squizlabs/php_codesniffer": "^1.0" + "sensiolabs/security-checker": "^5.0", + "squizlabs/php_codesniffer": "^1.0", + "symfony/phpunit-bridge": "^4.3" }, "type": "library", "autoload": { @@ -2682,26 +3196,26 @@ "license": [ "Apache-2.0" ], - "description": "A Symfony2 bundle that holds shared code and framework integration for all Step-up applications.", + "description": "A Symfony 3 bundle (with Symfony 4.3 support) that holds shared code and framework integration for all Step-up applications.", "keywords": [ "stepup", "suaas", "surfnet" ], - "time": "2018-09-13T14:13:26+00:00" + "time": "2020-06-29T12:44:19+00:00" }, { "name": "surfnet/stepup-saml-bundle", - "version": "4.1.8", + "version": "4.1.11", "source": { "type": "git", "url": "https://github.com/OpenConext/Stepup-saml-bundle.git", - "reference": "cf88eb328a31d30a3b94deea7931a759bd362aab" + "reference": "2fa2d44e5a005c2044b7898d9624648a4850b129" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/OpenConext/Stepup-saml-bundle/zipball/cf88eb328a31d30a3b94deea7931a759bd362aab", - "reference": "cf88eb328a31d30a3b94deea7931a759bd362aab", + "url": "https://api.github.com/repos/OpenConext/Stepup-saml-bundle/zipball/2fa2d44e5a005c2044b7898d9624648a4850b129", + "reference": "2fa2d44e5a005c2044b7898d9624648a4850b129", "shasum": "" }, "require": { @@ -2709,8 +3223,9 @@ "php": ">=5.6,<8.0-dev", "robrichards/xmlseclibs": "^3.0.4", "simplesamlphp/saml2": "3.2.*", - "symfony/dependency-injection": ">=2.7,<4", - "symfony/framework-bundle": ">=2.7,<4" + "symfony/dependency-injection": "^3.4.26 || ^4.3", + "symfony/framework-bundle": "^3.4.26 || ^4.3", + "symfony/templating": "^3.4 || ^4.3" }, "require-dev": { "mockery/mockery": "~0.9", @@ -2720,7 +3235,8 @@ "sebastian/exporter": "~2.0", "sebastian/phpcpd": "^2.0", "sensiolabs/security-checker": "^5.0", - "squizlabs/php_codesniffer": "^3.0" + "squizlabs/php_codesniffer": "^3.0", + "symfony/phpunit-bridge": "^4.3" }, "type": "symfony-bundle", "autoload": { @@ -2732,7 +3248,7 @@ "license": [ "Apache-2.0" ], - "description": "A Symfony2 bundle that integrates the simplesamlphp\\saml2 library with Symfony", + "description": "A Symfony 3 (with SF 4 support) bundle that integrates the simplesamlphp\\saml2 library with Symfony.", "keywords": [ "SAML2", "saml", @@ -2740,33 +3256,41 @@ "stepup", "surfnet" ], - "time": "2019-11-06T13:09:53+00:00" + "time": "2020-03-17T13:59:34+00:00" }, { "name": "swiftmailer/swiftmailer", - "version": "v5.4.12", + "version": "v6.2.3", "source": { "type": "git", "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "181b89f18a90f8925ef805f950d47a7190e9b950" + "reference": "149cfdf118b169f7840bbe3ef0d4bc795d1780c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/181b89f18a90f8925ef805f950d47a7190e9b950", - "reference": "181b89f18a90f8925ef805f950d47a7190e9b950", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/149cfdf118b169f7840bbe3ef0d4bc795d1780c9", + "reference": "149cfdf118b169f7840bbe3ef0d4bc795d1780c9", "shasum": "" }, "require": { - "php": ">=5.3.3" + "egulias/email-validator": "~2.0", + "php": ">=7.0.0", + "symfony/polyfill-iconv": "^1.0", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" }, "require-dev": { "mockery/mockery": "~0.9.1", - "symfony/phpunit-bridge": "~3.2" + "symfony/phpunit-bridge": "^3.4.19|^4.1.8" + }, + "suggest": { + "ext-intl": "Needed to support internationalized email addresses", + "true/punycode": "Needed to support internationalized email addresses, if ext-intl is not installed" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.4-dev" + "dev-master": "6.2-dev" } }, "autoload": { @@ -2794,97 +3318,133 @@ "mail", "mailer" ], - "time": "2018-07-31T09:26:32+00:00" + "time": "2019-11-12T09:31:26+00:00" }, { - "name": "symfony/monolog-bundle", - "version": "v2.12.1", + "name": "symfony/asset", + "version": "v4.4.10", "source": { "type": "git", - "url": "https://github.com/symfony/monolog-bundle.git", - "reference": "b0146bdca7ba2a65f3bbe7010423c7393b29ec3f" + "url": "https://github.com/symfony/asset.git", + "reference": "d8a755baa015b8949a105b8288eeb0714d9b1b5f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/b0146bdca7ba2a65f3bbe7010423c7393b29ec3f", - "reference": "b0146bdca7ba2a65f3bbe7010423c7393b29ec3f", + "url": "https://api.github.com/repos/symfony/asset/zipball/d8a755baa015b8949a105b8288eeb0714d9b1b5f", + "reference": "d8a755baa015b8949a105b8288eeb0714d9b1b5f", "shasum": "" }, "require": { - "monolog/monolog": "~1.18", - "php": ">=5.3.2", - "symfony/config": "~2.3|~3.0", - "symfony/dependency-injection": "~2.3|~3.0", - "symfony/http-kernel": "~2.3|~3.0", - "symfony/monolog-bridge": "~2.3|~3.0" + "php": "^7.1.3" }, "require-dev": { - "phpunit/phpunit": "^4.8", - "symfony/console": "~2.3|~3.0", - "symfony/yaml": "~2.3|~3.0" + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/http-kernel": "^3.4|^4.0|^5.0" }, - "type": "symfony-bundle", + "suggest": { + "symfony/http-foundation": "" + }, + "type": "library", "extra": { "branch-alias": { - "dev-master": "2.x-dev" + "dev-master": "4.4-dev" } }, "autoload": { "psr-4": { - "Symfony\\Bundle\\MonologBundle\\": "" - } + "Symfony\\Component\\Asset\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ - { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - }, { "name": "Fabien Potencier", "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony MonologBundle", - "homepage": "http://symfony.com", - "keywords": [ - "log", - "logging" + "description": "Symfony Asset Component", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } ], - "time": "2017-01-02T19:04:26+00:00" + "time": "2020-05-30T18:50:54+00:00" }, { - "name": "symfony/polyfill-apcu", - "version": "v1.13.1", + "name": "symfony/cache", + "version": "v4.4.10", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-apcu.git", - "reference": "a8e961c841b9ec52927a87914f8820a1ad8f8116" + "url": "https://github.com/symfony/cache.git", + "reference": "e12aad53e6b9fa80a3ca1d043b6dde9449b4f924" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/a8e961c841b9ec52927a87914f8820a1ad8f8116", - "reference": "a8e961c841b9ec52927a87914f8820a1ad8f8116", + "url": "https://api.github.com/repos/symfony/cache/zipball/e12aad53e6b9fa80a3ca1d043b6dde9449b4f924", + "reference": "e12aad53e6b9fa80a3ca1d043b6dde9449b4f924", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1.3", + "psr/cache": "~1.0", + "psr/log": "~1.0", + "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/http-kernel": "<4.4", + "symfony/var-dumper": "<4.4" + }, + "provide": { + "psr/cache-implementation": "1.0", + "psr/simple-cache-implementation": "1.0", + "symfony/cache-implementation": "1.0" + }, + "require-dev": { + "cache/integration-tests": "dev-master", + "doctrine/cache": "^1.6", + "doctrine/dbal": "^2.5|^3.0", + "predis/predis": "^1.1", + "psr/simple-cache": "^1.0", + "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": "1.13-dev" + "dev-master": "4.4-dev" } }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Apcu\\": "" + "Symfony\\Component\\Cache\\": "" }, - "files": [ - "bootstrap.php" + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -2901,49 +3461,72 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting apcu_* functions to lower PHP versions", + "description": "Symfony Cache component with PSR-6, PSR-16, and tags", "homepage": "https://symfony.com", "keywords": [ - "apcu", - "compatibility", - "polyfill", - "portable", - "shim" + "caching", + "psr6" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } ], - "time": "2019-11-27T13:56:44+00:00" + "time": "2020-06-09T14:07:49+00:00" }, { - "name": "symfony/polyfill-ctype", - "version": "v1.13.1", + "name": "symfony/config", + "version": "v4.4.10", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3" + "url": "https://github.com/symfony/config.git", + "reference": "395f6e09e1dc6ac9c1a5eea3b7f44f7a820a5504" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", - "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", + "url": "https://api.github.com/repos/symfony/config/zipball/395f6e09e1dc6ac9c1a5eea3b7f44f7a820a5504", + "reference": "395f6e09e1dc6ac9c1a5eea3b7f44f7a820a5504", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1.3", + "symfony/filesystem": "^3.4|^4.0|^5.0", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/finder": "<3.4" + }, + "require-dev": { + "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": { - "ext-ctype": "For best performance" + "symfony/yaml": "To use the yaml reference dumper" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "4.4-dev" } }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" + "Symfony\\Component\\Config\\": "" }, - "files": [ - "bootstrap.php" + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -2952,54 +3535,89 @@ ], "authors": [ { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for ctype functions", + "description": "Symfony Config Component", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } ], - "time": "2019-11-27T13:56:44+00:00" + "time": "2020-05-23T09:11:46+00:00" }, { - "name": "symfony/polyfill-intl-icu", - "version": "v1.13.1", + "name": "symfony/console", + "version": "v4.4.10", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "b3dffd68afa61ca70f2327f2dd9bbeb6aa53d70b" + "url": "https://github.com/symfony/console.git", + "reference": "326b064d804043005526f5a0494cfb49edb59bb0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/b3dffd68afa61ca70f2327f2dd9bbeb6aa53d70b", - "reference": "b3dffd68afa61ca70f2327f2dd9bbeb6aa53d70b", + "url": "https://api.github.com/repos/symfony/console/zipball/326b064d804043005526f5a0494cfb49edb59bb0", + "reference": "326b064d804043005526f5a0494cfb49edb59bb0", "shasum": "" }, "require": { - "php": ">=5.3.3", - "symfony/intl": "~2.3|~3.0|~4.0|~5.0" + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/polyfill-php80": "^1.15", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "symfony/dependency-injection": "<3.4", + "symfony/event-dispatcher": "<4.3|>=5", + "symfony/lock": "<4.4", + "symfony/process": "<3.3" + }, + "provide": { + "psr/log-implementation": "1.0" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/event-dispatcher": "^4.3", + "symfony/lock": "^4.4|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/var-dumper": "^4.3|^5.0" }, "suggest": { - "ext-intl": "For best performance" + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "4.4-dev" } }, "autoload": { - "files": [ - "bootstrap.php" + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -3008,58 +3626,81 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for intl's ICU-related data and classes", + "description": "Symfony Console Component", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "icu", - "intl", - "polyfill", - "portable", - "shim" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } ], - "time": "2019-11-27T13:56:44+00:00" + "time": "2020-05-30T20:06:45+00:00" }, { - "name": "symfony/polyfill-mbstring", - "version": "v1.13.1", + "name": "symfony/contracts", + "version": "v1.1.8", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f" + "url": "https://github.com/symfony/contracts.git", + "reference": "f51bca9de06b7a25b19a4155da7bebad099a5def" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7b4aab9743c30be783b73de055d24a39cf4b954f", - "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f", + "url": "https://api.github.com/repos/symfony/contracts/zipball/f51bca9de06b7a25b19a4155da7bebad099a5def", + "reference": "f51bca9de06b7a25b19a4155da7bebad099a5def", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.1.3", + "psr/cache": "^1.0", + "psr/container": "^1.0" + }, + "replace": { + "symfony/cache-contracts": "self.version", + "symfony/event-dispatcher-contracts": "self.version", + "symfony/http-client-contracts": "self.version", + "symfony/service-contracts": "self.version", + "symfony/translation-contracts": "self.version" + }, + "require-dev": { + "symfony/polyfill-intl-idn": "^1.10" }, "suggest": { - "ext-mbstring": "For best performance" + "psr/event-dispatcher": "When using the EventDispatcher contracts", + "symfony/cache-implementation": "", + "symfony/event-dispatcher-implementation": "", + "symfony/http-client-implementation": "", + "symfony/service-implementation": "", + "symfony/translation-implementation": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "1.1-dev" } }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" + "Symfony\\Contracts\\": "" }, - "files": [ - "bootstrap.php" + "exclude-from-classmap": [ + "**/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -3076,47 +3717,55 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for the Mbstring extension", + "description": "A set of abstractions extracted out of the Symfony components", "homepage": "https://symfony.com", "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" ], - "time": "2019-11-27T14:18:11+00:00" + "time": "2019-11-07T12:44:51+00:00" }, { - "name": "symfony/polyfill-php56", - "version": "v1.13.1", + "name": "symfony/debug", + "version": "v4.4.10", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php56.git", - "reference": "53dd1cdf3cb986893ccf2b96665b25b3abb384f4" + "url": "https://github.com/symfony/debug.git", + "reference": "28f92d08bb6d1fddf8158e02c194ad43870007e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/53dd1cdf3cb986893ccf2b96665b25b3abb384f4", - "reference": "53dd1cdf3cb986893ccf2b96665b25b3abb384f4", + "url": "https://api.github.com/repos/symfony/debug/zipball/28f92d08bb6d1fddf8158e02c194ad43870007e6", + "reference": "28f92d08bb6d1fddf8158e02c194ad43870007e6", "shasum": "" }, "require": { - "php": ">=5.3.3", - "symfony/polyfill-util": "~1.0" + "php": ">=7.1.3", + "psr/log": "~1.0", + "symfony/polyfill-php80": "^1.15" + }, + "conflict": { + "symfony/http-kernel": "<3.4" + }, + "require-dev": { + "symfony/http-kernel": "^3.4|^4.0|^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "4.4-dev" } }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php56\\": "" + "Symfony\\Component\\Debug\\": "" }, - "files": [ - "bootstrap.php" + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -3125,57 +3774,85 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions", + "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } ], - "time": "2019-11-27T13:56:44+00:00" + "time": "2020-05-24T08:33:35+00:00" }, { - "name": "symfony/polyfill-php70", - "version": "v1.13.1", + "name": "symfony/dependency-injection", + "version": "v4.4.10", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php70.git", - "reference": "af23c7bb26a73b850840823662dda371484926c4" + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "a37cc0a90fec178768aa5048fea9251efde591c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/af23c7bb26a73b850840823662dda371484926c4", - "reference": "af23c7bb26a73b850840823662dda371484926c4", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/a37cc0a90fec178768aa5048fea9251efde591c5", + "reference": "a37cc0a90fec178768aa5048fea9251efde591c5", "shasum": "" }, "require": { - "paragonie/random_compat": "~1.0|~2.0|~9.99", - "php": ">=5.3.3" + "php": ">=7.1.3", + "psr/container": "^1.0", + "symfony/service-contracts": "^1.1.6|^2" + }, + "conflict": { + "symfony/config": "<4.3|>=5.0", + "symfony/finder": "<3.4", + "symfony/proxy-manager-bridge": "<3.4", + "symfony/yaml": "<3.4" + }, + "provide": { + "psr/container-implementation": "1.0", + "symfony/service-implementation": "1.0" + }, + "require-dev": { + "symfony/config": "^4.3", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "4.4-dev" } }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php70\\": "" + "Symfony\\Component\\DependencyInjection\\": "" }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -3184,51 +3861,107 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", + "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } ], - "time": "2019-11-27T13:56:44+00:00" + "time": "2020-06-12T07:37:04+00:00" }, { - "name": "symfony/polyfill-util", - "version": "v1.13.1", + "name": "symfony/doctrine-bridge", + "version": "v4.4.10", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-util.git", - "reference": "964a67f293b66b95883a5ed918a65354fcd2258f" + "url": "https://github.com/symfony/doctrine-bridge.git", + "reference": "01463555497ed8844a3b1511c5ff39dd226ccd0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/964a67f293b66b95883a5ed918a65354fcd2258f", - "reference": "964a67f293b66b95883a5ed918a65354fcd2258f", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/01463555497ed8844a3b1511c5ff39dd226ccd0a", + "reference": "01463555497ed8844a3b1511c5ff39dd226ccd0a", "shasum": "" }, "require": { - "php": ">=5.3.3" + "doctrine/event-manager": "~1.0", + "doctrine/persistence": "^1.3", + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^1.1|^2" }, - "type": "library", + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/dependency-injection": "<3.4", + "symfony/form": "<4.4", + "symfony/http-kernel": "<4.3.7", + "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", + "doctrine/cache": "~1.6", + "doctrine/collections": "~1.0", + "doctrine/data-fixtures": "1.0.*", + "doctrine/dbal": "~2.4", + "doctrine/orm": "^2.6.3", + "doctrine/reflection": "~1.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/form": "^4.4|^5.0", + "symfony/http-kernel": "^4.3.7", + "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": "", + "doctrine/dbal": "", + "doctrine/orm": "", + "symfony/form": "", + "symfony/property-info": "", + "symfony/validator": "" + }, + "type": "symfony-bridge", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "4.4-dev" } }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Util\\": "" - } + "Symfony\\Bridge\\Doctrine\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3236,216 +3969,153 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony utilities for portability of PHP codes", + "description": "Symfony Doctrine Bridge", "homepage": "https://symfony.com", - "keywords": [ - "compat", - "compatibility", - "polyfill", - "shim" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } ], - "time": "2019-11-27T13:56:44+00:00" + "time": "2020-06-09T14:07:49+00:00" }, { - "name": "symfony/swiftmailer-bundle", - "version": "v2.6.7", + "name": "symfony/error-handler", + "version": "v4.4.10", "source": { "type": "git", - "url": "https://github.com/symfony/swiftmailer-bundle.git", - "reference": "c4808f5169efc05567be983909d00f00521c53ec" + "url": "https://github.com/symfony/error-handler.git", + "reference": "0df9a23c0f9eddbb6682479fee6fd58b88add75b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/c4808f5169efc05567be983909d00f00521c53ec", - "reference": "c4808f5169efc05567be983909d00f00521c53ec", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/0df9a23c0f9eddbb6682479fee6fd58b88add75b", + "reference": "0df9a23c0f9eddbb6682479fee6fd58b88add75b", "shasum": "" }, "require": { - "php": ">=5.3.2", - "swiftmailer/swiftmailer": "~4.2|~5.0", - "symfony/config": "~2.7|~3.0", - "symfony/dependency-injection": "~2.7|~3.0", - "symfony/http-kernel": "~2.7|~3.0" + "php": ">=7.1.3", + "psr/log": "~1.0", + "symfony/debug": "^4.4.5", + "symfony/polyfill-php80": "^1.15", + "symfony/var-dumper": "^4.4|^5.0" }, "require-dev": { - "symfony/console": "~2.7|~3.0", - "symfony/framework-bundle": "~2.7|~3.0", - "symfony/phpunit-bridge": "~3.3@dev", - "symfony/yaml": "~2.7|~3.0" - }, - "suggest": { - "psr/log": "Allows logging" + "symfony/http-kernel": "^4.4|^5.0", + "symfony/serializer": "^4.4|^5.0" }, - "type": "symfony-bundle", + "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "4.4-dev" } }, "autoload": { "psr-4": { - "Symfony\\Bundle\\SwiftmailerBundle\\": "" - } + "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": "http://symfony.com/contributors" + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony ErrorHandler Component", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" }, { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "description": "Symfony SwiftmailerBundle", - "homepage": "http://symfony.com", - "time": "2017-10-19T01:06:41+00:00" + "time": "2020-05-28T10:39:14+00:00" }, { - "name": "symfony/symfony", - "version": "v3.4.36", + "name": "symfony/event-dispatcher", + "version": "v4.4.10", "source": { "type": "git", - "url": "https://github.com/symfony/symfony.git", - "reference": "0a6fccb5772ad2467253e6849d589bd09d9eb195" + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "a5370aaa7807c7a439b21386661ffccf3dff2866" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/symfony/zipball/0a6fccb5772ad2467253e6849d589bd09d9eb195", - "reference": "0a6fccb5772ad2467253e6849d589bd09d9eb195", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a5370aaa7807c7a439b21386661ffccf3dff2866", + "reference": "a5370aaa7807c7a439b21386661ffccf3dff2866", "shasum": "" }, "require": { - "doctrine/common": "~2.4", - "ext-xml": "*", - "fig/link-util": "^1.0", - "php": "^5.5.9|>=7.0.8", - "psr/cache": "~1.0", - "psr/container": "^1.0", - "psr/link": "^1.0", - "psr/log": "~1.0", - "psr/simple-cache": "^1.0", - "symfony/polyfill-apcu": "~1.1", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-icu": "~1.0", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php56": "~1.0", - "symfony/polyfill-php70": "~1.6", - "twig/twig": "^1.41|^2.10" + "php": ">=7.1.3", + "symfony/event-dispatcher-contracts": "^1.1" }, "conflict": { - "monolog/monolog": ">=2", - "phpdocumentor/reflection-docblock": "<3.0||>=3.2.0,<3.2.2", - "phpdocumentor/type-resolver": "<0.3.0", - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" + "symfony/dependency-injection": "<3.4" }, "provide": { - "psr/cache-implementation": "1.0", - "psr/container-implementation": "1.0", - "psr/log-implementation": "1.0", - "psr/simple-cache-implementation": "1.0" - }, - "replace": { - "symfony/asset": "self.version", - "symfony/browser-kit": "self.version", - "symfony/cache": "self.version", - "symfony/class-loader": "self.version", - "symfony/config": "self.version", - "symfony/console": "self.version", - "symfony/css-selector": "self.version", - "symfony/debug": "self.version", - "symfony/debug-bundle": "self.version", - "symfony/dependency-injection": "self.version", - "symfony/doctrine-bridge": "self.version", - "symfony/dom-crawler": "self.version", - "symfony/dotenv": "self.version", - "symfony/event-dispatcher": "self.version", - "symfony/expression-language": "self.version", - "symfony/filesystem": "self.version", - "symfony/finder": "self.version", - "symfony/form": "self.version", - "symfony/framework-bundle": "self.version", - "symfony/http-foundation": "self.version", - "symfony/http-kernel": "self.version", - "symfony/inflector": "self.version", - "symfony/intl": "self.version", - "symfony/ldap": "self.version", - "symfony/lock": "self.version", - "symfony/monolog-bridge": "self.version", - "symfony/options-resolver": "self.version", - "symfony/process": "self.version", - "symfony/property-access": "self.version", - "symfony/property-info": "self.version", - "symfony/proxy-manager-bridge": "self.version", - "symfony/routing": "self.version", - "symfony/security": "self.version", - "symfony/security-bundle": "self.version", - "symfony/security-core": "self.version", - "symfony/security-csrf": "self.version", - "symfony/security-guard": "self.version", - "symfony/security-http": "self.version", - "symfony/serializer": "self.version", - "symfony/stopwatch": "self.version", - "symfony/templating": "self.version", - "symfony/translation": "self.version", - "symfony/twig-bridge": "self.version", - "symfony/twig-bundle": "self.version", - "symfony/validator": "self.version", - "symfony/var-dumper": "self.version", - "symfony/web-link": "self.version", - "symfony/web-profiler-bundle": "self.version", - "symfony/web-server-bundle": "self.version", - "symfony/workflow": "self.version", - "symfony/yaml": "self.version" + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "1.1" }, "require-dev": { - "cache/integration-tests": "dev-master", - "doctrine/annotations": "~1.0", - "doctrine/cache": "~1.6", - "doctrine/data-fixtures": "1.0.*", - "doctrine/dbal": "~2.4", - "doctrine/doctrine-bundle": "~1.4", - "doctrine/orm": "~2.4,>=2.4.5", - "egulias/email-validator": "~1.2,>=1.2.8|~2.0", - "monolog/monolog": "~1.11", - "ocramius/proxy-manager": "~0.4|~1.0|~2.0", - "phpdocumentor/reflection-docblock": "^3.0|^4.0", - "predis/predis": "~1.0", - "symfony/phpunit-bridge": "^3.4.31|^4.3.4|~5.0", - "symfony/security-acl": "~2.8|~3.0" + "psr/log": "~1.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": "", + "symfony/http-kernel": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { "psr-4": { - "Symfony\\Bridge\\Doctrine\\": "src/Symfony/Bridge/Doctrine/", - "Symfony\\Bridge\\Monolog\\": "src/Symfony/Bridge/Monolog/", - "Symfony\\Bridge\\ProxyManager\\": "src/Symfony/Bridge/ProxyManager/", - "Symfony\\Bridge\\Twig\\": "src/Symfony/Bridge/Twig/", - "Symfony\\Bundle\\": "src/Symfony/Bundle/", - "Symfony\\Component\\": "src/Symfony/Component/" + "Symfony\\Component\\EventDispatcher\\": "" }, - "classmap": [ - "src/Symfony/Component/Intl/Resources/stubs" - ], "exclude-from-classmap": [ - "**/Tests/" + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -3462,50 +4132,56 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "The Symfony PHP framework", + "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "keywords": [ - "framework" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } ], - "time": "2019-12-01T13:50:53+00:00" + "time": "2020-05-20T08:37:50+00:00" }, { - "name": "twig/extensions", - "version": "v1.5.4", + "name": "symfony/expression-language", + "version": "v4.4.10", "source": { "type": "git", - "url": "https://github.com/twigphp/Twig-extensions.git", - "reference": "57873c8b0c1be51caa47df2cdb824490beb16202" + "url": "https://github.com/symfony/expression-language.git", + "reference": "89f0e2c82d8c12975180f993383decbb810ad73e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig-extensions/zipball/57873c8b0c1be51caa47df2cdb824490beb16202", - "reference": "57873c8b0c1be51caa47df2cdb824490beb16202", + "url": "https://api.github.com/repos/symfony/expression-language/zipball/89f0e2c82d8c12975180f993383decbb810ad73e", + "reference": "89f0e2c82d8c12975180f993383decbb810ad73e", "shasum": "" }, "require": { - "twig/twig": "^1.27|^2.0" - }, - "require-dev": { - "symfony/phpunit-bridge": "^3.4", - "symfony/translation": "^2.7|^3.4" - }, - "suggest": { - "symfony/translation": "Allow the time_diff output to be translated" + "php": ">=7.1.3", + "symfony/cache": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1|^2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.5-dev" + "dev-master": "4.4-dev" } }, "autoload": { - "psr-0": { - "Twig_Extensions_": "lib/" - }, "psr-4": { - "Twig\\Extensions\\": "src/" - } + "Symfony\\Component\\ExpressionLanguage\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3515,112 +4191,124 @@ { "name": "Fabien Potencier", "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Common additional features for Twig that do not directly belong in core", - "keywords": [ - "i18n", - "text" + "description": "Symfony ExpressionLanguage Component", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } ], - "time": "2018-12-05T18:34:18+00:00" + "time": "2020-05-20T08:37:50+00:00" }, { - "name": "twig/twig", - "version": "v1.42.4", + "name": "symfony/filesystem", + "version": "v4.4.10", "source": { "type": "git", - "url": "https://github.com/twigphp/Twig.git", - "reference": "e587180584c3d2d6cb864a0454e777bb6dcb6152" + "url": "https://github.com/symfony/filesystem.git", + "reference": "b27f491309db5757816db672b256ea2e03677d30" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/e587180584c3d2d6cb864a0454e777bb6dcb6152", - "reference": "e587180584c3d2d6cb864a0454e777bb6dcb6152", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/b27f491309db5757816db672b256ea2e03677d30", + "reference": "b27f491309db5757816db672b256ea2e03677d30", "shasum": "" }, "require": { - "php": ">=5.5.0", - "symfony/polyfill-ctype": "^1.8" - }, - "require-dev": { - "psr/container": "^1.0", - "symfony/debug": "^3.4|^4.2", - "symfony/phpunit-bridge": "^4.4@dev|^5.0" + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.42-dev" + "dev-master": "4.4-dev" } }, "autoload": { - "psr-0": { - "Twig_": "lib/" - }, "psr-4": { - "Twig\\": "src/" - } + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" + "email": "fabien@symfony.com" }, { - "name": "Twig Team", - "homepage": "https://twig.symfony.com/contributors", - "role": "Contributors" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Filesystem Component", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" }, { - "name": "Armin Ronacher", - "email": "armin.ronacher@active-4.com", - "role": "Project Founder" + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "description": "Twig, the flexible, fast, and secure template language for PHP", - "homepage": "https://twig.symfony.com", - "keywords": [ - "templating" - ], - "time": "2019-11-11T16:49:32+00:00" + "time": "2020-05-30T18:50:54+00:00" }, { - "name": "webmozart/assert", - "version": "1.5.0", + "name": "symfony/finder", + "version": "v4.4.10", "source": { "type": "git", - "url": "https://github.com/webmozart/assert.git", - "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4" + "url": "https://github.com/symfony/finder.git", + "reference": "5729f943f9854c5781984ed4907bbb817735776b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/88e6d84706d09a236046d686bbea96f07b3a34f4", - "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4", + "url": "https://api.github.com/repos/symfony/finder/zipball/5729f943f9854c5781984ed4907bbb817735776b", + "reference": "5729f943f9854c5781984ed4907bbb817735776b", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0", - "symfony/polyfill-ctype": "^1.8" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.36 || ^7.5.13" + "php": "^7.1.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3-dev" + "dev-master": "4.4-dev" } }, "autoload": { "psr-4": { - "Webmozart\\Assert\\": "src/" - } + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3628,168 +4316,4337 @@ ], "authors": [ { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" + "description": "Symfony Finder Component", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } ], - "time": "2019-08-24T08:43:50+00:00" + "time": "2020-03-27T16:54:36+00:00" }, { - "name": "zendframework/zend-code", - "version": "2.6.3", + "name": "symfony/flex", + "version": "v1.8.4", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-code.git", - "reference": "95033f061b083e16cdee60530ec260d7d628b887" + "url": "https://github.com/symfony/flex.git", + "reference": "7df5a72c7664baab629ec33de7890e9e3996b51b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-code/zipball/95033f061b083e16cdee60530ec260d7d628b887", - "reference": "95033f061b083e16cdee60530ec260d7d628b887", + "url": "https://api.github.com/repos/symfony/flex/zipball/7df5a72c7664baab629ec33de7890e9e3996b51b", + "reference": "7df5a72c7664baab629ec33de7890e9e3996b51b", "shasum": "" }, "require": { - "php": "^5.5 || 7.0.0 - 7.0.4 || ^7.0.6", - "zendframework/zend-eventmanager": "^2.6 || ^3.0" + "composer-plugin-api": "^1.0|^2.0", + "php": ">=7.1" }, "require-dev": { - "doctrine/annotations": "~1.0", - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "^4.8.21", - "zendframework/zend-stdlib": "^2.7 || ^3.0" - }, - "suggest": { - "doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features", - "zendframework/zend-stdlib": "Zend\\Stdlib component" + "composer/composer": "^1.0.2|^2.0", + "symfony/dotenv": "^4.4|^5.0", + "symfony/phpunit-bridge": "^4.4|^5.0", + "symfony/process": "^3.4|^4.4|^5.0" }, - "type": "library", + "type": "composer-plugin", "extra": { "branch-alias": { - "dev-master": "2.6-dev", - "dev-develop": "2.7-dev" - } + "dev-master": "1.8-dev" + }, + "class": "Symfony\\Flex\\Flex" }, "autoload": { "psr-4": { - "Zend\\Code\\": "src/" + "Symfony\\Flex\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], - "description": "provides facilities to generate arbitrary code using an object oriented interface", - "homepage": "https://github.com/zendframework/zend-code", - "keywords": [ - "code", - "zf2" + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien.potencier@gmail.com" + } ], - "abandoned": "laminas/laminas-code", - "time": "2016-04-20T17:26:42+00:00" + "description": "Composer plugin for Symfony", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-06-16T23:10:41+00:00" }, { - "name": "zendframework/zend-eventmanager", - "version": "3.2.1", + "name": "symfony/form", + "version": "v4.4.10", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-eventmanager.git", - "reference": "a5e2583a211f73604691586b8406ff7296a946dd" + "url": "https://github.com/symfony/form.git", + "reference": "d3d8ebb8525418161b862738c4cefe518e431ff3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-eventmanager/zipball/a5e2583a211f73604691586b8406ff7296a946dd", - "reference": "a5e2583a211f73604691586b8406ff7296a946dd", + "url": "https://api.github.com/repos/symfony/form/zipball/d3d8ebb8525418161b862738c4cefe518e431ff3", + "reference": "d3d8ebb8525418161b862738c4cefe518e431ff3", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": ">=7.1.3", + "symfony/event-dispatcher": "^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|^5.0", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/console": "<4.3", + "symfony/dependency-injection": "<3.4", + "symfony/doctrine-bridge": "<3.4", + "symfony/framework-bundle": "<3.4", + "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": { - "athletic/athletic": "^0.1", - "container-interop/container-interop": "^1.1.0", - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-stdlib": "^2.7.3 || ^3.0" + "doctrine/collections": "~1.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/console": "^4.3|^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/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": { - "container-interop/container-interop": "^1.1.0, to use the lazy listeners feature", - "zendframework/zend-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature" + "symfony/security-csrf": "For protecting forms against CSRF attacks.", + "symfony/twig-bridge": "For templating with Twig.", + "symfony/validator": "For form validation." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev", + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Form\\": "" + }, + "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 Form Component", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-06-12T08:25:05+00:00" + }, + { + "name": "symfony/framework-bundle", + "version": "v4.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/framework-bundle.git", + "reference": "7da157f220ed61f43506ce5dc0527437da08095e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/7da157f220ed61f43506ce5dc0527437da08095e", + "reference": "7da157f220ed61f43506ce5dc0527437da08095e", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": ">=7.1.3", + "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.4|^5.0" + }, + "conflict": { + "doctrine/persistence": "<1.3", + "phpdocumentor/reflection-docblock": "<3.0", + "phpdocumentor/type-resolver": "<0.2.1", + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/asset": "<3.4", + "symfony/browser-kit": "<4.3", + "symfony/console": "<4.3", + "symfony/dom-crawler": "<4.3", + "symfony/dotenv": "<4.3.6", + "symfony/form": "<4.3.5", + "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/security-bundle": "<4.4", + "symfony/serializer": "<4.4", + "symfony/stopwatch": "<3.4", + "symfony/translation": "<4.4", + "symfony/twig-bridge": "<4.1.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", + "paragonie/sodium_compat": "^1.8", + "phpdocumentor/reflection-docblock": "^3.0|^4.0", + "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|^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", + "symfony/console": "For using the console commands", + "symfony/form": "For using forms", + "symfony/property-info": "For using the property_info service", + "symfony/serializer": "For using the serializer service", + "symfony/validator": "For using validation", + "symfony/web-link": "For using web links, features such as preloading, prefetching or prerendering", + "symfony/yaml": "For using the debug:config and lint:yaml commands" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\FrameworkBundle\\": "" + }, + "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 FrameworkBundle", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-06-12T08:10:13+00:00" + }, + { + "name": "symfony/http-client", + "version": "v4.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client.git", + "reference": "b141d8dd0c2dca86287e33c3dcab079a778ed479" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client/zipball/b141d8dd0c2dca86287e33c3dcab079a778ed479", + "reference": "b141d8dd0c2dca86287e33c3dcab079a778ed479", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "^1.0", + "symfony/http-client-contracts": "^1.1.8|^2", + "symfony/polyfill-php73": "^1.11", + "symfony/service-contracts": "^1.0|^2" + }, + "provide": { + "php-http/async-client-implementation": "*", + "php-http/client-implementation": "*", + "psr/http-client-implementation": "1.0", + "symfony/http-client-implementation": "1.1" + }, + "require-dev": { + "guzzlehttp/promises": "^1.3.1", + "nyholm/psr7": "^1.0", + "php-http/httplug": "^1.0|^2.0", + "psr/http-client": "^1.0", + "symfony/dependency-injection": "^4.3|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/process": "^4.2|^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpClient\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony HttpClient component", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-06-10T15:33:47+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v4.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "3adfbd7098c850b02d107330b7b9deacf2581578" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/3adfbd7098c850b02d107330b7b9deacf2581578", + "reference": "3adfbd7098c850b02d107330b7b9deacf2581578", + "shasum": "" + }, + "require": { + "php": ">=7.1.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|^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "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 HttpFoundation Component", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-23T09:11:46+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v4.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "81d42148474e1852a333ed7a732f2a014af75430" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/81d42148474e1852a333ed7a732f2a014af75430", + "reference": "81d42148474e1852a333ed7a732f2a014af75430", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "~1.0", + "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", + "symfony/polyfill-php80": "^1.15" + }, + "conflict": { + "symfony/browser-kit": "<4.3", + "symfony/config": "<3.4", + "symfony/console": ">=5", + "symfony/dependency-injection": "<4.3", + "symfony/translation": "<4.2", + "twig/twig": "<1.34|<2.4,>=2" + }, + "provide": { + "psr/log-implementation": "1.0" + }, + "require-dev": { + "psr/cache": "~1.0", + "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": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "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 HttpKernel Component", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-06-12T11:15:37+00:00" + }, + { + "name": "symfony/inflector", + "version": "v4.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/inflector.git", + "reference": "3330be44724db42f0aa493002ae63f5d29f8d5f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/inflector/zipball/3330be44724db42f0aa493002ae63f5d29f8d5f7", + "reference": "3330be44724db42f0aa493002ae63f5d29f8d5f7", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Inflector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Inflector Component", + "homepage": "https://symfony.com", + "keywords": [ + "inflection", + "pluralize", + "singularize", + "string", + "symfony", + "words" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-20T08:37:50+00:00" + }, + { + "name": "symfony/intl", + "version": "v4.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/intl.git", + "reference": "42a07a917c4db30c671b545175e402053ff23ad0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/intl/zipball/42a07a917c4db30c671b545175e402053ff23ad0", + "reference": "42a07a917c4db30c671b545175e402053ff23ad0", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-intl-icu": "~1.0" + }, + "require-dev": { + "symfony/filesystem": "^3.4|^4.0|^5.0" + }, + "suggest": { + "ext-intl": "to use the component with locales other than \"en\"" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Intl\\": "" + }, + "classmap": [ + "Resources/stubs" + ], + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + }, + { + "name": "Eriksen Costa", + "email": "eriksen.costa@infranology.com.br" + }, + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A PHP replacement layer for the C intl extension that includes additional data from the ICU library.", + "homepage": "https://symfony.com", + "keywords": [ + "i18n", + "icu", + "internationalization", + "intl", + "l10n", + "localization" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-30T20:06:45+00:00" + }, + { + "name": "symfony/mailer", + "version": "v4.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/mailer.git", + "reference": "fd16ff23c18146be32b1ea51f6cc43dc505ce361" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mailer/zipball/fd16ff23c18146be32b1ea51f6cc43dc505ce361", + "reference": "fd16ff23c18146be32b1ea51f6cc43dc505ce361", + "shasum": "" + }, + "require": { + "egulias/email-validator": "^2.1.10", + "php": ">=7.1.3", + "psr/log": "~1.0", + "symfony/event-dispatcher": "^4.3", + "symfony/mime": "^4.4|^5.0", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "symfony/http-kernel": "<4.4", + "symfony/sendgrid-mailer": "<4.4" + }, + "require-dev": { + "symfony/amazon-mailer": "^4.4|^5.0", + "symfony/google-mailer": "^4.4|^5.0", + "symfony/http-client-contracts": "^1.1|^2", + "symfony/mailchimp-mailer": "^4.4|^5.0", + "symfony/mailgun-mailer": "^4.4|^5.0", + "symfony/messenger": "^4.4|^5.0", + "symfony/postmark-mailer": "^4.4|^5.0", + "symfony/sendgrid-mailer": "^4.4|^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Mailer\\": "" + }, + "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 Mailer Component", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-06-10T05:55:43+00:00" + }, + { + "name": "symfony/mime", + "version": "v4.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "af8e69e7527f752ab0ef6e1b717bac3f7336b8c6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/af8e69e7527f752ab0ef6e1b717bac3f7336b8c6", + "reference": "af8e69e7527f752ab0ef6e1b717bac3f7336b8c6", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "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|^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "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": "A library to manipulate MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-06-09T09:16:12+00:00" + }, + { + "name": "symfony/monolog-bridge", + "version": "v4.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bridge.git", + "reference": "beb70975af56acdd67f3add01970165954d577c5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/beb70975af56acdd67f3add01970165954d577c5", + "reference": "beb70975af56acdd67f3add01970165954d577c5", + "shasum": "" + }, + "require": { + "monolog/monolog": "^1.25.1", + "php": ">=7.1.3", + "symfony/http-kernel": "^4.3", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "symfony/console": "<3.4", + "symfony/http-foundation": "<3.4" + }, + "require-dev": { + "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.", + "symfony/http-kernel": "For using the debugging handlers together with the response life cycle of the HTTP kernel.", + "symfony/var-dumper": "For using the debugging handlers like the console handler or the log server handler." + }, + "type": "symfony-bridge", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bridge\\Monolog\\": "" + }, + "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 Monolog Bridge", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-30T20:06:45+00:00" + }, + { + "name": "symfony/monolog-bundle", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bundle.git", + "reference": "dd80460fcfe1fa2050a7103ad818e9d0686ce6fd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/dd80460fcfe1fa2050a7103ad818e9d0686ce6fd", + "reference": "dd80460fcfe1fa2050a7103ad818e9d0686ce6fd", + "shasum": "" + }, + "require": { + "monolog/monolog": "~1.22 || ~2.0", + "php": ">=5.6", + "symfony/config": "~3.4 || ~4.0 || ^5.0", + "symfony/dependency-injection": "~3.4.10 || ^4.0.10 || ^5.0", + "symfony/http-kernel": "~3.4 || ~4.0 || ^5.0", + "symfony/monolog-bridge": "~3.4 || ~4.0 || ^5.0" + }, + "require-dev": { + "symfony/console": "~3.4 || ~4.0 || ^5.0", + "symfony/phpunit-bridge": "^3.4.19 || ^4.0 || ^5.0", + "symfony/yaml": "~3.4 || ~4.0 || ^5.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\MonologBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + } + ], + "description": "Symfony MonologBundle", + "homepage": "http://symfony.com", + "keywords": [ + "log", + "logging" + ], + "time": "2019-11-13T13:11:14+00:00" + }, + { + "name": "symfony/options-resolver", + "version": "v4.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/options-resolver.git", + "reference": "73e1d0fe11ffceb7b7d4ca55b7381cd7ce0bac05" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/73e1d0fe11ffceb7b7d4ca55b7381cd7ce0bac05", + "reference": "73e1d0fe11ffceb7b7d4ca55b7381cd7ce0bac05", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\OptionsResolver\\": "" + }, + "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 OptionsResolver Component", + "homepage": "https://symfony.com", + "keywords": [ + "config", + "configuration", + "options" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-23T12:09:32+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.17.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "e94c8b1bbe2bc77507a1056cdb06451c75b427f9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e94c8b1bbe2bc77507a1056cdb06451c75b427f9", + "reference": "e94c8b1bbe2bc77507a1056cdb06451c75b427f9", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.17-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-12T16:14:59+00:00" + }, + { + "name": "symfony/polyfill-iconv", + "version": "v1.17.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-iconv.git", + "reference": "c4de7601eefbf25f9d47190abe07f79fe0a27424" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/c4de7601eefbf25f9d47190abe07f79fe0a27424", + "reference": "c4de7601eefbf25f9d47190abe07f79fe0a27424", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-iconv": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.17-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Iconv\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Iconv extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "iconv", + "polyfill", + "portable", + "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-12T16:47:27+00:00" + }, + { + "name": "symfony/polyfill-intl-icu", + "version": "v1.17.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-icu.git", + "reference": "4ef3923e4a86e1b6ef72d42be59dbf7d33a685e3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/4ef3923e4a86e1b6ef72d42be59dbf7d33a685e3", + "reference": "4ef3923e4a86e1b6ef72d42be59dbf7d33a685e3", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "symfony/intl": "~2.3|~3.0|~4.0|~5.0" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.17-dev" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's ICU-related data and classes", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "icu", + "intl", + "polyfill", + "portable", + "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-12T16:14:59+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.17.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "3bff59ea7047e925be6b7f2059d60af31bb46d6a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/3bff59ea7047e925be6b7f2059d60af31bb46d6a", + "reference": "3bff59ea7047e925be6b7f2059d60af31bb46d6a", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "symfony/polyfill-mbstring": "^1.3", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.17-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-12T16:47:27+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.17.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "fa79b11539418b02fc5e1897267673ba2c19419c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fa79b11539418b02fc5e1897267673ba2c19419c", + "reference": "fa79b11539418b02fc5e1897267673ba2c19419c", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.17-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-12T16:47:27+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.17.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "f048e612a3905f34931127360bdd2def19a5e582" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/f048e612a3905f34931127360bdd2def19a5e582", + "reference": "f048e612a3905f34931127360bdd2def19a5e582", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.17-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-12T16:47:27+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.17.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "a760d8964ff79ab9bf057613a5808284ec852ccc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a760d8964ff79ab9bf057613a5808284ec852ccc", + "reference": "a760d8964ff79ab9bf057613a5808284ec852ccc", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.17-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-12T16:47:27+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.17.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "5e30b2799bc1ad68f7feb62b60a73743589438dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/5e30b2799bc1ad68f7feb62b60a73743589438dd", + "reference": "5e30b2799bc1ad68f7feb62b60a73743589438dd", + "shasum": "" + }, + "require": { + "php": ">=7.0.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.17-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-12T16:47:27+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.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/property-access.git", + "reference": "e6d51a8845b862835f5fcaf3c1030a50dc7cc70f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/property-access/zipball/e6d51a8845b862835f5fcaf3c1030a50dc7cc70f", + "reference": "e6d51a8845b862835f5fcaf3c1030a50dc7cc70f", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/inflector": "^3.4|^4.0|^5.0" + }, + "require-dev": { + "symfony/cache": "^3.4|^4.0|^5.0" + }, + "suggest": { + "psr/cache-implementation": "To cache access methods." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\PropertyAccess\\": "" + }, + "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 PropertyAccess Component", + "homepage": "https://symfony.com", + "keywords": [ + "access", + "array", + "extraction", + "index", + "injection", + "object", + "property", + "property path", + "reflection" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-30T18:50:54+00:00" + }, + { + "name": "symfony/routing", + "version": "v4.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "0f557911dde75c2a9652b8097bd7c9f54507f646" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/0f557911dde75c2a9652b8097bd7c9f54507f646", + "reference": "0f557911dde75c2a9652b8097bd7c9f54507f646", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "conflict": { + "symfony/config": "<4.2", + "symfony/dependency-injection": "<3.4", + "symfony/yaml": "<3.4" + }, + "require-dev": { + "doctrine/annotations": "~1.2", + "psr/log": "~1.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", + "symfony/config": "For using the all-in-one router or any loader", + "symfony/expression-language": "For using expression matching", + "symfony/http-foundation": "For using a Symfony Request object", + "symfony/yaml": "For using the YAML loader" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "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 Routing Component", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-30T20:07:26+00:00" + }, + { + "name": "symfony/security-bundle", + "version": "v4.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-bundle.git", + "reference": "6c1e30e2755928313e5eb55af20f615ed9fec2a2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/6c1e30e2755928313e5eb55af20f615ed9fec2a2", + "reference": "6c1e30e2755928313e5eb55af20f615ed9fec2a2", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": ">=7.1.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.5" + }, + "conflict": { + "symfony/browser-kit": "<4.2", + "symfony/console": "<3.4", + "symfony/framework-bundle": "<4.4", + "symfony/ldap": "<4.4", + "symfony/twig-bundle": "<4.4" + }, + "require-dev": { + "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.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\SecurityBundle\\": "" + }, + "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 SecurityBundle", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-20T08:37:50+00:00" + }, + { + "name": "symfony/security-core", + "version": "v4.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-core.git", + "reference": "16ab88e5692e3fc32ae4ad550a55fbced516203b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-core/zipball/16ab88e5692e3fc32ae4ad550a55fbced516203b", + "reference": "16ab88e5692e3fc32ae4ad550a55fbced516203b", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/event-dispatcher-contracts": "^1.1|^2", + "symfony/service-contracts": "^1.1.6|^2" + }, + "conflict": { + "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|^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", + "symfony/event-dispatcher": "", + "symfony/expression-language": "For using the expression voter", + "symfony/http-foundation": "", + "symfony/ldap": "For using LDAP integration", + "symfony/validator": "For using the user password constraint" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Core\\": "" + }, + "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 Security Component - Core Library", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-30T21:50:11+00:00" + }, + { + "name": "symfony/security-csrf", + "version": "v4.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-csrf.git", + "reference": "8788f6d4c8555b34d6f32f42b996b937b473f6b3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/8788f6d4c8555b34d6f32f42b996b937b473f6b3", + "reference": "8788f6d4c8555b34d6f32f42b996b937b473f6b3", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/security-core": "^3.4|^4.0|^5.0" + }, + "conflict": { + "symfony/http-foundation": "<3.4" + }, + "require-dev": { + "symfony/http-foundation": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/http-foundation": "For using the class SessionTokenStorage." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Csrf\\": "" + }, + "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 Security Component - CSRF Library", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-20T08:37:50+00:00" + }, + { + "name": "symfony/security-guard", + "version": "v4.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-guard.git", + "reference": "699162c3a9fcceb5ec8bce35a3dc2fcb79c6751e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-guard/zipball/699162c3a9fcceb5ec8bce35a3dc2fcb79c6751e", + "reference": "699162c3a9fcceb5ec8bce35a3dc2fcb79c6751e", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/security-core": "^3.4.22|^4.2.3|^5.0", + "symfony/security-http": "^4.4.1" + }, + "require-dev": { + "psr/log": "~1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Guard\\": "" + }, + "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 Security Component - Guard", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-20T08:37:50+00:00" + }, + { + "name": "symfony/security-http", + "version": "v4.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-http.git", + "reference": "4aab90c5797a4f2ee9d5cd91f5e884d1e21f431a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-http/zipball/4aab90c5797a4f2ee9d5cd91f5e884d1e21f431a", + "reference": "4aab90c5797a4f2ee9d5cd91f5e884d1e21f431a", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/http-foundation": "^3.4.40|^4.4.7|^5.0.7", + "symfony/http-kernel": "^4.4", + "symfony/property-access": "^3.4|^4.0|^5.0", + "symfony/security-core": "^4.4.8" + }, + "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|^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", + "symfony/security-csrf": "For using tokens to protect authentication/logout attempts" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Http\\": "" + }, + "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 Security Component - HTTP Integration", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-28T12:17:38+00:00" + }, + { + "name": "symfony/stopwatch", + "version": "v4.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/stopwatch.git", + "reference": "f51fb90df1154a7f75987198a9689e28f91e6a50" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/f51fb90df1154a7f75987198a9689e28f91e6a50", + "reference": "f51fb90df1154a7f75987198a9689e28f91e6a50", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/service-contracts": "^1.0|^2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Stopwatch\\": "" + }, + "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 Stopwatch Component", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-20T08:37:50+00:00" + }, + { + "name": "symfony/swiftmailer-bundle", + "version": "v3.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/swiftmailer-bundle.git", + "reference": "553d2474288349faed873da8ab7c1551a00d26ae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/553d2474288349faed873da8ab7c1551a00d26ae", + "reference": "553d2474288349faed873da8ab7c1551a00d26ae", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "swiftmailer/swiftmailer": "^6.1.3", + "symfony/config": "^4.3.8|^5.0", + "symfony/dependency-injection": "^4.3.8|^5.0", + "symfony/http-kernel": "^4.3.8|^5.0" + }, + "conflict": { + "twig/twig": "<1.41|<2.10" + }, + "require-dev": { + "symfony/console": "^4.3.8|^5.0", + "symfony/framework-bundle": "^4.3.8|^5.0", + "symfony/phpunit-bridge": "^4.3.8|^5.0", + "symfony/yaml": "^4.3.8|^5.0" + }, + "suggest": { + "psr/log": "Allows logging" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\SwiftmailerBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + } + ], + "description": "Symfony SwiftmailerBundle", + "homepage": "http://symfony.com", + "time": "2019-11-14T16:18:31+00:00" + }, + { + "name": "symfony/templating", + "version": "v4.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/templating.git", + "reference": "c28d2d167b7e8487b1f14f2da358ce19e703d14b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/templating/zipball/c28d2d167b7e8487b1f14f2da358ce19e703d14b", + "reference": "c28d2d167b7e8487b1f14f2da358ce19e703d14b", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "require-dev": { + "psr/log": "~1.0" + }, + "suggest": { + "psr/log-implementation": "For using debug logging in loaders" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Templating\\": "" + }, + "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 Templating Component", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-26T09:42:42+00:00" + }, + { + "name": "symfony/translation", + "version": "v4.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "79d3ef9096a6a6047dbc69218b68c7b7f63193af" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/79d3ef9096a6a6047dbc69218b68c7b7f63193af", + "reference": "79d3ef9096a6a6047dbc69218b68c7b7f63193af", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "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": { + "symfony/translation-implementation": "1.0" + }, + "require-dev": { + "psr/log": "~1.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", + "symfony/config": "", + "symfony/yaml": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Translation\\": "" + }, + "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 Translation Component", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-30T20:06:45+00:00" + }, + { + "name": "symfony/twig-bridge", + "version": "v4.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/twig-bridge.git", + "reference": "13a9659ebceea38814ef8fde6399e36760ea08ad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/13a9659ebceea38814ef8fde6399e36760ea08ad", + "reference": "13a9659ebceea38814ef8fde6399e36760ea08ad", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/translation-contracts": "^1.1|^2", + "twig/twig": "^1.41|^2.10|^3.0" + }, + "conflict": { + "symfony/console": "<3.4", + "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", + "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|^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|^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", + "symfony/expression-language": "For using the ExpressionExtension", + "symfony/finder": "", + "symfony/form": "For using the FormExtension", + "symfony/http-kernel": "For using the HttpKernelExtension", + "symfony/routing": "For using the RoutingExtension", + "symfony/security-core": "For using the SecurityExtension", + "symfony/security-csrf": "For using the CsrfExtension", + "symfony/security-http": "For using the LogoutUrlExtension", + "symfony/stopwatch": "For using the StopwatchExtension", + "symfony/templating": "For using the TwigEngine", + "symfony/translation": "For using the TranslationExtension", + "symfony/var-dumper": "For using the DumpExtension", + "symfony/web-link": "For using the WebLinkExtension", + "symfony/yaml": "For using the YamlExtension" + }, + "type": "symfony-bridge", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bridge\\Twig\\": "" + }, + "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 Twig Bridge", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-28T13:20:36+00:00" + }, + { + "name": "symfony/twig-bundle", + "version": "v4.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/twig-bundle.git", + "reference": "c83e606bdc54504a1b2bcd8807b5dd139187b4a4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/c83e606bdc54504a1b2bcd8807b5dd139187b4a4", + "reference": "c83e606bdc54504a1b2bcd8807b5dd139187b4a4", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/http-foundation": "^4.3|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/polyfill-ctype": "~1.8", + "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.4", + "symfony/translation": "<4.2" + }, + "require-dev": { + "doctrine/annotations": "~1.7", + "doctrine/cache": "~1.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.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\TwigBundle\\": "" + }, + "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 TwigBundle", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-20T08:37:50+00:00" + }, + { + "name": "symfony/twig-pack", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/twig-pack.git", + "reference": "8b278ea4b61fba7c051f172aacae6d87ef4be0e0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/twig-pack/zipball/8b278ea4b61fba7c051f172aacae6d87ef4be0e0", + "reference": "8b278ea4b61fba7c051f172aacae6d87ef4be0e0", + "shasum": "" + }, + "require": { + "php": "^7.0", + "symfony/twig-bundle": "*", + "twig/extra-bundle": "^2.12|^3.0", + "twig/twig": "^2.12|^3.0" + }, + "type": "symfony-pack", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A Twig pack for Symfony projects", + "time": "2019-10-17T05:44:22+00:00" + }, + { + "name": "symfony/validator", + "version": "v4.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/validator.git", + "reference": "2fae3378102cff29976ce9e35f6964c78fce02b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/validator/zipball/2fae3378102cff29976ce9e35f6964c78fce02b6", + "reference": "2fae3378102cff29976ce9e35f6964c78fce02b6", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "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": "<4.4", + "symfony/intl": "<4.3", + "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|^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/mime": "^4.4|^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.", + "egulias/email-validator": "Strict (RFC compliant) email validation", + "psr/cache-implementation": "For using the mapping cache.", + "symfony/config": "", + "symfony/expression-language": "For using the Expression validator", + "symfony/http-foundation": "", + "symfony/intl": "", + "symfony/property-access": "For accessing properties within comparison constraints", + "symfony/property-info": "To automatically add NotNull and Type constraints", + "symfony/translation": "For translating validation errors.", + "symfony/yaml": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Validator\\": "" + }, + "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 Validator Component", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-30T18:50:54+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v4.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "56b3aa5eab0ac6720dcd559fd1d590ce301594ac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/56b3aa5eab0ac6720dcd559fd1d590ce301594ac", + "reference": "56b3aa5eab0ac6720dcd559fd1d590ce301594ac", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php72": "~1.5", + "symfony/polyfill-php80": "^1.15" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/console": "<3.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/process": "^4.4|^5.0", + "twig/twig": "^1.34|^2.4|^3.0" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony mechanism for exploring and dumping PHP variables", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-30T20:06:45+00:00" + }, + { + "name": "symfony/var-exporter", + "version": "v4.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-exporter.git", + "reference": "f311af6e44fefedbd4f1e23e97607ef0f917bfcc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/f311af6e44fefedbd4f1e23e97607ef0f917bfcc", + "reference": "f311af6e44fefedbd4f1e23e97607ef0f917bfcc", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "require-dev": { + "symfony/var-dumper": "^4.4.9|^5.0.9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\VarExporter\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A blend of var_export() + serialize() to turn any serializable data structure to plain PHP code", + "homepage": "https://symfony.com", + "keywords": [ + "clone", + "construct", + "export", + "hydrate", + "instantiate", + "serialize" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-06-01T01:10:09+00:00" + }, + { + "name": "symfony/web-profiler-bundle", + "version": "v4.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/web-profiler-bundle.git", + "reference": "e86d3e8d9230fddfee27017f3b8c5c868733079e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/e86d3e8d9230fddfee27017f3b8c5c868733079e", + "reference": "e86d3e8d9230fddfee27017f3b8c5c868733079e", + "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", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-06-09T11:29:11+00:00" + }, + { + "name": "symfony/yaml", + "version": "v4.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "c2d2cc66e892322cfcc03f8f12f8340dbd7a3f8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/c2d2cc66e892322cfcc03f8f12f8340dbd7a3f8a", + "reference": "c2d2cc66e892322cfcc03f8f12f8340dbd7a3f8a", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/console": "<3.4" + }, + "require-dev": { + "symfony/console": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "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 Yaml Component", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-20T08:37:50+00:00" + }, + { + "name": "twig/extensions", + "version": "v1.5.4", + "source": { + "type": "git", + "url": "https://github.com/twigphp/Twig-extensions.git", + "reference": "57873c8b0c1be51caa47df2cdb824490beb16202" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/Twig-extensions/zipball/57873c8b0c1be51caa47df2cdb824490beb16202", + "reference": "57873c8b0c1be51caa47df2cdb824490beb16202", + "shasum": "" + }, + "require": { + "twig/twig": "^1.27|^2.0" + }, + "require-dev": { + "symfony/phpunit-bridge": "^3.4", + "symfony/translation": "^2.7|^3.4" + }, + "suggest": { + "symfony/translation": "Allow the time_diff output to be translated" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.5-dev" + } + }, + "autoload": { + "psr-0": { + "Twig_Extensions_": "lib/" + }, + "psr-4": { + "Twig\\Extensions\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Common additional features for Twig that do not directly belong in core", + "keywords": [ + "i18n", + "text" + ], + "time": "2018-12-05T18:34:18+00:00" + }, + { + "name": "twig/extra-bundle", + "version": "v3.0.3", + "source": { + "type": "git", + "url": "https://github.com/twigphp/twig-extra-bundle.git", + "reference": "6eaf1637abe6b68518e7e0949ebb84e55770d5c6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/6eaf1637abe6b68518e7e0949ebb84e55770d5c6", + "reference": "6eaf1637abe6b68518e7e0949ebb84e55770d5c6", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/framework-bundle": "^4.3|^5.0", + "symfony/twig-bundle": "^4.3|^5.0", + "twig/twig": "^2.4|^3.0" + }, + "require-dev": { + "twig/cssinliner-extra": "^2.12|^3.0", + "twig/html-extra": "^2.12|^3.0", + "twig/inky-extra": "^2.12|^3.0", + "twig/intl-extra": "^2.12|^3.0", + "twig/markdown-extra": "^2.12|^3.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "psr-4": { + "Twig\\Extra\\TwigExtraBundle\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + } + ], + "description": "A Symfony bundle for extra Twig extensions", + "homepage": "https://twig.symfony.com", + "keywords": [ + "bundle", + "extra", + "twig" + ], + "time": "2020-01-01T17:11:09+00:00" + }, + { + "name": "twig/twig", + "version": "v2.12.5", + "source": { + "type": "git", + "url": "https://github.com/twigphp/Twig.git", + "reference": "18772e0190734944277ee97a02a9a6c6555fcd94" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/18772e0190734944277ee97a02a9a6c6555fcd94", + "reference": "18772e0190734944277ee97a02a9a6c6555fcd94", + "shasum": "" + }, + "require": { + "php": "^7.0", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-mbstring": "^1.3" + }, + "require-dev": { + "psr/container": "^1.0", + "symfony/phpunit-bridge": "^4.4|^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.12-dev" + } + }, + "autoload": { + "psr-0": { + "Twig_": "lib/" + }, + "psr-4": { + "Twig\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Twig Team", + "role": "Contributors" + }, + { + "name": "Armin Ronacher", + "email": "armin.ronacher@active-4.com", + "role": "Project Founder" + } + ], + "description": "Twig, the flexible, fast, and secure template language for PHP", + "homepage": "https://twig.symfony.com", + "keywords": [ + "templating" + ], + "time": "2020-02-11T15:31:23+00:00" + }, + { + "name": "ua-parser/uap-php", + "version": "v3.9.8", + "source": { + "type": "git", + "url": "https://github.com/ua-parser/uap-php.git", + "reference": "fde0bd76ebd21cebfabc90a3a0d927754cb4f739" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ua-parser/uap-php/zipball/fde0bd76ebd21cebfabc90a3a0d927754cb4f739", + "reference": "fde0bd76ebd21cebfabc90a3a0d927754cb4f739", + "shasum": "" + }, + "require": { + "composer/ca-bundle": "^1.1", + "php": "^7.2" + }, + "require-dev": { + "phpunit/phpunit": "^7 || ^8 || ^9", + "symfony/console": "^3.4 || ^4.3 || ^5.0", + "symfony/filesystem": "^3.4 || ^4.3 || ^5.0", + "symfony/finder": "^3.4 || ^4.3 || ^5.0", + "symfony/yaml": "^3.4 || ^4.3 || ^5.0" + }, + "suggest": { + "symfony/console": "Required for CLI usage - ^3.4 || ^4.3 || ^5.0", + "symfony/filesystem": "Required for CLI usage - ^3.4 || ^4.3 || ^5.0", + "symfony/finder": "Required for CLI usage - ^3.4 || ^4.3 || ^5.0", + "symfony/yaml": "Required for CLI usage - ^3.4 || ^4.3 || ^5.0" + }, + "bin": [ + "bin/uaparser" + ], + "type": "library", + "autoload": { + "psr-4": { + "UAParser\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dave Olsen", + "email": "dmolsen@gmail.com" + }, + { + "name": "Lars Strojny", + "email": "lars@strojny.net" + } + ], + "description": "A multi-language port of Browserscope's user agent parser.", + "time": "2020-04-28T08:09:42+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.9.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/assert.git", + "reference": "9dc4f203e36f2b486149058bade43c851dd97451" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/assert/zipball/9dc4f203e36f2b486149058bade43c851dd97451", + "reference": "9dc4f203e36f2b486149058bade43c851dd97451", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<3.9.1" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.36 || ^7.5.13" + }, + "type": "library", + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "time": "2020-06-16T10:16:42+00:00" + }, + { + "name": "zendframework/zend-code", + "version": "3.4.1", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-code.git", + "reference": "268040548f92c2bfcba164421c1add2ba43abaaa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-code/zipball/268040548f92c2bfcba164421c1add2ba43abaaa", + "reference": "268040548f92c2bfcba164421c1add2ba43abaaa", + "shasum": "" + }, + "require": { + "php": "^7.1", + "zendframework/zend-eventmanager": "^2.6 || ^3.0" + }, + "conflict": { + "phpspec/prophecy": "<1.9.0" + }, + "require-dev": { + "doctrine/annotations": "^1.7", + "ext-phar": "*", + "phpunit/phpunit": "^7.5.16 || ^8.4", + "zendframework/zend-coding-standard": "^1.0", + "zendframework/zend-stdlib": "^2.7 || ^3.0" + }, + "suggest": { + "doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features", + "zendframework/zend-stdlib": "Zend\\Stdlib component" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4.x-dev", + "dev-develop": "3.5.x-dev", + "dev-dev-4.0": "4.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\Code\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Extensions to the PHP Reflection API, static code scanning, and code generation", + "keywords": [ + "ZendFramework", + "code", + "zf" + ], + "abandoned": "laminas/laminas-code", + "time": "2019-12-10T19:21:15+00:00" + }, + { + "name": "zendframework/zend-eventmanager", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-eventmanager.git", + "reference": "a5e2583a211f73604691586b8406ff7296a946dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-eventmanager/zipball/a5e2583a211f73604691586b8406ff7296a946dd", + "reference": "a5e2583a211f73604691586b8406ff7296a946dd", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "athletic/athletic": "^0.1", + "container-interop/container-interop": "^1.1.0", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2", + "zendframework/zend-coding-standard": "~1.0.0", + "zendframework/zend-stdlib": "^2.7.3 || ^3.0" + }, + "suggest": { + "container-interop/container-interop": "^1.1.0, to use the lazy listeners feature", + "zendframework/zend-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev", "dev-develop": "3.3-dev" } }, "autoload": { - "psr-4": { - "Zend\\EventManager\\": "src/" + "psr-4": { + "Zend\\EventManager\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Trigger and listen to events within a PHP application", + "homepage": "https://github.com/zendframework/zend-eventmanager", + "keywords": [ + "event", + "eventmanager", + "events", + "zf2" + ], + "abandoned": "laminas/laminas-eventmanager", + "time": "2018-04-25T15:33:34+00:00" + } + ], + "packages-dev": [ + { + "name": "composer/xdebug-handler", + "version": "1.4.2", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "fa2aaf99e2087f013a14f7432c1cd2dd7d8f1f51" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/fa2aaf99e2087f013a14f7432c1cd2dd7d8f1f51", + "reference": "fa2aaf99e2087f013a14f7432c1cd2dd7d8f1f51", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0", + "psr/log": "^1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without Xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-06-04T11:16:35+00:00" + }, + { + "name": "doctrine/data-fixtures", + "version": "1.4.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/data-fixtures.git", + "reference": "7ebac50901eb4516816ac39100dba1759d843943" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/7ebac50901eb4516816ac39100dba1759d843943", + "reference": "7ebac50901eb4516816ac39100dba1759d843943", + "shasum": "" + }, + "require": { + "doctrine/common": "^2.11", + "doctrine/persistence": "^1.3.3", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "doctrine/phpcr-odm": "<1.3.0" + }, + "require-dev": { + "alcaeus/mongo-php-adapter": "^1.1", + "doctrine/coding-standard": "^6.0", + "doctrine/dbal": "^2.5.4", + "doctrine/mongodb-odm": "^1.3.0", + "doctrine/orm": "^2.7.0", + "phpunit/phpunit": "^7.0" + }, + "suggest": { + "alcaeus/mongo-php-adapter": "For using MongoDB ODM with PHP 7", + "doctrine/mongodb-odm": "For loading MongoDB ODM fixtures", + "doctrine/orm": "For loading ORM fixtures", + "doctrine/phpcr-odm": "For loading PHPCR ODM fixtures" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\DataFixtures\\": "lib/Doctrine/Common/DataFixtures" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + } + ], + "description": "Data Fixtures for all Doctrine Object Managers", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "database" + ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdata-fixtures", + "type": "tidelift" + } + ], + "time": "2020-05-25T19:45:03+00:00" + }, + { + "name": "doctrine/doctrine-fixtures-bundle", + "version": "3.3.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/DoctrineFixturesBundle.git", + "reference": "39defca57ee0949e1475c46177b30b6d1b732e8f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/39defca57ee0949e1475c46177b30b6d1b732e8f", + "reference": "39defca57ee0949e1475c46177b30b6d1b732e8f", + "shasum": "" + }, + "require": { + "doctrine/data-fixtures": "^1.3", + "doctrine/doctrine-bundle": "^1.11|^2.0", + "doctrine/orm": "^2.6.0", + "doctrine/persistence": "^1.3", + "php": "^7.1", + "symfony/config": "^3.4|^4.3|^5.0", + "symfony/console": "^3.4|^4.3|^5.0", + "symfony/dependency-injection": "^3.4|^4.3|^5.0", + "symfony/doctrine-bridge": "^3.4|^4.1|^5.0", + "symfony/http-kernel": "^3.4|^4.3|^5.0" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpunit/phpunit": "^7.4", + "symfony/phpunit-bridge": "^4.1|^5.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Bundle\\FixturesBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Doctrine Project", + "homepage": "http://www.doctrine-project.org" + }, + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + } + ], + "description": "Symfony DoctrineFixturesBundle", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "Fixture", + "persistence" + ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-fixtures-bundle", + "type": "tidelift" + } + ], + "time": "2020-04-02T16:40:37+00:00" + }, + { + "name": "hamcrest/hamcrest-php", + "version": "v2.0.0", + "source": { + "type": "git", + "url": "https://github.com/hamcrest/hamcrest-php.git", + "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/776503d3a8e85d4f9a1148614f95b7a608b046ad", + "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad", + "shasum": "" + }, + "require": { + "php": "^5.3|^7.0" + }, + "replace": { + "cordoval/hamcrest-php": "*", + "davedevelopment/hamcrest-php": "*", + "kodova/hamcrest-php": "*" + }, + "require-dev": { + "phpunit/php-file-iterator": "1.3.3", + "phpunit/phpunit": "~4.0", + "satooshi/php-coveralls": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "hamcrest" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD" + ], + "description": "This is the PHP port of Hamcrest Matchers", + "keywords": [ + "test" + ], + "time": "2016-01-20T08:20:44+00:00" + }, + { + "name": "liip/test-fixtures-bundle", + "version": "1.9.1", + "source": { + "type": "git", + "url": "https://github.com/liip/LiipTestFixturesBundle.git", + "reference": "c8d4984f134e21c2b6e30b85dbd62e60fdf824dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/liip/LiipTestFixturesBundle/zipball/c8d4984f134e21c2b6e30b85dbd62e60fdf824dd", + "reference": "c8d4984f134e21c2b6e30b85dbd62e60fdf824dd", + "shasum": "" + }, + "require": { + "doctrine/common": "^2.0", + "php": "^7.1", + "symfony/framework-bundle": "^3.4 || ^4.1 || ^5.0" + }, + "require-dev": { + "doctrine/data-fixtures": "^1.3", + "doctrine/doctrine-bundle": "^1.8 | ^2.0", + "doctrine/doctrine-fixtures-bundle": "^3.0.2", + "doctrine/orm": "^2.6", + "monolog/monolog": "~1.11 | ^2.0", + "phpunit/phpunit": "^7.5 || ^8.0", + "symfony/monolog-bridge": ">=3", + "symfony/monolog-bundle": "^3.2", + "symfony/phpunit-bridge": "^3.4 || ^4.1 || ^5.0", + "theofidry/alice-data-fixtures": "^1.0.1" + }, + "suggest": { + "doctrine/dbal": "Required when using the fixture loading functionality with an ORM and SQLite", + "doctrine/doctrine-fixtures-bundle": "Required when using the fixture loading functionality", + "doctrine/orm": "Required when using the fixture loading functionality with an ORM and SQLite", + "hautelook/alice-bundle": "Required when using loadFixtureFiles functionality with custom providers", + "theofidry/alice-data-fixtures": "Required when using loadFixtureFiles functionality" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Liip\\TestFixturesBundle\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Liip AG", + "homepage": "http://www.liip.ch/" + }, + { + "name": "Community contributions", + "homepage": "https://github.com/liip/LiipTestFixturesBundle/contributors" + } + ], + "description": "This bundles enables efficient loading of Doctrine fixtures in functional test-cases for Symfony applications", + "keywords": [ + "fixtures", + "symfony", + "testing" + ], + "time": "2020-05-15T16:02:44+00:00" + }, + { + "name": "mockery/mockery", + "version": "1.3.1", + "source": { + "type": "git", + "url": "https://github.com/mockery/mockery.git", + "reference": "f69bbde7d7a75d6b2862d9ca8fab1cd28014b4be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mockery/mockery/zipball/f69bbde7d7a75d6b2862d9ca8fab1cd28014b4be", + "reference": "f69bbde7d7a75d6b2862d9ca8fab1cd28014b4be", + "shasum": "" + }, + "require": { + "hamcrest/hamcrest-php": "~2.0", + "lib-pcre": ">=7.0", + "php": ">=5.6.0" + }, + "require-dev": { + "phpunit/phpunit": "~5.7.10|~6.5|~7.0|~8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "autoload": { + "psr-0": { + "Mockery": "library/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "description": "Trigger and listen to events within a PHP application", - "homepage": "https://github.com/zendframework/zend-eventmanager", + "authors": [ + { + "name": "Pádraic Brady", + "email": "padraic.brady@gmail.com", + "homepage": "http://blog.astrumfutura.com" + }, + { + "name": "Dave Marshall", + "email": "dave.marshall@atstsolutions.co.uk", + "homepage": "http://davedevelopment.co.uk" + } + ], + "description": "Mockery is a simple yet flexible PHP mock object framework", + "homepage": "https://github.com/mockery/mockery", "keywords": [ - "event", - "eventmanager", - "events", - "zf2" + "BDD", + "TDD", + "library", + "mock", + "mock objects", + "mockery", + "stub", + "test", + "test double", + "testing" + ], + "time": "2019-12-26T09:49:15+00:00" + }, + { + "name": "moontoast/math", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/ramsey/moontoast-math.git", + "reference": "5f47d34c87767dbcc08b30377a9827df71de91fa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/moontoast-math/zipball/5f47d34c87767dbcc08b30377a9827df71de91fa", + "reference": "5f47d34c87767dbcc08b30377a9827df71de91fa", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "phpseclib/bcmath_compat": ">=1.0.3" + }, + "require-dev": { + "jakub-onderka/php-parallel-lint": "^0.9.0", + "phpunit/phpunit": "^4.8 || ^5.5 || ^6.5 || ^7.0", + "satooshi/php-coveralls": "^0.6.1", + "squizlabs/php_codesniffer": "^2.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Moontoast\\Math\\": "src/Moontoast/Math", + "Moontoast\\Math\\Exception\\": "src/Moontoast/Math/Exception" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Ben Ramsey", + "email": "ben@benramsey.com", + "homepage": "https://benramsey.com" + } + ], + "description": "A mathematics library, providing functionality for large numbers", + "homepage": "https://github.com/ramsey/moontoast-math", + "keywords": [ + "bcmath", + "math" + ], + "abandoned": "brick/math", + "time": "2020-01-05T04:49:34+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.9.5", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef", + "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "replace": { + "myclabs/deep-copy": "self.version" + }, + "require-dev": { + "doctrine/collections": "^1.0", + "doctrine/common": "^2.6", + "phpunit/phpunit": "^7.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + }, + "files": [ + "src/DeepCopy/deep_copy.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "time": "2020-01-17T21:11:47+00:00" + }, + { + "name": "pdepend/pdepend", + "version": "2.7.1", + "source": { + "type": "git", + "url": "https://github.com/pdepend/pdepend.git", + "reference": "daba1cf0a6edaf172fa02a17807ae29f4c1c7471" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pdepend/pdepend/zipball/daba1cf0a6edaf172fa02a17807ae29f4c1c7471", + "reference": "daba1cf0a6edaf172fa02a17807ae29f4c1c7471", + "shasum": "" + }, + "require": { + "php": ">=5.3.7", + "symfony/config": "^2.3.0|^3|^4|^5", + "symfony/dependency-injection": "^2.3.0|^3|^4|^5", + "symfony/filesystem": "^2.3.0|^3|^4|^5" + }, + "require-dev": { + "easy-doc/easy-doc": "0.0.0 || ^1.2.3", + "gregwar/rst": "^1.0", + "phpunit/phpunit": "^4.8.35|^5.7", + "squizlabs/php_codesniffer": "^2.0.0" + }, + "bin": [ + "src/bin/pdepend" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "PDepend\\": "src/main/php/PDepend" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Official version of pdepend to be handled with Composer", + "time": "2020-02-08T12:06:13+00:00" + }, + { + "name": "phar-io/manifest", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "phar-io/version": "^2.0", + "php": "^5.6 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "time": "2018-07-08T19:23:20+00:00" + }, + { + "name": "phar-io/version", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } ], - "abandoned": "laminas/laminas-eventmanager", - "time": "2018-04-25T15:33:34+00:00" - } - ], - "packages-dev": [ + "description": "Library for handling version information and constraints", + "time": "2018-07-08T19:19:57+00:00" + }, { - "name": "doctrine/data-fixtures", - "version": "v1.2.2", + "name": "phpdocumentor/reflection-common", + "version": "2.1.0", "source": { "type": "git", - "url": "https://github.com/doctrine/data-fixtures.git", - "reference": "17fa5bfe6ff52e35cb3d9ec37c934a2f4bd1fa2e" + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "6568f4687e5b41b054365f9ae03fcb1ed5f2069b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/17fa5bfe6ff52e35cb3d9ec37c934a2f4bd1fa2e", - "reference": "17fa5bfe6ff52e35cb3d9ec37c934a2f4bd1fa2e", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/6568f4687e5b41b054365f9ae03fcb1ed5f2069b", + "reference": "6568f4687e5b41b054365f9ae03fcb1ed5f2069b", "shasum": "" }, "require": { - "doctrine/common": "~2.2", - "php": "^5.6 || ^7.0" - }, - "conflict": { - "doctrine/orm": "< 2.4" - }, - "require-dev": { - "doctrine/dbal": "^2.5.4", - "doctrine/orm": "^2.5.4", - "phpunit/phpunit": "^5.4.6" - }, - "suggest": { - "doctrine/mongodb-odm": "For loading MongoDB ODM fixtures", - "doctrine/orm": "For loading ORM fixtures", - "doctrine/phpcr-odm": "For loading PHPCR ODM fixtures" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3.x-dev" + "dev-master": "2.x-dev" } }, "autoload": { - "psr-0": { - "Doctrine\\Common\\DataFixtures": "lib/" + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -3798,112 +8655,97 @@ ], "authors": [ { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" } ], - "description": "Data Fixtures for all Doctrine Object Managers", - "homepage": "http://www.doctrine-project.org", + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", "keywords": [ - "database" + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" ], - "time": "2016-09-20T10:07:57+00:00" + "time": "2020-04-27T09:25:28+00:00" }, { - "name": "hamcrest/hamcrest-php", - "version": "v1.2.2", + "name": "phpdocumentor/reflection-docblock", + "version": "5.1.0", "source": { "type": "git", - "url": "https://github.com/hamcrest/hamcrest-php.git", - "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c" + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/b37020aa976fa52d3de9aa904aa2522dc518f79c", - "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", + "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", "shasum": "" }, "require": { - "php": ">=5.3.2" - }, - "replace": { - "cordoval/hamcrest-php": "*", - "davedevelopment/hamcrest-php": "*", - "kodova/hamcrest-php": "*" + "ext-filter": "^7.1", + "php": "^7.2", + "phpdocumentor/reflection-common": "^2.0", + "phpdocumentor/type-resolver": "^1.0", + "webmozart/assert": "^1" }, "require-dev": { - "phpunit/php-file-iterator": "1.3.3", - "satooshi/php-coveralls": "dev-master" + "doctrine/instantiator": "^1", + "mockery/mockery": "^1" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, "autoload": { - "classmap": [ - "hamcrest" - ], - "files": [ - "hamcrest/Hamcrest.php" - ] + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD" + "MIT" ], - "description": "This is the PHP port of Hamcrest Matchers", - "keywords": [ - "test" + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" + } ], - "time": "2015-05-11T14:41:42+00:00" + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "time": "2020-02-22T12:28:44+00:00" }, { - "name": "liip/functional-test-bundle", - "version": "1.10.0", + "name": "phpdocumentor/type-resolver", + "version": "1.1.0", "source": { "type": "git", - "url": "https://github.com/liip/LiipFunctionalTestBundle.git", - "reference": "cbfa26d5d2ccbf8fd5350c90a77c448f3a630ff8" + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "7462d5f123dfc080dfdf26897032a6513644fc95" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/liip/LiipFunctionalTestBundle/zipball/cbfa26d5d2ccbf8fd5350c90a77c448f3a630ff8", - "reference": "cbfa26d5d2ccbf8fd5350c90a77c448f3a630ff8", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/7462d5f123dfc080dfdf26897032a6513644fc95", + "reference": "7462d5f123dfc080dfdf26897032a6513644fc95", "shasum": "" }, "require": { - "doctrine/common": "~2.0", - "php": "^5.6|^7.0", - "symfony/browser-kit": "^2.7|^3.0", - "symfony/framework-bundle": "^2.7|^3.0" - }, - "conflict": { - "phpunit/phpunit": ">=7" + "php": "^7.2", + "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { - "brianium/paratest": "~0.12.0|~0.13.2", - "doctrine/data-fixtures": "1.2.2", - "doctrine/doctrine-fixtures-bundle": "~2.3", - "doctrine/orm": "~2.5", - "doctrine/phpcr-bundle": "~1.3", - "doctrine/phpcr-odm": "~1.3", - "hautelook/alice-bundle": "~0.2|~1.2", - "jackalope/jackalope-doctrine-dbal": "1.1.*|1.2.*", - "nelmio/alice": "~1.7|~2.0", - "phpunit/phpunit": "^4.8.35|^5.7|^6.1", - "symfony/assetic-bundle": "^2.7|^3.0", - "symfony/console": "^2.7|^3.0", - "symfony/monolog-bundle": "^2.7|^3.0", - "symfony/phpunit-bridge": "^2.7|^3.0", - "symfony/symfony": "^2.7.1|^3.3", - "twig/twig": "~1.12|~2.0" + "ext-tokenizer": "^7.2", + "mockery/mockery": "~1" }, - "suggest": { - "brianium/paratest": "Required when using paratest to parallelize tests", - "doctrine/dbal": "Required when using the fixture loading functionality with an ORM and SQLite", - "doctrine/doctrine-fixtures-bundle": "Required when using the fixture loading functionality", - "doctrine/orm": "Required when using the fixture loading functionality with an ORM and SQLite", - "hautelook/alice-bundle": "Required when using loadFixtureFiles functionality with custom providers", - "nelmio/alice": "Required when using loadFixtureFiles functionality" - }, - "type": "symfony-bundle", + "type": "library", "extra": { "branch-alias": { "dev-master": "1.x-dev" @@ -3911,7 +8753,7 @@ }, "autoload": { "psr-4": { - "Liip\\FunctionalTestBundle\\": "" + "phpDocumentor\\Reflection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -3920,51 +8762,47 @@ ], "authors": [ { - "name": "Liip AG", - "homepage": "http://www.liip.ch/" - }, - { - "name": "Community contributions", - "homepage": "https://github.com/liip/LiipFunctionalTestBundle/contributors" + "name": "Mike van Riel", + "email": "me@mikevanriel.com" } ], - "description": "This bundles provides additional functional test-cases for Symfony2 applications", - "keywords": [ - "Symfony2" - ], - "time": "2018-08-10T18:22:42+00:00" + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "time": "2020-02-18T18:59:58+00:00" }, { - "name": "mockery/mockery", - "version": "0.9.10", + "name": "phpmd/phpmd", + "version": "2.8.2", "source": { "type": "git", - "url": "https://github.com/mockery/mockery.git", - "reference": "4876fc0c7d9e5da49712554a35c94d84ed1e9ee5" + "url": "https://github.com/phpmd/phpmd.git", + "reference": "714629ed782537f638fe23c4346637659b779a77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/4876fc0c7d9e5da49712554a35c94d84ed1e9ee5", - "reference": "4876fc0c7d9e5da49712554a35c94d84ed1e9ee5", + "url": "https://api.github.com/repos/phpmd/phpmd/zipball/714629ed782537f638fe23c4346637659b779a77", + "reference": "714629ed782537f638fe23c4346637659b779a77", "shasum": "" }, "require": { - "hamcrest/hamcrest-php": "~1.1", - "lib-pcre": ">=7.0", - "php": ">=5.3.2" + "composer/xdebug-handler": "^1.0", + "ext-xml": "*", + "pdepend/pdepend": "^2.7.1", + "php": ">=5.3.9" }, "require-dev": { - "phpunit/phpunit": "~4.0" + "easy-doc/easy-doc": "0.0.0 || ^1.3.2", + "gregwar/rst": "^1.0", + "mikey179/vfsstream": "^1.6.4", + "phpunit/phpunit": "^4.8.36 || ^5.7.27", + "squizlabs/php_codesniffer": "^2.0" }, + "bin": [ + "src/bin/phpmd" + ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.9.x-dev" - } - }, "autoload": { "psr-0": { - "Mockery": "library/" + "PHPMD\\": "src/main/php" } }, "notification-url": "https://packagist.org/downloads/", @@ -3973,478 +8811,568 @@ ], "authors": [ { - "name": "Pádraic Brady", - "email": "padraic.brady@gmail.com", - "homepage": "http://blog.astrumfutura.com" + "name": "Manuel Pichler", + "email": "github@manuel-pichler.de", + "homepage": "https://github.com/manuelpichler", + "role": "Project Founder" }, { - "name": "Dave Marshall", - "email": "dave.marshall@atstsolutions.co.uk", - "homepage": "http://davedevelopment.co.uk" + "name": "Marc Würth", + "email": "ravage@bluewin.ch", + "homepage": "https://github.com/ravage84", + "role": "Project Maintainer" + }, + { + "name": "Other contributors", + "homepage": "https://github.com/phpmd/phpmd/graphs/contributors", + "role": "Contributors" } ], - "description": "Mockery is a simple yet flexible PHP mock object framework for use in unit testing with PHPUnit, PHPSpec or any other testing framework. Its core goal is to offer a test double framework with a succinct API capable of clearly defining all possible object operations and interactions using a human readable Domain Specific Language (DSL). Designed as a drop in alternative to PHPUnit's phpunit-mock-objects library, Mockery is easy to integrate with PHPUnit and can operate alongside phpunit-mock-objects without the World ending.", - "homepage": "http://github.com/padraic/mockery", + "description": "PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD.", + "homepage": "https://phpmd.org/", "keywords": [ - "BDD", - "TDD", - "library", - "mock", - "mock objects", - "mockery", - "stub", - "test", - "test double", - "testing" + "mess detection", + "mess detector", + "pdepend", + "phpmd", + "pmd" ], - "time": "2018-11-13T20:50:16+00:00" + "time": "2020-02-16T20:15:50+00:00" }, { - "name": "moontoast/math", - "version": "1.1.2", + "name": "phpseclib/bcmath_compat", + "version": "1.0.5", "source": { "type": "git", - "url": "https://github.com/ramsey/moontoast-math.git", - "reference": "c2792a25df5cad4ff3d760dd37078fc5b6fccc79" + "url": "https://github.com/phpseclib/bcmath_compat.git", + "reference": "89cbb63742a32730b7187773a60b6b12b9db4479" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/moontoast-math/zipball/c2792a25df5cad4ff3d760dd37078fc5b6fccc79", - "reference": "c2792a25df5cad4ff3d760dd37078fc5b6fccc79", + "url": "https://api.github.com/repos/phpseclib/bcmath_compat/zipball/89cbb63742a32730b7187773a60b6b12b9db4479", + "reference": "89cbb63742a32730b7187773a60b6b12b9db4479", "shasum": "" }, "require": { - "ext-bcmath": "*", - "php": ">=5.3.3" + "phpseclib/phpseclib": ">=2.0.19" + }, + "provide": { + "ext-bcmath": "7.3.5" }, "require-dev": { - "jakub-onderka/php-parallel-lint": "^0.9.0", - "phpunit/phpunit": "^4.7|>=5.0 <5.4", - "satooshi/php-coveralls": "^0.6.1", - "squizlabs/php_codesniffer": "^2.3" + "phpunit/phpunit": "^4.8.35|^5.7|^6.0", + "squizlabs/php_codesniffer": "^3.0" + }, + "suggest": { + "ext-gmp": "Will enable faster math operations" }, "type": "library", "autoload": { + "files": [ + "lib/bcmath.php" + ], "psr-4": { - "Moontoast\\Math\\": "src/Moontoast/Math/" + "bcmath_compat\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache-2.0" + "MIT" ], "authors": [ { - "name": "Ben Ramsey", - "email": "ben@benramsey.com", - "homepage": "https://benramsey.com" + "name": "Jim Wigginton", + "email": "terrafrost@php.net", + "homepage": "http://phpseclib.sourceforge.net" } ], - "description": "A mathematics library, providing functionality for large numbers", - "homepage": "https://github.com/ramsey/moontoast-math", + "description": "PHP 5.x/7.x polyfill for bcmath extension", "keywords": [ + "BigInteger", "bcmath", - "math" + "bigdecimal", + "math", + "polyfill" ], - "abandoned": "brick/math", - "time": "2017-02-16T16:54:46+00:00" + "time": "2020-04-26T16:34:33+00:00" }, { - "name": "myclabs/deep-copy", - "version": "1.7.0", + "name": "phpseclib/phpseclib", + "version": "2.0.27", "source": { "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e" + "url": "https://github.com/phpseclib/phpseclib.git", + "reference": "34620af4df7d1988d8f0d7e91f6c8a3bf931d8dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", - "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/34620af4df7d1988d8f0d7e91f6c8a3bf931d8dc", + "reference": "34620af4df7d1988d8f0d7e91f6c8a3bf931d8dc", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": ">=5.3.3" }, "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^4.1" + "phing/phing": "~2.7", + "phpunit/phpunit": "^4.8.35|^5.7|^6.0", + "sami/sami": "~2.0", + "squizlabs/php_codesniffer": "~2.0" + }, + "suggest": { + "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", + "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.", + "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.", + "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations." }, "type": "library", "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, "files": [ - "src/DeepCopy/deep_copy.php" - ] + "phpseclib/bootstrap.php" + ], + "psr-4": { + "phpseclib\\": "phpseclib/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "Create deep copies (clones) of your objects", + "authors": [ + { + "name": "Jim Wigginton", + "email": "terrafrost@php.net", + "role": "Lead Developer" + }, + { + "name": "Patrick Monnerat", + "email": "pm@datasphere.ch", + "role": "Developer" + }, + { + "name": "Andreas Fischer", + "email": "bantu@phpbb.com", + "role": "Developer" + }, + { + "name": "Hans-Jürgen Petrich", + "email": "petrich@tronic-media.com", + "role": "Developer" + }, + { + "name": "Graham Campbell", + "email": "graham@alt-three.com", + "role": "Developer" + } + ], + "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", + "homepage": "http://phpseclib.sourceforge.net", "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" + "BigInteger", + "aes", + "asn.1", + "asn1", + "blowfish", + "crypto", + "cryptography", + "encryption", + "rsa", + "security", + "sftp", + "signature", + "signing", + "ssh", + "twofish", + "x.509", + "x509" + ], + "funding": [ + { + "url": "https://github.com/terrafrost", + "type": "github" + }, + { + "url": "https://www.patreon.com/phpseclib", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpseclib/phpseclib", + "type": "tidelift" + } ], - "time": "2017-10-19T19:58:43+00:00" + "time": "2020-04-04T23:17:33+00:00" }, { - "name": "pdepend/pdepend", - "version": "2.5.2", + "name": "phpspec/prophecy", + "version": "v1.10.3", "source": { "type": "git", - "url": "https://github.com/pdepend/pdepend.git", - "reference": "9daf26d0368d4a12bed1cacae1a9f3a6f0adf239" + "url": "https://github.com/phpspec/prophecy.git", + "reference": "451c3cd1418cf640de218914901e51b064abb093" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pdepend/pdepend/zipball/9daf26d0368d4a12bed1cacae1a9f3a6f0adf239", - "reference": "9daf26d0368d4a12bed1cacae1a9f3a6f0adf239", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093", + "reference": "451c3cd1418cf640de218914901e51b064abb093", "shasum": "" }, "require": { - "php": ">=5.3.7", - "symfony/config": "^2.3.0|^3|^4", - "symfony/dependency-injection": "^2.3.0|^3|^4", - "symfony/filesystem": "^2.3.0|^3|^4" + "doctrine/instantiator": "^1.0.2", + "php": "^5.3|^7.0", + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", + "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0" }, "require-dev": { - "phpunit/phpunit": "^4.8|^5.7", - "squizlabs/php_codesniffer": "^2.0.0" + "phpspec/phpspec": "^2.5 || ^3.2", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" }, - "bin": [ - "src/bin/pdepend" - ], "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10.x-dev" + } + }, "autoload": { "psr-4": { - "PDepend\\": "src/main/php/PDepend" + "Prophecy\\": "src/Prophecy" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" ], - "description": "Official version of pdepend to be handled with Composer", - "time": "2017-12-13T13:21:38+00:00" + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" + ], + "time": "2020-03-05T15:02:03+00:00" }, { - "name": "phpdocumentor/reflection-common", - "version": "1.0.1", + "name": "phpunit/php-code-coverage", + "version": "7.0.10", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "f1884187926fbb755a9aaf0b3836ad3165b478bf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f1884187926fbb755a9aaf0b3836ad3165b478bf", + "reference": "f1884187926fbb755a9aaf0b3836ad3165b478bf", "shasum": "" }, "require": { - "php": ">=5.5" + "ext-dom": "*", + "ext-xmlwriter": "*", + "php": "^7.2", + "phpunit/php-file-iterator": "^2.0.2", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-token-stream": "^3.1.1", + "sebastian/code-unit-reverse-lookup": "^1.0.1", + "sebastian/environment": "^4.2.2", + "sebastian/version": "^2.0.1", + "theseer/tokenizer": "^1.1.3" }, "require-dev": { - "phpunit/phpunit": "^4.6" + "phpunit/phpunit": "^8.2.2" + }, + "suggest": { + "ext-xdebug": "^2.7.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "7.0-dev" } }, "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src" - ] - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" + "coverage", + "testing", + "xunit" ], - "time": "2017-09-11T18:02:19+00:00" + "time": "2019-11-20T13:55:58+00:00" }, { - "name": "phpdocumentor/reflection-docblock", - "version": "3.3.2", + "name": "phpunit/php-file-iterator", + "version": "2.0.2", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2" + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "050bedf145a257b1ff02746c31894800e5122946" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bf329f6c1aadea3299f08ee804682b7c45b326a2", - "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", + "reference": "050bedf145a257b1ff02746c31894800e5122946", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0", - "phpdocumentor/reflection-common": "^1.0.0", - "phpdocumentor/type-resolver": "^0.4.0", - "webmozart/assert": "^1.0" + "php": "^7.1" }, "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^4.4" + "phpunit/phpunit": "^7.1" }, "type": "library", - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" } }, + "autoload": { + "classmap": [ + "src/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2017-11-10T14:09:06+00:00" + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "time": "2018-09-13T20:33:42+00:00" }, { - "name": "phpdocumentor/type-resolver", - "version": "0.4.0", + "name": "phpunit/php-text-template", + "version": "1.2.1", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", "shasum": "" }, "require": { - "php": "^5.5 || ^7.0", - "phpdocumentor/reflection-common": "^1.0" - }, - "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^5.2||^4.8.24" + "php": ">=5.3.3" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "time": "2017-07-14T14:27:02+00:00" + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "time": "2015-06-21T13:50:34+00:00" }, { - "name": "phpmd/phpmd", - "version": "2.6.0", + "name": "phpunit/php-timer", + "version": "2.1.2", "source": { "type": "git", - "url": "https://github.com/phpmd/phpmd.git", - "reference": "4e9924b2c157a3eb64395460fcf56b31badc8374" + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "1038454804406b0b5f5f520358e78c1c2f71501e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpmd/phpmd/zipball/4e9924b2c157a3eb64395460fcf56b31badc8374", - "reference": "4e9924b2c157a3eb64395460fcf56b31badc8374", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e", + "reference": "1038454804406b0b5f5f520358e78c1c2f71501e", "shasum": "" }, "require": { - "ext-xml": "*", - "pdepend/pdepend": "^2.5", - "php": ">=5.3.9" + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "^4.0", - "squizlabs/php_codesniffer": "^2.0" + "phpunit/phpunit": "^7.0" }, - "bin": [ - "src/bin/phpmd" - ], - "type": "project", - "autoload": { - "psr-0": { - "PHPMD\\": "src/main/php" + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" } }, + "autoload": { + "classmap": [ + "src/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], "authors": [ { - "name": "Manuel Pichler", - "email": "github@manuel-pichler.de", - "homepage": "https://github.com/manuelpichler", - "role": "Project Founder" - }, - { - "name": "Other contributors", - "homepage": "https://github.com/phpmd/phpmd/graphs/contributors", - "role": "Contributors" - }, - { - "name": "Marc Würth", - "email": "ravage@bluewin.ch", - "homepage": "https://github.com/ravage84", - "role": "Project Maintainer" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD.", - "homepage": "http://phpmd.org/", + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", "keywords": [ - "mess detection", - "mess detector", - "pdepend", - "phpmd", - "pmd" + "timer" ], - "time": "2017-01-20T14:41:10+00:00" + "time": "2019-06-07T04:22:29+00:00" }, { - "name": "phpspec/prophecy", - "version": "1.8.0", + "name": "phpunit/php-token-stream", + "version": "3.1.1", "source": { "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06" + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06", - "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/995192df77f63a59e47f025390d2d1fdf8f425ff", + "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", - "sebastian/comparator": "^1.1|^2.0|^3.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" + "ext-tokenizer": "*", + "php": "^7.1" }, "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8.x-dev" + "dev-master": "3.1-dev" } }, "autoload": { - "psr-0": { - "Prophecy\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", + "description": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" + "tokenizer" ], - "time": "2018-08-05T17:53:17+00:00" + "time": "2019-09-17T06:23:10+00:00" }, { - "name": "phpunit/php-code-coverage", - "version": "4.0.8", + "name": "phpunit/phpunit", + "version": "8.5.6", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d" + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "3f9c4079d1407cd84c51c02c6ad1df6ec2ed1348" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef7b2f56815df854e66ceaee8ebe9393ae36a40d", - "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3f9c4079d1407cd84c51c02c6ad1df6ec2ed1348", + "reference": "3f9c4079d1407cd84c51c02c6ad1df6ec2ed1348", "shasum": "" }, "require": { + "doctrine/instantiator": "^1.2.0", "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", "ext-xmlwriter": "*", - "php": "^5.6 || ^7.0", - "phpunit/php-file-iterator": "^1.3", - "phpunit/php-text-template": "^1.2", - "phpunit/php-token-stream": "^1.4.2 || ^2.0", - "sebastian/code-unit-reverse-lookup": "^1.0", - "sebastian/environment": "^1.3.2 || ^2.0", - "sebastian/version": "^1.0 || ^2.0" + "myclabs/deep-copy": "^1.9.1", + "phar-io/manifest": "^1.0.3", + "phar-io/version": "^2.0.1", + "php": "^7.2", + "phpspec/prophecy": "^1.8.1", + "phpunit/php-code-coverage": "^7.0.7", + "phpunit/php-file-iterator": "^2.0.2", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-timer": "^2.1.2", + "sebastian/comparator": "^3.0.2", + "sebastian/diff": "^3.0.2", + "sebastian/environment": "^4.2.2", + "sebastian/exporter": "^3.1.1", + "sebastian/global-state": "^3.0.0", + "sebastian/object-enumerator": "^3.0.3", + "sebastian/resource-operations": "^2.0.1", + "sebastian/type": "^1.1.3", + "sebastian/version": "^2.0.1" }, "require-dev": { - "ext-xdebug": "^2.1.4", - "phpunit/phpunit": "^5.7" + "ext-pdo": "*" }, "suggest": { - "ext-xdebug": "^2.5.1" + "ext-soap": "*", + "ext-xdebug": "*", + "phpunit/php-invoker": "^2.0.0" }, + "bin": [ + "phpunit" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0.x-dev" + "dev-master": "8.5-dev" } }, "autoload": { @@ -4459,40 +9387,53 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", + "email": "sebastian@phpunit.de", "role": "lead" } ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", "keywords": [ - "coverage", + "phpunit", "testing", "xunit" ], - "time": "2017-04-02T07:44:40+00:00" + "funding": [ + { + "url": "https://phpunit.de/donate.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-06-15T10:45:47+00:00" }, { - "name": "phpunit/php-file-iterator", - "version": "1.4.5", + "name": "sebastian/code-unit-reverse-lookup", + "version": "1.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7 || ^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { @@ -4507,36 +9448,41 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" + "email": "sebastian@phpunit.de" } ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ], - "time": "2017-11-27T13:52:08+00:00" + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "time": "2017-03-04T06:30:41+00:00" }, { - "name": "phpunit/php-text-template", - "version": "1.2.1", + "name": "sebastian/comparator", + "version": "3.0.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", + "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.1", + "sebastian/diff": "^3.0", + "sebastian/exporter": "^3.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.1" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -4547,43 +9493,57 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "email": "sebastian@phpunit.de" } ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", "keywords": [ - "template" + "comparator", + "compare", + "equality" ], - "time": "2015-06-21T13:50:34+00:00" + "time": "2018-07-12T15:12:46+00:00" }, { - "name": "phpunit/php-timer", - "version": "1.0.9", + "name": "sebastian/diff", + "version": "3.0.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", - "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", + "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + "phpunit/phpunit": "^7.5 || ^8.0", + "symfony/process": "^2 || ^3.3 || ^4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -4596,44 +9556,52 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" + "email": "sebastian@phpunit.de" } ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", "keywords": [ - "timer" + "diff", + "udiff", + "unidiff", + "unified diff" ], - "time": "2017-02-26T11:10:40+00:00" + "time": "2019-02-04T06:01:07+00:00" }, { - "name": "phpunit/php-token-stream", - "version": "1.4.12", + "name": "sebastian/environment", + "version": "4.2.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16" + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16", - "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/464c90d7bdf5ad4e8a6aea15c091fec0603d4368", + "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": ">=5.3.3" + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "~4.2" + "phpunit/phpunit": "^7.5" + }, + "suggest": { + "ext-posix": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "4.2-dev" } }, "autoload": { @@ -4651,68 +9619,41 @@ "email": "sebastian@phpunit.de" } ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", "keywords": [ - "tokenizer" + "Xdebug", + "environment", + "hhvm" ], - "time": "2017-12-04T08:55:13+00:00" + "time": "2019-11-20T08:46:58+00:00" }, { - "name": "phpunit/phpunit", - "version": "5.7.27", + "name": "sebastian/exporter", + "version": "3.1.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c" + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c", - "reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e", + "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "myclabs/deep-copy": "~1.3", - "php": "^5.6 || ^7.0", - "phpspec/prophecy": "^1.6.2", - "phpunit/php-code-coverage": "^4.0.4", - "phpunit/php-file-iterator": "~1.4", - "phpunit/php-text-template": "~1.2", - "phpunit/php-timer": "^1.0.6", - "phpunit/phpunit-mock-objects": "^3.2", - "sebastian/comparator": "^1.2.4", - "sebastian/diff": "^1.4.3", - "sebastian/environment": "^1.3.4 || ^2.0", - "sebastian/exporter": "~2.0", - "sebastian/global-state": "^1.1", - "sebastian/object-enumerator": "~2.0", - "sebastian/resource-operations": "~1.0", - "sebastian/version": "^1.0.6|^2.0.1", - "symfony/yaml": "~2.1|~3.0|~4.0" - }, - "conflict": { - "phpdocumentor/reflection-docblock": "3.0.2" + "php": "^7.0", + "sebastian/recursion-context": "^3.0" }, "require-dev": { - "ext-pdo": "*" - }, - "suggest": { - "ext-xdebug": "*", - "phpunit/php-invoker": "~1.1" + "ext-mbstring": "*", + "phpunit/phpunit": "^6.0" }, - "bin": [ - "phpunit" - ], "type": "library", "extra": { "branch-alias": { - "dev-master": "5.7.x-dev" + "dev-master": "3.1.x-dev" } }, "autoload": { @@ -4727,53 +9668,55 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" } ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", "keywords": [ - "phpunit", - "testing", - "xunit" + "export", + "exporter" ], - "time": "2018-02-01T05:50:59+00:00" + "time": "2019-09-14T09:02:43+00:00" }, { - "name": "phpunit/phpunit-mock-objects", - "version": "3.4.4", + "name": "sebastian/finder-facade", + "version": "1.2.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "a23b761686d50a560cc56233b9ecf49597cc9118" + "url": "https://github.com/sebastianbergmann/finder-facade.git", + "reference": "167c45d131f7fc3d159f56f191a0a22228765e16" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/a23b761686d50a560cc56233b9ecf49597cc9118", - "reference": "a23b761686d50a560cc56233b9ecf49597cc9118", + "url": "https://api.github.com/repos/sebastianbergmann/finder-facade/zipball/167c45d131f7fc3d159f56f191a0a22228765e16", + "reference": "167c45d131f7fc3d159f56f191a0a22228765e16", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.6 || ^7.0", - "phpunit/php-text-template": "^1.2", - "sebastian/exporter": "^1.2 || ^2.0" - }, - "conflict": { - "phpunit/phpunit": "<5.4.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.4" - }, - "suggest": { - "ext-soap": "*" + "php": "^7.1", + "symfony/finder": "^2.3|^3.0|^4.0|^5.0", + "theseer/fdomdocument": "^1.6" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "3.2.x-dev" - } + "branch-alias": [] }, "autoload": { "classmap": [ @@ -4787,43 +9730,44 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", + "email": "sebastian@phpunit.de", "role": "lead" } ], - "description": "Mock Object library for PHPUnit", - "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", - "keywords": [ - "mock", - "xunit" - ], - "abandoned": true, - "time": "2017-06-30T09:13:00+00:00" + "description": "FinderFacade is a convenience wrapper for Symfony's Finder component.", + "homepage": "https://github.com/sebastianbergmann/finder-facade", + "time": "2020-01-16T08:08:45+00:00" }, { - "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.1", + "name": "sebastian/global-state", + "version": "3.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", + "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.2", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" }, "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" + "ext-dom": "*", + "phpunit/phpunit": "^8.0" + }, + "suggest": { + "ext-uopz": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -4841,36 +9785,39 @@ "email": "sebastian@phpunit.de" } ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2017-03-04T06:30:41+00:00" + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "time": "2019-02-01T05:30:01+00:00" }, { - "name": "sebastian/comparator", - "version": "1.2.4", + "name": "sebastian/object-enumerator", + "version": "3.0.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be" + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", - "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", "shasum": "" }, "require": { - "php": ">=5.3.3", - "sebastian/diff": "~1.2", - "sebastian/exporter": "~1.2 || ~2.0" + "php": "^7.0", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" }, "require-dev": { - "phpunit/phpunit": "~4.4" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { @@ -4883,56 +9830,39 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" } ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "http://www.github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "time": "2017-01-29T09:50:25+00:00" + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "time": "2017-08-03T12:35:26+00:00" }, { - "name": "sebastian/diff", - "version": "1.4.3", + "name": "sebastian/object-reflector", + "version": "1.1.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4" + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "773f97c67f28de00d397be301821b06708fca0be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4", - "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", + "reference": "773f97c67f28de00d397be301821b06708fca0be", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" + "php": "^7.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "1.1-dev" } }, "autoload": { @@ -4945,46 +9875,44 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" } ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff" - ], - "time": "2017-05-22T07:24:03+00:00" + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "time": "2017-03-29T09:07:27+00:00" }, { - "name": "sebastian/environment", - "version": "2.0.0", + "name": "sebastian/phpcpd", + "version": "4.1.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac" + "url": "https://github.com/sebastianbergmann/phpcpd.git", + "reference": "0d9afa762f2400de077b2192f4a9d127de0bb78e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac", - "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac", + "url": "https://api.github.com/repos/sebastianbergmann/phpcpd/zipball/0d9afa762f2400de077b2192f4a9d127de0bb78e", + "reference": "0d9afa762f2400de077b2192f4a9d127de0bb78e", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.0" + "ext-dom": "*", + "php": "^7.1", + "phpunit/php-timer": "^2.0", + "sebastian/finder-facade": "^1.1", + "sebastian/version": "^1.0|^2.0", + "symfony/console": "^2.7|^3.0|^4.0" }, + "bin": [ + "phpcpd" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -4999,44 +9927,38 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], - "time": "2016-11-26T07:53:53+00:00" + "description": "Copy/Paste Detector (CPD) for PHP code.", + "homepage": "https://github.com/sebastianbergmann/phpcpd", + "time": "2018-09-17T17:17:27+00:00" }, { - "name": "sebastian/exporter", - "version": "2.0.0", + "name": "sebastian/recursion-context", + "version": "3.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4" + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", - "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", "shasum": "" }, "require": { - "php": ">=5.3.3", - "sebastian/recursion-context": "~2.0" + "php": "^7.0" }, "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "~4.4" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { @@ -5053,14 +9975,6 @@ "name": "Jeff Welch", "email": "whatthejeff@gmail.com" }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" @@ -5070,33 +9984,33 @@ "email": "aharvey@php.net" } ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "time": "2016-11-19T08:54:04+00:00" + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "time": "2017-03-03T06:23:57+00:00" }, { - "name": "sebastian/finder-facade", - "version": "1.2.2", + "name": "sebastian/resource-operations", + "version": "2.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/finder-facade.git", - "reference": "4a3174709c2dc565fe5fb26fcf827f6a1fc7b09f" + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/finder-facade/zipball/4a3174709c2dc565fe5fb26fcf827f6a1fc7b09f", - "reference": "4a3174709c2dc565fe5fb26fcf827f6a1fc7b09f", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", + "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", "shasum": "" }, "require": { - "symfony/finder": "~2.3|~3.0|~4.0", - "theseer/fdomdocument": "~1.3" + "php": "^7.1" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -5109,41 +10023,37 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "email": "sebastian@phpunit.de" } ], - "description": "FinderFacade is a convenience wrapper for Symfony's Finder component.", - "homepage": "https://github.com/sebastianbergmann/finder-facade", - "time": "2017-11-18T17:31:49+00:00" + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "time": "2018-10-04T04:07:39+00:00" }, { - "name": "sebastian/global-state", - "version": "1.1.1", + "name": "sebastian/type", + "version": "1.1.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", - "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/3aaaa15fa71d27650d62a948be022fe3b48541a3", + "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.2" }, "require-dev": { - "phpunit/phpunit": "~4.2" - }, - "suggest": { - "ext-uopz": "*" + "phpunit/phpunit": "^8.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "1.1-dev" } }, "autoload": { @@ -5158,36 +10068,30 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "time": "2015-10-12T03:26:01+00:00" + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "time": "2019-07-02T08:10:15+00:00" }, { - "name": "sebastian/object-enumerator", + "name": "sebastian/version", "version": "2.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7" + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1311872ac850040a79c3c058bea3e22d0f09cbb7", - "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", "shasum": "" }, "require": { - "php": ">=5.6", - "sebastian/recursion-context": "~2.0" - }, - "require-dev": { - "phpunit/phpunit": "~5" + "php": ">=5.6" }, "type": "library", "extra": { @@ -5207,272 +10111,385 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-02-18T15:18:39+00:00" + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "time": "2016-10-03T07:35:21+00:00" }, { - "name": "sebastian/phpcpd", - "version": "2.0.4", + "name": "squizlabs/php_codesniffer", + "version": "3.5.5", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpcpd.git", - "reference": "24d9a880deadb0b8c9680e9cfe78e30b704225db" + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "73e2e7f57d958e7228fce50dc0c61f58f017f9f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpcpd/zipball/24d9a880deadb0b8c9680e9cfe78e30b704225db", - "reference": "24d9a880deadb0b8c9680e9cfe78e30b704225db", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/73e2e7f57d958e7228fce50dc0c61f58f017f9f6", + "reference": "73e2e7f57d958e7228fce50dc0c61f58f017f9f6", "shasum": "" }, "require": { - "php": ">=5.3.3", - "phpunit/php-timer": ">=1.0.6", - "sebastian/finder-facade": "~1.1", - "sebastian/version": "~1.0|~2.0", - "symfony/console": "~2.7|^3.0", - "theseer/fdomdocument": "~1.4" + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" }, "bin": [ - "phpcpd" + "bin/phpcs", + "bin/phpcbf" ], "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "3.x-dev" } }, - "autoload": { - "classmap": [ - "src/" - ] - }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", + "name": "Greg Sherwood", "role": "lead" } ], - "description": "Copy/Paste Detector (CPD) for PHP code.", - "homepage": "https://github.com/sebastianbergmann/phpcpd", - "time": "2016-04-17T19:32:49+00:00" + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards" + ], + "time": "2020-04-17T01:09:41+00:00" }, { - "name": "sebastian/recursion-context", - "version": "2.0.0", + "name": "symfony/browser-kit", + "version": "v4.4.10", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a" + "url": "https://github.com/symfony/browser-kit.git", + "reference": "f53310646af9901292488b2ff36e26ea10f545f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2c3ba150cbec723aa057506e73a8d33bdb286c9a", - "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/f53310646af9901292488b2ff36e26ea10f545f5", + "reference": "f53310646af9901292488b2ff36e26ea10f545f5", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1.3", + "symfony/dom-crawler": "^3.4|^4.0|^5.0" }, "require-dev": { - "phpunit/phpunit": "~4.4" + "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": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "4.4-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\BrowserKit\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony BrowserKit Component", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" }, { - "name": "Adam Harvey", - "email": "aharvey@php.net" + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2016-11-19T07:33:16+00:00" + "time": "2020-05-22T17:28:00+00:00" }, { - "name": "sebastian/resource-operations", - "version": "1.0.0", + "name": "symfony/dom-crawler", + "version": "v4.4.10", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "c18354d5a0bb84c945f6257c51b971d52f10c614" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/c18354d5a0bb84c945f6257c51b971d52f10c614", + "reference": "c18354d5a0bb84c945f6257c51b971d52f10c614", "shasum": "" }, "require": { - "php": ">=5.6.0" + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "masterminds/html5": "<2.6" + }, + "require-dev": { + "masterminds/html5": "^2.6", + "symfony/css-selector": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/css-selector": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "4.4-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\DomCrawler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2015-07-28T20:34:47+00:00" + "description": "Symfony DomCrawler Component", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-23T00:03:06+00:00" }, { - "name": "sebastian/version", - "version": "2.0.1", + "name": "symfony/dotenv", + "version": "v4.4.10", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + "url": "https://github.com/symfony/dotenv.git", + "reference": "24d734ab97c7fb8b4fa10c64ee0c344f2badfcf0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/24d734ab97c7fb8b4fa10c64ee0c344f2badfcf0", + "reference": "24d734ab97c7fb8b4fa10c64ee0c344f2badfcf0", "shasum": "" }, "require": { - "php": ">=5.6" + "php": "^7.1.3" + }, + "require-dev": { + "symfony/process": "^3.4.2|^4.0|^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "4.4-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\Dotenv\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "time": "2016-10-03T07:35:21+00:00" + "description": "Registers environment variables from a .env file", + "homepage": "https://symfony.com", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-26T09:42:42+00:00" }, { - "name": "squizlabs/php_codesniffer", - "version": "3.4.0", + "name": "symfony/maker-bundle", + "version": "v1.19.0", "source": { "type": "git", - "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "379deb987e26c7cd103a7b387aea178baec96e48" + "url": "https://github.com/symfony/maker-bundle.git", + "reference": "bea8c3c959e48a2c952cc7c4f4f32964be8b8874" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/379deb987e26c7cd103a7b387aea178baec96e48", - "reference": "379deb987e26c7cd103a7b387aea178baec96e48", + "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/bea8c3c959e48a2c952cc7c4f4f32964be8b8874", + "reference": "bea8c3c959e48a2c952cc7c4f4f32964be8b8874", "shasum": "" }, "require": { - "ext-simplexml": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": ">=5.4.0" + "doctrine/inflector": "^1.2", + "nikic/php-parser": "^4.0", + "php": "^7.1.3", + "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/filesystem": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/framework-bundle": "^3.4|^4.0|^5.0", + "symfony/http-kernel": "^3.4|^4.0|^5.0" }, "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + "doctrine/doctrine-bundle": "^1.8|^2.0", + "doctrine/orm": "^2.3", + "friendsofphp/php-cs-fixer": "^2.8", + "friendsoftwig/twigcs": "^3.1.2", + "symfony/http-client": "^4.3|^5.0", + "symfony/phpunit-bridge": "^4.3|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/security-core": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0" }, - "bin": [ - "bin/phpcs", - "bin/phpcbf" - ], - "type": "library", + "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "3.x-dev" + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\MakerBundle\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Greg Sherwood", - "role": "lead" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", - "homepage": "http://www.squizlabs.com/php-codesniffer", + "description": "Symfony Maker helps you create empty commands, controllers, form classes, tests and more so you can forget about writing boilerplate code.", + "homepage": "https://symfony.com/doc/current/bundles/SymfonyMakerBundle/index.html", "keywords": [ - "phpcs", - "standards" + "code generator", + "generator", + "scaffold", + "scaffolding" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } ], - "time": "2018-12-19T23:57:18+00:00" + "time": "2020-05-29T14:47:30+00:00" }, { "name": "symfony/phpunit-bridge", - "version": "v3.4.26", + "version": "v3.4.42", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "a43a2f6c465a2d99635fea0addbebddc3864ad97" + "reference": "ac355e1e9ebde4cf6ef5187f5cf4b43001f9a29f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/a43a2f6c465a2d99635fea0addbebddc3864ad97", - "reference": "a43a2f6c465a2d99635fea0addbebddc3864ad97", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/ac355e1e9ebde4cf6ef5187f5cf4b43001f9a29f", + "reference": "ac355e1e9ebde4cf6ef5187f5cf4b43001f9a29f", "shasum": "" }, "require": { "php": ">=5.3.3" }, "conflict": { - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0|<6.4,>=6.0|9.1.2" }, "suggest": { "symfony/debug": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" @@ -5517,7 +10534,21 @@ ], "description": "Symfony PHPUnit Bridge", "homepage": "https://symfony.com", - "time": "2019-04-16T09:03:16+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-06-04T15:36:03+00:00" }, { "name": "theseer/fdomdocument", @@ -5558,6 +10589,46 @@ "description": "The classes contained within this repository extend the standard DOM to use exceptions at all occasions of errors instead of PHP warnings or notices. They also add various custom methods and shortcuts for convenience and to simplify the usage of DOM.", "homepage": "https://github.com/theseer/fDOMDocument", "time": "2017-06-30T11:53:12+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9", + "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "time": "2019-06-13T22:48:21+00:00" } ], "aliases": [], @@ -5566,8 +10637,13 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "^5.6|^7.0", - "ext-gmp": "*" + "php": "^7.1", + "ext-gmp": "*", + "ext-json": "*" + }, + "platform-dev": [], + "platform-overrides": { + "php": "7.2" }, - "platform-dev": [] + "plugin-api-version": "1.1.0" } diff --git a/config/bootstrap.php b/config/bootstrap.php new file mode 100644 index 000000000..e53d600da --- /dev/null +++ b/config/bootstrap.php @@ -0,0 +1,25 @@ +=1.2) +//if (is_array($env = @include dirname(__DIR__).'/.env.local.php') && (!isset($env['APP_ENV']) || ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? $env['APP_ENV']) === $env['APP_ENV'])) { +// (new Dotenv(false))->populate($env); +//} else { +// // load all the .env files +// (new Dotenv(false))->loadEnv(dirname(__DIR__).'/.env'); +//} +// +$_SERVER += $_ENV; +$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? null) ?: 'dev'; +$_SERVER['APP_DEBUG'] = $_SERVER['APP_DEBUG'] ?? $_ENV['APP_DEBUG'] ?? 'prod' !== $_SERVER['APP_ENV']; +$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = (int) $_SERVER['APP_DEBUG'] || filter_var($_SERVER['APP_DEBUG'], FILTER_VALIDATE_BOOLEAN) ? '1' : '0'; diff --git a/config/bundles.php b/config/bundles.php new file mode 100644 index 000000000..a44cdd4f8 --- /dev/null +++ b/config/bundles.php @@ -0,0 +1,28 @@ + ['all' => true], + JMS\TranslationBundle\JMSTranslationBundle::class => ['all' => true], + Nelmio\SecurityBundle\NelmioSecurityBundle::class => ['all' => true], + OpenConext\MonitorBundle\OpenConextMonitorBundle::class => ['all' => true], + Surfnet\SamlBundle\SurfnetSamlBundle::class => ['all' => false], + Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class => ['all' => true], + Surfnet\StepupBundle\SurfnetStepupBundle::class => ['all' => true], + Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true], + Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true], + Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true], + Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle::class => ['all' => true], + Liip\TestFixturesBundle\LiipTestFixturesBundle::class => ['dev' => true, 'test' => true, 'smoketest' => true, 'smoketest_event_replay' => true], + Twig\Extra\TwigExtraBundle\TwigExtraBundle::class => ['all' => true], + Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true], + Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true], + Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true], + Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true], + Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true, 'smoketest' => true, 'smoketest_event_replay' => true], + Surfnet\StepupMiddleware\ApiBundle\SurfnetStepupMiddlewareApiBundle::class => ['all' => true], + Surfnet\StepupMiddleware\CommandHandlingBundle\SurfnetStepupMiddlewareCommandHandlingBundle::class => ['all' => true], + Surfnet\StepupMiddleware\GatewayBundle\SurfnetStepupMiddlewareGatewayBundle::class => ['all' => true], + Surfnet\StepupMiddleware\ManagementBundle\SurfnetStepupMiddlewareManagementBundle::class => ['all' => true], + Surfnet\StepupMiddleware\MiddlewareBundle\SurfnetStepupMiddlewareMiddlewareBundle::class => ['all' => true], + Doctrine\Bundle\DoctrineCacheBundle\DoctrineCacheBundle::class => ['all' => true], +]; diff --git a/config/legacy/bundles.yaml b/config/legacy/bundles.yaml new file mode 100644 index 000000000..5f01f27ed --- /dev/null +++ b/config/legacy/bundles.yaml @@ -0,0 +1,24 @@ +surfnet_stepup: + logging: + application_name: middleware + loa_definition: + loa1: "%stepup_loa_loa1%" + loa2: "%stepup_loa_loa2%" + loa3: "%stepup_loa_loa3%" + sms: + enabled: false + +surfnet_stepup_middleware_command_handling: + self_service_email_verification_url_template: "%self_service_email_verification_url_template%" + self_service_url: "%self_service_url%" + email_fallback_locale: "%default_locale%" + email_sender: + name: "%email_sender_name%" + email: "%email_sender_email%" + +surfnet_stepup_middleware_middleware: + email_verification_window: "%email_verification_window%" + enabled_generic_second_factors: "%enabled_generic_second_factors%" + +surfnet_stepup_middleware_management: + email_required_locale: "%default_locale%" \ No newline at end of file diff --git a/app/config/parameters.yml.dist b/config/legacy/parameters.yaml.dist similarity index 96% rename from app/config/parameters.yml.dist rename to config/legacy/parameters.yaml.dist index 32a610ee0..3fe631d91 100644 --- a/app/config/parameters.yml.dist +++ b/config/legacy/parameters.yaml.dist @@ -9,7 +9,7 @@ parameters: # The database server version is used in the dbal configuration and is required to prevent issues when the database # connection is booted. See https://github.com/doctrine/DoctrineBundle/issues/351 for more details on this. # Also see: https://symfony.com/doc/current/reference/configuration/doctrine.html#doctrine-dbal-configuration - database_server_version: 5.6 + database_server_version: mariadb-10.0.38 database_middleware_name: middleware database_middleware_user: middleware database_middleware_password: middleware @@ -21,8 +21,8 @@ parameters: mailer_transport: smtp mailer_host: 127.0.0.1 - mailer_user: ~ - mailer_password: ~ + mailer_user: '' + mailer_password: '' default_locale: en_GB locales: [nl_NL, en_GB] diff --git a/config/packages/cache.yaml b/config/packages/cache.yaml new file mode 100644 index 000000000..6899b7200 --- /dev/null +++ b/config/packages/cache.yaml @@ -0,0 +1,19 @@ +framework: + cache: + # Unique name of your app: used to compute stable namespaces for cache keys. + #prefix_seed: your_vendor_name/app_name + + # The "app" cache stores to the filesystem by default. + # The data in this cache should persist between deploys. + # Other options include: + + # Redis + #app: cache.adapter.redis + #default_redis_provider: redis://localhost + + # APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues) + #app: cache.adapter.apcu + + # Namespaced pools use the above "app" backend by default + #pools: + #my.dedicated.cache: null diff --git a/config/packages/dev/jms_translation.yaml b/config/packages/dev/jms_translation.yaml new file mode 100644 index 000000000..341c3c9f8 --- /dev/null +++ b/config/packages/dev/jms_translation.yaml @@ -0,0 +1,10 @@ +jms_translation: + locales: "%locales%" + configs: + default: + dirs: ["%kernel.root_dir%/../src", "%kernel.root_dir%"] + output_dir: "%kernel.root_dir%/Resources/translations" + ignored_domains: [] + excluded_names: ['*TestCase.php', '*Test.php'] + excluded_dirs: [cache, data, logs, Tests] + extractors: [] diff --git a/config/packages/dev/monolog.yaml b/config/packages/dev/monolog.yaml new file mode 100644 index 000000000..918208b8d --- /dev/null +++ b/config/packages/dev/monolog.yaml @@ -0,0 +1,19 @@ +monolog: + handlers: + prod-signaler: + type: fingers_crossed + action_level: ERROR + passthru_level: DEBUG # DEV setting: this means that all message of level DEBUG or higher are always logged + #passthru_level: NOTICE # PROD setting this means that all message of level NOTICE or higher are always logged + handler: main_syslog + bubble: true + main_syslog: + type: syslog + ident: stepup-middleware + facility: user + formatter: surfnet_stepup.monolog.json_formatter + main_logfile: + type: stream + handler: logfile + level: NOTICE + path: "%kernel.logs_dir%/%kernel.environment%.log" \ No newline at end of file diff --git a/config/packages/dev/nelmio_security.yaml b/config/packages/dev/nelmio_security.yaml new file mode 100644 index 000000000..79e60f1bb --- /dev/null +++ b/config/packages/dev/nelmio_security.yaml @@ -0,0 +1,4 @@ +nelmio_security: + csp: + report: + level1_fallback: true diff --git a/config/packages/dev/swiftmailer.yaml b/config/packages/dev/swiftmailer.yaml new file mode 100644 index 000000000..3ab8bd0ad --- /dev/null +++ b/config/packages/dev/swiftmailer.yaml @@ -0,0 +1,5 @@ +# See https://symfony.com/doc/current/email/dev_environment.html +swiftmailer: + # send all emails to a specific address + #delivery_addresses: ['me@example.com'] + port: 1025 \ No newline at end of file diff --git a/config/packages/dev/web_profiler.yaml b/config/packages/dev/web_profiler.yaml new file mode 100644 index 000000000..e92166a7f --- /dev/null +++ b/config/packages/dev/web_profiler.yaml @@ -0,0 +1,6 @@ +web_profiler: + toolbar: true + intercept_redirects: false + +framework: + profiler: { only_exceptions: false } diff --git a/config/packages/dev_event_replay/jms_translation.yaml b/config/packages/dev_event_replay/jms_translation.yaml new file mode 100644 index 000000000..341c3c9f8 --- /dev/null +++ b/config/packages/dev_event_replay/jms_translation.yaml @@ -0,0 +1,10 @@ +jms_translation: + locales: "%locales%" + configs: + default: + dirs: ["%kernel.root_dir%/../src", "%kernel.root_dir%"] + output_dir: "%kernel.root_dir%/Resources/translations" + ignored_domains: [] + excluded_names: ['*TestCase.php', '*Test.php'] + excluded_dirs: [cache, data, logs, Tests] + extractors: [] diff --git a/config/packages/dev_event_replay/monolog.yaml b/config/packages/dev_event_replay/monolog.yaml new file mode 100644 index 000000000..918208b8d --- /dev/null +++ b/config/packages/dev_event_replay/monolog.yaml @@ -0,0 +1,19 @@ +monolog: + handlers: + prod-signaler: + type: fingers_crossed + action_level: ERROR + passthru_level: DEBUG # DEV setting: this means that all message of level DEBUG or higher are always logged + #passthru_level: NOTICE # PROD setting this means that all message of level NOTICE or higher are always logged + handler: main_syslog + bubble: true + main_syslog: + type: syslog + ident: stepup-middleware + facility: user + formatter: surfnet_stepup.monolog.json_formatter + main_logfile: + type: stream + handler: logfile + level: NOTICE + path: "%kernel.logs_dir%/%kernel.environment%.log" \ No newline at end of file diff --git a/config/packages/dev_event_replay/nelmio_security.yaml b/config/packages/dev_event_replay/nelmio_security.yaml new file mode 100644 index 000000000..79e60f1bb --- /dev/null +++ b/config/packages/dev_event_replay/nelmio_security.yaml @@ -0,0 +1,4 @@ +nelmio_security: + csp: + report: + level1_fallback: true diff --git a/config/packages/dev_event_replay/swiftmailer.yaml b/config/packages/dev_event_replay/swiftmailer.yaml new file mode 100644 index 000000000..3ab8bd0ad --- /dev/null +++ b/config/packages/dev_event_replay/swiftmailer.yaml @@ -0,0 +1,5 @@ +# See https://symfony.com/doc/current/email/dev_environment.html +swiftmailer: + # send all emails to a specific address + #delivery_addresses: ['me@example.com'] + port: 1025 \ No newline at end of file diff --git a/config/packages/dev_event_replay/web_profiler.yaml b/config/packages/dev_event_replay/web_profiler.yaml new file mode 100644 index 000000000..e92166a7f --- /dev/null +++ b/config/packages/dev_event_replay/web_profiler.yaml @@ -0,0 +1,6 @@ +web_profiler: + toolbar: true + intercept_redirects: false + +framework: + profiler: { only_exceptions: false } diff --git a/config/packages/doctrine.yaml b/config/packages/doctrine.yaml new file mode 100644 index 000000000..1f509dce0 --- /dev/null +++ b/config/packages/doctrine.yaml @@ -0,0 +1,133 @@ + +# Doctrine Configuration +doctrine: + dbal: + default_connection: middleware + connections: + middleware: + driver: "%database_driver%" + host: "%database_host%" + port: "%database_port%" + dbname: "%database_middleware_name%" + user: "%database_middleware_user%" + password: "%database_middleware_password%" + server_version: "%database_server_version%" + charset: utf8 + gateway: + driver: "%database_driver%" + host: "%database_host%" + port: "%database_port%" + dbname: "%database_gateway_name%" + user: "%database_gateway_user%" + password: "%database_gateway_password%" + server_version: "%database_server_version%" + charset: utf8 + deploy: + driver: "%database_driver%" + host: "%database_host%" + port: "%database_port%" + dbname: "%database_middleware_name%" + user: "%database_deploy_user%" + password: "%database_deploy_password%" + server_version: "%database_server_version%" + charset: utf8 + types: + authority_role: + class: Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\AuthorityRoleType + commented: false + institution: + class: Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\InstitutionType + commented: false + stepup_contact_information: + class: Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\ContactInformationType + commented: false + stepup_common_name: + class: Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\CommonNameType + commented: false + stepup_datetime: + class: Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\DateTimeType + commented: false + stepup_document_number: + class: Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\DocumentNumberType + commented: false + stepup_email: + class: Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\EmailType + commented: false + stepup_name_id: + class: Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\NameIdType + commented: false + stepup_locale: + class: Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\LocaleType + commented: false + stepup_location: + class: Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\LocationType + commented: false + stepup_second_factor_status: + class: Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\SecondFactorStatusType + commented: false + stepup_ra_location_name: + class: Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\RaLocationNameType + commented: false + stepup_configuration_institution: + class: Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\ConfigurationInstitutionType + commented: false + stepup_configuration_contact_information: + class: Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\ConfigurationContactInformationType + commented: false + stepup_configuration_location: + class: Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\ConfigurationLocationType + commented: false + stepup_use_ra_locations_option: + class: Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\UseRaLocationsOptionType + commented: false + stepup_show_raa_contact_information_option: + class: Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\ShowRaaContactInformationOptionType + commented: false + stepup_second_factor_type: + class: Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\SecondFactorTypeType + commented: false + stepup_verify_email_option: + class: Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\VerifyEmailOptionType + commented: false + stepup_number_of_tokens_per_identity_option: + class: Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\NumberOfTokensPerIdentityType + commented: false + stepup_institution_role: + class: Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\InstitutionRoleType + commented: false + orm: + default_entity_manager: middleware + auto_generate_proxy_classes: "%kernel.debug%" + entity_managers: + middleware: + connection: middleware + naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware + mappings: + api_identity: + mapping: true + type: annotation + dir: "%kernel.root_dir%/../src/Surfnet/StepupMiddleware/ApiBundle/Identity" + prefix: Surfnet\StepupMiddleware\ApiBundle\Identity + is_bundle: false + api_configuration: + mapping: true + type: annotation + dir: "%kernel.root_dir%/../src/Surfnet/StepupMiddleware/ApiBundle/Configuration" + prefix: Surfnet\StepupMiddleware\ApiBundle\Configuration + is_bundle: false + management_configuration: + mapping: true + type: annotation + dir: "%kernel.root_dir%/../src/Surfnet/StepupMiddleware/ManagementBundle/Configuration" + prefix: Surfnet\StepupMiddleware\ManagementBundle\Configuration + is_bundle: false + gateway: + connection: gateway + naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware + mappings: + SurfnetStepupMiddlewareGatewayBundle: + mapping: true + type: annotation + is_bundle: true + deploy: + connection: deploy \ No newline at end of file diff --git a/config/packages/doctrine_migrations.yaml b/config/packages/doctrine_migrations.yaml new file mode 100644 index 000000000..0b117bf68 --- /dev/null +++ b/config/packages/doctrine_migrations.yaml @@ -0,0 +1,7 @@ +doctrine_migrations: + dir_name: '%kernel.project_dir%/src/Surfnet/Migrations' + # namespace is arbitrary but should be different from App\Migrations + # as migrations classes should NOT be autoloaded + namespace: Surfnet\Migrations + name: Step-up Middleware Migrations + table_name: migration_versions diff --git a/app/config/events.yml b/config/packages/events.yaml similarity index 100% rename from app/config/events.yml rename to config/packages/events.yaml diff --git a/config/packages/framework.yaml b/config/packages/framework.yaml new file mode 100644 index 000000000..a44c11c65 --- /dev/null +++ b/config/packages/framework.yaml @@ -0,0 +1,19 @@ +framework: + secret: '"%secret%"' + #csrf_protection: true + #http_method_override: true + + # Enables session support. Note that the session will ONLY be started if you read or write from it. + # Remove or comment this section to explicitly disable session support. + session: + handler_id: null + cookie_secure: auto + cookie_samesite: lax + + #esi: true + #fragments: true + php_errors: + log: true + + templating: + engines: ['twig'] \ No newline at end of file diff --git a/config/packages/mailer.yaml b/config/packages/mailer.yaml new file mode 100644 index 000000000..8fc27a546 --- /dev/null +++ b/config/packages/mailer.yaml @@ -0,0 +1,3 @@ +framework: + mailer: + dsn: "%mailer_transport%://%mailer_user%:%mailer_password%@%mailer_host%" diff --git a/config/packages/nelmio_security.yaml b/config/packages/nelmio_security.yaml new file mode 100644 index 000000000..1bd0cddf9 --- /dev/null +++ b/config/packages/nelmio_security.yaml @@ -0,0 +1,30 @@ +nelmio_security: + clickjacking: + paths: + '^/.*': DENY + # Content Security Policy + csp: + # Log to security channel + report_logger_service: monolog.logger.security + enforce: + report-uri: "%router.request_context.base_url%/csp/report" + default-src: + - 'none' + style-src: + - 'self' + script-src: + - 'self' + font-src: + - 'self' + connect-src: + - 'self' + block-all-mixed-content: true # defaults to false, blocks HTTP content over HTTPS transport + upgrade-insecure-requests: true # defaults to false, upgrades HTTP requests to HTTPS transport + + content_type: + nosniff: true + xss_protection: + enabled: true + mode_block: true + + diff --git a/config/packages/prod/deprecations.yaml b/config/packages/prod/deprecations.yaml new file mode 100644 index 000000000..920a06197 --- /dev/null +++ b/config/packages/prod/deprecations.yaml @@ -0,0 +1,8 @@ +# As of Symfony 5.1, deprecations are logged in the dedicated "deprecation" channel when it exists +#monolog: +# channels: [deprecation] +# handlers: +# deprecation: +# type: stream +# channels: [deprecation] +# path: "%kernel.logs_dir%/%kernel.environment%.deprecations.log" diff --git a/config/packages/prod/doctrine.yaml b/config/packages/prod/doctrine.yaml new file mode 100644 index 000000000..084f59a05 --- /dev/null +++ b/config/packages/prod/doctrine.yaml @@ -0,0 +1,20 @@ +doctrine: + orm: + auto_generate_proxy_classes: false + metadata_cache_driver: + type: pool + pool: doctrine.system_cache_pool + query_cache_driver: + type: pool + pool: doctrine.system_cache_pool + result_cache_driver: + type: pool + pool: doctrine.result_cache_pool + +framework: + cache: + pools: + doctrine.result_cache_pool: + adapter: cache.app + doctrine.system_cache_pool: + adapter: cache.system diff --git a/app/config/logging.yml b/config/packages/prod/monolog.yaml similarity index 100% rename from app/config/logging.yml rename to config/packages/prod/monolog.yaml diff --git a/config/packages/prod/routing.yaml b/config/packages/prod/routing.yaml new file mode 100644 index 000000000..b3e6a0af2 --- /dev/null +++ b/config/packages/prod/routing.yaml @@ -0,0 +1,3 @@ +framework: + router: + strict_requirements: null diff --git a/config/packages/prod_event_replay/deprecations.yaml b/config/packages/prod_event_replay/deprecations.yaml new file mode 100644 index 000000000..920a06197 --- /dev/null +++ b/config/packages/prod_event_replay/deprecations.yaml @@ -0,0 +1,8 @@ +# As of Symfony 5.1, deprecations are logged in the dedicated "deprecation" channel when it exists +#monolog: +# channels: [deprecation] +# handlers: +# deprecation: +# type: stream +# channels: [deprecation] +# path: "%kernel.logs_dir%/%kernel.environment%.deprecations.log" diff --git a/config/packages/prod_event_replay/doctrine.yaml b/config/packages/prod_event_replay/doctrine.yaml new file mode 100644 index 000000000..084f59a05 --- /dev/null +++ b/config/packages/prod_event_replay/doctrine.yaml @@ -0,0 +1,20 @@ +doctrine: + orm: + auto_generate_proxy_classes: false + metadata_cache_driver: + type: pool + pool: doctrine.system_cache_pool + query_cache_driver: + type: pool + pool: doctrine.system_cache_pool + result_cache_driver: + type: pool + pool: doctrine.result_cache_pool + +framework: + cache: + pools: + doctrine.result_cache_pool: + adapter: cache.app + doctrine.system_cache_pool: + adapter: cache.system diff --git a/config/packages/prod_event_replay/monolog.yaml b/config/packages/prod_event_replay/monolog.yaml new file mode 100644 index 000000000..7fcd08ebc --- /dev/null +++ b/config/packages/prod_event_replay/monolog.yaml @@ -0,0 +1,13 @@ +monolog: + handlers: + prod-signaler: + type: fingers_crossed + action_level: ERROR + passthru_level: NOTICE # this means that all message of level NOTICE or higher are always logged + handler: main_syslog + bubble: false # if we handle it, nothing else should + main_syslog: + type: syslog + ident: stepup-middleware + facility: user + formatter: surfnet_stepup.monolog.json_formatter diff --git a/config/packages/prod_event_replay/routing.yaml b/config/packages/prod_event_replay/routing.yaml new file mode 100644 index 000000000..b3e6a0af2 --- /dev/null +++ b/config/packages/prod_event_replay/routing.yaml @@ -0,0 +1,3 @@ +framework: + router: + strict_requirements: null diff --git a/config/packages/prod_event_replay/swiftmailer.yaml b/config/packages/prod_event_replay/swiftmailer.yaml new file mode 100644 index 000000000..f43807805 --- /dev/null +++ b/config/packages/prod_event_replay/swiftmailer.yaml @@ -0,0 +1,2 @@ +swiftmailer: + disable_delivery: true diff --git a/config/packages/routing.yaml b/config/packages/routing.yaml new file mode 100644 index 000000000..7e977620b --- /dev/null +++ b/config/packages/routing.yaml @@ -0,0 +1,3 @@ +framework: + router: + utf8: true diff --git a/app/config/security.yml b/config/packages/security.yaml similarity index 100% rename from app/config/security.yml rename to config/packages/security.yaml diff --git a/config/packages/security_checker.yaml b/config/packages/security_checker.yaml new file mode 100644 index 000000000..2e905f7fd --- /dev/null +++ b/config/packages/security_checker.yaml @@ -0,0 +1,8 @@ +services: + _defaults: + autowire: true + autoconfigure: true + + SensioLabs\Security\SecurityChecker: null + + SensioLabs\Security\Command\SecurityCheckerCommand: null diff --git a/config/packages/sensio_framework_extra.yaml b/config/packages/sensio_framework_extra.yaml new file mode 100644 index 000000000..1821ccc07 --- /dev/null +++ b/config/packages/sensio_framework_extra.yaml @@ -0,0 +1,3 @@ +sensio_framework_extra: + router: + annotations: false diff --git a/config/packages/services.yaml b/config/packages/services.yaml new file mode 100644 index 000000000..05a680115 --- /dev/null +++ b/config/packages/services.yaml @@ -0,0 +1,38 @@ +services: + twig.extension.stringloader: + class: Twig_Extension_StringLoader + tags: [{ name: twig.extension }] + twig.extension.sandbox: + class: Twig_Extension_Sandbox + arguments: [ "@twig.extension.sandbox.policy" ] + tags: [{ name: twig.extension }] + twig.extension.sandbox.policy: + class: Twig_Sandbox_SecurityPolicy + arguments: + - [ if, else, elseif, for ] # Allowed tags + - [ escape, localizeddate ] # Allowed filters + - # Allowed methods + Surfnet\Stepup\Identity\Value\CommonName: + - __toString + Surfnet\Stepup\Configuration\Value\ContactInformation: + - __toString + Surfnet\Stepup\Configuration\Value\Location: + - __toString + Surfnet\Stepup\Configuration\Value\RaLocationName: + - __toString + Surfnet\Stepup\DateTime\DateTime: + - __toString + Surfnet\StepupMiddleware\ApiBundle\Identity\Value\RegistrationAuthorityCredentials: + - getCommonName + - getLocation + - getContactInformation + Surfnet\Stepup\Identity\Value\Location: + - __toString + Surfnet\Stepup\Identity\Value\ContactInformation: + - __toString + - # Allowed properties + Surfnet\StepupMiddleware\ApiBundle\Configuration\Entity\RaLocation: + - name + - location + - contactInformation + - [] # Allowed functions \ No newline at end of file diff --git a/config/packages/smoketest/doctrine.yaml b/config/packages/smoketest/doctrine.yaml new file mode 100644 index 000000000..4dc1a1562 --- /dev/null +++ b/config/packages/smoketest/doctrine.yaml @@ -0,0 +1,10 @@ +doctrine: + dbal: + default_connection: middleware + connections: + middleware: + dbname: "%database_middleware_name%_test" + gateway: + dbname: "%database_gateway_name%_test" + deploy: + dbname: "%database_middleware_name%_test" diff --git a/config/packages/smoketest/framework.yaml b/config/packages/smoketest/framework.yaml new file mode 100644 index 000000000..6043b5629 --- /dev/null +++ b/config/packages/smoketest/framework.yaml @@ -0,0 +1,6 @@ +framework: + test: ~ + session: + storage_id: session.storage.mock_file + profiler: + collect: false diff --git a/config/packages/smoketest/jms_translation.yaml b/config/packages/smoketest/jms_translation.yaml new file mode 100644 index 000000000..341c3c9f8 --- /dev/null +++ b/config/packages/smoketest/jms_translation.yaml @@ -0,0 +1,10 @@ +jms_translation: + locales: "%locales%" + configs: + default: + dirs: ["%kernel.root_dir%/../src", "%kernel.root_dir%"] + output_dir: "%kernel.root_dir%/Resources/translations" + ignored_domains: [] + excluded_names: ['*TestCase.php', '*Test.php'] + excluded_dirs: [cache, data, logs, Tests] + extractors: [] diff --git a/config/packages/smoketest/monolog.yaml b/config/packages/smoketest/monolog.yaml new file mode 100644 index 000000000..918208b8d --- /dev/null +++ b/config/packages/smoketest/monolog.yaml @@ -0,0 +1,19 @@ +monolog: + handlers: + prod-signaler: + type: fingers_crossed + action_level: ERROR + passthru_level: DEBUG # DEV setting: this means that all message of level DEBUG or higher are always logged + #passthru_level: NOTICE # PROD setting this means that all message of level NOTICE or higher are always logged + handler: main_syslog + bubble: true + main_syslog: + type: syslog + ident: stepup-middleware + facility: user + formatter: surfnet_stepup.monolog.json_formatter + main_logfile: + type: stream + handler: logfile + level: NOTICE + path: "%kernel.logs_dir%/%kernel.environment%.log" \ No newline at end of file diff --git a/config/packages/smoketest/nelmio_security.yaml b/config/packages/smoketest/nelmio_security.yaml new file mode 100644 index 000000000..79e60f1bb --- /dev/null +++ b/config/packages/smoketest/nelmio_security.yaml @@ -0,0 +1,4 @@ +nelmio_security: + csp: + report: + level1_fallback: true diff --git a/config/packages/smoketest/security.yaml b/config/packages/smoketest/security.yaml new file mode 100644 index 000000000..41ff33c42 --- /dev/null +++ b/config/packages/smoketest/security.yaml @@ -0,0 +1,12 @@ +# In test, it makes sense we use a hard-coded password for the api users. This, to aid the behat tests in Stepup-Deploy. +security: + providers: + in_memory: + memory: + users: + management: + password: "secret" + ss: + password: "secret" + ra: + password: "secret" diff --git a/config/packages/smoketest/swiftmailer.yaml b/config/packages/smoketest/swiftmailer.yaml new file mode 100644 index 000000000..3ab8bd0ad --- /dev/null +++ b/config/packages/smoketest/swiftmailer.yaml @@ -0,0 +1,5 @@ +# See https://symfony.com/doc/current/email/dev_environment.html +swiftmailer: + # send all emails to a specific address + #delivery_addresses: ['me@example.com'] + port: 1025 \ No newline at end of file diff --git a/config/packages/smoketest/web_profiler.yaml b/config/packages/smoketest/web_profiler.yaml new file mode 100644 index 000000000..7bb98b985 --- /dev/null +++ b/config/packages/smoketest/web_profiler.yaml @@ -0,0 +1,6 @@ +web_profiler: + toolbar: false + intercept_redirects: false + +framework: + profiler: { only_exceptions: false } diff --git a/config/packages/smoketest_event_replay/doctrine.yaml b/config/packages/smoketest_event_replay/doctrine.yaml new file mode 100644 index 000000000..4dc1a1562 --- /dev/null +++ b/config/packages/smoketest_event_replay/doctrine.yaml @@ -0,0 +1,10 @@ +doctrine: + dbal: + default_connection: middleware + connections: + middleware: + dbname: "%database_middleware_name%_test" + gateway: + dbname: "%database_gateway_name%_test" + deploy: + dbname: "%database_middleware_name%_test" diff --git a/config/packages/smoketest_event_replay/framework.yaml b/config/packages/smoketest_event_replay/framework.yaml new file mode 100644 index 000000000..6043b5629 --- /dev/null +++ b/config/packages/smoketest_event_replay/framework.yaml @@ -0,0 +1,6 @@ +framework: + test: ~ + session: + storage_id: session.storage.mock_file + profiler: + collect: false diff --git a/config/packages/smoketest_event_replay/jms_translation.yaml b/config/packages/smoketest_event_replay/jms_translation.yaml new file mode 100644 index 000000000..341c3c9f8 --- /dev/null +++ b/config/packages/smoketest_event_replay/jms_translation.yaml @@ -0,0 +1,10 @@ +jms_translation: + locales: "%locales%" + configs: + default: + dirs: ["%kernel.root_dir%/../src", "%kernel.root_dir%"] + output_dir: "%kernel.root_dir%/Resources/translations" + ignored_domains: [] + excluded_names: ['*TestCase.php', '*Test.php'] + excluded_dirs: [cache, data, logs, Tests] + extractors: [] diff --git a/config/packages/smoketest_event_replay/monolog.yaml b/config/packages/smoketest_event_replay/monolog.yaml new file mode 100644 index 000000000..918208b8d --- /dev/null +++ b/config/packages/smoketest_event_replay/monolog.yaml @@ -0,0 +1,19 @@ +monolog: + handlers: + prod-signaler: + type: fingers_crossed + action_level: ERROR + passthru_level: DEBUG # DEV setting: this means that all message of level DEBUG or higher are always logged + #passthru_level: NOTICE # PROD setting this means that all message of level NOTICE or higher are always logged + handler: main_syslog + bubble: true + main_syslog: + type: syslog + ident: stepup-middleware + facility: user + formatter: surfnet_stepup.monolog.json_formatter + main_logfile: + type: stream + handler: logfile + level: NOTICE + path: "%kernel.logs_dir%/%kernel.environment%.log" \ No newline at end of file diff --git a/config/packages/smoketest_event_replay/nelmio_security.yaml b/config/packages/smoketest_event_replay/nelmio_security.yaml new file mode 100644 index 000000000..79e60f1bb --- /dev/null +++ b/config/packages/smoketest_event_replay/nelmio_security.yaml @@ -0,0 +1,4 @@ +nelmio_security: + csp: + report: + level1_fallback: true diff --git a/config/packages/smoketest_event_replay/security.yaml b/config/packages/smoketest_event_replay/security.yaml new file mode 100644 index 000000000..41ff33c42 --- /dev/null +++ b/config/packages/smoketest_event_replay/security.yaml @@ -0,0 +1,12 @@ +# In test, it makes sense we use a hard-coded password for the api users. This, to aid the behat tests in Stepup-Deploy. +security: + providers: + in_memory: + memory: + users: + management: + password: "secret" + ss: + password: "secret" + ra: + password: "secret" diff --git a/config/packages/smoketest_event_replay/swiftmailer.yaml b/config/packages/smoketest_event_replay/swiftmailer.yaml new file mode 100644 index 000000000..f43807805 --- /dev/null +++ b/config/packages/smoketest_event_replay/swiftmailer.yaml @@ -0,0 +1,2 @@ +swiftmailer: + disable_delivery: true diff --git a/config/packages/smoketest_event_replay/web_profiler.yaml b/config/packages/smoketest_event_replay/web_profiler.yaml new file mode 100644 index 000000000..7bb98b985 --- /dev/null +++ b/config/packages/smoketest_event_replay/web_profiler.yaml @@ -0,0 +1,6 @@ +web_profiler: + toolbar: false + intercept_redirects: false + +framework: + profiler: { only_exceptions: false } diff --git a/config/packages/swiftmailer.yaml b/config/packages/swiftmailer.yaml new file mode 100644 index 000000000..8cf94bbad --- /dev/null +++ b/config/packages/swiftmailer.yaml @@ -0,0 +1,6 @@ +swiftmailer: + transport: "%mailer_transport%" + host: "%mailer_host%" + username: "%mailer_user%" + password: "%mailer_password%" + spool: { type: memory } diff --git a/config/packages/test/doctrine.yaml b/config/packages/test/doctrine.yaml new file mode 100644 index 000000000..bd2fc69a4 --- /dev/null +++ b/config/packages/test/doctrine.yaml @@ -0,0 +1,13 @@ +doctrine: + dbal: + default_connection: middleware + connections: + middleware: + driver: pdo_sqlite + path: "/tmp/middleware.db" + gateway: + driver: pdo_sqlite + path: "/tmp/gateway.db" + deploy: + driver: pdo_sqlite + path: "/tmp/deploy.db" diff --git a/config/packages/test/framework.yaml b/config/packages/test/framework.yaml new file mode 100644 index 000000000..7b09be760 --- /dev/null +++ b/config/packages/test/framework.yaml @@ -0,0 +1,6 @@ +framework: + test: true + session: + storage_id: session.storage.mock_file + profiler: + collect: false diff --git a/config/packages/test/mailer.yaml b/config/packages/test/mailer.yaml new file mode 100644 index 000000000..d2a7eee01 --- /dev/null +++ b/config/packages/test/mailer.yaml @@ -0,0 +1,5 @@ +# See https://symfony.com/doc/current/email/dev_environment.html +swiftmailer: + # send all emails to a specific address + #delivery_addresses: ['me@example.com'] + port: 1025 \ No newline at end of file diff --git a/config/packages/test/monolog.yaml b/config/packages/test/monolog.yaml new file mode 100644 index 000000000..faf3440aa --- /dev/null +++ b/config/packages/test/monolog.yaml @@ -0,0 +1,12 @@ +monolog: + handlers: + # Handlers are merged in from config.yml and config_dev.yml. They cannot be disabled or removed. The practical + # solution is to assign them the `null` handler, which discards the records. + prod-signaler: + type: "null" + main_syslog: + type: "null" + main_logfile: + type: "null" + console: + type: "null" diff --git a/config/packages/test/swiftmailer.yaml b/config/packages/test/swiftmailer.yaml new file mode 100644 index 000000000..f43807805 --- /dev/null +++ b/config/packages/test/swiftmailer.yaml @@ -0,0 +1,2 @@ +swiftmailer: + disable_delivery: true diff --git a/config/packages/test/twig.yaml b/config/packages/test/twig.yaml new file mode 100644 index 000000000..8c6e0b401 --- /dev/null +++ b/config/packages/test/twig.yaml @@ -0,0 +1,2 @@ +twig: + strict_variables: true diff --git a/config/packages/test/validator.yaml b/config/packages/test/validator.yaml new file mode 100644 index 000000000..1e5ab7880 --- /dev/null +++ b/config/packages/test/validator.yaml @@ -0,0 +1,3 @@ +framework: + validation: + not_compromised_password: false diff --git a/config/packages/test/web_profiler.yaml b/config/packages/test/web_profiler.yaml new file mode 100644 index 000000000..03752de21 --- /dev/null +++ b/config/packages/test/web_profiler.yaml @@ -0,0 +1,6 @@ +web_profiler: + toolbar: false + intercept_redirects: false + +framework: + profiler: { collect: false } diff --git a/config/packages/translation.yaml b/config/packages/translation.yaml new file mode 100644 index 000000000..05a2b3d82 --- /dev/null +++ b/config/packages/translation.yaml @@ -0,0 +1,6 @@ +framework: + default_locale: en + translator: + default_path: '%kernel.project_dir%/translations' + fallbacks: + - en diff --git a/config/packages/twig.yaml b/config/packages/twig.yaml new file mode 100644 index 000000000..6403e6abe --- /dev/null +++ b/config/packages/twig.yaml @@ -0,0 +1,5 @@ +twig: + default_path: '%kernel.project_dir%/templates' + debug: '%kernel.debug%' + strict_variables: '%kernel.debug%' + exception_controller: null diff --git a/config/packages/twig_extensions.yaml b/config/packages/twig_extensions.yaml new file mode 100644 index 000000000..56e374059 --- /dev/null +++ b/config/packages/twig_extensions.yaml @@ -0,0 +1,11 @@ +services: + _defaults: + public: false + autowire: true + autoconfigure: true + + # Uncomment any lines below to activate that Twig extension + #Twig\Extensions\ArrayExtension: null + #Twig\Extensions\DateExtension: null + Twig\Extensions\IntlExtension: null + #Twig\Extensions\TextExtension: null diff --git a/config/packages/validator.yaml b/config/packages/validator.yaml new file mode 100644 index 000000000..350786a13 --- /dev/null +++ b/config/packages/validator.yaml @@ -0,0 +1,8 @@ +framework: + validation: + email_validation_mode: html5 + + # Enables validator auto-mapping support. + # For instance, basic validation constraints will be inferred from Doctrine's metadata. + #auto_mapping: + # App\Entity\: [] diff --git a/config/routes/annotations.yaml b/config/routes/annotations.yaml new file mode 100644 index 000000000..0686ce142 --- /dev/null +++ b/config/routes/annotations.yaml @@ -0,0 +1,7 @@ +#controllers: +# resource: ../../src/Controller/ +# type: annotation +# +#kernel: +# resource: ../../src/Kernel.php +# type: annotation diff --git a/config/routes/dev/framework.yaml b/config/routes/dev/framework.yaml new file mode 100644 index 000000000..bcbbf13d0 --- /dev/null +++ b/config/routes/dev/framework.yaml @@ -0,0 +1,3 @@ +_errors: + resource: '@FrameworkBundle/Resources/config/routing/errors.xml' + prefix: /_error diff --git a/app/config/routing_dev.yml b/config/routes/dev/routes.yml similarity index 90% rename from app/config/routing_dev.yml rename to config/routes/dev/routes.yml index 45038bd21..7e857e8f3 100644 --- a/app/config/routing_dev.yml +++ b/config/routes/dev/routes.yml @@ -6,9 +6,6 @@ _profiler: resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml" prefix: /_profiler -_main: - resource: routing.yml - JMSTranslationBundle_ui: resource: "@JMSTranslationBundle/Controller/" type: annotation diff --git a/config/routes/dev/web_profiler.yaml b/config/routes/dev/web_profiler.yaml new file mode 100644 index 000000000..c82beff2f --- /dev/null +++ b/config/routes/dev/web_profiler.yaml @@ -0,0 +1,7 @@ +web_profiler_wdt: + resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml' + prefix: /_wdt + +web_profiler_profiler: + resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml' + prefix: /_profiler diff --git a/app/config/routing.yml b/config/routes/routes.yml similarity index 70% rename from app/config/routing.yml rename to config/routes/routes.yml index 7b18a027a..976cdca00 100644 --- a/app/config/routing.yml +++ b/config/routes/routes.yml @@ -1,5 +1,5 @@ surfnet_stepup_middleware_management: - resource: "@SurfnetStepupMiddlewareManagementBundle/Resources/config/routing.yml" + resource: "Surfnet/StepupMiddleware/ManagementBundle/Resources/config/routing.yml" prefix: /management openconext_monitor: @@ -12,4 +12,4 @@ nelmio_security_report: methods: [POST] surfnet_stepup_middleware_api: - resource: "@SurfnetStepupMiddlewareApiBundle/Resources/config/routing.yml" + resource: "Surfnet/StepupMiddleware/ApiBundle/Resources/config/routing.yml" diff --git a/config/services.yaml b/config/services.yaml new file mode 100644 index 000000000..8c2287ec0 --- /dev/null +++ b/config/services.yaml @@ -0,0 +1,4 @@ +# import legacy parameters.yaml so this could later on be refactored to utilize dotenv support +imports: + - { resource: 'legacy/bundles.yaml' } + - { resource: 'legacy/parameters.yaml' } diff --git a/docs/personal-data.md b/docs/personal-data.md index b8b70a39b..020e46c65 100644 --- a/docs/personal-data.md +++ b/docs/personal-data.md @@ -13,7 +13,7 @@ As part of the effort to implement the [Right to be Forgotton](https://github.co The data in the `event_stream` and `event_steam_sensitive_data` is replicated in the projection tables. These tables reflect the current state of the system, whereas the event_stream can be used to reconstruct all previous states. When a user is deleted, the projections need to be updated as well. The current implementation uses the [IdentityForgottenEvent](../src/Surfnet/Stepup/Identity/Event/IdentityForgottenEvent.php) to accomplish this. Because no new information is added to the projection tables compared to what is stored in the event_stream, we do not further describe the data that the projections contain. Instead we describe the data that is stored in the events. -All the event types that can be present in the `event_steam` are defined in [events](../app/config/events.yml). Two different namespaces are used for Events: +All the event types that can be present in the `event_steam` are defined in [events](../config/packages/events.yaml). Two different namespaces are used for Events: - [Surfnet\\Stepup\\Configuration\\Event\\](../src/Surfnet/Stepup/Configuration/Event/) - [Surfnet\\Stepup\\Identity\\Event](../src/Surfnet/Stepup/Identity/Event/) diff --git a/phpcs.xml b/phpcs.xml index d194cb41c..0797fd159 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -10,6 +10,7 @@ src/*/Bundle/*Bundle/Resources src/*/Bundle/*Bundle/Tests */Tests/* + */Migrations/* diff --git a/phpcs.xml.dist b/phpcs.xml.dist new file mode 100644 index 000000000..dd2a8c673 --- /dev/null +++ b/phpcs.xml.dist @@ -0,0 +1,19 @@ + + + + + + + + + + + + bin/ + config/ + public/ + src/ + tests/ + + diff --git a/phpunit.xml.dist b/phpunit.xml.dist new file mode 100644 index 000000000..d34055ac4 --- /dev/null +++ b/phpunit.xml.dist @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + src + + + + + + src + + + + + + + diff --git a/web/apple-touch-icon.png b/public/apple-touch-icon.png similarity index 100% rename from web/apple-touch-icon.png rename to public/apple-touch-icon.png diff --git a/web/favicon.ico b/public/favicon.ico similarity index 100% rename from web/favicon.ico rename to public/favicon.ico diff --git a/public/index.php b/public/index.php new file mode 100644 index 000000000..0e3037012 --- /dev/null +++ b/public/index.php @@ -0,0 +1,27 @@ +handle($request); +$response->send(); +$kernel->terminate($request, $response); diff --git a/web/robots.txt b/public/robots.txt similarity index 100% rename from web/robots.txt rename to public/robots.txt diff --git a/src/Kernel.php b/src/Kernel.php new file mode 100644 index 000000000..1cd05726a --- /dev/null +++ b/src/Kernel.php @@ -0,0 +1,54 @@ +getProjectDir().'/config/bundles.php'; + foreach ($contents as $class => $envs) { + if ($envs[$this->environment] ?? $envs['all'] ?? false) { + yield new $class(); + } + } + } + + public function getProjectDir(): string + { + return \dirname(__DIR__); + } + + protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void + { + $container->addResource(new FileResource($this->getProjectDir().'/config/bundles.php')); + $container->setParameter('container.dumper.inline_class_loader', \PHP_VERSION_ID < 70400 || $this->debug); + $container->setParameter('container.dumper.inline_factories', true); + $confDir = $this->getProjectDir().'/config'; + + $loader->load($confDir.'/{packages}/*'.self::CONFIG_EXTS, 'glob'); + $loader->load($confDir.'/{packages}/'.$this->environment.'/*'.self::CONFIG_EXTS, 'glob'); + $loader->load($confDir.'/{services}'.self::CONFIG_EXTS, 'glob'); + $loader->load($confDir.'/{services}_'.$this->environment.self::CONFIG_EXTS, 'glob'); + } + + protected function configureRoutes(RouteCollectionBuilder $routes): void + { + $confDir = $this->getProjectDir().'/config'; + + $routes->import($confDir.'/{routes}/'.$this->environment.'/*'.self::CONFIG_EXTS, '/', 'glob'); + $routes->import($confDir.'/{routes}/*'.self::CONFIG_EXTS, '/', 'glob'); + $routes->import($confDir.'/{routes}'.self::CONFIG_EXTS, '/', 'glob'); + } +} diff --git a/src/Surfnet/DataFixtures/AppFixtures.php b/src/Surfnet/DataFixtures/AppFixtures.php new file mode 100644 index 000000000..7df73384d --- /dev/null +++ b/src/Surfnet/DataFixtures/AppFixtures.php @@ -0,0 +1,14 @@ +flush(); + } +} diff --git a/app/cache/.gitkeep b/src/Surfnet/Migrations/.gitignore similarity index 100% rename from app/cache/.gitkeep rename to src/Surfnet/Migrations/.gitignore diff --git a/app/DoctrineMigrations/Version20141031133057.php b/src/Surfnet/Migrations/Version20141031133057.php similarity index 85% rename from app/DoctrineMigrations/Version20141031133057.php rename to src/Surfnet/Migrations/Version20141031133057.php index 536548b42..8fecc0274 100644 --- a/app/DoctrineMigrations/Version20141031133057.php +++ b/src/Surfnet/Migrations/Version20141031133057.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -30,7 +30,7 @@ public function up(Schema $schema) $this->addSql($sql); } - public function down(Schema $schema) + public function down(Schema $schema): void { $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20141031144721.php b/src/Surfnet/Migrations/Version20141031144721.php similarity index 83% rename from app/DoctrineMigrations/Version20141031144721.php rename to src/Surfnet/Migrations/Version20141031144721.php index bbff0c939..16edeba26 100644 --- a/app/DoctrineMigrations/Version20141031144721.php +++ b/src/Surfnet/Migrations/Version20141031144721.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -18,7 +18,7 @@ public function up(Schema $schema) $this->addSql('CREATE TABLE identity (name_id VARCHAR(255) NOT NULL, PRIMARY KEY(name_id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20141031163549.php b/src/Surfnet/Migrations/Version20141031163549.php similarity index 85% rename from app/DoctrineMigrations/Version20141031163549.php rename to src/Surfnet/Migrations/Version20141031163549.php index c2be6082c..a14bf1fa5 100644 --- a/app/DoctrineMigrations/Version20141031163549.php +++ b/src/Surfnet/Migrations/Version20141031163549.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -20,7 +20,7 @@ public function up(Schema $schema) $this->addSql('ALTER TABLE identity ADD PRIMARY KEY (id)'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20141031164140.php b/src/Surfnet/Migrations/Version20141031164140.php similarity index 88% rename from app/DoctrineMigrations/Version20141031164140.php rename to src/Surfnet/Migrations/Version20141031164140.php index 7b68cc5a3..b6309a7b5 100644 --- a/app/DoctrineMigrations/Version20141031164140.php +++ b/src/Surfnet/Migrations/Version20141031164140.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -21,7 +21,7 @@ public function up(Schema $schema) $this->addSql("ALTER TABLE event_stream ADD UNIQUE INDEX unique_uuid_playhead (uuid, playhead)"); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20141112093720.php b/src/Surfnet/Migrations/Version20141112093720.php similarity index 86% rename from app/DoctrineMigrations/Version20141112093720.php rename to src/Surfnet/Migrations/Version20141112093720.php index 49f0d8b9b..086076a35 100644 --- a/app/DoctrineMigrations/Version20141112093720.php +++ b/src/Surfnet/Migrations/Version20141112093720.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -19,7 +19,7 @@ public function up(Schema $schema) $this->addSql('ALTER TABLE second_factor ADD CONSTRAINT FK_1806C29EFF3ED4A8 FOREIGN KEY (identity_id) REFERENCES identity (id)'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20141112094457.php b/src/Surfnet/Migrations/Version20141112094457.php similarity index 88% rename from app/DoctrineMigrations/Version20141112094457.php rename to src/Surfnet/Migrations/Version20141112094457.php index 374515a61..6b0a081df 100644 --- a/app/DoctrineMigrations/Version20141112094457.php +++ b/src/Surfnet/Migrations/Version20141112094457.php @@ -1,8 +1,8 @@ abortIf( @@ -26,7 +26,7 @@ public function up(Schema $schema) ); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf( diff --git a/app/DoctrineMigrations/Version20141114095245.php b/src/Surfnet/Migrations/Version20141114095245.php similarity index 87% rename from app/DoctrineMigrations/Version20141114095245.php rename to src/Surfnet/Migrations/Version20141114095245.php index bd69d7264..d62409999 100644 --- a/app/DoctrineMigrations/Version20141114095245.php +++ b/src/Surfnet/Migrations/Version20141114095245.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -19,7 +19,7 @@ public function up(Schema $schema) $this->addSql('ALTER TABLE unverified_second_factor ADD CONSTRAINT FK_D79226A2FF3ED4A8 FOREIGN KEY (identity_id) REFERENCES identity (id)'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20141117230116.php b/src/Surfnet/Migrations/Version20141117230116.php similarity index 86% rename from app/DoctrineMigrations/Version20141117230116.php rename to src/Surfnet/Migrations/Version20141117230116.php index e4a07f864..3407915ad 100644 --- a/app/DoctrineMigrations/Version20141117230116.php +++ b/src/Surfnet/Migrations/Version20141117230116.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -20,7 +20,7 @@ public function up(Schema $schema) $this->addSql('CREATE FULLTEXT INDEX idxft_identity_email ON identity (email)'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20141118114026.php b/src/Surfnet/Migrations/Version20141118114026.php similarity index 85% rename from app/DoctrineMigrations/Version20141118114026.php rename to src/Surfnet/Migrations/Version20141118114026.php index 29faaa67c..aaca16129 100644 --- a/app/DoctrineMigrations/Version20141118114026.php +++ b/src/Surfnet/Migrations/Version20141118114026.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -19,7 +19,7 @@ public function up(Schema $schema) $this->addSql('CREATE FULLTEXT INDEX idxft_identity_commonname ON identity (common_name)'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20141119093423.php b/src/Surfnet/Migrations/Version20141119093423.php similarity index 84% rename from app/DoctrineMigrations/Version20141119093423.php rename to src/Surfnet/Migrations/Version20141119093423.php index 4fa45312f..d20eb3c7e 100644 --- a/app/DoctrineMigrations/Version20141119093423.php +++ b/src/Surfnet/Migrations/Version20141119093423.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -18,7 +18,7 @@ public function up(Schema $schema) $this->addSql('ALTER TABLE unverified_second_factor ADD verification_code_nonce VARCHAR(64) NOT NULL, ADD email_verified TINYINT(1) NOT NULL'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20141119113444.php b/src/Surfnet/Migrations/Version20141119113444.php similarity index 84% rename from app/DoctrineMigrations/Version20141119113444.php rename to src/Surfnet/Migrations/Version20141119113444.php index 4809fdff4..1e445ca3f 100644 --- a/app/DoctrineMigrations/Version20141119113444.php +++ b/src/Surfnet/Migrations/Version20141119113444.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -18,7 +18,7 @@ public function up(Schema $schema) $this->addSql('ALTER TABLE unverified_second_factor CHANGE verification_code_nonce email_verification_code_nonce VARCHAR(64) NOT NULL'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20141119113553.php b/src/Surfnet/Migrations/Version20141119113553.php similarity index 84% rename from app/DoctrineMigrations/Version20141119113553.php rename to src/Surfnet/Migrations/Version20141119113553.php index 507bb105c..3cbcc192f 100644 --- a/app/DoctrineMigrations/Version20141119113553.php +++ b/src/Surfnet/Migrations/Version20141119113553.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -18,7 +18,7 @@ public function up(Schema $schema) $this->addSql('ALTER TABLE unverified_second_factor CHANGE email_verification_code_nonce email_verification_code_nonce VARCHAR(64) DEFAULT NULL'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20141120150430.php b/src/Surfnet/Migrations/Version20141120150430.php similarity index 84% rename from app/DoctrineMigrations/Version20141120150430.php rename to src/Surfnet/Migrations/Version20141120150430.php index 139d58294..b14d9c800 100644 --- a/app/DoctrineMigrations/Version20141120150430.php +++ b/src/Surfnet/Migrations/Version20141120150430.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -18,7 +18,7 @@ public function up(Schema $schema) $this->addSql('ALTER TABLE unverified_second_factor CHANGE email_verification_code_nonce email_verification_nonce VARCHAR(64) DEFAULT NULL'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20141120152310.php b/src/Surfnet/Migrations/Version20141120152310.php similarity index 83% rename from app/DoctrineMigrations/Version20141120152310.php rename to src/Surfnet/Migrations/Version20141120152310.php index c69484bc0..322f2d0fa 100644 --- a/app/DoctrineMigrations/Version20141120152310.php +++ b/src/Surfnet/Migrations/Version20141120152310.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -18,7 +18,7 @@ public function up(Schema $schema) $this->addSql('ALTER TABLE unverified_second_factor DROP email_verification_nonce'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20141125154133.php b/src/Surfnet/Migrations/Version20141125154133.php similarity index 83% rename from app/DoctrineMigrations/Version20141125154133.php rename to src/Surfnet/Migrations/Version20141125154133.php index 0bfef6995..d4f9b2944 100644 --- a/app/DoctrineMigrations/Version20141125154133.php +++ b/src/Surfnet/Migrations/Version20141125154133.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -18,7 +18,7 @@ public function up(Schema $schema) $this->addSql('ALTER TABLE unverified_second_factor ADD email_verification_nonce VARCHAR(32) NOT NULL'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20141125154214.php b/src/Surfnet/Migrations/Version20141125154214.php similarity index 83% rename from app/DoctrineMigrations/Version20141125154214.php rename to src/Surfnet/Migrations/Version20141125154214.php index 7ce3e4771..399e2b0fb 100644 --- a/app/DoctrineMigrations/Version20141125154214.php +++ b/src/Surfnet/Migrations/Version20141125154214.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -18,7 +18,7 @@ public function up(Schema $schema) $this->addSql('ALTER TABLE identity CHANGE institution institution VARCHAR(255) NOT NULL'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20141125155001.php b/src/Surfnet/Migrations/Version20141125155001.php similarity index 82% rename from app/DoctrineMigrations/Version20141125155001.php rename to src/Surfnet/Migrations/Version20141125155001.php index c95ab0d53..e29a5e1e1 100644 --- a/app/DoctrineMigrations/Version20141125155001.php +++ b/src/Surfnet/Migrations/Version20141125155001.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -18,7 +18,7 @@ public function up(Schema $schema) $this->addSql('ALTER TABLE unverified_second_factor DROP email_verified'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20141125173004.php b/src/Surfnet/Migrations/Version20141125173004.php similarity index 93% rename from app/DoctrineMigrations/Version20141125173004.php rename to src/Surfnet/Migrations/Version20141125173004.php index addeff514..0026a52ec 100644 --- a/app/DoctrineMigrations/Version20141125173004.php +++ b/src/Surfnet/Migrations/Version20141125173004.php @@ -16,9 +16,9 @@ * limitations under the License. */ -namespace Surfnet\StepupMiddleware\Migrations; +namespace Surfnet\Migrations; -use Doctrine\DBAL\Migrations\AbstractMigration; +use Doctrine\Migrations\AbstractMigration; use Doctrine\DBAL\Schema\Schema; use Symfony\Component\DependencyInjection\ContainerAwareInterface; use Symfony\Component\DependencyInjection\ContainerInterface; @@ -38,7 +38,7 @@ public function setContainer(ContainerInterface $container = null) $this->container = $container; } - public function up(Schema $schema) + public function up(Schema $schema): void { $gatewaySchema = $this->getGatewaySchema(); $middlewareUser = $this->getMiddlewareUser(); @@ -50,7 +50,7 @@ public function up(Schema $schema) $this->addSql(sprintf("GRANT DELETE,INSERT,SELECT,UPDATE ON %s.saml_entity TO %s", $gatewaySchema, $middlewareUser)); } - public function down(Schema $schema) + public function down(Schema $schema): void { $gatewaySchema = $this->getGatewaySchema(); $middlewareUser = $this->getMiddlewareUser(); diff --git a/app/DoctrineMigrations/Version20141128143908.php b/src/Surfnet/Migrations/Version20141128143908.php similarity index 89% rename from app/DoctrineMigrations/Version20141128143908.php rename to src/Surfnet/Migrations/Version20141128143908.php index e7d428c0d..0c59c46f9 100644 --- a/app/DoctrineMigrations/Version20141128143908.php +++ b/src/Surfnet/Migrations/Version20141128143908.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -20,7 +20,7 @@ public function up(Schema $schema) $this->addSql('ALTER TABLE unverified_second_factor DROP email_verification_nonce'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20141128143946.php b/src/Surfnet/Migrations/Version20141128143946.php similarity index 83% rename from app/DoctrineMigrations/Version20141128143946.php rename to src/Surfnet/Migrations/Version20141128143946.php index d6bce1c8c..abfc0f4b2 100644 --- a/app/DoctrineMigrations/Version20141128143946.php +++ b/src/Surfnet/Migrations/Version20141128143946.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -18,7 +18,7 @@ public function up(Schema $schema) $this->addSql('ALTER TABLE identity CHANGE institution institution VARCHAR(255) NOT NULL'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20141202121811.php b/src/Surfnet/Migrations/Version20141202121811.php similarity index 87% rename from app/DoctrineMigrations/Version20141202121811.php rename to src/Surfnet/Migrations/Version20141202121811.php index e7c66e36c..deb04e016 100644 --- a/app/DoctrineMigrations/Version20141202121811.php +++ b/src/Surfnet/Migrations/Version20141202121811.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -18,7 +18,7 @@ public function up(Schema $schema) $this->addSql('DROP TABLE second_factor'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20141204140639.php b/src/Surfnet/Migrations/Version20141204140639.php similarity index 82% rename from app/DoctrineMigrations/Version20141204140639.php rename to src/Surfnet/Migrations/Version20141204140639.php index 305d2a717..69082e89b 100644 --- a/app/DoctrineMigrations/Version20141204140639.php +++ b/src/Surfnet/Migrations/Version20141204140639.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -18,7 +18,7 @@ public function up(Schema $schema) $this->addSql('ALTER TABLE verified_second_factor ADD registration_code VARCHAR(8) NOT NULL'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20141205112641.php b/src/Surfnet/Migrations/Version20141205112641.php similarity index 86% rename from app/DoctrineMigrations/Version20141205112641.php rename to src/Surfnet/Migrations/Version20141205112641.php index a6544e72c..bb879c9e3 100644 --- a/app/DoctrineMigrations/Version20141205112641.php +++ b/src/Surfnet/Migrations/Version20141205112641.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -18,7 +18,7 @@ public function up(Schema $schema) $this->addSql('CREATE TABLE raa (id INT AUTO_INCREMENT NOT NULL, institution VARCHAR(150) NOT NULL, name_id VARCHAR(150) NOT NULL, location LONGTEXT DEFAULT NULL, contact_information LONGTEXT DEFAULT NULL, INDEX idx_raa_institution (institution), INDEX idx_raa_institution_nameid (institution, name_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20141208121040.php b/src/Surfnet/Migrations/Version20141208121040.php similarity index 82% rename from app/DoctrineMigrations/Version20141208121040.php rename to src/Surfnet/Migrations/Version20141208121040.php index 58d22ecd5..90fbc1363 100644 --- a/app/DoctrineMigrations/Version20141208121040.php +++ b/src/Surfnet/Migrations/Version20141208121040.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -18,7 +18,7 @@ public function up(Schema $schema) $this->addSql('CREATE TABLE sraa (name_id VARCHAR(200) NOT NULL, PRIMARY KEY(name_id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20141208162045.php b/src/Surfnet/Migrations/Version20141208162045.php similarity index 87% rename from app/DoctrineMigrations/Version20141208162045.php rename to src/Surfnet/Migrations/Version20141208162045.php index 238c7f3ad..965523040 100644 --- a/app/DoctrineMigrations/Version20141208162045.php +++ b/src/Surfnet/Migrations/Version20141208162045.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -19,7 +19,7 @@ public function up(Schema $schema) $this->addSql('ALTER TABLE vetted_second_factor ADD CONSTRAINT FK_29F96B72FF3ED4A8 FOREIGN KEY (identity_id) REFERENCES identity (id)'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20141208172438.php b/src/Surfnet/Migrations/Version20141208172438.php similarity index 86% rename from app/DoctrineMigrations/Version20141208172438.php rename to src/Surfnet/Migrations/Version20141208172438.php index 6cd1745c1..3df379086 100644 --- a/app/DoctrineMigrations/Version20141208172438.php +++ b/src/Surfnet/Migrations/Version20141208172438.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -18,7 +18,7 @@ public function up(Schema $schema) $this->addSql('CREATE TABLE ra (id INT AUTO_INCREMENT NOT NULL, institution VARCHAR(150) NOT NULL, name_id VARCHAR(150) NOT NULL, location LONGTEXT DEFAULT NULL, contact_information LONGTEXT DEFAULT NULL, INDEX idx_ra_institution (institution), INDEX idx_ra_institution_nameid (institution, name_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20141209150426.php b/src/Surfnet/Migrations/Version20141209150426.php similarity index 92% rename from app/DoctrineMigrations/Version20141209150426.php rename to src/Surfnet/Migrations/Version20141209150426.php index ab5e581b6..241b96afc 100644 --- a/app/DoctrineMigrations/Version20141209150426.php +++ b/src/Surfnet/Migrations/Version20141209150426.php @@ -1,8 +1,8 @@ container = $container; } - public function up(Schema $schema) + public function up(Schema $schema): void { $gatewaySchema = $this->getGatewaySchema(); $middlewareUser = $this->getMiddlewareUser(); @@ -40,7 +40,7 @@ public function up(Schema $schema) )); } - public function down(Schema $schema) + public function down(Schema $schema): void { $gatewaySchema = $this->getGatewaySchema(); $middlewareUser = $this->getMiddlewareUser(); diff --git a/app/DoctrineMigrations/Version20141210174213.php b/src/Surfnet/Migrations/Version20141210174213.php similarity index 91% rename from app/DoctrineMigrations/Version20141210174213.php rename to src/Surfnet/Migrations/Version20141210174213.php index 53d307798..ceeaba13a 100644 --- a/app/DoctrineMigrations/Version20141210174213.php +++ b/src/Surfnet/Migrations/Version20141210174213.php @@ -1,8 +1,8 @@ getGatewaySchema(); @@ -30,7 +30,7 @@ public function up(Schema $schema) $this->addSql(sprintf('ALTER TABLE %s.second_factor CHANGE id id INT AUTO_INCREMENT NOT NULL FIRST', $gatewaySchema)); } - public function down(Schema $schema) + public function down(Schema $schema): void { $gatewaySchema = $this->getGatewaySchema(); diff --git a/app/DoctrineMigrations/Version20141215150518.php b/src/Surfnet/Migrations/Version20141215150518.php similarity index 82% rename from app/DoctrineMigrations/Version20141215150518.php rename to src/Surfnet/Migrations/Version20141215150518.php index 9a8dab81d..3974a3855 100644 --- a/app/DoctrineMigrations/Version20141215150518.php +++ b/src/Surfnet/Migrations/Version20141215150518.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -18,7 +18,7 @@ public function up(Schema $schema) $this->addSql('ALTER TABLE unverified_second_factor ADD verification_nonce VARCHAR(32) NOT NULL'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150217122017.php b/src/Surfnet/Migrations/Version20150217122017.php similarity index 83% rename from app/DoctrineMigrations/Version20150217122017.php rename to src/Surfnet/Migrations/Version20150217122017.php index c3160e458..878a85844 100644 --- a/app/DoctrineMigrations/Version20150217122017.php +++ b/src/Surfnet/Migrations/Version20150217122017.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -18,7 +18,7 @@ public function up(Schema $schema) $this->addSql('ALTER TABLE unverified_second_factor ADD verification_nonce_valid_until DATETIME NOT NULL'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150225155343.php b/src/Surfnet/Migrations/Version20150225155343.php similarity index 89% rename from app/DoctrineMigrations/Version20150225155343.php rename to src/Surfnet/Migrations/Version20150225155343.php index aace2e666..b93b57747 100644 --- a/app/DoctrineMigrations/Version20150225155343.php +++ b/src/Surfnet/Migrations/Version20150225155343.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -18,7 +18,7 @@ public function up(Schema $schema) $this->addSql('CREATE TABLE ra_second_factor (id VARCHAR(36) NOT NULL, type VARCHAR(16) NOT NULL, second_factor_id VARCHAR(36) NOT NULL, status VARCHAR(10) NOT NULL, identity_id VARCHAR(36) NOT NULL, institution VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL, INDEX idx_ra_second_factor_type (type), INDEX idx_ra_second_factor_second_factor_id (second_factor_id), INDEX idx_ra_second_factor_status (status), INDEX idx_ra_second_factor_identity_id (identity_id), INDEX idx_ra_second_factor_institution (institution), INDEX idx_ra_second_factor_name (name), INDEX idx_ra_second_factor_email (email), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150305114932.php b/src/Surfnet/Migrations/Version20150305114932.php similarity index 88% rename from app/DoctrineMigrations/Version20150305114932.php rename to src/Surfnet/Migrations/Version20150305114932.php index 1dc5ac861..6c4b83f9c 100644 --- a/app/DoctrineMigrations/Version20150305114932.php +++ b/src/Surfnet/Migrations/Version20150305114932.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -21,7 +21,7 @@ public function up(Schema $schema) $this->addSql('DROP INDEX idx_ra_second_factor_email ON ra_second_factor'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150305115030.php b/src/Surfnet/Migrations/Version20150305115030.php similarity index 85% rename from app/DoctrineMigrations/Version20150305115030.php rename to src/Surfnet/Migrations/Version20150305115030.php index 42d2c033d..b695f0ec7 100644 --- a/app/DoctrineMigrations/Version20150305115030.php +++ b/src/Surfnet/Migrations/Version20150305115030.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -19,7 +19,7 @@ public function up(Schema $schema) $this->addSql('CREATE FULLTEXT INDEX idx_ra_second_factor_email ON ra_second_factor (email)'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150305134846.php b/src/Surfnet/Migrations/Version20150305134846.php similarity index 92% rename from app/DoctrineMigrations/Version20150305134846.php rename to src/Surfnet/Migrations/Version20150305134846.php index 1a7e8f5db..a7dffdd5f 100644 --- a/app/DoctrineMigrations/Version20150305134846.php +++ b/src/Surfnet/Migrations/Version20150305134846.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) $this->addSql('ALTER TABLE ra_second_factor CHANGE status_int `status` INT NOT NULL'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150312134629.php b/src/Surfnet/Migrations/Version20150312134629.php similarity index 91% rename from app/DoctrineMigrations/Version20150312134629.php rename to src/Surfnet/Migrations/Version20150312134629.php index dab45fe58..4a9e21420 100644 --- a/app/DoctrineMigrations/Version20150312134629.php +++ b/src/Surfnet/Migrations/Version20150312134629.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -21,7 +21,7 @@ public function up(Schema $schema) $this->addSql('ALTER TABLE vetted_second_factor CHANGE second_factor_identifier second_factor_identifier VARCHAR(255) NOT NULL'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150312162849.php b/src/Surfnet/Migrations/Version20150312162849.php similarity index 90% rename from app/DoctrineMigrations/Version20150312162849.php rename to src/Surfnet/Migrations/Version20150312162849.php index 62c8bfc85..d64679266 100644 --- a/app/DoctrineMigrations/Version20150312162849.php +++ b/src/Surfnet/Migrations/Version20150312162849.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -29,7 +29,7 @@ public function up(Schema $schema) )); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150330160809.php b/src/Surfnet/Migrations/Version20150330160809.php similarity index 88% rename from app/DoctrineMigrations/Version20150330160809.php rename to src/Surfnet/Migrations/Version20150330160809.php index ae32eb3d4..860e24ea7 100644 --- a/app/DoctrineMigrations/Version20150330160809.php +++ b/src/Surfnet/Migrations/Version20150330160809.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -18,7 +18,7 @@ public function up(Schema $schema) $this->addSql('CREATE TABLE audit_log (id INT AUTO_INCREMENT NOT NULL, actor_id VARCHAR(36) DEFAULT NULL, actor_institution VARCHAR(255) DEFAULT NULL, identity_id VARCHAR(36) NOT NULL, identity_institution VARCHAR(255) NOT NULL, second_factor_id VARCHAR(36) DEFAULT NULL, second_factor_type VARCHAR(36) DEFAULT NULL, action VARCHAR(255) NOT NULL, recorded_on DATETIME NOT NULL, INDEX idx_auditlog_actorid (actor_id), INDEX idx_auditlog_identityid (identity_id), INDEX idx_auditlog_identityinstitution (identity_institution), INDEX idx_auditlog_secondfactorid (second_factor_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150407103950.php b/src/Surfnet/Migrations/Version20150407103950.php similarity index 83% rename from app/DoctrineMigrations/Version20150407103950.php rename to src/Surfnet/Migrations/Version20150407103950.php index f8985763c..43c12e88f 100644 --- a/app/DoctrineMigrations/Version20150407103950.php +++ b/src/Surfnet/Migrations/Version20150407103950.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -18,7 +18,7 @@ public function up(Schema $schema) $this->addSql('ALTER TABLE audit_log CHANGE action event VARCHAR(255) NOT NULL'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150408122247.php b/src/Surfnet/Migrations/Version20150408122247.php similarity index 84% rename from app/DoctrineMigrations/Version20150408122247.php rename to src/Surfnet/Migrations/Version20150408122247.php index 58bcdfc04..f4246dd90 100644 --- a/app/DoctrineMigrations/Version20150408122247.php +++ b/src/Surfnet/Migrations/Version20150408122247.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -18,7 +18,7 @@ public function up(Schema $schema) $this->addSql('CREATE TABLE identity_identifying_data (id VARCHAR(36) NOT NULL, common_name VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150409142404.php b/src/Surfnet/Migrations/Version20150409142404.php similarity index 84% rename from app/DoctrineMigrations/Version20150409142404.php rename to src/Surfnet/Migrations/Version20150409142404.php index 4812895df..648242cbe 100644 --- a/app/DoctrineMigrations/Version20150409142404.php +++ b/src/Surfnet/Migrations/Version20150409142404.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -18,7 +18,7 @@ public function up(Schema $schema) $this->addSql('CREATE TABLE email_templates (id VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, locale VARCHAR(255) NOT NULL, html_content LONGTEXT NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'); } - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150422162952.php b/src/Surfnet/Migrations/Version20150422162952.php similarity index 87% rename from app/DoctrineMigrations/Version20150422162952.php rename to src/Surfnet/Migrations/Version20150422162952.php index 50122d981..dafdf7a67 100644 --- a/app/DoctrineMigrations/Version20150422162952.php +++ b/src/Surfnet/Migrations/Version20150422162952.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150428153351.php b/src/Surfnet/Migrations/Version20150428153351.php similarity index 87% rename from app/DoctrineMigrations/Version20150428153351.php rename to src/Surfnet/Migrations/Version20150428153351.php index 97b3d527f..94951e476 100644 --- a/app/DoctrineMigrations/Version20150428153351.php +++ b/src/Surfnet/Migrations/Version20150428153351.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150428174400.php b/src/Surfnet/Migrations/Version20150428174400.php similarity index 84% rename from app/DoctrineMigrations/Version20150428174400.php rename to src/Surfnet/Migrations/Version20150428174400.php index d2da25c17..b97ae1c11 100644 --- a/app/DoctrineMigrations/Version20150428174400.php +++ b/src/Surfnet/Migrations/Version20150428174400.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150501123735.php b/src/Surfnet/Migrations/Version20150501123735.php similarity index 89% rename from app/DoctrineMigrations/Version20150501123735.php rename to src/Surfnet/Migrations/Version20150501123735.php index 7e8b8552b..8de4fa345 100644 --- a/app/DoctrineMigrations/Version20150501123735.php +++ b/src/Surfnet/Migrations/Version20150501123735.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -30,7 +30,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150504102420.php b/src/Surfnet/Migrations/Version20150504102420.php similarity index 85% rename from app/DoctrineMigrations/Version20150504102420.php rename to src/Surfnet/Migrations/Version20150504102420.php index 29a061096..191d75e72 100644 --- a/app/DoctrineMigrations/Version20150504102420.php +++ b/src/Surfnet/Migrations/Version20150504102420.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -25,7 +25,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150507124421.php b/src/Surfnet/Migrations/Version20150507124421.php similarity index 94% rename from app/DoctrineMigrations/Version20150507124421.php rename to src/Surfnet/Migrations/Version20150507124421.php index 5a3495afc..2f9f754ac 100644 --- a/app/DoctrineMigrations/Version20150507124421.php +++ b/src/Surfnet/Migrations/Version20150507124421.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -41,7 +41,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150508085838.php b/src/Surfnet/Migrations/Version20150508085838.php similarity index 93% rename from app/DoctrineMigrations/Version20150508085838.php rename to src/Surfnet/Migrations/Version20150508085838.php index a43449617..00e42a776 100644 --- a/app/DoctrineMigrations/Version20150508085838.php +++ b/src/Surfnet/Migrations/Version20150508085838.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -44,7 +44,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150518152006.php b/src/Surfnet/Migrations/Version20150518152006.php similarity index 84% rename from app/DoctrineMigrations/Version20150518152006.php rename to src/Surfnet/Migrations/Version20150518152006.php index e74e7b9ed..b170bf8f9 100644 --- a/app/DoctrineMigrations/Version20150518152006.php +++ b/src/Surfnet/Migrations/Version20150518152006.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150522163053.php b/src/Surfnet/Migrations/Version20150522163053.php similarity index 92% rename from app/DoctrineMigrations/Version20150522163053.php rename to src/Surfnet/Migrations/Version20150522163053.php index d467e148d..7c63440a4 100644 --- a/app/DoctrineMigrations/Version20150522163053.php +++ b/src/Surfnet/Migrations/Version20150522163053.php @@ -1,8 +1,8 @@ getGatewaySchema(); @@ -42,7 +42,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { $gatewaySchema = $this->getGatewaySchema(); diff --git a/app/DoctrineMigrations/Version20150522164907.php b/src/Surfnet/Migrations/Version20150522164907.php similarity index 89% rename from app/DoctrineMigrations/Version20150522164907.php rename to src/Surfnet/Migrations/Version20150522164907.php index 70d764518..d23388301 100644 --- a/app/DoctrineMigrations/Version20150522164907.php +++ b/src/Surfnet/Migrations/Version20150522164907.php @@ -1,8 +1,8 @@ getGatewaySchema(); @@ -38,7 +38,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { $gatewaySchema = $this->getGatewaySchema(); diff --git a/app/DoctrineMigrations/Version20150526152956.php b/src/Surfnet/Migrations/Version20150526152956.php similarity index 83% rename from app/DoctrineMigrations/Version20150526152956.php rename to src/Surfnet/Migrations/Version20150526152956.php index 18c68d3a7..5c1dbc57c 100644 --- a/app/DoctrineMigrations/Version20150526152956.php +++ b/src/Surfnet/Migrations/Version20150526152956.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150528154959.php b/src/Surfnet/Migrations/Version20150528154959.php similarity index 90% rename from app/DoctrineMigrations/Version20150528154959.php rename to src/Surfnet/Migrations/Version20150528154959.php index d3fdbdbe9..ea2d32e9e 100644 --- a/app/DoctrineMigrations/Version20150528154959.php +++ b/src/Surfnet/Migrations/Version20150528154959.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -38,7 +38,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150601154557.php b/src/Surfnet/Migrations/Version20150601154557.php similarity index 87% rename from app/DoctrineMigrations/Version20150601154557.php rename to src/Surfnet/Migrations/Version20150601154557.php index 5e31087da..f5b39cd64 100644 --- a/app/DoctrineMigrations/Version20150601154557.php +++ b/src/Surfnet/Migrations/Version20150601154557.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150601154942.php b/src/Surfnet/Migrations/Version20150601154942.php similarity index 88% rename from app/DoctrineMigrations/Version20150601154942.php rename to src/Surfnet/Migrations/Version20150601154942.php index e7c8b01d0..52f783270 100644 --- a/app/DoctrineMigrations/Version20150601154942.php +++ b/src/Surfnet/Migrations/Version20150601154942.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150604143755.php b/src/Surfnet/Migrations/Version20150604143755.php similarity index 86% rename from app/DoctrineMigrations/Version20150604143755.php rename to src/Surfnet/Migrations/Version20150604143755.php index 8e186078d..a6a72a242 100644 --- a/app/DoctrineMigrations/Version20150604143755.php +++ b/src/Surfnet/Migrations/Version20150604143755.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -32,7 +32,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150604143756.php b/src/Surfnet/Migrations/Version20150604143756.php similarity index 90% rename from app/DoctrineMigrations/Version20150604143756.php rename to src/Surfnet/Migrations/Version20150604143756.php index 8c0a1160c..c99d5ac8f 100644 --- a/app/DoctrineMigrations/Version20150604143756.php +++ b/src/Surfnet/Migrations/Version20150604143756.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -32,7 +32,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150604143757.php b/src/Surfnet/Migrations/Version20150604143757.php similarity index 84% rename from app/DoctrineMigrations/Version20150604143757.php rename to src/Surfnet/Migrations/Version20150604143757.php index 6a53fe1bc..b4a0068ef 100644 --- a/app/DoctrineMigrations/Version20150604143757.php +++ b/src/Surfnet/Migrations/Version20150604143757.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150604143758.php b/src/Surfnet/Migrations/Version20150604143758.php similarity index 85% rename from app/DoctrineMigrations/Version20150604143758.php rename to src/Surfnet/Migrations/Version20150604143758.php index f048abadc..73d5f714a 100644 --- a/app/DoctrineMigrations/Version20150604143758.php +++ b/src/Surfnet/Migrations/Version20150604143758.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150611105956.php b/src/Surfnet/Migrations/Version20150611105956.php similarity index 93% rename from app/DoctrineMigrations/Version20150611105956.php rename to src/Surfnet/Migrations/Version20150611105956.php index e2534acfc..5715427a4 100644 --- a/app/DoctrineMigrations/Version20150611105956.php +++ b/src/Surfnet/Migrations/Version20150611105956.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -29,7 +29,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150611163038.php b/src/Surfnet/Migrations/Version20150611163038.php similarity index 93% rename from app/DoctrineMigrations/Version20150611163038.php rename to src/Surfnet/Migrations/Version20150611163038.php index bb1a8643e..1a6d05f86 100644 --- a/app/DoctrineMigrations/Version20150611163038.php +++ b/src/Surfnet/Migrations/Version20150611163038.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -30,7 +30,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150615114646.php b/src/Surfnet/Migrations/Version20150615114646.php similarity index 93% rename from app/DoctrineMigrations/Version20150615114646.php rename to src/Surfnet/Migrations/Version20150615114646.php index 2958d78aa..4023ab26a 100644 --- a/app/DoctrineMigrations/Version20150615114646.php +++ b/src/Surfnet/Migrations/Version20150615114646.php @@ -1,8 +1,8 @@ container = $container; } - public function up(Schema $schema) + public function up(Schema $schema): void { $gatewaySchema = $this->getGatewaySchema(); $middlewareSchema = $this->getMiddlewareSchema(); @@ -46,7 +46,7 @@ public function up(Schema $schema) )); } - public function down(Schema $schema) + public function down(Schema $schema): void { $gatewaySchema = $this->getGatewaySchema(); $middlewareSchema = $this->getMiddlewareSchema(); diff --git a/app/DoctrineMigrations/Version20150617141129.php b/src/Surfnet/Migrations/Version20150617141129.php similarity index 86% rename from app/DoctrineMigrations/Version20150617141129.php rename to src/Surfnet/Migrations/Version20150617141129.php index b2cc20cfe..75ab1812e 100644 --- a/app/DoctrineMigrations/Version20150617141129.php +++ b/src/Surfnet/Migrations/Version20150617141129.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20150618121907.php b/src/Surfnet/Migrations/Version20150618121907.php similarity index 83% rename from app/DoctrineMigrations/Version20150618121907.php rename to src/Surfnet/Migrations/Version20150618121907.php index 99facf2f9..a3a460d61 100644 --- a/app/DoctrineMigrations/Version20150618121907.php +++ b/src/Surfnet/Migrations/Version20150618121907.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20160219133522.php b/src/Surfnet/Migrations/Version20160219133522.php similarity index 72% rename from app/DoctrineMigrations/Version20160219133522.php rename to src/Surfnet/Migrations/Version20160219133522.php index 01258b2ca..a57bc3e02 100644 --- a/app/DoctrineMigrations/Version20160219133522.php +++ b/src/Surfnet/Migrations/Version20160219133522.php @@ -1,8 +1,8 @@ addSql('ALTER TABLE event_stream CHANGE payload payload LONGTEXT NOT NULL'); } /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { $this->addSql('ALTER TABLE event_stream CHANGE payload payload TEXT NOT NULL'); } diff --git a/app/DoctrineMigrations/Version20160607142244.php b/src/Surfnet/Migrations/Version20160607142244.php similarity index 79% rename from app/DoctrineMigrations/Version20160607142244.php rename to src/Surfnet/Migrations/Version20160607142244.php index c0fc9c753..58e7425a7 100644 --- a/app/DoctrineMigrations/Version20160607142244.php +++ b/src/Surfnet/Migrations/Version20160607142244.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { $this->addSql('ALTER TABLE ra_second_factor DROP document_number'); } diff --git a/app/DoctrineMigrations/Version20160617163830.php b/src/Surfnet/Migrations/Version20160617163830.php similarity index 97% rename from app/DoctrineMigrations/Version20160617163830.php rename to src/Surfnet/Migrations/Version20160617163830.php index 58bab89c4..837e6ace6 100644 --- a/app/DoctrineMigrations/Version20160617163830.php +++ b/src/Surfnet/Migrations/Version20160617163830.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -35,7 +35,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20160620090507.php b/src/Surfnet/Migrations/Version20160620090507.php similarity index 70% rename from app/DoctrineMigrations/Version20160620090507.php rename to src/Surfnet/Migrations/Version20160620090507.php index 2215fb3c7..b7ea9d7ef 100644 --- a/app/DoctrineMigrations/Version20160620090507.php +++ b/src/Surfnet/Migrations/Version20160620090507.php @@ -1,8 +1,8 @@ addSql('ALTER TABLE unverified_second_factor DROP verification_nonce_valid_until'); } @@ -18,7 +18,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { $this->addSql('ALTER TABLE unverified_second_factor ADD verification_nonce_valid_until DATETIME'); diff --git a/app/DoctrineMigrations/Version20160620153812.php b/src/Surfnet/Migrations/Version20160620153812.php similarity index 97% rename from app/DoctrineMigrations/Version20160620153812.php rename to src/Surfnet/Migrations/Version20160620153812.php index ba61b4335..1e6af7e95 100644 --- a/app/DoctrineMigrations/Version20160620153812.php +++ b/src/Surfnet/Migrations/Version20160620153812.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -35,7 +35,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20160621112027.php b/src/Surfnet/Migrations/Version20160621112027.php similarity index 85% rename from app/DoctrineMigrations/Version20160621112027.php rename to src/Surfnet/Migrations/Version20160621112027.php index 6402be6bc..51a4276e7 100644 --- a/app/DoctrineMigrations/Version20160621112027.php +++ b/src/Surfnet/Migrations/Version20160621112027.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20160622100140.php b/src/Surfnet/Migrations/Version20160622100140.php similarity index 88% rename from app/DoctrineMigrations/Version20160622100140.php rename to src/Surfnet/Migrations/Version20160622100140.php index e8e37bd60..18db5b037 100644 --- a/app/DoctrineMigrations/Version20160622100140.php +++ b/src/Surfnet/Migrations/Version20160622100140.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20160622160146.php b/src/Surfnet/Migrations/Version20160622160146.php similarity index 88% rename from app/DoctrineMigrations/Version20160622160146.php rename to src/Surfnet/Migrations/Version20160622160146.php index 90c3fba17..265713225 100644 --- a/app/DoctrineMigrations/Version20160622160146.php +++ b/src/Surfnet/Migrations/Version20160622160146.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -25,7 +25,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20160719090050.php b/src/Surfnet/Migrations/Version20160719090050.php similarity index 84% rename from app/DoctrineMigrations/Version20160719090050.php rename to src/Surfnet/Migrations/Version20160719090050.php index f76f62b8d..64568f612 100644 --- a/app/DoctrineMigrations/Version20160719090050.php +++ b/src/Surfnet/Migrations/Version20160719090050.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20160719090051.php b/src/Surfnet/Migrations/Version20160719090051.php similarity index 86% rename from app/DoctrineMigrations/Version20160719090051.php rename to src/Surfnet/Migrations/Version20160719090051.php index d1df00624..85ba5369b 100644 --- a/app/DoctrineMigrations/Version20160719090051.php +++ b/src/Surfnet/Migrations/Version20160719090051.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20160719090052.php b/src/Surfnet/Migrations/Version20160719090052.php similarity index 95% rename from app/DoctrineMigrations/Version20160719090052.php rename to src/Surfnet/Migrations/Version20160719090052.php index 5dd75de7d..97dfcd921 100644 --- a/app/DoctrineMigrations/Version20160719090052.php +++ b/src/Surfnet/Migrations/Version20160719090052.php @@ -1,8 +1,8 @@ getTokenStorage(); @@ -79,7 +79,7 @@ function (InstitutionListing $institutionListing) { /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // No down-migration needed as the structure has not changed. $this->write('No down migration executed: this was a data only migration.'); diff --git a/app/DoctrineMigrations/Version20170210140051.php b/src/Surfnet/Migrations/Version20170210140051.php similarity index 86% rename from app/DoctrineMigrations/Version20170210140051.php rename to src/Surfnet/Migrations/Version20170210140051.php index da337cde3..44a6a9925 100644 --- a/app/DoctrineMigrations/Version20170210140051.php +++ b/src/Surfnet/Migrations/Version20170210140051.php @@ -1,8 +1,8 @@ abortIf( @@ -29,7 +29,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20170216085513.php b/src/Surfnet/Migrations/Version20170216085513.php similarity index 86% rename from app/DoctrineMigrations/Version20170216085513.php rename to src/Surfnet/Migrations/Version20170216085513.php index a6d833c87..d008abdac 100644 --- a/app/DoctrineMigrations/Version20170216085513.php +++ b/src/Surfnet/Migrations/Version20170216085513.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -25,7 +25,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20171113123232.php b/src/Surfnet/Migrations/Version20171113123232.php similarity index 85% rename from app/DoctrineMigrations/Version20171113123232.php rename to src/Surfnet/Migrations/Version20171113123232.php index c1388e908..27b68ef44 100644 --- a/app/DoctrineMigrations/Version20171113123232.php +++ b/src/Surfnet/Migrations/Version20171113123232.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -25,7 +25,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20180116091349.php b/src/Surfnet/Migrations/Version20180116091349.php similarity index 84% rename from app/DoctrineMigrations/Version20180116091349.php rename to src/Surfnet/Migrations/Version20180116091349.php index 41da6dd15..d55626103 100644 --- a/app/DoctrineMigrations/Version20180116091349.php +++ b/src/Surfnet/Migrations/Version20180116091349.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20180131150800.php b/src/Surfnet/Migrations/Version20180131150800.php similarity index 91% rename from app/DoctrineMigrations/Version20180131150800.php rename to src/Surfnet/Migrations/Version20180131150800.php index 4b5314080..208a73947 100644 --- a/app/DoctrineMigrations/Version20180131150800.php +++ b/src/Surfnet/Migrations/Version20180131150800.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -39,7 +39,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20180330094402.php b/src/Surfnet/Migrations/Version20180330094402.php similarity index 85% rename from app/DoctrineMigrations/Version20180330094402.php rename to src/Surfnet/Migrations/Version20180330094402.php index 77299d624..befc5c315 100644 --- a/app/DoctrineMigrations/Version20180330094402.php +++ b/src/Surfnet/Migrations/Version20180330094402.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20180409100948.php b/src/Surfnet/Migrations/Version20180409100948.php similarity index 87% rename from app/DoctrineMigrations/Version20180409100948.php rename to src/Surfnet/Migrations/Version20180409100948.php index 01eab9864..e8d906780 100644 --- a/app/DoctrineMigrations/Version20180409100948.php +++ b/src/Surfnet/Migrations/Version20180409100948.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -30,7 +30,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20180926144517.php b/src/Surfnet/Migrations/Version20180926144517.php similarity index 87% rename from app/DoctrineMigrations/Version20180926144517.php rename to src/Surfnet/Migrations/Version20180926144517.php index 9692a6144..1687d889d 100644 --- a/app/DoctrineMigrations/Version20180926144517.php +++ b/src/Surfnet/Migrations/Version20180926144517.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -24,7 +24,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20181001082254.php b/src/Surfnet/Migrations/Version20181001082254.php similarity index 85% rename from app/DoctrineMigrations/Version20181001082254.php rename to src/Surfnet/Migrations/Version20181001082254.php index 422de5b14..9edbfccbf 100644 --- a/app/DoctrineMigrations/Version20181001082254.php +++ b/src/Surfnet/Migrations/Version20181001082254.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -33,7 +33,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { $this->throwIrreversibleMigrationException('This migration is irreversible and cannot be reverted due to Fine Grained Authorization BC changes.'); @@ -52,7 +52,7 @@ public function down(Schema $schema) $this->addSql('ALTER TABLE ra_listing ADD PRIMARY KEY (identity_id)'); } - public function postUp(Schema $schema) + public function postUp(Schema $schema): void { $this->connection->executeQuery('UPDATE ra_listing SET ra_institution=institution'); $this->connection->executeQuery('UPDATE ra_candidate SET ra_institution=institution'); diff --git a/app/DoctrineMigrations/Version20181101103348.php b/src/Surfnet/Migrations/Version20181101103348.php similarity index 86% rename from app/DoctrineMigrations/Version20181101103348.php rename to src/Surfnet/Migrations/Version20181101103348.php index 01312a694..abee72335 100644 --- a/app/DoctrineMigrations/Version20181101103348.php +++ b/src/Surfnet/Migrations/Version20181101103348.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -29,7 +29,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20190211163604.php b/src/Surfnet/Migrations/Version20190211163604.php similarity index 91% rename from app/DoctrineMigrations/Version20190211163604.php rename to src/Surfnet/Migrations/Version20190211163604.php index 4a8fd70fc..3fa26e205 100644 --- a/app/DoctrineMigrations/Version20190211163604.php +++ b/src/Surfnet/Migrations/Version20190211163604.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -29,7 +29,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); diff --git a/app/DoctrineMigrations/Version20200114161618.php b/src/Surfnet/Migrations/Version20200114161618.php similarity index 94% rename from app/DoctrineMigrations/Version20200114161618.php rename to src/Surfnet/Migrations/Version20200114161618.php index 21b98021e..321b3754d 100644 --- a/app/DoctrineMigrations/Version20200114161618.php +++ b/src/Surfnet/Migrations/Version20200114161618.php @@ -1,8 +1,8 @@ addSql('UPDATE audit_log SET actor_institution=LOWER(actor_institution)'); @@ -59,7 +59,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs diff --git a/app/DoctrineMigrations/Version20200416135127.php b/src/Surfnet/Migrations/Version20200416135127.php similarity index 79% rename from app/DoctrineMigrations/Version20200416135127.php rename to src/Surfnet/Migrations/Version20200416135127.php index 71285a333..bb9d5decd 100644 --- a/app/DoctrineMigrations/Version20200416135127.php +++ b/src/Surfnet/Migrations/Version20200416135127.php @@ -1,8 +1,8 @@ abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); @@ -21,7 +21,7 @@ public function up(Schema $schema) /** * @param Schema $schema */ - public function down(Schema $schema) + public function down(Schema $schema): void { $this->throwIrreversibleMigrationException('This migration is irreversible and cannot be reverted because it will need a replay on the RACandidateProjector.'); } diff --git a/src/Surfnet/Stepup/Configuration/Configuration.php b/src/Surfnet/Stepup/Configuration/Configuration.php index d8c009e24..d12670924 100644 --- a/src/Surfnet/Stepup/Configuration/Configuration.php +++ b/src/Surfnet/Stepup/Configuration/Configuration.php @@ -70,7 +70,7 @@ public function update($configurationAsJson) $this->apply(new EmailTemplatesUpdatedEvent(self::CONFIGURATION_ID, $decodedConfiguration['email_templates'])); } - public function getAggregateRootId() + public function getAggregateRootId(): string { return self::CONFIGURATION_ID; } diff --git a/src/Surfnet/Stepup/Configuration/Event/AllowedSecondFactorListUpdatedEvent.php b/src/Surfnet/Stepup/Configuration/Event/AllowedSecondFactorListUpdatedEvent.php index f5c8be3a4..1b6d4d098 100644 --- a/src/Surfnet/Stepup/Configuration/Event/AllowedSecondFactorListUpdatedEvent.php +++ b/src/Surfnet/Stepup/Configuration/Event/AllowedSecondFactorListUpdatedEvent.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Configuration\Event; -use Broadway\Serializer\SerializableInterface; +use Broadway\Serializer\Serializable as SerializableInterface; use Surfnet\Stepup\Configuration\Value\AllowedSecondFactorList; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\Stepup\Configuration\Value\InstitutionConfigurationId; @@ -59,7 +59,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'institution_configuration_id' => $this->institutionConfigurationId->getInstitutionConfigurationId(), diff --git a/src/Surfnet/Stepup/Configuration/Event/ConfigurationEvent.php b/src/Surfnet/Stepup/Configuration/Event/ConfigurationEvent.php index a62fba4c5..3080aaf9d 100644 --- a/src/Surfnet/Stepup/Configuration/Event/ConfigurationEvent.php +++ b/src/Surfnet/Stepup/Configuration/Event/ConfigurationEvent.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Configuration\Event; -use Broadway\Serializer\SerializableInterface; +use Broadway\Serializer\Serializable as SerializableInterface; use Surfnet\Stepup\Configuration\Configuration; use Symfony\Component\Form\Exception\LogicException; diff --git a/src/Surfnet/Stepup/Configuration/Event/ConfigurationUpdatedEvent.php b/src/Surfnet/Stepup/Configuration/Event/ConfigurationUpdatedEvent.php index e945cb17a..12c21b665 100644 --- a/src/Surfnet/Stepup/Configuration/Event/ConfigurationUpdatedEvent.php +++ b/src/Surfnet/Stepup/Configuration/Event/ConfigurationUpdatedEvent.php @@ -52,7 +52,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'id' => $this->id, diff --git a/src/Surfnet/Stepup/Configuration/Event/EmailTemplatesUpdatedEvent.php b/src/Surfnet/Stepup/Configuration/Event/EmailTemplatesUpdatedEvent.php index 4808d0580..95b755e5e 100644 --- a/src/Surfnet/Stepup/Configuration/Event/EmailTemplatesUpdatedEvent.php +++ b/src/Surfnet/Stepup/Configuration/Event/EmailTemplatesUpdatedEvent.php @@ -41,7 +41,7 @@ public static function deserialize(array $data) return new self($data['id'], $data['email_templates']); } - public function serialize() + public function serialize(): array { return ['id' => $this->id, 'email_templates' => $this->emailTemplates]; } diff --git a/src/Surfnet/Stepup/Configuration/Event/IdentityProvidersUpdatedEvent.php b/src/Surfnet/Stepup/Configuration/Event/IdentityProvidersUpdatedEvent.php index f78e6fbe6..760e3ce7a 100644 --- a/src/Surfnet/Stepup/Configuration/Event/IdentityProvidersUpdatedEvent.php +++ b/src/Surfnet/Stepup/Configuration/Event/IdentityProvidersUpdatedEvent.php @@ -41,7 +41,7 @@ public static function deserialize(array $data) return new self($data['id'], $data['identity_providers']); } - public function serialize() + public function serialize(): array { return ['id' => $this->id, 'identity_providers' => $this->identityProviders]; } diff --git a/src/Surfnet/Stepup/Configuration/Event/InstitutionConfigurationRemovedEvent.php b/src/Surfnet/Stepup/Configuration/Event/InstitutionConfigurationRemovedEvent.php index ce8c57196..eb7c8a6f2 100644 --- a/src/Surfnet/Stepup/Configuration/Event/InstitutionConfigurationRemovedEvent.php +++ b/src/Surfnet/Stepup/Configuration/Event/InstitutionConfigurationRemovedEvent.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Configuration\Event; -use Broadway\Serializer\SerializableInterface; +use Broadway\Serializer\Serializable as SerializableInterface; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\Stepup\Configuration\Value\InstitutionConfigurationId; @@ -55,7 +55,7 @@ public static function deserialize(array $data) /** * @return array */ - public function serialize() + public function serialize(): array { return [ 'institution_configuration_id' => $this->institutionConfigurationId->getInstitutionConfigurationId(), diff --git a/src/Surfnet/Stepup/Configuration/Event/NewConfigurationCreatedEvent.php b/src/Surfnet/Stepup/Configuration/Event/NewConfigurationCreatedEvent.php index 3f95dc559..9e7b9fea2 100644 --- a/src/Surfnet/Stepup/Configuration/Event/NewConfigurationCreatedEvent.php +++ b/src/Surfnet/Stepup/Configuration/Event/NewConfigurationCreatedEvent.php @@ -31,7 +31,7 @@ public static function deserialize(array $data) /** * @return array */ - public function serialize() + public function serialize(): array { return ['id' => $this->id]; } diff --git a/src/Surfnet/Stepup/Configuration/Event/NewInstitutionConfigurationCreatedEvent.php b/src/Surfnet/Stepup/Configuration/Event/NewInstitutionConfigurationCreatedEvent.php index d022d5d7d..f4a1e8800 100644 --- a/src/Surfnet/Stepup/Configuration/Event/NewInstitutionConfigurationCreatedEvent.php +++ b/src/Surfnet/Stepup/Configuration/Event/NewInstitutionConfigurationCreatedEvent.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Configuration\Event; -use Broadway\Serializer\SerializableInterface; +use Broadway\Serializer\Serializable as SerializableInterface; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\Stepup\Configuration\Value\InstitutionConfigurationId; use Surfnet\Stepup\Configuration\Value\NumberOfTokensPerIdentityOption; @@ -92,7 +92,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'institution_configuration_id' => $this->institutionConfigurationId->getInstitutionConfigurationId(), diff --git a/src/Surfnet/Stepup/Configuration/Event/NumberOfTokensPerIdentityOptionChangedEvent.php b/src/Surfnet/Stepup/Configuration/Event/NumberOfTokensPerIdentityOptionChangedEvent.php index 61b30fa66..c52527f9e 100644 --- a/src/Surfnet/Stepup/Configuration/Event/NumberOfTokensPerIdentityOptionChangedEvent.php +++ b/src/Surfnet/Stepup/Configuration/Event/NumberOfTokensPerIdentityOptionChangedEvent.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Configuration\Event; -use Broadway\Serializer\SerializableInterface; +use Broadway\Serializer\Serializable as SerializableInterface; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\Stepup\Configuration\Value\InstitutionConfigurationId; use Surfnet\Stepup\Configuration\Value\NumberOfTokensPerIdentityOption; @@ -59,7 +59,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'institution_configuration_id' => $this->institutionConfigurationId->getInstitutionConfigurationId(), diff --git a/src/Surfnet/Stepup/Configuration/Event/RaLocationAddedEvent.php b/src/Surfnet/Stepup/Configuration/Event/RaLocationAddedEvent.php index 47deee219..f00452b06 100644 --- a/src/Surfnet/Stepup/Configuration/Event/RaLocationAddedEvent.php +++ b/src/Surfnet/Stepup/Configuration/Event/RaLocationAddedEvent.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Configuration\Event; -use Broadway\Serializer\SerializableInterface; +use Broadway\Serializer\Serializable as SerializableInterface; use Surfnet\Stepup\Configuration\Value\ContactInformation; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\Stepup\Configuration\Value\InstitutionConfigurationId; @@ -85,7 +85,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'institution_configuration_id' => $this->institutionConfigurationId->getInstitutionConfigurationId(), diff --git a/src/Surfnet/Stepup/Configuration/Event/RaLocationContactInformationChangedEvent.php b/src/Surfnet/Stepup/Configuration/Event/RaLocationContactInformationChangedEvent.php index 000d7425e..425d6e1f0 100644 --- a/src/Surfnet/Stepup/Configuration/Event/RaLocationContactInformationChangedEvent.php +++ b/src/Surfnet/Stepup/Configuration/Event/RaLocationContactInformationChangedEvent.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Configuration\Event; -use Broadway\Serializer\SerializableInterface; +use Broadway\Serializer\Serializable as SerializableInterface; use Surfnet\Stepup\Configuration\Value\ContactInformation; use Surfnet\Stepup\Configuration\Value\InstitutionConfigurationId; use Surfnet\Stepup\Configuration\Value\RaLocationId; @@ -59,7 +59,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'institution_configuration_id' => $this->institutionConfigurationId->getInstitutionConfigurationId(), diff --git a/src/Surfnet/Stepup/Configuration/Event/RaLocationRelocatedEvent.php b/src/Surfnet/Stepup/Configuration/Event/RaLocationRelocatedEvent.php index a087c6467..904bf0be8 100644 --- a/src/Surfnet/Stepup/Configuration/Event/RaLocationRelocatedEvent.php +++ b/src/Surfnet/Stepup/Configuration/Event/RaLocationRelocatedEvent.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Configuration\Event; -use Broadway\Serializer\SerializableInterface; +use Broadway\Serializer\Serializable as SerializableInterface; use Surfnet\Stepup\Configuration\Value\InstitutionConfigurationId; use Surfnet\Stepup\Configuration\Value\Location; use Surfnet\Stepup\Configuration\Value\RaLocationId; @@ -59,7 +59,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'institution_configuration_id' => $this->institutionConfigurationId->getInstitutionConfigurationId(), diff --git a/src/Surfnet/Stepup/Configuration/Event/RaLocationRemovedEvent.php b/src/Surfnet/Stepup/Configuration/Event/RaLocationRemovedEvent.php index d5fa3492d..956d39ddb 100644 --- a/src/Surfnet/Stepup/Configuration/Event/RaLocationRemovedEvent.php +++ b/src/Surfnet/Stepup/Configuration/Event/RaLocationRemovedEvent.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Configuration\Event; -use Broadway\Serializer\SerializableInterface; +use Broadway\Serializer\Serializable as SerializableInterface; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\Stepup\Configuration\Value\InstitutionConfigurationId; use Surfnet\Stepup\Configuration\Value\RaLocationId; @@ -56,7 +56,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'institution_configuration_id' => $this->institutionConfigurationId->getInstitutionConfigurationId(), diff --git a/src/Surfnet/Stepup/Configuration/Event/RaLocationRenamedEvent.php b/src/Surfnet/Stepup/Configuration/Event/RaLocationRenamedEvent.php index 2cf531bc1..c76ab3829 100644 --- a/src/Surfnet/Stepup/Configuration/Event/RaLocationRenamedEvent.php +++ b/src/Surfnet/Stepup/Configuration/Event/RaLocationRenamedEvent.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Configuration\Event; -use Broadway\Serializer\SerializableInterface; +use Broadway\Serializer\Serializable as SerializableInterface; use Surfnet\Stepup\Configuration\Value\InstitutionConfigurationId; use Surfnet\Stepup\Configuration\Value\RaLocationId; use Surfnet\Stepup\Configuration\Value\RaLocationName; @@ -59,7 +59,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'institution_configuration_id' => $this->institutionConfigurationId->getInstitutionConfigurationId(), diff --git a/src/Surfnet/Stepup/Configuration/Event/SelectRaaOptionChangedEvent.php b/src/Surfnet/Stepup/Configuration/Event/SelectRaaOptionChangedEvent.php index 8fea0fd7b..3b37c8d08 100644 --- a/src/Surfnet/Stepup/Configuration/Event/SelectRaaOptionChangedEvent.php +++ b/src/Surfnet/Stepup/Configuration/Event/SelectRaaOptionChangedEvent.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Configuration\Event; -use Broadway\Serializer\SerializableInterface; +use Broadway\Serializer\Serializable as SerializableInterface; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\Stepup\Configuration\Value\InstitutionConfigurationId; use Surfnet\Stepup\Configuration\Value\InstitutionAuthorizationOption; @@ -61,7 +61,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'institution_configuration_id' => $this->institutionConfigurationId->getInstitutionConfigurationId(), diff --git a/src/Surfnet/Stepup/Configuration/Event/ServiceProvidersUpdatedEvent.php b/src/Surfnet/Stepup/Configuration/Event/ServiceProvidersUpdatedEvent.php index 0ad1fb903..f9b018d65 100644 --- a/src/Surfnet/Stepup/Configuration/Event/ServiceProvidersUpdatedEvent.php +++ b/src/Surfnet/Stepup/Configuration/Event/ServiceProvidersUpdatedEvent.php @@ -47,7 +47,7 @@ public static function deserialize(array $data) /** * @return array */ - public function serialize() + public function serialize(): array { return ['id' => $this->id, 'service_providers' => $this->serviceProviders]; } diff --git a/src/Surfnet/Stepup/Configuration/Event/ShowRaaContactInformationOptionChangedEvent.php b/src/Surfnet/Stepup/Configuration/Event/ShowRaaContactInformationOptionChangedEvent.php index 6b8266571..020f4681f 100644 --- a/src/Surfnet/Stepup/Configuration/Event/ShowRaaContactInformationOptionChangedEvent.php +++ b/src/Surfnet/Stepup/Configuration/Event/ShowRaaContactInformationOptionChangedEvent.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Configuration\Event; -use Broadway\Serializer\SerializableInterface; +use Broadway\Serializer\Serializable as SerializableInterface; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\Stepup\Configuration\Value\InstitutionConfigurationId; use Surfnet\Stepup\Configuration\Value\ShowRaaContactInformationOption; @@ -59,7 +59,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'institution_configuration_id' => $this->institutionConfigurationId->getInstitutionConfigurationId(), diff --git a/src/Surfnet/Stepup/Configuration/Event/SraaUpdatedEvent.php b/src/Surfnet/Stepup/Configuration/Event/SraaUpdatedEvent.php index faef8edd7..7bc991550 100644 --- a/src/Surfnet/Stepup/Configuration/Event/SraaUpdatedEvent.php +++ b/src/Surfnet/Stepup/Configuration/Event/SraaUpdatedEvent.php @@ -41,7 +41,7 @@ public static function deserialize(array $data) return new self($data['id'], $data['sraa_list']); } - public function serialize() + public function serialize(): array { return ['id' => $this->id, 'sraa_list' => $this->sraaList]; } diff --git a/src/Surfnet/Stepup/Configuration/Event/UseRaLocationsOptionChangedEvent.php b/src/Surfnet/Stepup/Configuration/Event/UseRaLocationsOptionChangedEvent.php index 02725c4c4..fa73490cd 100644 --- a/src/Surfnet/Stepup/Configuration/Event/UseRaLocationsOptionChangedEvent.php +++ b/src/Surfnet/Stepup/Configuration/Event/UseRaLocationsOptionChangedEvent.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Configuration\Event; -use Broadway\Serializer\SerializableInterface; +use Broadway\Serializer\Serializable as SerializableInterface; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\Stepup\Configuration\Value\InstitutionConfigurationId; use Surfnet\Stepup\Configuration\Value\UseRaLocationsOption; @@ -59,7 +59,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'institution_configuration_id' => $this->institutionConfigurationId->getInstitutionConfigurationId(), diff --git a/src/Surfnet/Stepup/Configuration/Event/UseRaOptionChangedEvent.php b/src/Surfnet/Stepup/Configuration/Event/UseRaOptionChangedEvent.php index cfeab879f..3f4286c04 100644 --- a/src/Surfnet/Stepup/Configuration/Event/UseRaOptionChangedEvent.php +++ b/src/Surfnet/Stepup/Configuration/Event/UseRaOptionChangedEvent.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Configuration\Event; -use Broadway\Serializer\SerializableInterface; +use Broadway\Serializer\Serializable as SerializableInterface; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\Stepup\Configuration\Value\InstitutionConfigurationId; use Surfnet\Stepup\Configuration\Value\InstitutionAuthorizationOption; @@ -62,7 +62,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'institution_configuration_id' => $this->institutionConfigurationId->getInstitutionConfigurationId(), diff --git a/src/Surfnet/Stepup/Configuration/Event/UseRaaOptionChangedEvent.php b/src/Surfnet/Stepup/Configuration/Event/UseRaaOptionChangedEvent.php index a07149190..d5e59ec48 100644 --- a/src/Surfnet/Stepup/Configuration/Event/UseRaaOptionChangedEvent.php +++ b/src/Surfnet/Stepup/Configuration/Event/UseRaaOptionChangedEvent.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Configuration\Event; -use Broadway\Serializer\SerializableInterface; +use Broadway\Serializer\Serializable as SerializableInterface; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\Stepup\Configuration\Value\InstitutionConfigurationId; use Surfnet\Stepup\Configuration\Value\InstitutionAuthorizationOption; @@ -61,7 +61,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'institution_configuration_id' => $this->institutionConfigurationId->getInstitutionConfigurationId(), diff --git a/src/Surfnet/Stepup/Configuration/Event/VerifyEmailOptionChangedEvent.php b/src/Surfnet/Stepup/Configuration/Event/VerifyEmailOptionChangedEvent.php index 3dd5ab4ec..e90a31c8a 100644 --- a/src/Surfnet/Stepup/Configuration/Event/VerifyEmailOptionChangedEvent.php +++ b/src/Surfnet/Stepup/Configuration/Event/VerifyEmailOptionChangedEvent.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Configuration\Event; -use Broadway\Serializer\SerializableInterface; +use Broadway\Serializer\Serializable as SerializableInterface; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\Stepup\Configuration\Value\InstitutionConfigurationId; use Surfnet\Stepup\Configuration\Value\VerifyEmailOption; @@ -59,7 +59,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'institution_configuration_id' => $this->institutionConfigurationId->getInstitutionConfigurationId(), diff --git a/src/Surfnet/Stepup/Configuration/EventSourcing/ConfigurationRepository.php b/src/Surfnet/Stepup/Configuration/EventSourcing/ConfigurationRepository.php index ca590adc9..516eb370d 100644 --- a/src/Surfnet/Stepup/Configuration/EventSourcing/ConfigurationRepository.php +++ b/src/Surfnet/Stepup/Configuration/EventSourcing/ConfigurationRepository.php @@ -18,10 +18,11 @@ namespace Surfnet\Stepup\Configuration\EventSourcing; -use Broadway\EventHandling\EventBusInterface; -use Broadway\EventSourcing\AggregateFactory\AggregateFactoryInterface; +use Broadway\EventHandling\EventBus as EventBusInterface; +use Broadway\EventSourcing\AggregateFactory\AggregateFactory as AggregateFactoryInterface; use Broadway\EventSourcing\EventSourcingRepository; -use Broadway\EventStore\EventStoreInterface; +use Broadway\EventStore\EventStore as EventStoreInterface; +use Surfnet\Stepup\Configuration\Configuration; class ConfigurationRepository extends EventSourcingRepository { @@ -30,6 +31,6 @@ public function __construct( EventBusInterface $eventBus, AggregateFactoryInterface $aggregateFactory ) { - parent::__construct($eventStore, $eventBus, 'Surfnet\Stepup\Configuration\Configuration', $aggregateFactory); + parent::__construct($eventStore, $eventBus, Configuration::class, $aggregateFactory); } } diff --git a/src/Surfnet/Stepup/Configuration/EventSourcing/InstitutionConfigurationRepository.php b/src/Surfnet/Stepup/Configuration/EventSourcing/InstitutionConfigurationRepository.php index e6c112ec8..6fa4d00d2 100644 --- a/src/Surfnet/Stepup/Configuration/EventSourcing/InstitutionConfigurationRepository.php +++ b/src/Surfnet/Stepup/Configuration/EventSourcing/InstitutionConfigurationRepository.php @@ -18,10 +18,11 @@ namespace Surfnet\Stepup\Configuration\EventSourcing; -use Broadway\EventHandling\EventBusInterface; -use Broadway\EventSourcing\AggregateFactory\AggregateFactoryInterface; +use Broadway\EventHandling\EventBus as EventBusInterface; +use Broadway\EventSourcing\AggregateFactory\AggregateFactory as AggregateFactoryInterface; use Broadway\EventSourcing\EventSourcingRepository; -use Broadway\EventStore\EventStoreInterface; +use Broadway\EventStore\EventStore as EventStoreInterface; +use Surfnet\Stepup\Configuration\InstitutionConfiguration; class InstitutionConfigurationRepository extends EventSourcingRepository { @@ -33,7 +34,7 @@ public function __construct( parent::__construct( $eventStore, $eventBus, - 'Surfnet\Stepup\Configuration\InstitutionConfiguration', + InstitutionConfiguration::class, $aggregateFactory ); } diff --git a/src/Surfnet/Stepup/Configuration/InstitutionConfiguration.php b/src/Surfnet/Stepup/Configuration/InstitutionConfiguration.php index 771020d69..3abb446e3 100644 --- a/src/Surfnet/Stepup/Configuration/InstitutionConfiguration.php +++ b/src/Surfnet/Stepup/Configuration/InstitutionConfiguration.php @@ -463,7 +463,7 @@ public function destroy() $this->apply(new InstitutionConfigurationRemovedEvent($this->institutionConfigurationId, $this->institution)); } - public function getAggregateRootId() + public function getAggregateRootId(): string { return $this->institutionConfigurationId; } diff --git a/src/Surfnet/Stepup/Configuration/Value/AllowedSecondFactorList.php b/src/Surfnet/Stepup/Configuration/Value/AllowedSecondFactorList.php index 52ec9a9f3..b0e98443c 100644 --- a/src/Surfnet/Stepup/Configuration/Value/AllowedSecondFactorList.php +++ b/src/Surfnet/Stepup/Configuration/Value/AllowedSecondFactorList.php @@ -19,7 +19,7 @@ namespace Surfnet\Stepup\Configuration\Value; use ArrayIterator; -use Broadway\Serializer\SerializableInterface; +use Broadway\Serializer\Serializable as SerializableInterface; use IteratorAggregate; use JsonSerializable; use Surfnet\StepupBundle\Value\SecondFactorType; @@ -114,7 +114,7 @@ function ($secondFactorString) { return new self($secondFactorTypes); } - public function serialize() + public function serialize(): array { $allowedSecondFactors = array_map( function (SecondFactorType $secondFactorType) { diff --git a/src/Surfnet/Stepup/Helper/JsonHelper.php b/src/Surfnet/Stepup/Helper/JsonHelper.php index b705487c5..35cc6c166 100644 --- a/src/Surfnet/Stepup/Helper/JsonHelper.php +++ b/src/Surfnet/Stepup/Helper/JsonHelper.php @@ -23,28 +23,28 @@ final class JsonHelper { + private static $jsonErrors = [ + JSON_ERROR_DEPTH => 'JSON_ERROR_DEPTH - Maximum stack depth exceeded', + JSON_ERROR_STATE_MISMATCH => 'JSON_ERROR_STATE_MISMATCH - Underflow or the modes mismatch', + JSON_ERROR_CTRL_CHAR => 'JSON_ERROR_CTRL_CHAR - Unexpected control character found', + JSON_ERROR_SYNTAX => 'JSON_ERROR_SYNTAX - Syntax error, malformed JSON', + JSON_ERROR_UTF8 => 'JSON_ERROR_UTF8 - Malformed UTF-8 characters, possibly incorrectly encoded', + ]; + public static function decode($json) { if (!is_string($json)) { throw InvalidArgumentException::invalidType('string', 'json', $json); } - static $jsonErrors = [ - JSON_ERROR_DEPTH => 'JSON_ERROR_DEPTH - Maximum stack depth exceeded', - JSON_ERROR_STATE_MISMATCH => 'JSON_ERROR_STATE_MISMATCH - Underflow or the modes mismatch', - JSON_ERROR_CTRL_CHAR => 'JSON_ERROR_CTRL_CHAR - Unexpected control character found', - JSON_ERROR_SYNTAX => 'JSON_ERROR_SYNTAX - Syntax error, malformed JSON', - JSON_ERROR_UTF8 => 'JSON_ERROR_UTF8 - Malformed UTF-8 characters, possibly incorrectly encoded', - ]; - $data = json_decode($json, true); if (JSON_ERROR_NONE !== json_last_error()) { $last = json_last_error(); - $errorMessage = $jsonErrors[$last]; - if (!isset($errorMessage)) { - $errorMessage = 'Unknown error'; + $errorMessage = 'Unknown error'; + if (array_key_exists($last, self::$jsonErrors)) { + $errorMessage = self::$jsonErrors[$last]; } throw JsonException::withMessage($errorMessage); diff --git a/src/Surfnet/Stepup/Identity/Api/Identity.php b/src/Surfnet/Stepup/Identity/Api/Identity.php index c55720374..bde8c2e48 100644 --- a/src/Surfnet/Stepup/Identity/Api/Identity.php +++ b/src/Surfnet/Stepup/Identity/Api/Identity.php @@ -300,7 +300,7 @@ public function getVerifiedSecondFactor(SecondFactorId $secondFactorId); * @return IdentityId We're deviating from Broadway's official API, as they accept toString-able VOs as IDs, and we * require the IdentityId VO in our SensitiveDataEventStoreDecorator. */ - public function getAggregateRootId(); + public function getAggregateRootId(): string; /** * @param int $numberOfTokens diff --git a/src/Surfnet/Stepup/Identity/Collection/InstitutionCollection.php b/src/Surfnet/Stepup/Identity/Collection/InstitutionCollection.php index d28f8cbef..776419c76 100644 --- a/src/Surfnet/Stepup/Identity/Collection/InstitutionCollection.php +++ b/src/Surfnet/Stepup/Identity/Collection/InstitutionCollection.php @@ -19,7 +19,7 @@ namespace Surfnet\Stepup\Identity\Collection; use ArrayIterator; -use Broadway\Serializer\SerializableInterface; +use Broadway\Serializer\Serializable as SerializableInterface; use IteratorAggregate; use JsonSerializable; use Surfnet\Stepup\Exception\RuntimeException; @@ -118,7 +118,7 @@ public static function deserialize(array $data) return new self($institutions); } - public function serialize() + public function serialize(): array { return array_map(function (Institution $institution) { return (string) $institution; diff --git a/src/Surfnet/Stepup/Identity/Entity/AbstractSecondFactor.php b/src/Surfnet/Stepup/Identity/Entity/AbstractSecondFactor.php index c9fdac3fa..ab0d76d2c 100644 --- a/src/Surfnet/Stepup/Identity/Entity/AbstractSecondFactor.php +++ b/src/Surfnet/Stepup/Identity/Entity/AbstractSecondFactor.php @@ -18,11 +18,11 @@ namespace Surfnet\Stepup\Identity\Entity; -use Broadway\EventSourcing\EventSourcedEntity; +use Broadway\EventSourcing\SimpleEventSourcedEntity; use Surfnet\StepupBundle\Service\SecondFactorTypeService; use Surfnet\StepupBundle\Value\SecondFactorType; -abstract class AbstractSecondFactor extends EventSourcedEntity implements SecondFactor +abstract class AbstractSecondFactor extends SimpleEventSourcedEntity implements SecondFactor { public function hasEqualOrHigherLoaComparedTo(SecondFactor $comparable, SecondFactorTypeService $service) { diff --git a/src/Surfnet/Stepup/Identity/Entity/RegistrationAuthority.php b/src/Surfnet/Stepup/Identity/Entity/RegistrationAuthority.php index 44be14337..3822be839 100644 --- a/src/Surfnet/Stepup/Identity/Entity/RegistrationAuthority.php +++ b/src/Surfnet/Stepup/Identity/Entity/RegistrationAuthority.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Identity\Entity; -use Broadway\EventSourcing\EventSourcedEntity; +use Broadway\EventSourcing\SimpleEventSourcedEntity; use Surfnet\Stepup\Identity\Value\ContactInformation; use Surfnet\Stepup\Identity\Value\Institution; use Surfnet\Stepup\Identity\Value\Location; @@ -27,7 +27,7 @@ /** * @SuppressWarnings(PHPMD.UnusedPrivateField) */ -final class RegistrationAuthority extends EventSourcedEntity +final class RegistrationAuthority extends SimpleEventSourcedEntity { /** * @var \Surfnet\Stepup\Identity\Value\RegistrationAuthorityRole diff --git a/src/Surfnet/Stepup/Identity/Entity/VerifiedSecondFactor.php b/src/Surfnet/Stepup/Identity/Entity/VerifiedSecondFactor.php index d49c50a86..e50296a41 100644 --- a/src/Surfnet/Stepup/Identity/Entity/VerifiedSecondFactor.php +++ b/src/Surfnet/Stepup/Identity/Entity/VerifiedSecondFactor.php @@ -18,6 +18,7 @@ namespace Surfnet\Stepup\Identity\Entity; +use DateInterval; use Surfnet\Stepup\DateTime\DateTime; use Surfnet\Stepup\Exception\InvalidArgumentException; use Surfnet\Stepup\Identity\Api\Identity; @@ -29,7 +30,6 @@ use Surfnet\Stepup\Identity\Value\IdentityId; use Surfnet\Stepup\Identity\Value\SecondFactorId; use Surfnet\Stepup\Identity\Value\SecondFactorIdentifier; -use Surfnet\Stepup\Identity\Value\SecondFactorIdentifierFactory; use Surfnet\StepupBundle\Value\SecondFactorType; /** @@ -133,7 +133,7 @@ public function canBeVettedNow() { return !DateTime::now()->comesAfter( $this->registrationRequestedAt - ->add(new \DateInterval('P14D')) + ->add(new DateInterval('P14D')) ->endOfDay() ); } diff --git a/src/Surfnet/Stepup/Identity/Event/AppointedAsRaEvent.php b/src/Surfnet/Stepup/Identity/Event/AppointedAsRaEvent.php index 2513b6671..d15ac7828 100644 --- a/src/Surfnet/Stepup/Identity/Event/AppointedAsRaEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/AppointedAsRaEvent.php @@ -67,7 +67,7 @@ public static function deserialize(array $data) /** * @return array */ - public function serialize() + public function serialize(): array { return [ 'identity_id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/AppointedAsRaForInstitutionEvent.php b/src/Surfnet/Stepup/Identity/Event/AppointedAsRaForInstitutionEvent.php index 82198af0d..f86768a48 100644 --- a/src/Surfnet/Stepup/Identity/Event/AppointedAsRaForInstitutionEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/AppointedAsRaForInstitutionEvent.php @@ -73,7 +73,7 @@ public static function deserialize(array $data) /** * @return array */ - public function serialize() + public function serialize(): array { return [ 'identity_id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/AppointedAsRaaEvent.php b/src/Surfnet/Stepup/Identity/Event/AppointedAsRaaEvent.php index 2fc181274..4cb9e71fa 100644 --- a/src/Surfnet/Stepup/Identity/Event/AppointedAsRaaEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/AppointedAsRaaEvent.php @@ -67,7 +67,7 @@ public static function deserialize(array $data) /** * @return array */ - public function serialize() + public function serialize(): array { return [ 'identity_id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/AppointedAsRaaForInstitutionEvent.php b/src/Surfnet/Stepup/Identity/Event/AppointedAsRaaForInstitutionEvent.php index afda41999..e91b018e8 100644 --- a/src/Surfnet/Stepup/Identity/Event/AppointedAsRaaForInstitutionEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/AppointedAsRaaForInstitutionEvent.php @@ -73,7 +73,7 @@ public static function deserialize(array $data) /** * @return array */ - public function serialize() + public function serialize(): array { return [ 'identity_id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/CompliedWithRevocationEvent.php b/src/Surfnet/Stepup/Identity/Event/CompliedWithRevocationEvent.php index dc652add2..a86524c8b 100644 --- a/src/Surfnet/Stepup/Identity/Event/CompliedWithRevocationEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/CompliedWithRevocationEvent.php @@ -92,7 +92,7 @@ final public static function deserialize(array $data) ); } - final public function serialize() + final public function serialize(): array { return [ 'identity_id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/EmailVerifiedEvent.php b/src/Surfnet/Stepup/Identity/Event/EmailVerifiedEvent.php index 3ed9c125b..223e6f690 100644 --- a/src/Surfnet/Stepup/Identity/Event/EmailVerifiedEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/EmailVerifiedEvent.php @@ -142,7 +142,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'identity_id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/GssfPossessionProvenAndVerifiedEvent.php b/src/Surfnet/Stepup/Identity/Event/GssfPossessionProvenAndVerifiedEvent.php index bbb2a268c..1467dcb39 100644 --- a/src/Surfnet/Stepup/Identity/Event/GssfPossessionProvenAndVerifiedEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/GssfPossessionProvenAndVerifiedEvent.php @@ -145,7 +145,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'identity_id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/GssfPossessionProvenEvent.php b/src/Surfnet/Stepup/Identity/Event/GssfPossessionProvenEvent.php index 1e6f6f2dc..8c9a80d37 100644 --- a/src/Surfnet/Stepup/Identity/Event/GssfPossessionProvenEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/GssfPossessionProvenEvent.php @@ -153,7 +153,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'identity_id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/IdentityAccreditedAsRaEvent.php b/src/Surfnet/Stepup/Identity/Event/IdentityAccreditedAsRaEvent.php index f84ed7206..9b60ae47e 100644 --- a/src/Surfnet/Stepup/Identity/Event/IdentityAccreditedAsRaEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/IdentityAccreditedAsRaEvent.php @@ -96,7 +96,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'identity_id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/IdentityAccreditedAsRaForInstitutionEvent.php b/src/Surfnet/Stepup/Identity/Event/IdentityAccreditedAsRaForInstitutionEvent.php index 8c54d4a76..7a9f9c317 100644 --- a/src/Surfnet/Stepup/Identity/Event/IdentityAccreditedAsRaForInstitutionEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/IdentityAccreditedAsRaForInstitutionEvent.php @@ -103,7 +103,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'identity_id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/IdentityAccreditedAsRaaEvent.php b/src/Surfnet/Stepup/Identity/Event/IdentityAccreditedAsRaaEvent.php index 29a1b166f..05180c300 100644 --- a/src/Surfnet/Stepup/Identity/Event/IdentityAccreditedAsRaaEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/IdentityAccreditedAsRaaEvent.php @@ -96,7 +96,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'identity_id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/IdentityAccreditedAsRaaForInstitutionEvent.php b/src/Surfnet/Stepup/Identity/Event/IdentityAccreditedAsRaaForInstitutionEvent.php index af9d60bfe..68f618bdd 100644 --- a/src/Surfnet/Stepup/Identity/Event/IdentityAccreditedAsRaaForInstitutionEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/IdentityAccreditedAsRaaForInstitutionEvent.php @@ -102,7 +102,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'identity_id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/IdentityCreatedEvent.php b/src/Surfnet/Stepup/Identity/Event/IdentityCreatedEvent.php index 02b16d1bd..fcf36e5ee 100644 --- a/src/Surfnet/Stepup/Identity/Event/IdentityCreatedEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/IdentityCreatedEvent.php @@ -87,7 +87,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/IdentityEmailChangedEvent.php b/src/Surfnet/Stepup/Identity/Event/IdentityEmailChangedEvent.php index e4df22362..be0bd0654 100644 --- a/src/Surfnet/Stepup/Identity/Event/IdentityEmailChangedEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/IdentityEmailChangedEvent.php @@ -61,7 +61,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/IdentityEvent.php b/src/Surfnet/Stepup/Identity/Event/IdentityEvent.php index 1219691e2..315d92f3c 100644 --- a/src/Surfnet/Stepup/Identity/Event/IdentityEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/IdentityEvent.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Identity\Event; -use Broadway\Serializer\SerializableInterface; +use Broadway\Serializer\Serializable as SerializableInterface; use Surfnet\Stepup\Identity\Value\IdentityId; use Surfnet\Stepup\Identity\Value\Institution; diff --git a/src/Surfnet/Stepup/Identity/Event/IdentityForgottenEvent.php b/src/Surfnet/Stepup/Identity/Event/IdentityForgottenEvent.php index 72e0d5387..45d7ce031 100644 --- a/src/Surfnet/Stepup/Identity/Event/IdentityForgottenEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/IdentityForgottenEvent.php @@ -41,7 +41,7 @@ public static function deserialize(array $data) return new IdentityForgottenEvent(new IdentityId($data['identity_id']), new Institution($data['institution'])); } - public function serialize() + public function serialize(): array { return ['identity_id' => $this->identityId, 'institution' => $this->identityInstitution]; } diff --git a/src/Surfnet/Stepup/Identity/Event/IdentityRenamedEvent.php b/src/Surfnet/Stepup/Identity/Event/IdentityRenamedEvent.php index a3e2e6ef1..cc676763d 100644 --- a/src/Surfnet/Stepup/Identity/Event/IdentityRenamedEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/IdentityRenamedEvent.php @@ -61,7 +61,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/InstitutionsAddedToWhitelistEvent.php b/src/Surfnet/Stepup/Identity/Event/InstitutionsAddedToWhitelistEvent.php index ce8dcc0e6..45f9b16f9 100644 --- a/src/Surfnet/Stepup/Identity/Event/InstitutionsAddedToWhitelistEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/InstitutionsAddedToWhitelistEvent.php @@ -44,7 +44,7 @@ public static function deserialize(array $data) /** * @return array */ - public function serialize() + public function serialize(): array { return ['added_institutions' => $this->addedInstitutions->serialize()]; } diff --git a/src/Surfnet/Stepup/Identity/Event/InstitutionsRemovedFromWhitelistEvent.php b/src/Surfnet/Stepup/Identity/Event/InstitutionsRemovedFromWhitelistEvent.php index c3eea6323..a14d14d1a 100644 --- a/src/Surfnet/Stepup/Identity/Event/InstitutionsRemovedFromWhitelistEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/InstitutionsRemovedFromWhitelistEvent.php @@ -44,7 +44,7 @@ public static function deserialize(array $data) /** * @return array */ - public function serialize() + public function serialize(): array { return ['removed_institutions' => $this->removedInstitutions->serialize()]; } diff --git a/src/Surfnet/Stepup/Identity/Event/LocalePreferenceExpressedEvent.php b/src/Surfnet/Stepup/Identity/Event/LocalePreferenceExpressedEvent.php index bcdd98f8e..1490aab92 100644 --- a/src/Surfnet/Stepup/Identity/Event/LocalePreferenceExpressedEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/LocalePreferenceExpressedEvent.php @@ -64,7 +64,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/PhonePossessionProvenAndVerifiedEvent.php b/src/Surfnet/Stepup/Identity/Event/PhonePossessionProvenAndVerifiedEvent.php index 941e6018d..8846a08c3 100644 --- a/src/Surfnet/Stepup/Identity/Event/PhonePossessionProvenAndVerifiedEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/PhonePossessionProvenAndVerifiedEvent.php @@ -133,7 +133,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'identity_id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/PhonePossessionProvenEvent.php b/src/Surfnet/Stepup/Identity/Event/PhonePossessionProvenEvent.php index a7c438bf1..d46183999 100644 --- a/src/Surfnet/Stepup/Identity/Event/PhonePossessionProvenEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/PhonePossessionProvenEvent.php @@ -143,7 +143,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'identity_id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/RegistrationAuthorityInformationAmendedEvent.php b/src/Surfnet/Stepup/Identity/Event/RegistrationAuthorityInformationAmendedEvent.php index 90db739ea..b47a077e4 100644 --- a/src/Surfnet/Stepup/Identity/Event/RegistrationAuthorityInformationAmendedEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/RegistrationAuthorityInformationAmendedEvent.php @@ -86,7 +86,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'identity_id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/RegistrationAuthorityInformationAmendedForInstitutionEvent.php b/src/Surfnet/Stepup/Identity/Event/RegistrationAuthorityInformationAmendedForInstitutionEvent.php index 90bdb5433..934a9b118 100644 --- a/src/Surfnet/Stepup/Identity/Event/RegistrationAuthorityInformationAmendedForInstitutionEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/RegistrationAuthorityInformationAmendedForInstitutionEvent.php @@ -92,7 +92,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'identity_id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/RegistrationAuthorityRetractedEvent.php b/src/Surfnet/Stepup/Identity/Event/RegistrationAuthorityRetractedEvent.php index 9d7396a8c..4d90a8a4b 100644 --- a/src/Surfnet/Stepup/Identity/Event/RegistrationAuthorityRetractedEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/RegistrationAuthorityRetractedEvent.php @@ -81,7 +81,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'identity_id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/RegistrationAuthorityRetractedForInstitutionEvent.php b/src/Surfnet/Stepup/Identity/Event/RegistrationAuthorityRetractedForInstitutionEvent.php index 2d13c7bda..5cadf4d9e 100644 --- a/src/Surfnet/Stepup/Identity/Event/RegistrationAuthorityRetractedForInstitutionEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/RegistrationAuthorityRetractedForInstitutionEvent.php @@ -86,7 +86,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'identity_id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/SecondFactorRevokedEvent.php b/src/Surfnet/Stepup/Identity/Event/SecondFactorRevokedEvent.php index 9b551a01d..b10cad772 100644 --- a/src/Surfnet/Stepup/Identity/Event/SecondFactorRevokedEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/SecondFactorRevokedEvent.php @@ -84,7 +84,7 @@ final public static function deserialize(array $data) ); } - final public function serialize() + final public function serialize(): array { return [ 'identity_id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/SecondFactorVettedEvent.php b/src/Surfnet/Stepup/Identity/Event/SecondFactorVettedEvent.php index b4964bd6a..e1756d9aa 100644 --- a/src/Surfnet/Stepup/Identity/Event/SecondFactorVettedEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/SecondFactorVettedEvent.php @@ -146,7 +146,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'identity_id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/U2fDevicePossessionProvenAndVerifiedEvent.php b/src/Surfnet/Stepup/Identity/Event/U2fDevicePossessionProvenAndVerifiedEvent.php index a68bfc04c..9e0944f31 100644 --- a/src/Surfnet/Stepup/Identity/Event/U2fDevicePossessionProvenAndVerifiedEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/U2fDevicePossessionProvenAndVerifiedEvent.php @@ -133,7 +133,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'identity_id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/U2fDevicePossessionProvenEvent.php b/src/Surfnet/Stepup/Identity/Event/U2fDevicePossessionProvenEvent.php index 042028a6a..75704c1f1 100644 --- a/src/Surfnet/Stepup/Identity/Event/U2fDevicePossessionProvenEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/U2fDevicePossessionProvenEvent.php @@ -143,7 +143,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'identity_id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/VettedSecondFactorsAllRevokedEvent.php b/src/Surfnet/Stepup/Identity/Event/VettedSecondFactorsAllRevokedEvent.php index 77cad14f9..36772fdc2 100644 --- a/src/Surfnet/Stepup/Identity/Event/VettedSecondFactorsAllRevokedEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/VettedSecondFactorsAllRevokedEvent.php @@ -49,7 +49,7 @@ final public static function deserialize(array $data) ); } - final public function serialize() + final public function serialize(): array { return [ 'identity_id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/WhitelistCreatedEvent.php b/src/Surfnet/Stepup/Identity/Event/WhitelistCreatedEvent.php index 0f9e05e3f..b5a4ff9a5 100644 --- a/src/Surfnet/Stepup/Identity/Event/WhitelistCreatedEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/WhitelistCreatedEvent.php @@ -41,7 +41,7 @@ public static function deserialize(array $data) return new self(InstitutionCollection::deserialize($data['whitelisted_institutions'])); } - public function serialize() + public function serialize(): array { return ['whitelisted_institutions' => $this->whitelistedInstitutions->serialize()]; } diff --git a/src/Surfnet/Stepup/Identity/Event/WhitelistEvent.php b/src/Surfnet/Stepup/Identity/Event/WhitelistEvent.php index c155c20b7..f3ab37a3f 100644 --- a/src/Surfnet/Stepup/Identity/Event/WhitelistEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/WhitelistEvent.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Identity\Event; -use Broadway\Serializer\SerializableInterface; +use Broadway\Serializer\Serializable as SerializableInterface; interface WhitelistEvent extends SerializableInterface { diff --git a/src/Surfnet/Stepup/Identity/Event/WhitelistReplacedEvent.php b/src/Surfnet/Stepup/Identity/Event/WhitelistReplacedEvent.php index 4e19b90f4..5f81a0de9 100644 --- a/src/Surfnet/Stepup/Identity/Event/WhitelistReplacedEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/WhitelistReplacedEvent.php @@ -44,7 +44,7 @@ public static function deserialize(array $data) /** * @return array */ - public function serialize() + public function serialize(): array { return ['whitelisted_institutions' => $this->whitelistedInstitutions->serialize()]; } diff --git a/src/Surfnet/Stepup/Identity/Event/YubikeyPossessionProvenAndVerifiedEvent.php b/src/Surfnet/Stepup/Identity/Event/YubikeyPossessionProvenAndVerifiedEvent.php index 5af38bf08..83b6a9c53 100644 --- a/src/Surfnet/Stepup/Identity/Event/YubikeyPossessionProvenAndVerifiedEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/YubikeyPossessionProvenAndVerifiedEvent.php @@ -135,7 +135,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'identity_id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/YubikeyPossessionProvenEvent.php b/src/Surfnet/Stepup/Identity/Event/YubikeyPossessionProvenEvent.php index 2c48140cd..dc7571ee3 100644 --- a/src/Surfnet/Stepup/Identity/Event/YubikeyPossessionProvenEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/YubikeyPossessionProvenEvent.php @@ -150,7 +150,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return [ 'identity_id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/Event/YubikeySecondFactorBootstrappedEvent.php b/src/Surfnet/Stepup/Identity/Event/YubikeySecondFactorBootstrappedEvent.php index 30d3a8d34..ddc5cbfc1 100644 --- a/src/Surfnet/Stepup/Identity/Event/YubikeySecondFactorBootstrappedEvent.php +++ b/src/Surfnet/Stepup/Identity/Event/YubikeySecondFactorBootstrappedEvent.php @@ -101,7 +101,7 @@ public function getAuditLogMetadata() return $metadata; } - public function serialize() + public function serialize(): array { return [ 'identity_id' => (string) $this->identityId, diff --git a/src/Surfnet/Stepup/Identity/EventSourcing/IdentityRepository.php b/src/Surfnet/Stepup/Identity/EventSourcing/IdentityRepository.php index 56a97e67b..ffafe95df 100644 --- a/src/Surfnet/Stepup/Identity/EventSourcing/IdentityRepository.php +++ b/src/Surfnet/Stepup/Identity/EventSourcing/IdentityRepository.php @@ -18,30 +18,30 @@ namespace Surfnet\Stepup\Identity\EventSourcing; -use Broadway\EventHandling\EventBusInterface; -use Broadway\EventSourcing\AggregateFactory\AggregateFactoryInterface; +use Broadway\EventHandling\EventBus as EventBusInterface; +use Broadway\EventSourcing\AggregateFactory\AggregateFactory; use Broadway\EventSourcing\EventSourcingRepository; -use Broadway\EventSourcing\EventStreamDecoratorInterface; -use Broadway\EventStore\EventStoreInterface; +use Broadway\EventSourcing\EventStreamDecorator; +use Broadway\EventStore\EventStore as EventStoreInterface; class IdentityRepository extends EventSourcingRepository { /** * @param EventStoreInterface $eventStore * @param EventBusInterface $eventBus - * @param AggregateFactoryInterface $aggregateFactory - * @param EventStreamDecoratorInterface[] $eventStreamDecorators + * @param AggregateFactory $aggregateFactory + * @param EventStreamDecorator[] $eventStreamDecorators */ public function __construct( EventStoreInterface $eventStore, EventBusInterface $eventBus, - AggregateFactoryInterface $aggregateFactory, + AggregateFactory $aggregateFactory, array $eventStreamDecorators = [] ) { parent::__construct( $eventStore, $eventBus, - 'Surfnet\Stepup\Identity\Identity', + \Surfnet\Stepup\Identity\Identity::class, $aggregateFactory, $eventStreamDecorators ); diff --git a/src/Surfnet/Stepup/Identity/EventSourcing/WhitelistRepository.php b/src/Surfnet/Stepup/Identity/EventSourcing/WhitelistRepository.php index 9151ebef8..dcbae515d 100644 --- a/src/Surfnet/Stepup/Identity/EventSourcing/WhitelistRepository.php +++ b/src/Surfnet/Stepup/Identity/EventSourcing/WhitelistRepository.php @@ -18,30 +18,30 @@ namespace Surfnet\Stepup\Identity\EventSourcing; -use Broadway\EventHandling\EventBusInterface; -use Broadway\EventSourcing\AggregateFactory\AggregateFactoryInterface; +use Broadway\EventHandling\EventBus as EventBusInterface; +use Broadway\EventSourcing\AggregateFactory\AggregateFactory; use Broadway\EventSourcing\EventSourcingRepository; -use Broadway\EventSourcing\EventStreamDecoratorInterface; -use Broadway\EventStore\EventStoreInterface; +use Broadway\EventSourcing\EventStreamDecorator; +use Broadway\EventStore\EventStore as EventStoreInterface; class WhitelistRepository extends EventSourcingRepository { /** * @param EventStoreInterface $eventStore * @param EventBusInterface $eventBus - * @param AggregateFactoryInterface $aggregateFactory - * @param EventStreamDecoratorInterface[] $eventStreamDecorators + * @param AggregateFactory $aggregateFactory + * @param EventStreamDecorator[] $eventStreamDecorators */ public function __construct( EventStoreInterface $eventStore, EventBusInterface $eventBus, - AggregateFactoryInterface $aggregateFactory, + AggregateFactory $aggregateFactory, array $eventStreamDecorators = [] ) { parent::__construct( $eventStore, $eventBus, - 'Surfnet\Stepup\Identity\Whitelist', + \Surfnet\Stepup\Identity\Whitelist::class, $aggregateFactory, $eventStreamDecorators ); diff --git a/src/Surfnet/Stepup/Identity/Identity.php b/src/Surfnet/Stepup/Identity/Identity.php index 551b46eec..a8618c624 100644 --- a/src/Surfnet/Stepup/Identity/Identity.php +++ b/src/Surfnet/Stepup/Identity/Identity.php @@ -1083,12 +1083,12 @@ protected function applyRegistrationAuthorityRetractedEvent(RegistrationAuthorit } - public function getAggregateRootId() + public function getAggregateRootId(): string { - return $this->id; + return $this->id->getIdentityId(); } - protected function getChildEntities() + protected function getChildEntities(): array { return array_merge( $this->unverifiedSecondFactors->getValues(), diff --git a/src/Surfnet/Stepup/Identity/Value/EmailVerificationWindow.php b/src/Surfnet/Stepup/Identity/Value/EmailVerificationWindow.php index 16970551e..1192a7ae3 100644 --- a/src/Surfnet/Stepup/Identity/Value/EmailVerificationWindow.php +++ b/src/Surfnet/Stepup/Identity/Value/EmailVerificationWindow.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Identity\Value; -use Broadway\Serializer\SerializableInterface; +use Broadway\Serializer\Serializable as SerializableInterface; use Surfnet\Stepup\DateTime\DateTime; use Surfnet\Stepup\Exception\InvalidArgumentException; @@ -104,7 +104,7 @@ public static function deserialize(array $data) ); } - public function serialize() + public function serialize(): array { return ['start' => (string) $this->start, 'end' => (string) $this->end]; } diff --git a/src/Surfnet/Stepup/Identity/Value/RegistrationAuthorityRole.php b/src/Surfnet/Stepup/Identity/Value/RegistrationAuthorityRole.php index 4196387c1..0160d1864 100644 --- a/src/Surfnet/Stepup/Identity/Value/RegistrationAuthorityRole.php +++ b/src/Surfnet/Stepup/Identity/Value/RegistrationAuthorityRole.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Identity\Value; -use Broadway\Serializer\SerializableInterface; +use Broadway\Serializer\Serializable as SerializableInterface; use Surfnet\Stepup\Exception\InvalidArgumentException; final class RegistrationAuthorityRole implements SerializableInterface @@ -86,7 +86,7 @@ public static function deserialize(array $data) return new self($data['role']); } - public function serialize() + public function serialize(): array { return ['role' => $this->role]; } diff --git a/src/Surfnet/Stepup/Identity/Whitelist.php b/src/Surfnet/Stepup/Identity/Whitelist.php index 0d05a6fae..b0df6aa82 100644 --- a/src/Surfnet/Stepup/Identity/Whitelist.php +++ b/src/Surfnet/Stepup/Identity/Whitelist.php @@ -43,7 +43,7 @@ public function __construct() { } - public function getAggregateRootId() + public function getAggregateRootId(): string { return self::WHITELIST_AGGREGATE_ID; } diff --git a/src/Surfnet/Stepup/Tests/Configuration/Event/EventSerializationAndDeserializationTest.php b/src/Surfnet/Stepup/Tests/Configuration/Event/EventSerializationAndDeserializationTest.php index df1c405dc..e98058b64 100644 --- a/src/Surfnet/Stepup/Tests/Configuration/Event/EventSerializationAndDeserializationTest.php +++ b/src/Surfnet/Stepup/Tests/Configuration/Event/EventSerializationAndDeserializationTest.php @@ -18,8 +18,8 @@ namespace Surfnet\Stepup\Tests\Configuration\Event; -use Broadway\Serializer\SerializableInterface; -use PHPUnit_Framework_TestCase as TestCase; +use Broadway\Serializer\Serializable as SerializableInterface; +use PHPUnit\Framework\TestCase as TestCase; use Rhumsaa\Uuid\Uuid; use Surfnet\Stepup\Configuration\Configuration; use Surfnet\Stepup\Configuration\Event\AllowedSecondFactorListUpdatedEvent; @@ -43,16 +43,12 @@ use Surfnet\Stepup\Configuration\Value\ContactInformation; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\Stepup\Configuration\Value\InstitutionConfigurationId; -use Surfnet\Stepup\Configuration\Value\InstitutionRole; use Surfnet\Stepup\Configuration\Value\Location; use Surfnet\Stepup\Configuration\Value\NumberOfTokensPerIdentityOption; use Surfnet\Stepup\Configuration\Value\RaLocationId; use Surfnet\Stepup\Configuration\Value\RaLocationName; -use Surfnet\Stepup\Configuration\Value\SelectRaaOption; use Surfnet\Stepup\Configuration\Value\ShowRaaContactInformationOption; -use Surfnet\Stepup\Configuration\Value\UseRaaOption; use Surfnet\Stepup\Configuration\Value\UseRaLocationsOption; -use Surfnet\Stepup\Configuration\Value\InstitutionAuthorizationOption; use Surfnet\Stepup\Configuration\Value\VerifyEmailOption; use Surfnet\StepupBundle\Value\SecondFactorType; @@ -80,7 +76,7 @@ public function institutionConfigurationEventsProvider() { $institution = new Institution('A test institution'); $institutionConfigurationId = InstitutionConfigurationId::from($institution); - $uuid = (string) Uuid::uuid4(); + $uuid = (string)Uuid::uuid4(); return [ // Configuration @@ -200,7 +196,7 @@ public function institutionConfigurationEventsProvider() new ContactInformation('Test contact information') ) ], - 'RaLocationRemovedEvent' => [ + 'RaLocationRemovedEvent' => [ new RaLocationRemovedEvent( $institutionConfigurationId, new RaLocationId($uuid) diff --git a/src/Surfnet/Stepup/Tests/Configuration/InstitutionConfigurationTest.php b/src/Surfnet/Stepup/Tests/Configuration/InstitutionConfigurationTest.php index 481c78d23..7366bb457 100644 --- a/src/Surfnet/Stepup/Tests/Configuration/InstitutionConfigurationTest.php +++ b/src/Surfnet/Stepup/Tests/Configuration/InstitutionConfigurationTest.php @@ -367,7 +367,7 @@ function () use ( ); } - protected function getAggregateRootClass() + protected function getAggregateRootClass(): string { return InstitutionConfiguration::class; } diff --git a/src/Surfnet/Stepup/Tests/Configuration/Value/AllowedSecondFactorListTest.php b/src/Surfnet/Stepup/Tests/Configuration/Value/AllowedSecondFactorListTest.php index 834146c51..ea29ddb3b 100644 --- a/src/Surfnet/Stepup/Tests/Configuration/Value/AllowedSecondFactorListTest.php +++ b/src/Surfnet/Stepup/Tests/Configuration/Value/AllowedSecondFactorListTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Configuration\Value; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Surfnet\Stepup\Configuration\Value\AllowedSecondFactorList; use Surfnet\StepupBundle\Service\SecondFactorTypeService; use Surfnet\StepupBundle\Value\SecondFactorType; diff --git a/src/Surfnet/Stepup/Tests/Configuration/Value/ContactInformationTest.php b/src/Surfnet/Stepup/Tests/Configuration/Value/ContactInformationTest.php index 19ed506ff..f18e4cab0 100644 --- a/src/Surfnet/Stepup/Tests/Configuration/Value/ContactInformationTest.php +++ b/src/Surfnet/Stepup/Tests/Configuration/Value/ContactInformationTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Configuration\Value; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Configuration\Value\ContactInformation; class ContactInformationTest extends UnitTest @@ -27,12 +27,12 @@ class ContactInformationTest extends UnitTest * @test * @group domain * @dataProvider invalidValueProvider - * @expectedException \Surfnet\Stepup\Exception\InvalidArgumentException * * @param mixed $invalidValue */ public function it_cannot_be_created_with_anything_but_a_nonempty_string($invalidValue) { + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); new ContactInformation($invalidValue); } diff --git a/src/Surfnet/Stepup/Tests/Configuration/Value/InstitutionAuthorizationOptionTest.php b/src/Surfnet/Stepup/Tests/Configuration/Value/InstitutionAuthorizationOptionTest.php index ab24e9e8c..4c338c262 100644 --- a/src/Surfnet/Stepup/Tests/Configuration/Value/InstitutionAuthorizationOptionTest.php +++ b/src/Surfnet/Stepup/Tests/Configuration/Value/InstitutionAuthorizationOptionTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Configuration\Value; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\Stepup\Configuration\Value\InstitutionRole; use Surfnet\Stepup\Configuration\Value\InstitutionAuthorizationOption; @@ -35,7 +35,7 @@ class InstitutionAuthorizationOptionTest extends TestCase */ private $institutionRole; - public function setUp() + public function setUp(): void { $this->institution = new Institution('inst'); $this->institutionRole = InstitutionRole::useRa(); @@ -98,11 +98,12 @@ public function can_be_retrieved_json_serializable_on_empty_set() /** * @test * @group domain - * @expectedException \Surfnet\Stepup\Exception\InvalidArgumentException * @dataProvider invalidConstructorArgumentsProvider */ public function invalid_types_are_rejected_during_construction($arguments) { + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); + InstitutionAuthorizationOption::fromInstitutionConfig($this->institutionRole, $arguments); } /** diff --git a/src/Surfnet/Stepup/Tests/Configuration/Value/InstitutionConfigurationIdTest.php b/src/Surfnet/Stepup/Tests/Configuration/Value/InstitutionConfigurationIdTest.php index 57e0ffa27..f81d339b0 100644 --- a/src/Surfnet/Stepup/Tests/Configuration/Value/InstitutionConfigurationIdTest.php +++ b/src/Surfnet/Stepup/Tests/Configuration/Value/InstitutionConfigurationIdTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Configuration\Value; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\Stepup\Configuration\Value\InstitutionConfigurationId; @@ -45,7 +45,7 @@ public function two_institution_configuration_ids_created_for_the_different_inst */ public function an_institution_configuration_id_cannot_be_created_from_something_other_than_a_string($nonStringOrEmptyString) { - $this->setExpectedException('Surfnet\Stepup\Exception\InvalidArgumentException'); + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); new InstitutionConfigurationId($nonStringOrEmptyString); } @@ -56,7 +56,7 @@ public function an_institution_configuration_id_cannot_be_created_from_something */ public function an_institution_configuration_id_cannot_be_created_from_something_other_than_a_uuid() { - $this->setExpectedException('Surfnet\Stepup\Exception\InvalidArgumentException'); + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); $nonUuid = 'this-is-not-a-uuid'; diff --git a/src/Surfnet/Stepup/Tests/Configuration/Value/InstitutionRoleTest.php b/src/Surfnet/Stepup/Tests/Configuration/Value/InstitutionRoleTest.php index b6b84ba9d..a7493ab24 100644 --- a/src/Surfnet/Stepup/Tests/Configuration/Value/InstitutionRoleTest.php +++ b/src/Surfnet/Stepup/Tests/Configuration/Value/InstitutionRoleTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Configuration\Value; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\Stepup\Configuration\Value\InstitutionAuthorizationOption; use Surfnet\Stepup\Configuration\Value\InstitutionRole; @@ -30,11 +30,11 @@ class InstitutionRoleTest extends TestCase /** * @test * @group domain - * @expectedException \Surfnet\Stepup\Exception\InvalidArgumentException * @dataProvider invalidConstructorArgumentsProvider */ public function invalid_types_are_rejected_during_construction($arguments) { + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); new InstitutionRole($arguments); } diff --git a/src/Surfnet/Stepup/Tests/Configuration/Value/InstitutionSetTest.php b/src/Surfnet/Stepup/Tests/Configuration/Value/InstitutionSetTest.php index dbecfa0a8..bab79904a 100644 --- a/src/Surfnet/Stepup/Tests/Configuration/Value/InstitutionSetTest.php +++ b/src/Surfnet/Stepup/Tests/Configuration/Value/InstitutionSetTest.php @@ -19,7 +19,7 @@ namespace Surfnet\Stepup\Tests\Configuration\Value; use IteratorAggregate; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\Stepup\Configuration\Value\InstitutionSet; use Surfnet\Stepup\Configuration\Value\Location; @@ -43,11 +43,12 @@ public function the_set_is_built_out_of_institution_vos() /** * @test * @group domain - * @expectedException \Surfnet\Stepup\Exception\InvalidArgumentException - * @expectedExceptionMessage Duplicate entries are not allowed in the InstitutionSet */ public function duplicate_entries_are_not_allowed() { + $this->expectExceptionMessage("Duplicate entries are not allowed in the InstitutionSet"); + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); + $institutionB = new Institution('b'); $institutionBDupe = new Institution('b'); @@ -57,11 +58,12 @@ public function duplicate_entries_are_not_allowed() /** * @test * @group domain - * @expectedException \Surfnet\Stepup\Exception\InvalidArgumentException - * @expectedExceptionMessage Duplicate entries are not allowed in the InstitutionSet */ public function duplicate_entries_are_not_allowed_case_insensitive() { + $this->expectExceptionMessage("Duplicate entries are not allowed in the InstitutionSet"); + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); + $institutionB = new Institution('b'); $institutionBDupe = new Institution('B'); @@ -71,11 +73,12 @@ public function duplicate_entries_are_not_allowed_case_insensitive() /** * @test * @group domain - * @expectedException \Surfnet\Stepup\Exception\InvalidArgumentException - * @expectedExceptionMessage Invalid argument type: "Surfnet\Stepup\Configuration\Value\Institution" expected, "Surfnet\Stepup\Configuration\Value\Location" given for "institutions" */ public function only_institutions_can_be_present_in_set() { + $this->expectExceptionMessage("Invalid argument type: \"Surfnet\Stepup\Configuration\Value\Institution\" expected, \"Surfnet\Stepup\Configuration\Value\Location\" given for \"institutions\""); + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); + $institution = new Institution('b'); $location = new Location('Foobar'); @@ -118,12 +121,14 @@ public function factory_method_can_build_from_array_of_string() * @test * @group domain * @dataProvider dirtyInstitutionListProvider - * @expectedException \Surfnet\Stepup\Exception\InvalidArgumentException + * * * @param array $invalid */ public function factory_method_can_build_from_array_of_string_and_rejects_invalid_types(array $invalid) { + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); + InstitutionSet::create($invalid); } diff --git a/src/Surfnet/Stepup/Tests/Configuration/Value/InstitutionTest.php b/src/Surfnet/Stepup/Tests/Configuration/Value/InstitutionTest.php index ff4e93d65..246c405c6 100644 --- a/src/Surfnet/Stepup/Tests/Configuration/Value/InstitutionTest.php +++ b/src/Surfnet/Stepup/Tests/Configuration/Value/InstitutionTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Configuration\Value; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Configuration\Value\Institution; class InstitutionTest extends UnitTest @@ -27,12 +27,12 @@ class InstitutionTest extends UnitTest * @test * @group domain * @dataProvider nonStringOrNonEmptyStringProvider - * @expectedException \Surfnet\Stepup\Exception\InvalidArgumentException * * @param mixed $invalidValue */ public function an_institution_cannot_be_created_with_anything_but_a_nonempty_string($invalidValue) { + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); new Institution($invalidValue); } diff --git a/src/Surfnet/Stepup/Tests/Configuration/Value/LocationTest.php b/src/Surfnet/Stepup/Tests/Configuration/Value/LocationTest.php index df577892f..6d813febf 100644 --- a/src/Surfnet/Stepup/Tests/Configuration/Value/LocationTest.php +++ b/src/Surfnet/Stepup/Tests/Configuration/Value/LocationTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Configuration\Value; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Configuration\Value\Location; class LocationTest extends UnitTest @@ -27,12 +27,13 @@ class LocationTest extends UnitTest * @test * @group domain * @dataProvider nonStringProvider - * @expectedException \Surfnet\Stepup\Exception\InvalidArgumentException * * @param mixed $nonString */ public function it_cannot_be_created_with_anything_but_a_string($nonString) { + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); + new Location($nonString); } diff --git a/src/Surfnet/Stepup/Tests/Configuration/Value/RaLocationIdTest.php b/src/Surfnet/Stepup/Tests/Configuration/Value/RaLocationIdTest.php index 0db3ce43d..720977b34 100644 --- a/src/Surfnet/Stepup/Tests/Configuration/Value/RaLocationIdTest.php +++ b/src/Surfnet/Stepup/Tests/Configuration/Value/RaLocationIdTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Configuration\Value; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Rhumsaa\Uuid\Uuid; use Surfnet\Stepup\Configuration\Value\RaLocationId; @@ -33,7 +33,7 @@ class RaLocationIdTest extends TestCase */ public function an_ra_location_id_cannot_be_created_with_anything_but_a_nonempty_string($nonStringOrEmptyString) { - $this->setExpectedException('Surfnet\Stepup\Exception\InvalidArgumentException'); + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); new RaLocationId($nonStringOrEmptyString); } @@ -43,7 +43,7 @@ public function an_ra_location_id_cannot_be_created_with_anything_but_a_nonempty */ public function an_ra_location_id_cannot_be_created_with_anything_but_a_uuid() { - $this->setExpectedException('Surfnet\Stepup\Exception\InvalidArgumentException'); + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); $nonUuid = 'this-is-not-a-uuid'; diff --git a/src/Surfnet/Stepup/Tests/Configuration/Value/RaLocationListTest.php b/src/Surfnet/Stepup/Tests/Configuration/Value/RaLocationListTest.php index a3ae8b4a3..e7c962b21 100644 --- a/src/Surfnet/Stepup/Tests/Configuration/Value/RaLocationListTest.php +++ b/src/Surfnet/Stepup/Tests/Configuration/Value/RaLocationListTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Configuration\Value; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Rhumsaa\Uuid\Uuid; use Surfnet\Stepup\Configuration\Value\ContactInformation; use Surfnet\Stepup\Configuration\Entity\RaLocation; @@ -35,7 +35,8 @@ class RaLocationListTest extends TestCase */ public function an_ra_location_list_does_not_allow_ra_locations_with_the_same_ra_location_id_upon_creation() { - $this->setExpectedException('Surfnet\Stepup\Exception\LogicException', 'Cannot add'); + $this->expectException(\Surfnet\Stepup\Exception\LogicException::class); + $this->expectExceptionMessage('Cannot add'); $raLocations = $this->getRaLocationsArray(); $existingRaLocation = $raLocations[0]; @@ -50,7 +51,8 @@ public function an_ra_location_list_does_not_allow_ra_locations_with_the_same_ra */ public function an_ra_location_list_does_not_allow_adding_ra_locations_with_an_ra_location_id_that_is_already_present() { - $this->setExpectedException('Surfnet\Stepup\Exception\LogicException', 'Cannot add'); + $this->expectException(\Surfnet\Stepup\Exception\LogicException::class); + $this->expectExceptionMessage('Cannot add'); $raLocations = $this->getRaLocationsArray(); $existingRaLocation = $raLocations[0]; diff --git a/src/Surfnet/Stepup/Tests/Configuration/Value/RaLocationNameTest.php b/src/Surfnet/Stepup/Tests/Configuration/Value/RaLocationNameTest.php index 8ce61b1a4..27b608e22 100644 --- a/src/Surfnet/Stepup/Tests/Configuration/Value/RaLocationNameTest.php +++ b/src/Surfnet/Stepup/Tests/Configuration/Value/RaLocationNameTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Configuration\Value; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Surfnet\Stepup\Configuration\Value\RaLocationName; class RaLocationNameTest extends TestCase @@ -27,12 +27,13 @@ class RaLocationNameTest extends TestCase * @test * @group domain * @dataProvider nonStringOrEmptyStringProvider - * @expectedException \Surfnet\Stepup\Exception\InvalidArgumentException * * @param mixed $nonStringOrEmptyString */ public function an_ra_location_name_cannot_be_created_with_anything_but_a_nonempty_string($nonStringOrEmptyString) { + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); + new RaLocationName($nonStringOrEmptyString); } diff --git a/src/Surfnet/Stepup/Tests/Configuration/Value/ShowRaaContactInformationOptionTest.php b/src/Surfnet/Stepup/Tests/Configuration/Value/ShowRaaContactInformationOptionTest.php index 553e5a4f1..7fedba303 100644 --- a/src/Surfnet/Stepup/Tests/Configuration/Value/ShowRaaContactInformationOptionTest.php +++ b/src/Surfnet/Stepup/Tests/Configuration/Value/ShowRaaContactInformationOptionTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Configuration\Value; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Surfnet\Stepup\Configuration\Value\ShowRaaContactInformationOption; class ShowRaaContactInformationOptionTest extends TestCase @@ -33,7 +33,7 @@ class ShowRaaContactInformationOptionTest extends TestCase */ public function show_raa_contact_information_option_can_only_be_boolean($nonBooleanProvider) { - $this->setExpectedException('Surfnet\Stepup\Exception\InvalidArgumentException'); + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); new ShowRaaContactInformationOption($nonBooleanProvider); } diff --git a/src/Surfnet/Stepup/Tests/Configuration/Value/UseRaLocationsOptionTest.php b/src/Surfnet/Stepup/Tests/Configuration/Value/UseRaLocationsOptionTest.php index b0ab2fd84..2261bfbe9 100644 --- a/src/Surfnet/Stepup/Tests/Configuration/Value/UseRaLocationsOptionTest.php +++ b/src/Surfnet/Stepup/Tests/Configuration/Value/UseRaLocationsOptionTest.php @@ -18,10 +18,10 @@ namespace Surfnet\Stepup\Tests\Configuration\Value; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Surfnet\Stepup\Configuration\Value\UseRaLocationsOption; -class UseRaLocationsTest extends TestCase +class UseRaLocationsOptionTest extends TestCase { /** * @test @@ -33,7 +33,7 @@ class UseRaLocationsTest extends TestCase */ public function use_ra_locations_option_can_only_be_boolean($nonBooleanProvider) { - $this->setExpectedException('Surfnet\Stepup\Exception\InvalidArgumentException'); + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); new UseRaLocationsOption($nonBooleanProvider); } diff --git a/src/Surfnet/Stepup/Tests/DateTime/DateTimeTest.php b/src/Surfnet/Stepup/Tests/DateTime/DateTimeTest.php index d19a272dd..e7d8f2afb 100644 --- a/src/Surfnet/Stepup/Tests/DateTime/DateTimeTest.php +++ b/src/Surfnet/Stepup/Tests/DateTime/DateTimeTest.php @@ -20,7 +20,7 @@ use DateInterval; use DateTime as CoreDateTime; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\DateTime\DateTime; class DateTimeTest extends UnitTest diff --git a/src/Surfnet/Stepup/Tests/Helper/JsonHelperTest.php b/src/Surfnet/Stepup/Tests/Helper/JsonHelperTest.php index 629f5c6fb..59917fa82 100644 --- a/src/Surfnet/Stepup/Tests/Helper/JsonHelperTest.php +++ b/src/Surfnet/Stepup/Tests/Helper/JsonHelperTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Helper; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Surfnet\Stepup\Exception\InvalidArgumentException; use Surfnet\Stepup\Exception\JsonException; use Surfnet\Stepup\Helper\JsonHelper; @@ -34,7 +34,7 @@ class JsonHelperTest extends TestCase */ public function json_helper_can_only_decode_strings($nonString) { - $this->setExpectedException(InvalidArgumentException::class); + $this->expectException(InvalidArgumentException::class); JsonHelper::decode($nonString); } @@ -59,7 +59,8 @@ public function json_helper_decodes_strings_to_arrays() */ public function json_helper_throws_an_exception_when_there_is_a_syntax_error() { - $this->setExpectedException(JsonException::class, 'Syntax error'); + $this->expectException(JsonException::class); + $this->expectExceptionMessage('Syntax error'); $jsonWithMissingDoubleQuotes = '{ hello : world }'; diff --git a/src/Surfnet/Stepup/Tests/Identity/Collection/InstitutionCollectionTest.php b/src/Surfnet/Stepup/Tests/Identity/Collection/InstitutionCollectionTest.php index fa3dc1bbd..958b20ae5 100644 --- a/src/Surfnet/Stepup/Tests/Identity/Collection/InstitutionCollectionTest.php +++ b/src/Surfnet/Stepup/Tests/Identity/Collection/InstitutionCollectionTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Identity\Collection; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Identity\Collection\InstitutionCollection; use Surfnet\Stepup\Identity\Value\Institution; @@ -31,8 +31,11 @@ class InstitutionCollectionTest extends UnitTest */ public function it_can_be_constructed_with_or_without_institutions() { - new InstitutionCollection($this->getInstitutions()); - new InstitutionCollection(); + $collection1 = new InstitutionCollection($this->getInstitutions()); + $collection2 = new InstitutionCollection(); + + $this->assertInstanceOf(InstitutionCollection::class, $collection1); + $this->assertInstanceOf(InstitutionCollection::class, $collection2); } /** @@ -72,10 +75,10 @@ public function it_allows_to_add_an_institution_that_it_does_not_already_contain * @test * @group domain * @group whitelist - * @expectedException \Surfnet\Stepup\Exception\RuntimeException */ public function an_institution_already_in_the_collection_cannot_be_added() { + $this->expectException(\Surfnet\Stepup\Exception\RuntimeException::class); $institutions = $this->getInstitutions(); $alreadyExists = $institutions[0]; @@ -106,10 +109,12 @@ public function an_institution_in_the_collection_can_be_removed() * @test * @group domain * @group whitelist - * @expectedException \Surfnet\Stepup\Exception\RuntimeException + * */ public function an_institution_not_in_the_collection_cannot_be_removed() { + $this->expectException(\Surfnet\Stepup\Exception\RuntimeException::class); + $institutions = $this->getInstitutions(); $notInCollection = new Institution('not in the collection'); diff --git a/src/Surfnet/Stepup/Tests/Identity/Entity/ConfigurableSettingsTest.php b/src/Surfnet/Stepup/Tests/Identity/Entity/ConfigurableSettingsTest.php index 79bb1cf06..853bcbffe 100644 --- a/src/Surfnet/Stepup/Tests/Identity/Entity/ConfigurableSettingsTest.php +++ b/src/Surfnet/Stepup/Tests/Identity/Entity/ConfigurableSettingsTest.php @@ -19,7 +19,7 @@ namespace Surfnet\Stepup\Tests\Identity\Entity; use DateTime as CoreDateTime; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\DateTime\DateTime; use Surfnet\Stepup\Identity\Entity\ConfigurableSettings; use Surfnet\Stepup\Identity\Value\Locale; diff --git a/src/Surfnet/Stepup/Tests/Identity/Entity/SecondFactorCollectionTest.php b/src/Surfnet/Stepup/Tests/Identity/Entity/SecondFactorCollectionTest.php index 3189fd7fc..142f748fb 100644 --- a/src/Surfnet/Stepup/Tests/Identity/Entity/SecondFactorCollectionTest.php +++ b/src/Surfnet/Stepup/Tests/Identity/Entity/SecondFactorCollectionTest.php @@ -19,7 +19,7 @@ namespace Surfnet\Stepup\Tests\Identity\Entity; use Mockery as m; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Identity\Entity\SecondFactorCollection; use Surfnet\Stepup\Identity\Entity\SecondFactor; use Surfnet\StepupBundle\Service\SecondFactorTypeService; diff --git a/src/Surfnet/Stepup/Tests/Identity/Event/EventSerializationAndDeserializationTest.php b/src/Surfnet/Stepup/Tests/Identity/Event/EventSerializationAndDeserializationTest.php index 4b93bb84f..54c39008c 100644 --- a/src/Surfnet/Stepup/Tests/Identity/Event/EventSerializationAndDeserializationTest.php +++ b/src/Surfnet/Stepup/Tests/Identity/Event/EventSerializationAndDeserializationTest.php @@ -18,9 +18,9 @@ namespace Surfnet\Stepup\Tests\Identity\Event; -use Broadway\Serializer\SerializableInterface; +use Broadway\Serializer\Serializable as SerializableInterface; use DateTime as CoreDateTime; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Rhumsaa\Uuid\Uuid; use Surfnet\Stepup\DateTime\DateTime; use Surfnet\Stepup\Identity\Event\AppointedAsRaaEvent; diff --git a/src/Surfnet/Stepup/Tests/Identity/Event/ForgettableEventsTest.php b/src/Surfnet/Stepup/Tests/Identity/Event/ForgettableEventsTest.php index fcfd1c8ee..f968af3ed 100644 --- a/src/Surfnet/Stepup/Tests/Identity/Event/ForgettableEventsTest.php +++ b/src/Surfnet/Stepup/Tests/Identity/Event/ForgettableEventsTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Identity\Event; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; final class ForgettableEventsTest extends TestCase { diff --git a/src/Surfnet/Stepup/Tests/Identity/Event/WhitelistEventSerializationAndDeserializationTest.php b/src/Surfnet/Stepup/Tests/Identity/Event/WhitelistEventSerializationAndDeserializationTest.php index 64beff0f6..744ad89ce 100644 --- a/src/Surfnet/Stepup/Tests/Identity/Event/WhitelistEventSerializationAndDeserializationTest.php +++ b/src/Surfnet/Stepup/Tests/Identity/Event/WhitelistEventSerializationAndDeserializationTest.php @@ -18,8 +18,8 @@ namespace Surfnet\Stepup\Tests\Identity\Event; -use Broadway\Serializer\SerializableInterface; -use PHPUnit_Framework_TestCase as UnitTest; +use Broadway\Serializer\Serializable as SerializableInterface; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Identity\Collection\InstitutionCollection; use Surfnet\Stepup\Identity\Event\InstitutionsAddedToWhitelistEvent; use Surfnet\Stepup\Identity\Event\InstitutionsRemovedFromWhitelistEvent; diff --git a/src/Surfnet/Stepup/Tests/Identity/Value/CommonNameTest.php b/src/Surfnet/Stepup/Tests/Identity/Value/CommonNameTest.php index 51880e7df..5d5e9b89d 100644 --- a/src/Surfnet/Stepup/Tests/Identity/Value/CommonNameTest.php +++ b/src/Surfnet/Stepup/Tests/Identity/Value/CommonNameTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Identity\Value; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Identity\Value\CommonName; class CommonNameTest extends UnitTest @@ -27,12 +27,13 @@ class CommonNameTest extends UnitTest * @test * @group domain * @dataProvider invalidArgumentProvider - * @expectedException \Surfnet\Stepup\Exception\InvalidArgumentException * * @param mixed $invalidValue */ public function the_common_name_address_must_be_a_non_empty_string($invalidValue) { + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); + new CommonName($invalidValue); } diff --git a/src/Surfnet/Stepup/Tests/Identity/Value/ContactInformationTest.php b/src/Surfnet/Stepup/Tests/Identity/Value/ContactInformationTest.php index 572f89359..e832ed502 100644 --- a/src/Surfnet/Stepup/Tests/Identity/Value/ContactInformationTest.php +++ b/src/Surfnet/Stepup/Tests/Identity/Value/ContactInformationTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Identity\Value; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Identity\Value\ContactInformation; class ContactInformationTest extends UnitTest @@ -27,12 +27,13 @@ class ContactInformationTest extends UnitTest * @test * @group domain * @dataProvider invalidValueProvider - * @expectedException \Surfnet\Stepup\Exception\InvalidArgumentException * * @param mixed $invalidValue */ public function it_cannot_be_created_with_anything_but_a_nonempty_string($invalidValue) { + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); + new ContactInformation($invalidValue); } diff --git a/src/Surfnet/Stepup/Tests/Identity/Value/DocumentNumberTest.php b/src/Surfnet/Stepup/Tests/Identity/Value/DocumentNumberTest.php index 1b334c4d5..71d79a299 100644 --- a/src/Surfnet/Stepup/Tests/Identity/Value/DocumentNumberTest.php +++ b/src/Surfnet/Stepup/Tests/Identity/Value/DocumentNumberTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Identity\Value; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Identity\Value\DocumentNumber; class DocumentNumberTest extends UnitTest @@ -27,12 +27,12 @@ class DocumentNumberTest extends UnitTest * @test * @group domain * @dataProvider invalidArgumentProvider - * @expectedException \Surfnet\Stepup\Exception\InvalidArgumentException * * @param mixed $invalidValue */ public function the_document_number_must_be_a_non_empty_string($invalidValue) { + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); new DocumentNumber($invalidValue); } diff --git a/src/Surfnet/Stepup/Tests/Identity/Value/EmailTest.php b/src/Surfnet/Stepup/Tests/Identity/Value/EmailTest.php index c0652260b..54ae3f7ea 100644 --- a/src/Surfnet/Stepup/Tests/Identity/Value/EmailTest.php +++ b/src/Surfnet/Stepup/Tests/Identity/Value/EmailTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Identity\Value; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Identity\Value\Email; class EmailTest extends UnitTest @@ -27,12 +27,12 @@ class EmailTest extends UnitTest * @test * @group domain * @dataProvider invalidArgumentProvider - * @expectedException \Surfnet\Stepup\Exception\InvalidArgumentException * * @param mixed $invalidValue */ public function the_email_address_must_be_a_non_empty_string($invalidValue) { + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); new Email($invalidValue); } @@ -40,11 +40,12 @@ public function the_email_address_must_be_a_non_empty_string($invalidValue) * @test * @group domain * @dataProvider invalidEmailProvider - * @expectedException \Surfnet\Stepup\Exception\InvalidArgumentException * @param $invalidValue */ public function the_email_address_given_must_be_rfc_822_compliant($invalidValue) { + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); + new Email($invalidValue); } diff --git a/src/Surfnet/Stepup/Tests/Identity/Value/EmailVerificationWindowTest.php b/src/Surfnet/Stepup/Tests/Identity/Value/EmailVerificationWindowTest.php index 7ca3b7857..171e6cf7c 100644 --- a/src/Surfnet/Stepup/Tests/Identity/Value/EmailVerificationWindowTest.php +++ b/src/Surfnet/Stepup/Tests/Identity/Value/EmailVerificationWindowTest.php @@ -20,12 +20,13 @@ use DateInterval; use DateTime as CoreDateTime; +use PHPUnit\Framework\TestCase; use Surfnet\Stepup\DateTime\DateTime; use Surfnet\Stepup\Identity\Value\EmailVerificationWindow; use Surfnet\Stepup\Identity\Value\TimeFrame; use Surfnet\StepupMiddleware\CommandHandlingBundle\Tests\DateTimeHelper; -class EmailVerificationWindowTest extends \PHPUnit_Framework_TestCase +class EmailVerificationWindowTest extends TestCase { /** * @test diff --git a/src/Surfnet/Stepup/Tests/Identity/Value/GssfIdTest.php b/src/Surfnet/Stepup/Tests/Identity/Value/GssfIdTest.php index e7ed28baa..8287d246d 100644 --- a/src/Surfnet/Stepup/Tests/Identity/Value/GssfIdTest.php +++ b/src/Surfnet/Stepup/Tests/Identity/Value/GssfIdTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Identity\Value; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Identity\Value\GssfId; class GssfIdTest extends UnitTest @@ -27,12 +27,13 @@ class GssfIdTest extends UnitTest * @test * @group domain * @dataProvider invalidValueProvider - * @expectedException \Surfnet\Stepup\Exception\InvalidArgumentException * * @param mixed $invalidValue */ public function a_gssf_id_cannot_be_created_with_anything_but_a_nonempty_string($invalidValue) { + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); + new GssfId($invalidValue); } diff --git a/src/Surfnet/Stepup/Tests/Identity/Value/InstitutionTest.php b/src/Surfnet/Stepup/Tests/Identity/Value/InstitutionTest.php index 0394ae22c..f058901dd 100644 --- a/src/Surfnet/Stepup/Tests/Identity/Value/InstitutionTest.php +++ b/src/Surfnet/Stepup/Tests/Identity/Value/InstitutionTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Identity\Value; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Identity\Value\Institution; class InstitutionTest extends UnitTest @@ -27,12 +27,13 @@ class InstitutionTest extends UnitTest * @test * @group domain * @dataProvider invalidValueProvider - * @expectedException \Surfnet\Stepup\Exception\InvalidArgumentException * * @param mixed $invalidValue */ public function an_institution_cannot_be_created_with_anything_but_a_nonempty_string($invalidValue) { + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); + new Institution($invalidValue); } diff --git a/src/Surfnet/Stepup/Tests/Identity/Value/LocationTest.php b/src/Surfnet/Stepup/Tests/Identity/Value/LocationTest.php index e4bff4bf8..a3138c044 100644 --- a/src/Surfnet/Stepup/Tests/Identity/Value/LocationTest.php +++ b/src/Surfnet/Stepup/Tests/Identity/Value/LocationTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Identity\Value; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Identity\Value\Location; class LocationTest extends UnitTest @@ -27,12 +27,13 @@ class LocationTest extends UnitTest * @test * @group domain * @dataProvider invalidValueProvider - * @expectedException \Surfnet\Stepup\Exception\InvalidArgumentException * * @param mixed $invalidValue */ public function it_cannot_be_created_with_anything_but_a_nonempty_string($invalidValue) { + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); + new Location($invalidValue); } diff --git a/src/Surfnet/Stepup/Tests/Identity/Value/PhoneNumberTest.php b/src/Surfnet/Stepup/Tests/Identity/Value/PhoneNumberTest.php index 5dff34381..47ce75305 100644 --- a/src/Surfnet/Stepup/Tests/Identity/Value/PhoneNumberTest.php +++ b/src/Surfnet/Stepup/Tests/Identity/Value/PhoneNumberTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Identity\Value; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Identity\Value\PhoneNumber; class PhoneNumberTest extends UnitTest @@ -27,12 +27,13 @@ class PhoneNumberTest extends UnitTest * @test * @group domain * @dataProvider invalidValueProvider - * @expectedException \Surfnet\Stepup\Exception\InvalidArgumentException * * @param mixed $invalidValue */ public function a_phone_number_cannot_be_created_with_anything_but_a_nonempty_string($invalidValue) { + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); + new PhoneNumber($invalidValue); } diff --git a/src/Surfnet/Stepup/Tests/Identity/Value/RegistrationAuthorityRoleTest.php b/src/Surfnet/Stepup/Tests/Identity/Value/RegistrationAuthorityRoleTest.php index 2c4e395c4..c942ad277 100644 --- a/src/Surfnet/Stepup/Tests/Identity/Value/RegistrationAuthorityRoleTest.php +++ b/src/Surfnet/Stepup/Tests/Identity/Value/RegistrationAuthorityRoleTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Identity\Value; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Identity\Value\RegistrationAuthorityRole; class RegistrationAuthorityRoleTest extends UnitTest @@ -27,12 +27,13 @@ class RegistrationAuthorityRoleTest extends UnitTest * @test * @group domain * @dataProvider invalidValueProvider - * @expectedException \Surfnet\Stepup\Exception\InvalidArgumentException * * @param mixed $invalidValue */ public function it_cannot_be_created_with_anything_but_a_valid_role($invalidValue) { + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); + new RegistrationAuthorityRole($invalidValue); } diff --git a/src/Surfnet/Stepup/Tests/Identity/Value/SecondFactorIdentifierFactoryTest.php b/src/Surfnet/Stepup/Tests/Identity/Value/SecondFactorIdentifierFactoryTest.php index 69613e67a..c7bbdbcd5 100644 --- a/src/Surfnet/Stepup/Tests/Identity/Value/SecondFactorIdentifierFactoryTest.php +++ b/src/Surfnet/Stepup/Tests/Identity/Value/SecondFactorIdentifierFactoryTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Identity\Value; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Surfnet\Stepup\Identity\Value\GssfId; use Surfnet\Stepup\Identity\Value\PhoneNumber; use Surfnet\Stepup\Identity\Value\SecondFactorIdentifierFactory; diff --git a/src/Surfnet/Stepup/Tests/Identity/Value/StepupProviderTest.php b/src/Surfnet/Stepup/Tests/Identity/Value/StepupProviderTest.php index 72a9082e9..81a199cf5 100644 --- a/src/Surfnet/Stepup/Tests/Identity/Value/StepupProviderTest.php +++ b/src/Surfnet/Stepup/Tests/Identity/Value/StepupProviderTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Identity\Value; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Identity\Value\StepupProvider; class StepupProviderTest extends UnitTest @@ -27,12 +27,13 @@ class StepupProviderTest extends UnitTest * @test * @group domain * @dataProvider invalidValueProvider - * @expectedException \Surfnet\Stepup\Exception\InvalidArgumentException * * @param mixed $invalidValue */ public function a_stepup_provider_cannot_be_created_with_anything_but_a_nonempty_string($invalidValue) { + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); + new StepupProvider($invalidValue); } diff --git a/src/Surfnet/Stepup/Tests/Identity/Value/TimeFrameTest.php b/src/Surfnet/Stepup/Tests/Identity/Value/TimeFrameTest.php index e113d3f8e..98bb4ebbd 100644 --- a/src/Surfnet/Stepup/Tests/Identity/Value/TimeFrameTest.php +++ b/src/Surfnet/Stepup/Tests/Identity/Value/TimeFrameTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Identity\Value; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Identity\Value\TimeFrame; class TimeFrameTest extends UnitTest @@ -27,11 +27,11 @@ class TimeFrameTest extends UnitTest * @test * @group domain * @dataProvider invalidValueProvider - * - * @expectedException \Surfnet\Stepup\Exception\InvalidArgumentException */ public function it_cannot_be_given_an_non_positive_amount_of_seconds($invalidValue) { + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); + TimeFrame::ofSeconds($invalidValue); } diff --git a/src/Surfnet/Stepup/Tests/Identity/Value/YubikeyPublicIdTest.php b/src/Surfnet/Stepup/Tests/Identity/Value/YubikeyPublicIdTest.php index 6ac591e0a..81840b8ee 100644 --- a/src/Surfnet/Stepup/Tests/Identity/Value/YubikeyPublicIdTest.php +++ b/src/Surfnet/Stepup/Tests/Identity/Value/YubikeyPublicIdTest.php @@ -18,7 +18,7 @@ namespace Surfnet\Stepup\Tests\Identity\Value; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Identity\Value\YubikeyPublicId; class YubikeyPublicIdTest extends UnitTest @@ -57,12 +57,13 @@ public function invalidFormatProvider() * @test * @group domain * @dataProvider invalidFormatProvider - * @expectedException Surfnet\Stepup\Exception\InvalidArgumentException * * @param mixed $invalidFormat */ public function it_cannot_be_constructed_with_an_invalid_format($invalidFormat) { + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); + new YubikeyPublicId($invalidFormat); } diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Authorization/Repository/AuthorizationRepositoryFactory.php b/src/Surfnet/StepupMiddleware/ApiBundle/Authorization/Repository/AuthorizationRepositoryFactory.php deleted file mode 100644 index bdbb4f071..000000000 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Authorization/Repository/AuthorizationRepositoryFactory.php +++ /dev/null @@ -1,58 +0,0 @@ -entityManager = $entityManager; - $this->filter = $filter; - } - - /** - * @param string $entityName - * @return \Doctrine\Common\Persistence\ObjectRepository - */ - public function getRepository($entityName) - { - /* @var $metadata \Doctrine\ORM\Mapping\ClassMetadata */ - $metadata = $this->entityManager->getClassMetadata($entityName); - $repositoryClassName = $metadata->customRepositoryClassName - ?: $this->entityManager->getConfiguration()->getDefaultRepositoryClassName(); - - return new $repositoryClassName($this->entityManager, $metadata, $this->filter); - } -} diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Entity/AllowedSecondFactor.php b/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Entity/AllowedSecondFactor.php index 8bf10b51b..5a4623a62 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Entity/AllowedSecondFactor.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Entity/AllowedSecondFactor.php @@ -27,7 +27,7 @@ * repositoryClass="Surfnet\StepupMiddleware\ApiBundle\Configuration\Repository\AllowedSecondFactorRepository" * ) */ -final class AllowedSecondFactor +class AllowedSecondFactor { /** * @ORM\Id diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Entity/ConfiguredInstitution.php b/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Entity/ConfiguredInstitution.php index 9202a2e70..e4d3a8260 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Entity/ConfiguredInstitution.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Entity/ConfiguredInstitution.php @@ -26,7 +26,7 @@ * repositoryClass="Surfnet\StepupMiddleware\ApiBundle\Configuration\Repository\ConfiguredInstitutionRepository" * ) */ -final class ConfiguredInstitution +class ConfiguredInstitution { /** * @ORM\Id diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Repository/AllowedSecondFactorRepository.php b/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Repository/AllowedSecondFactorRepository.php index 952ca6296..37d7d2142 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Repository/AllowedSecondFactorRepository.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Repository/AllowedSecondFactorRepository.php @@ -18,12 +18,18 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Configuration\Repository; -use Doctrine\ORM\EntityRepository; +use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; +use Doctrine\Common\Persistence\ManagerRegistry; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\StepupMiddleware\ApiBundle\Configuration\Entity\AllowedSecondFactor; -final class AllowedSecondFactorRepository extends EntityRepository +final class AllowedSecondFactorRepository extends ServiceEntityRepository { + public function __construct(ManagerRegistry $registry) + { + parent::__construct($registry, AllowedSecondFactor::class); + } + public function save(AllowedSecondFactor $allowedSecondFactor) { $entityManager = $this->getEntityManager(); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Repository/ConfiguredInstitutionRepository.php b/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Repository/ConfiguredInstitutionRepository.php index 082854622..b66851bb3 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Repository/ConfiguredInstitutionRepository.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Repository/ConfiguredInstitutionRepository.php @@ -18,12 +18,18 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Configuration\Repository; -use Doctrine\ORM\EntityRepository; +use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; +use Doctrine\Common\Persistence\ManagerRegistry; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\StepupMiddleware\ApiBundle\Configuration\Entity\ConfiguredInstitution; -class ConfiguredInstitutionRepository extends EntityRepository +class ConfiguredInstitutionRepository extends ServiceEntityRepository { + public function __construct(ManagerRegistry $registry) + { + parent::__construct($registry, ConfiguredInstitution::class); + } + /** * @param ConfiguredInstitution $configuredInstitution */ diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Repository/InstitutionAuthorizationRepository.php b/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Repository/InstitutionAuthorizationRepository.php index def4a4ab6..b22d903ac 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Repository/InstitutionAuthorizationRepository.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Repository/InstitutionAuthorizationRepository.php @@ -18,15 +18,20 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Configuration\Repository; +use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; +use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\ORM\EntityManager; -use Doctrine\ORM\EntityRepository; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\Stepup\Configuration\Value\InstitutionAuthorizationOption; use Surfnet\Stepup\Configuration\Value\InstitutionRole; use Surfnet\StepupMiddleware\ApiBundle\Configuration\Entity\InstitutionAuthorization; -class InstitutionAuthorizationRepository extends EntityRepository +class InstitutionAuthorizationRepository extends ServiceEntityRepository { + public function __construct(ManagerRegistry $registry) + { + parent::__construct($registry, InstitutionAuthorization::class); + } /** * @param Institution $institution diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Repository/InstitutionConfigurationOptionsRepository.php b/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Repository/InstitutionConfigurationOptionsRepository.php index a32afbfea..ad882684a 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Repository/InstitutionConfigurationOptionsRepository.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Repository/InstitutionConfigurationOptionsRepository.php @@ -18,14 +18,19 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Configuration\Repository; -use Doctrine\ORM\EntityRepository; +use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; +use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\ORM\NonUniqueResultException; -use Doctrine\ORM\NoResultException; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\StepupMiddleware\ApiBundle\Configuration\Entity\InstitutionConfigurationOptions; -class InstitutionConfigurationOptionsRepository extends EntityRepository +class InstitutionConfigurationOptionsRepository extends ServiceEntityRepository { + public function __construct(ManagerRegistry $registry) + { + parent::__construct($registry, InstitutionConfigurationOptions::class); + } + /** * @param Institution $institution * @return InstitutionConfigurationOptions diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Repository/RaLocationRepository.php b/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Repository/RaLocationRepository.php index 7e358a427..edbc76e92 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Repository/RaLocationRepository.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Configuration/Repository/RaLocationRepository.php @@ -18,15 +18,21 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Configuration\Repository; -use Doctrine\ORM\EntityRepository; +use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; +use Doctrine\Common\Persistence\ManagerRegistry; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\Stepup\Configuration\Value\RaLocationId; use Surfnet\StepupMiddleware\ApiBundle\Configuration\Entity\RaLocation; use Surfnet\StepupMiddleware\ApiBundle\Configuration\Query\RaLocationQuery; use Surfnet\StepupMiddleware\ApiBundle\Exception\RuntimeException; -class RaLocationRepository extends EntityRepository +class RaLocationRepository extends ServiceEntityRepository { + public function __construct(ManagerRegistry $registry) + { + parent::__construct($registry, RaLocation::class); + } + /** * @param RaLocationQuery $query * @return null|RaLocation[] diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Controller/CommandController.php b/src/Surfnet/StepupMiddleware/ApiBundle/Controller/CommandController.php index 02e0f8558..da28b49f5 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Controller/CommandController.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Controller/CommandController.php @@ -35,6 +35,7 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; use Symfony\Component\Security\Core\Authorization\AuthorizationChecker; +use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface; /** * @SuppressWarnings(PHPMD.CouplingBetweenObjects) @@ -76,7 +77,7 @@ public function __construct( TransactionAwarePipeline $pipeline, WhitelistService $whitelistService, MetadataEnricher $enricher, - AuthorizationChecker $authorizationChecker, + AuthorizationCheckerInterface $authorizationChecker, LoggerInterface $logger, CommandAuthorizationService $commandAuthorizationService ) { diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/EventListener/ExceptionListener.php b/src/Surfnet/StepupMiddleware/ApiBundle/EventListener/ExceptionListener.php index 1c692866c..15cd2d273 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/EventListener/ExceptionListener.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/EventListener/ExceptionListener.php @@ -19,15 +19,15 @@ namespace Surfnet\StepupMiddleware\ApiBundle\EventListener; use Broadway\Repository\AggregateNotFoundException; -use Exception; use Psr\Log\LoggerInterface; use Surfnet\Stepup\Exception\DomainException; use Surfnet\StepupMiddleware\ApiBundle\Exception\BadApiRequestException; use Surfnet\StepupMiddleware\ApiBundle\Exception\BadCommandRequestException; use Surfnet\StepupMiddleware\CommandHandlingBundle\Pipeline\Exception\InvalidCommandException; use Symfony\Component\HttpFoundation\JsonResponse; -use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent; +use Symfony\Component\HttpKernel\Event\ExceptionEvent; use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface; +use Throwable; /** * Converts all exceptions into JSON responses. @@ -44,56 +44,56 @@ public function __construct(LoggerInterface $logger) $this->logger = $logger; } - public function onKernelException(GetResponseForExceptionEvent $event) + public function onKernelException(ExceptionEvent $event) { - $exception = $event->getException(); + $throwable = $event->getThrowable(); - $this->logException($exception); + $this->logException($throwable); - if ($exception instanceof HttpExceptionInterface && $exception instanceof Exception) { - $statusCode = $exception->getStatusCode(); - $headers = $exception->getHeaders(); + if ($throwable instanceof HttpExceptionInterface && $throwable instanceof Throwable) { + $statusCode = $throwable->getStatusCode(); + $headers = $throwable->getHeaders(); } else { - $statusCode = $exception instanceof BadApiRequestException - || $exception instanceof BadCommandRequestException - || $exception instanceof DomainException - || $exception instanceof AggregateNotFoundException + $statusCode = $throwable instanceof BadApiRequestException + || $throwable instanceof BadCommandRequestException + || $throwable instanceof DomainException + || $throwable instanceof AggregateNotFoundException ? 400 : 500; $headers = []; } - $event->setResponse($this->createJsonErrorResponse($exception, $statusCode, $headers)); + $event->setResponse($this->createJsonErrorResponse($throwable, $statusCode, $headers)); } - private function logException(Exception $exception) + private function logException(Throwable $throwable) { # As per \Symfony\Component\HttpKernel\EventListener\ExceptionListener#logException(). - $isCritical = !$exception instanceof HttpExceptionInterface || $exception->getStatusCode() >= 500; + $isCritical = !$throwable instanceof HttpExceptionInterface || $throwable->getStatusCode() >= 500; if ($isCritical) { - $this->logger->critical($exception->getMessage(), ['exception' => $exception]); + $this->logger->critical($throwable->getMessage(), ['exception' => $throwable]); } else { - $this->logger->error($exception->getMessage(), ['exception' => $exception]); + $this->logger->error($throwable->getMessage(), ['exception' => $throwable]); } } /** - * @param Exception $exception + * @param Throwable $exception * @param int $statusCode * @param array $headers OPTIONAL * @return JsonResponse */ - private function createJsonErrorResponse(Exception $exception, $statusCode, $headers = []) + private function createJsonErrorResponse(Throwable $throwable, $statusCode, $headers = []) { - if ($exception instanceof BadApiRequestException - || $exception instanceof BadCommandRequestException - || $exception instanceof InvalidCommandException + if ($throwable instanceof BadApiRequestException + || $throwable instanceof BadCommandRequestException + || $throwable instanceof InvalidCommandException ) { - $errors = $exception->getErrors(); + $errors = $throwable->getErrors(); } else { - $errors = [sprintf('%s: %s', get_class($exception), $exception->getMessage())]; + $errors = [sprintf('%s: %s', get_class($throwable), $throwable->getMessage())]; } return new JsonResponse(['errors' => $errors], $statusCode, $headers); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Entity/AuditLogEntry.php b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Entity/AuditLogEntry.php index 4337504e2..acedf0767 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Entity/AuditLogEntry.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Entity/AuditLogEntry.php @@ -44,7 +44,7 @@ class AuditLogEntry implements JsonSerializable * * @var string[] */ - private static $eventActionMap = [ + private $eventActionMap = [ 'Surfnet\Stepup\Identity\Event\CompliedWithUnverifiedSecondFactorRevocationEvent' => 'revoked_by_ra', 'Surfnet\Stepup\Identity\Event\CompliedWithVerifiedSecondFactorRevocationEvent' => 'revoked_by_ra', 'Surfnet\Stepup\Identity\Event\CompliedWithVettedSecondFactorRevocationEvent' => 'revoked_by_ra', @@ -189,10 +189,10 @@ public function jsonSerialize() */ private function mapEventToAction($event) { - if (!isset(self::$eventActionMap[$event])) { + if (!isset($this->eventActionMap[$event])) { throw new LogicException(sprintf("Action name for event '%s' not registered", $event)); } - return self::$eventActionMap[$event]; + return $this->eventActionMap[$event]; } } diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Entity/VerifiedSecondFactor.php b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Entity/VerifiedSecondFactor.php index 2d91e32ce..771ad37af 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Entity/VerifiedSecondFactor.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Entity/VerifiedSecondFactor.php @@ -83,7 +83,7 @@ class VerifiedSecondFactor implements \JsonSerializable public $registrationCode; /** - * @ORM\Column(type="datetime") + * @ORM\Column(type="stepup_datetime") * * @var \DateTime */ diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Projector/AuditLogProjector.php b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Projector/AuditLogProjector.php index 39fe3da02..7e8182485 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Projector/AuditLogProjector.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Projector/AuditLogProjector.php @@ -19,7 +19,7 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Identity\Projector; use Broadway\Domain\DomainMessage; -use Broadway\ReadModel\ProjectorInterface; +use Broadway\EventHandling\EventListener; use DateTime as CoreDateTime; use Rhumsaa\Uuid\Uuid; use Surfnet\Stepup\DateTime\DateTime; @@ -31,7 +31,7 @@ use Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\AuditLogRepository; use Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\IdentityRepository; -class AuditLogProjector implements ProjectorInterface +class AuditLogProjector implements EventListener { /** * @var \Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\AuditLogRepository @@ -54,7 +54,7 @@ public function __construct( /** * @param DomainMessage $domainMessage */ - public function handle(DomainMessage $domainMessage) + public function handle(DomainMessage $domainMessage): void { $event = $domainMessage->getPayload(); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/AuditLogRepository.php b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/AuditLogRepository.php index 71ef44db6..36c58e5ed 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/AuditLogRepository.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/AuditLogRepository.php @@ -18,15 +18,21 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Identity\Repository; -use Doctrine\ORM\EntityRepository; +use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; +use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\ORM\Query; use Surfnet\Stepup\Identity\Value\IdentityId; use Surfnet\StepupMiddleware\ApiBundle\Exception\RuntimeException; use Surfnet\StepupMiddleware\ApiBundle\Identity\Entity\AuditLogEntry; use Surfnet\StepupMiddleware\ApiBundle\Identity\Query\SecondFactorAuditLogQuery; -class AuditLogRepository extends EntityRepository +class AuditLogRepository extends ServiceEntityRepository { + public function __construct(ManagerRegistry $registry) + { + parent::__construct($registry, AuditLogEntry::class); + } + /** * An array of event FQCNs that pertain to second factors (verification, vetting, revocation etc.). * diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/AuthorizationRepository.php b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/AuthorizationRepository.php index 818246bcd..ed3da6c69 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/AuthorizationRepository.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/AuthorizationRepository.php @@ -18,6 +18,8 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Identity\Repository; +use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; +use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\ORM\EntityManager; use Doctrine\ORM\Query\Expr\Join; use Surfnet\Stepup\Configuration\Value\InstitutionRole; @@ -26,19 +28,15 @@ use Surfnet\Stepup\Identity\Value\Institution; use Surfnet\StepupMiddleware\ApiBundle\Configuration\Entity\ConfiguredInstitution; use Surfnet\StepupMiddleware\ApiBundle\Configuration\Entity\InstitutionAuthorization; +use Surfnet\StepupMiddleware\ApiBundle\Identity\Entity\AuditLogEntry; use Surfnet\StepupMiddleware\ApiBundle\Identity\Entity\RaListing; use Surfnet\StepupMiddleware\ApiBundle\Identity\Value\AuthorityRole; -class AuthorizationRepository +class AuthorizationRepository extends ServiceEntityRepository { - /** - * @var EntityManager - */ - private $entityManager; - - public function __construct(EntityManager $entityManager) + public function __construct(ManagerRegistry $registry) { - $this->entityManager = $entityManager; + parent::__construct($registry, AuditLogEntry::class); } /** @@ -51,7 +49,7 @@ public function __construct(EntityManager $entityManager) */ public function getInstitutionsForRole(InstitutionRole $role, IdentityId $actorId) { - $qb = $this->entityManager->createQueryBuilder() + $qb = $this->_em->createQueryBuilder() ->select("a.institution") ->from(ConfiguredInstitution::class, 'i') ->innerJoin(RaListing::class, 'r', Join::WITH, "i.institution = r.raInstitution") diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/IdentityRepository.php b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/IdentityRepository.php index cf2173f6b..18cd4f5b8 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/IdentityRepository.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/IdentityRepository.php @@ -18,10 +18,9 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Identity\Repository; +use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\Common\Collections\ArrayCollection; -use Doctrine\ORM\EntityManager; -use Doctrine\ORM\EntityRepository; -use Doctrine\ORM\Mapping; +use Doctrine\Common\Persistence\ManagerRegistry; use Surfnet\Stepup\Identity\Value\IdentityId; use Surfnet\Stepup\Identity\Value\Institution; use Surfnet\Stepup\Identity\Value\NameId; @@ -29,27 +28,26 @@ use Surfnet\StepupMiddleware\ApiBundle\Identity\Entity\Identity; use Surfnet\StepupMiddleware\ApiBundle\Identity\Query\IdentityQuery; -class IdentityRepository extends EntityRepository +class IdentityRepository extends ServiceEntityRepository { /** * @var InstitutionAuthorizationRepositoryFilter */ private $authorizationRepositoryFilter; - public function __construct( - EntityManager $em, - Mapping\ClassMetadata $class, - InstitutionAuthorizationRepositoryFilter $authorizationRepositoryFilter - ) { - parent::__construct($em, $class); + public function __construct(ManagerRegistry $registry, InstitutionAuthorizationRepositoryFilter $authorizationRepositoryFilter) + { + parent::__construct($registry, Identity::class); $this->authorizationRepositoryFilter = $authorizationRepositoryFilter; } /** * @param string $id + * @param null $lockMode + * @param null $lockVersion * @return Identity|null */ - public function find($id) + public function find($id, $lockMode = null, $lockVersion = null) { /** @var Identity|null $identity */ $identity = parent::find($id); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/InstitutionListingRepository.php b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/InstitutionListingRepository.php index 8e372dde9..38c0d8b1b 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/InstitutionListingRepository.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/InstitutionListingRepository.php @@ -18,7 +18,8 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Identity\Repository; -use Doctrine\ORM\EntityRepository; +use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; +use Doctrine\Common\Persistence\ManagerRegistry; use Surfnet\Stepup\Identity\Value\Institution; use Surfnet\StepupMiddleware\ApiBundle\Identity\Entity\InstitutionListing; @@ -26,8 +27,13 @@ * @deprecated This could probably be removed and is only used in migrations * @see app/DoctrineMigrations/Version20160719090052.php#L51 */ -class InstitutionListingRepository extends EntityRepository +class InstitutionListingRepository extends ServiceEntityRepository { + public function __construct(ManagerRegistry $registry) + { + parent::__construct($registry, InstitutionListing::class); + } + public function save(InstitutionListing $institution) { $this->getEntityManager()->persist($institution); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/RaCandidateRepository.php b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/RaCandidateRepository.php index e4c3bbd88..37769eb50 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/RaCandidateRepository.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/RaCandidateRepository.php @@ -18,9 +18,8 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Identity\Repository; -use Doctrine\ORM\EntityManager; -use Doctrine\ORM\EntityRepository; -use Doctrine\ORM\Mapping; +use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; +use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\ORM\Query\Expr\Join; use Surfnet\StepupMiddleware\ApiBundle\Authorization\Filter\InstitutionAuthorizationRepositoryFilter; use Surfnet\StepupMiddleware\ApiBundle\Authorization\Value\InstitutionAuthorizationContextInterface; @@ -35,19 +34,16 @@ * @SuppressWarnings(PHPMD.CouplingBetweenObjects) * @SuppressWarnings(PHPMD.TooManyPublicMethods) */ -class RaCandidateRepository extends EntityRepository +class RaCandidateRepository extends ServiceEntityRepository { /** * @var InstitutionAuthorizationRepositoryFilter */ private $authorizationRepositoryFilter; - public function __construct( - EntityManager $em, - Mapping\ClassMetadata $class, - InstitutionAuthorizationRepositoryFilter $authorizationRepositoryFilter - ) { - parent::__construct($em, $class); + public function __construct(ManagerRegistry $registry, InstitutionAuthorizationRepositoryFilter $authorizationRepositoryFilter) + { + parent::__construct($registry, RaCandidate::class); $this->authorizationRepositoryFilter = $authorizationRepositoryFilter; } diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/RaListingRepository.php b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/RaListingRepository.php index 433123ccc..30e7bb54f 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/RaListingRepository.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/RaListingRepository.php @@ -18,10 +18,9 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Identity\Repository; +use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\Common\Collections\ArrayCollection; -use Doctrine\ORM\EntityManager; -use Doctrine\ORM\EntityRepository; -use Doctrine\ORM\Mapping; +use Doctrine\Common\Persistence\ManagerRegistry; use Surfnet\Stepup\Identity\Value\IdentityId; use Surfnet\Stepup\Identity\Value\Institution; use Surfnet\StepupMiddleware\ApiBundle\Authorization\Filter\InstitutionAuthorizationRepositoryFilter; @@ -33,19 +32,16 @@ /** * @SuppressWarnings(PHPMD.TooManyPublicMethods) */ -class RaListingRepository extends EntityRepository +class RaListingRepository extends ServiceEntityRepository { /** * @var InstitutionAuthorizationRepositoryFilter */ private $authorizationRepositoryFilter; - public function __construct( - EntityManager $em, - Mapping\ClassMetadata $class, - InstitutionAuthorizationRepositoryFilter $authorizationRepositoryFilter - ) { - parent::__construct($em, $class); + public function __construct(ManagerRegistry $registry, InstitutionAuthorizationRepositoryFilter $authorizationRepositoryFilter) + { + parent::__construct($registry, RaListing::class); $this->authorizationRepositoryFilter = $authorizationRepositoryFilter; } diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/RaSecondFactorRepository.php b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/RaSecondFactorRepository.php index b527a7c4b..411fbe61f 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/RaSecondFactorRepository.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/RaSecondFactorRepository.php @@ -18,10 +18,9 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Identity\Repository; +use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; +use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\DBAL\Types\Type; -use Doctrine\ORM\EntityManager; -use Doctrine\ORM\EntityRepository; -use Doctrine\ORM\Mapping; use Doctrine\ORM\Query; use Surfnet\Stepup\Exception\RuntimeException; use Surfnet\Stepup\Identity\Value\IdentityId; @@ -31,19 +30,16 @@ use Surfnet\StepupMiddleware\ApiBundle\Identity\Query\RaSecondFactorQuery; use Surfnet\StepupMiddleware\ApiBundle\Identity\Value\SecondFactorStatus; -class RaSecondFactorRepository extends EntityRepository +class RaSecondFactorRepository extends ServiceEntityRepository { /** * @var InstitutionAuthorizationRepositoryFilter */ private $authorizationRepositoryFilter; - public function __construct( - EntityManager $em, - Mapping\ClassMetadata $class, - InstitutionAuthorizationRepositoryFilter $authorizationRepositoryFilter - ) { - parent::__construct($em, $class); + public function __construct(ManagerRegistry $registry, InstitutionAuthorizationRepositoryFilter $authorizationRepositoryFilter) + { + parent::__construct($registry, RaSecondFactor::class); $this->authorizationRepositoryFilter = $authorizationRepositoryFilter; } @@ -52,7 +48,7 @@ public function __construct( * @param string $id * @return RaSecondFactor|null */ - public function find($id) + public function find($id, $lockMode = null, $lockVersion = null) { /** @var RaSecondFactor|null $secondFactor */ $secondFactor = parent::find($id); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/SecondFactorRevocationRepository.php b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/SecondFactorRevocationRepository.php index 3889d8db1..6245baeab 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/SecondFactorRevocationRepository.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/SecondFactorRevocationRepository.php @@ -18,12 +18,17 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Identity\Repository; -use Doctrine\ORM\EntityRepository; -use Doctrine\ORM\Query; +use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; +use Doctrine\Common\Persistence\ManagerRegistry; use Surfnet\StepupMiddleware\ApiBundle\Identity\Entity\SecondFactorRevocation; -class SecondFactorRevocationRepository extends EntityRepository +class SecondFactorRevocationRepository extends ServiceEntityRepository { + public function __construct(ManagerRegistry $registry) + { + parent::__construct($registry, SecondFactorRevocation::class); + } + /** * @param SecondFactorRevocation $revocation */ diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/SraaRepository.php b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/SraaRepository.php index 8bd86e4bf..f1700a26d 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/SraaRepository.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/SraaRepository.php @@ -18,13 +18,19 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Identity\Repository; -use Doctrine\ORM\EntityRepository; +use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; +use Doctrine\Common\Persistence\ManagerRegistry; use Surfnet\Stepup\Identity\Value\NameId; use Surfnet\StepupMiddleware\ApiBundle\Exception\InvalidArgumentException; use Surfnet\StepupMiddleware\ApiBundle\Identity\Entity\Sraa; -class SraaRepository extends EntityRepository +class SraaRepository extends ServiceEntityRepository { + public function __construct(ManagerRegistry $registry) + { + parent::__construct($registry, Sraa::class); + } + /** * Removes all SRAA's from the database */ diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/UnverifiedSecondFactorRepository.php b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/UnverifiedSecondFactorRepository.php index b2f1aacd2..cb8c78f55 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/UnverifiedSecondFactorRepository.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/UnverifiedSecondFactorRepository.php @@ -18,19 +18,27 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Identity\Repository; -use Doctrine\ORM\EntityRepository; +use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; +use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\ORM\Query; use Surfnet\Stepup\Identity\Value\IdentityId; use Surfnet\StepupMiddleware\ApiBundle\Identity\Entity\UnverifiedSecondFactor; use Surfnet\StepupMiddleware\ApiBundle\Identity\Query\UnverifiedSecondFactorQuery; -class UnverifiedSecondFactorRepository extends EntityRepository +class UnverifiedSecondFactorRepository extends ServiceEntityRepository { + public function __construct(ManagerRegistry $registry) + { + parent::__construct($registry, UnverifiedSecondFactor::class); + } + /** * @param string $id + * @param null $lockMode + * @param null $lockVersion * @return UnverifiedSecondFactor|null */ - public function find($id) + public function find($id, $lockMode = null, $lockVersion = null) { /** @var UnverifiedSecondFactor|null $secondFactor */ $secondFactor = parent::find($id); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/VerifiedSecondFactorRepository.php b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/VerifiedSecondFactorRepository.php index 21b6309c4..cc20b6e38 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/VerifiedSecondFactorRepository.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/VerifiedSecondFactorRepository.php @@ -19,6 +19,8 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Identity\Repository; use DateTime; +use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; +use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\ORM\EntityManager; use Doctrine\ORM\EntityRepository; use Doctrine\ORM\Mapping; @@ -26,38 +28,29 @@ use Surfnet\Stepup\Identity\Value\IdentityId; use Surfnet\StepupMiddleware\ApiBundle\Authorization\Filter\InstitutionAuthorizationRepositoryFilter; use Surfnet\StepupMiddleware\ApiBundle\Authorization\Value\InstitutionAuthorizationContextInterface; +use Surfnet\StepupMiddleware\ApiBundle\Identity\Entity\RaListing; use Surfnet\StepupMiddleware\ApiBundle\Identity\Entity\VerifiedSecondFactor; use Surfnet\StepupMiddleware\ApiBundle\Identity\Query\VerifiedSecondFactorOfIdentityQuery; use Surfnet\StepupMiddleware\ApiBundle\Identity\Query\VerifiedSecondFactorQuery; -class VerifiedSecondFactorRepository extends EntityRepository +class VerifiedSecondFactorRepository extends ServiceEntityRepository { /** * @var InstitutionAuthorizationRepositoryFilter */ private $authorizationRepositoryFilter; - /** - * VerifiedSecondFactorRepository constructor. - * @param EntityManager $em - * @param Mapping\ClassMetadata $class - * @param InstitutionAuthorizationRepositoryFilter $authorizationRepositoryFilter - */ - public function __construct( - EntityManager $em, - Mapping\ClassMetadata $class, - InstitutionAuthorizationRepositoryFilter $authorizationRepositoryFilter - ) { - parent::__construct($em, $class); + public function __construct(ManagerRegistry $registry, InstitutionAuthorizationRepositoryFilter $authorizationRepositoryFilter) + { + parent::__construct($registry, VerifiedSecondFactor::class); $this->authorizationRepositoryFilter = $authorizationRepositoryFilter; } - /** * @param string $id * @return VerifiedSecondFactor|null */ - public function find($id) + public function find($id, $lockMode = null, $lockVersion = null) { /** @var VerifiedSecondFactor|null $secondFactor */ $secondFactor = parent::find($id); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/VettedSecondFactorRepository.php b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/VettedSecondFactorRepository.php index b39b67eeb..5b2a929ae 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/VettedSecondFactorRepository.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/VettedSecondFactorRepository.php @@ -18,19 +18,25 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Identity\Repository; -use Doctrine\ORM\EntityRepository; +use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; +use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\ORM\Query; use Surfnet\Stepup\Identity\Value\IdentityId; use Surfnet\StepupMiddleware\ApiBundle\Identity\Entity\VettedSecondFactor; use Surfnet\StepupMiddleware\ApiBundle\Identity\Query\VettedSecondFactorQuery; -class VettedSecondFactorRepository extends EntityRepository +class VettedSecondFactorRepository extends ServiceEntityRepository { + public function __construct(ManagerRegistry $registry) + { + parent::__construct($registry, VettedSecondFactor::class); + } + /** * @param string $id * @return VettedSecondFactor|null */ - public function find($id) + public function find($id, $lockMode = null, $lockVersion = null) { /** @var VettedSecondFactor|null $secondFactor */ $secondFactor = parent::find($id); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/WhitelistEntryRepository.php b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/WhitelistEntryRepository.php index b4b4666dc..dc574f242 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/WhitelistEntryRepository.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Identity/Repository/WhitelistEntryRepository.php @@ -18,13 +18,19 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Identity\Repository; +use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\Common\Collections\ArrayCollection; -use Doctrine\ORM\EntityRepository; +use Doctrine\Common\Persistence\ManagerRegistry; use Surfnet\Stepup\Identity\Value\Institution; use Surfnet\StepupMiddleware\ApiBundle\Identity\Entity\WhitelistEntry; -class WhitelistEntryRepository extends EntityRepository +class WhitelistEntryRepository extends ServiceEntityRepository { + public function __construct(ManagerRegistry $registry) + { + parent::__construct($registry, WhitelistEntry::class); + } + /** * @param Institution[] $institutions * @return array diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Request/CommandParamConverter.php b/src/Surfnet/StepupMiddleware/ApiBundle/Request/CommandParamConverter.php index ae248cff4..73242fc0a 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Request/CommandParamConverter.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Request/CommandParamConverter.php @@ -25,12 +25,18 @@ class CommandParamConverter implements ParamConverterInterface { + /** + * @SuppressWarnings(PHPMD.MissingImport) + * The line above could be removed in newer releases were dynamic imports are allowed + * @see https://github.com/phpmd/phpmd/issues/673 + */ public function apply(Request $request, ParamConverter $configuration) { $data = json_decode($request->getContent(), true); $this->assertIsValidCommandStructure($data); + $commandName = []; preg_match('~^(\w+):([\w\\.]+)$~', $data['command']['name'], $commandName); $commandClassName = sprintf( 'Surfnet\StepupMiddleware\CommandHandlingBundle\%s\Command\%sCommand', diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Resources/config/services.yml b/src/Surfnet/StepupMiddleware/ApiBundle/Resources/config/services.yml index 0851adbeb..34c9de624 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Resources/config/services.yml +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Resources/config/services.yml @@ -1,106 +1,38 @@ services: + _defaults: + bind: + $numberOfTokensPerIdentity: '%number_of_tokens_per_identity%' + + Surfnet\StepupMiddleware\ApiBundle\: + resource: '../../*' + autowire: true + exclude: '../../{DependencyInjection,Entity,Repository,Migrations,Tests,Controller}' + # The ManagementBundle controllers are available as a service Surfnet\StepupMiddleware\ApiBundle\Controller\: resource: '../../Controller' autowire: true tags: ['controller.service_arguments'] - # Authorization repository factory - surfnet_stepup_middleware_api.repository_factory.authorization: - class: Surfnet\StepupMiddleware\ApiBundle\Authorization\Repository\AuthorizationRepositoryFactory - arguments: - - "@doctrine.orm.middleware_entity_manager" - - "@surfnet_stepup_middleware_api.repository_filter.authorization" - # Repositories - surfnet_stepup_middleware_api.repository.configured_institution: - class: Surfnet\StepupMiddleware\ApiBundle\Configuration\Repository\ConfiguredInstitutionRepository - factory: ["@doctrine.orm.middleware_entity_manager", getRepository] - arguments: [ Surfnet\StepupMiddleware\ApiBundle\Configuration\Entity\ConfiguredInstitution ] - - surfnet_stepup_middleware_api.repository.institution_configuration_options: - class: Surfnet\StepupMiddleware\ApiBundle\Configuration\Repository\InstitutionConfigurationOptionsRepository - factory: ["@doctrine.orm.middleware_entity_manager", getRepository] - arguments: [ Surfnet\StepupMiddleware\ApiBundle\Configuration\Entity\InstitutionConfigurationOptions ] - - surfnet_stepup_middleware_api.repository.allowed_second_factor: - class: Surfnet\StepupMiddleware\ApiBundle\Configuration\Repository\AllowedSecondFactorRepository - factory: ["@doctrine.orm.middleware_entity_manager", getRepository] - arguments: [ Surfnet\StepupMiddleware\ApiBundle\Configuration\Entity\AllowedSecondFactor ] - - surfnet_stepup_middleware_api.repository.institution_authorization: - class: Surfnet\StepupMiddleware\ApiBundle\Configuration\Repository\InstitutionAuthorizationRepository - factory: ["@doctrine.orm.middleware_entity_manager", getRepository] - arguments: [ Surfnet\StepupMiddleware\ApiBundle\Configuration\Entity\InstitutionAuthorization ] - - surfnet_stepup_middleware_api.repository.ra_location: - class: Surfnet\StepupMiddleware\ApiBundle\Configuration\Repository\RaLocationRepository - factory: ["@doctrine.orm.middleware_entity_manager", getRepository] - arguments: [ Surfnet\StepupMiddleware\ApiBundle\Configuration\Entity\RaLocation ] - - surfnet_stepup_middleware_api.repository.identity: - class: Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\IdentityRepository - factory: ["@surfnet_stepup_middleware_api.repository_factory.authorization", getRepository] - arguments: [ Surfnet\StepupMiddleware\ApiBundle\Identity\Entity\Identity ] - - surfnet_stepup_middleware_api.repository.institution_listing: - class: Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\InstitutionListingRepository - factory: ["@doctrine.orm.middleware_entity_manager", getRepository] - arguments: [ Surfnet\StepupMiddleware\ApiBundle\Identity\Entity\InstitutionListing ] - - surfnet_stepup_middleware_api.repository.ra_candidate: - class: Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\RaCandidateRepository - factory: ["@surfnet_stepup_middleware_api.repository_factory.authorization", getRepository] - arguments: [ Surfnet\StepupMiddleware\ApiBundle\Identity\Entity\RaCandidate ] - - surfnet_stepup_middleware_api.repository.ra_listing: - class: Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\RaListingRepository - factory: ["@surfnet_stepup_middleware_api.repository_factory.authorization", getRepository] - arguments: [ Surfnet\StepupMiddleware\ApiBundle\Identity\Entity\RaListing ] - - surfnet_stepup_middleware_api.repository.sraa: - class: Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\SraaRepository - factory: ["@doctrine.orm.middleware_entity_manager", getRepository] - arguments: [ Surfnet\StepupMiddleware\ApiBundle\Identity\Entity\Sraa ] - - surfnet_stepup_middleware_api.repository.unverified_second_factor: - class: Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\UnverifiedSecondFactorRepository - factory: ["@doctrine.orm.middleware_entity_manager", getRepository] - arguments: [ Surfnet\StepupMiddleware\ApiBundle\Identity\Entity\UnverifiedSecondFactor ] - - surfnet_stepup_middleware_api.repository.verified_second_factor: - class: Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\VerifiedSecondFactorRepository - factory: ["@surfnet_stepup_middleware_api.repository_factory.authorization", getRepository] - arguments: [ Surfnet\StepupMiddleware\ApiBundle\Identity\Entity\VerifiedSecondFactor ] - - surfnet_stepup_middleware_api.repository.vetted_second_factor: - class: Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\VettedSecondFactorRepository - factory: ["@doctrine.orm.middleware_entity_manager", getRepository] - arguments: [ Surfnet\StepupMiddleware\ApiBundle\Identity\Entity\VettedSecondFactor ] - - surfnet_stepup_middleware_api.repository.ra_second_factor: - class: Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\RaSecondFactorRepository - factory: ["@surfnet_stepup_middleware_api.repository_factory.authorization", getRepository] - arguments: [ Surfnet\StepupMiddleware\ApiBundle\Identity\Entity\RaSecondFactor ] - - surfnet_stepup_middleware_api.repository.audit_log: - class: Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\AuditLogRepository - factory: ["@doctrine.orm.middleware_entity_manager", getRepository] - arguments: [ Surfnet\StepupMiddleware\ApiBundle\Identity\Entity\AuditLogEntry ] - - surfnet_stepup_middleware_api.repository.second_factor_revocation: - class: Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\SecondFactorRevocationRepository - factory: ["@doctrine.orm.middleware_entity_manager", getRepository] - arguments: [ Surfnet\StepupMiddleware\ApiBundle\Identity\Entity\SecondFactorRevocation] - - surfnet_stepup_middleware_api.repository.whitelist_entry: - class: Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\WhitelistEntryRepository - factory: ["@doctrine.orm.middleware_entity_manager", getRepository] - arguments: [ Surfnet\StepupMiddleware\ApiBundle\Identity\Entity\WhitelistEntry ] - - surfnet_stepup_middleware_api.repository.authorization: - class: Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\AuthorizationRepository - arguments: [ '@doctrine.orm.middleware_entity_manager' ] + surfnet_stepup_middleware_api.repository.configured_institution: '@Surfnet\StepupMiddleware\ApiBundle\Configuration\Repository\ConfiguredInstitutionRepository' + surfnet_stepup_middleware_api.repository.institution_configuration_options: '@Surfnet\StepupMiddleware\ApiBundle\Configuration\Repository\InstitutionConfigurationOptionsRepository' + surfnet_stepup_middleware_api.repository.allowed_second_factor: '@Surfnet\StepupMiddleware\ApiBundle\Configuration\Repository\AllowedSecondFactorRepository' + surfnet_stepup_middleware_api.repository.institution_authorization: '@Surfnet\StepupMiddleware\ApiBundle\Configuration\Repository\InstitutionAuthorizationRepository' + surfnet_stepup_middleware_api.repository.ra_location: '@Surfnet\StepupMiddleware\ApiBundle\Configuration\Repository\RaLocationRepository' + surfnet_stepup_middleware_api.repository.identity: '@Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\IdentityRepository' + surfnet_stepup_middleware_api.repository.institution_listing: '@Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\InstitutionListingRepository' + surfnet_stepup_middleware_api.repository.ra_candidate: '@Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\RaCandidateRepository' + surfnet_stepup_middleware_api.repository.ra_listing: '@Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\RaListingRepository' + surfnet_stepup_middleware_api.repository.sraa: '@Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\SraaRepository' + surfnet_stepup_middleware_api.repository.unverified_second_factor: '@Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\UnverifiedSecondFactorRepository' + surfnet_stepup_middleware_api.repository.verified_second_factor: '@Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\VerifiedSecondFactorRepository' + surfnet_stepup_middleware_api.repository.vetted_second_factor: '@Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\VettedSecondFactorRepository' + surfnet_stepup_middleware_api.repository.ra_second_factor: '@Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\RaSecondFactorRepository' + surfnet_stepup_middleware_api.repository.audit_log: '@Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\AuditLogRepository' + surfnet_stepup_middleware_api.repository.second_factor_revocation: '@Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\SecondFactorRevocationRepository' + surfnet_stepup_middleware_api.repository.whitelist_entry: '@Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\WhitelistEntryRepository' + surfnet_stepup_middleware_api.repository.authorization: '@Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\AuthorizationRepository' # Repository filter surfnet_stepup_middleware_api.repository_filter.authorization: @@ -205,11 +137,11 @@ services: # Exception Listeners surfnet_stepup_middleware_api.listener.exception_listener: - class: Surfnet\StepupMiddleware\ApiBundle\EventListener\ExceptionListener - arguments: - - "@logger" - tags: - - { name: kernel.event_listener, event: kernel.exception, method: onKernelException } + class: Surfnet\StepupMiddleware\ApiBundle\EventListener\ExceptionListener + arguments: + - "@logger" + tags: + - { name: kernel.event_listener, event: kernel.exception} # Security Entry Point surfnet_stepup_middleware_api.security.json_basic_auth_entry_point: diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Authorization/Filter/InstitutionAuthorizationRepositoryFilterTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Authorization/Filter/InstitutionAuthorizationRepositoryFilterTest.php index 442802f3b..614861f3a 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Authorization/Filter/InstitutionAuthorizationRepositoryFilterTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Authorization/Filter/InstitutionAuthorizationRepositoryFilterTest.php @@ -44,7 +44,7 @@ class InstitutionAuthorizationRepositoryFilterTest extends TestCase */ private $mockedAuthorizationContext; - public function setUp() + public function setUp(): void { $this->mockedAuthorizationContext = $this->createMock(InstitutionAuthorizationContextInterface::class); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Authorization/Service/AuthorizationContextServiceTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Authorization/Service/AuthorizationContextServiceTest.php index fe66e8a48..57b5cc1d0 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Authorization/Service/AuthorizationContextServiceTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Authorization/Service/AuthorizationContextServiceTest.php @@ -19,7 +19,7 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Tests\Authorization\Service; use Mockery as m; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Surfnet\Stepup\Configuration\Value\InstitutionRole; use Surfnet\Stepup\Identity\Collection\InstitutionCollection; use Surfnet\Stepup\Identity\Value\CommonName; @@ -57,7 +57,7 @@ class AuthorizationContextServiceTest extends TestCase */ private $authorizationRepository; - public function setUp() + public function setUp(): void { $identityService = m::mock(IdentityService::class); $sraaService = m::mock(SraaService::class); @@ -180,11 +180,12 @@ public function it_can_build_a_context_with_sraa_actor() /** * @test * @group domain - * @expectedException \Surfnet\StepupMiddleware\ApiBundle\Exception\InvalidArgumentException - * @expectedExceptionMessage The provided id is not associated with any known identity */ public function it_rejects_unknown_actor() { + $this->expectExceptionMessage("The provided id is not associated with any known identity"); + $this->expectException(\Surfnet\StepupMiddleware\ApiBundle\Exception\InvalidArgumentException::class); + $role = new InstitutionRole(InstitutionRole::ROLE_USE_RAA); $actorId = 'dc4cc738-5f1c-4d8c-84a2-d6faf8aded89'; diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Authorization/Service/CommandAuthorizationServiceTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Authorization/Service/CommandAuthorizationServiceTest.php index 4d6556d0d..98ef842df 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Authorization/Service/CommandAuthorizationServiceTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Authorization/Service/CommandAuthorizationServiceTest.php @@ -19,7 +19,7 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Tests\Authorization\Service; use Mockery as m; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Psr\Log\LoggerInterface; use Rhumsaa\Uuid\Uuid; use Surfnet\Stepup\Configuration\Value\InstitutionRole; @@ -65,7 +65,7 @@ class CommandAuthorizationServiceTest extends TestCase */ private $service; - public function setUp() + public function setUp(): void { $whitelistService = m::mock(WhitelistService::class); $identityService = m::mock(IdentityService::class); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Configuration/Entity/ConfiguredInstitutionTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Configuration/Entity/ConfiguredInstitutionTest.php index 4c9c2b01c..e4338aee7 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Configuration/Entity/ConfiguredInstitutionTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Configuration/Entity/ConfiguredInstitutionTest.php @@ -18,7 +18,7 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Tests\Configuration\Entity; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\StepupMiddleware\ApiBundle\Configuration\Entity\ConfiguredInstitution; diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Configuration/Entity/RaLocationTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Configuration/Entity/RaLocationTest.php index 8a46ce1b7..4b09d03de 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Configuration/Entity/RaLocationTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Configuration/Entity/RaLocationTest.php @@ -18,7 +18,7 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Tests\Configuration\Entity; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Surfnet\Stepup\Configuration\Value\ContactInformation; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\Stepup\Configuration\Value\Location; diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Configuration/Service/AllowedSecondFactorMapTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Configuration/Service/AllowedSecondFactorMapTest.php index f06f22289..e8257b962 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Configuration/Service/AllowedSecondFactorMapTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Configuration/Service/AllowedSecondFactorMapTest.php @@ -18,7 +18,7 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Tests\Configuration\Service; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Surfnet\Stepup\Configuration\Value\AllowedSecondFactorList; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\StepupBundle\Value\SecondFactorType; diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Configuration/Service/InstitutionAuthorizationOptionMapTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Configuration/Service/InstitutionAuthorizationOptionMapTest.php index 47c20b056..674b3e3dc 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Configuration/Service/InstitutionAuthorizationOptionMapTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Configuration/Service/InstitutionAuthorizationOptionMapTest.php @@ -32,7 +32,7 @@ class InstitutionAuthorizationOptionMapTest extends TestCase */ private $institution; - public function setUp() + public function setUp(): void { $this->institution = new Institution('inst'); } diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Configuration/Service/InstitutionAuthorizationServiceTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Configuration/Service/InstitutionAuthorizationServiceTest.php index 81507387d..bbb8df3bb 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Configuration/Service/InstitutionAuthorizationServiceTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Configuration/Service/InstitutionAuthorizationServiceTest.php @@ -19,7 +19,7 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Tests\Configuration\Service; use Mockery as m; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\Stepup\Configuration\Value\InstitutionRole; use Surfnet\StepupMiddleware\ApiBundle\Configuration\Entity\InstitutionAuthorization; @@ -38,7 +38,7 @@ class InstitutionAuthorizationServiceTest extends TestCase */ private $repository; - public function setUp() + public function setUp(): void { $this->repository = m::mock(InstitutionAuthorizationRepository::class); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Configuration/Service/InstitutionConfigurationOptionsServiceTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Configuration/Service/InstitutionConfigurationOptionsServiceTest.php index 251ad2dba..ce690c8a8 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Configuration/Service/InstitutionConfigurationOptionsServiceTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Configuration/Service/InstitutionConfigurationOptionsServiceTest.php @@ -19,7 +19,7 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Tests\Configuration\Service; use Mockery as m; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\Stepup\Configuration\Value\NumberOfTokensPerIdentityOption; use Surfnet\StepupMiddleware\ApiBundle\Configuration\Entity\InstitutionConfigurationOptions; @@ -45,7 +45,7 @@ class InstitutionConfigurationOptionsServiceTest extends TestCase */ private $numberOfTokensPerIdentityDefault = 13; - public function setUp() + public function setUp(): void { $this->repository = m::mock(InstitutionConfigurationOptionsRepository::class); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/AuthorityRoleTypeTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/AuthorityRoleTypeTest.php index 31a34632a..f69e400d1 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/AuthorityRoleTypeTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/AuthorityRoleTypeTest.php @@ -20,7 +20,7 @@ use Doctrine\DBAL\Platforms\MySqlPlatform; use Doctrine\DBAL\Types\Type; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\AuthorityRoleType; use Surfnet\StepupMiddleware\ApiBundle\Identity\Value\AuthorityRole; @@ -34,12 +34,12 @@ class AuthorityRoleTypeTest extends UnitTest /** * Register the type, since we're forced to use the factory method. */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { Type::addType(AuthorityRoleType::NAME, 'Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\AuthorityRoleType'); } - public function setUp() + public function setUp(): void { $this->platform = new MySqlPlatform(); } @@ -104,10 +104,11 @@ public function a_non_null_value_is_converted_to_an_authority_role_value_object( /** * @test * @group doctrine - * @expectedException \Doctrine\DBAL\Types\ConversionException */ public function an_invalid_database_value_causes_an_exception_upon_conversion() { + $this->expectException(\Doctrine\DBAL\Types\ConversionException::class); + $authorityRole = Type::getType(AuthorityRoleType::NAME); $authorityRole->convertToPHPValue(false, $this->platform); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/CommonNameTypeTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/CommonNameTypeTest.php index e056a0b0f..6d106141f 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/CommonNameTypeTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/CommonNameTypeTest.php @@ -20,7 +20,7 @@ use Doctrine\DBAL\Platforms\MySqlPlatform; use Doctrine\DBAL\Types\Type; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Identity\Value\CommonName; use Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\CommonNameType; @@ -34,12 +34,12 @@ class CommonNameTypeTest extends UnitTest /** * Register the type, since we're forced to use the factory method. */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { Type::addType(CommonNameType::NAME, 'Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\CommonNameType'); } - public function setUp() + public function setUp(): void { $this->platform = new MySqlPlatform(); } @@ -104,10 +104,11 @@ public function a_non_null_value_is_converted_to_the_stepup_common_name_object() /** * @test * @group doctrine - * @expectedException \Doctrine\DBAL\Types\ConversionException */ public function an_invalid_database_value_causes_an_exception_upon_conversion() { + $this->expectException(\Doctrine\DBAL\Types\ConversionException::class); + $commonName = Type::getType(CommonNameType::NAME); $commonName->convertToPHPValue(false, $this->platform); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/ConfigurationContactInformationTypeTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/ConfigurationContactInformationTypeTest.php index 93f6a95f8..fc1345167 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/ConfigurationContactInformationTypeTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/ConfigurationContactInformationTypeTest.php @@ -20,7 +20,7 @@ use Doctrine\DBAL\Platforms\MySqlPlatform; use Doctrine\DBAL\Types\Type; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Configuration\Value\ContactInformation; use Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\ConfigurationContactInformationType; @@ -34,7 +34,7 @@ class ConfigurationContactInformationTypeTest extends UnitTest /** * Register the type, since we're forced to use the factory method. */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { Type::addType( ConfigurationContactInformationType::NAME, @@ -42,7 +42,7 @@ public static function setUpBeforeClass() ); } - public function setUp() + public function setUp(): void { $this->platform = new MySqlPlatform(); } @@ -56,7 +56,7 @@ public function setUp() */ public function a_value_can_only_be_converted_to_sql_if_it_is_contact_information_or_null($incorrectValue) { - $this->setExpectedException('Doctrine\DBAL\Types\ConversionException'); + $this->expectException('Doctrine\DBAL\Types\ConversionException'); $configurationContactInformation = Type::getType(ConfigurationContactInformationType::NAME); $configurationContactInformation->convertToDatabaseValue($incorrectValue, $this->platform); @@ -123,10 +123,11 @@ public function a_non_null_value_is_converted_to_a_contact_information_value_obj /** * @test * @group doctrine - * @expectedException \Doctrine\DBAL\Types\ConversionException */ public function an_invalid_database_value_causes_an_exception_upon_conversion() { + $this->expectException(\Doctrine\DBAL\Types\ConversionException::class); + $configurationContactInformation = Type::getType(ConfigurationContactInformationType::NAME); $configurationContactInformation->convertToPHPValue(false, $this->platform); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/ConfigurationInstitutionTypeTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/ConfigurationInstitutionTypeTest.php index 6edba33c9..e04a0860d 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/ConfigurationInstitutionTypeTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/ConfigurationInstitutionTypeTest.php @@ -20,7 +20,7 @@ use Doctrine\DBAL\Platforms\MySqlPlatform; use Doctrine\DBAL\Types\Type; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\ConfigurationInstitutionType; @@ -34,7 +34,7 @@ class ConfigurationInstitutionTypeTest extends UnitTest /** * Register the type, since we're forced to use the factory method. */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { Type::addType( ConfigurationInstitutionType::NAME, @@ -42,7 +42,7 @@ public static function setUpBeforeClass() ); } - public function setUp() + public function setUp(): void { $this->platform = new MySqlPlatform(); } @@ -69,7 +69,7 @@ public function a_null_value_remains_null_in_to_sql_conversion() */ public function a_value_can_only_be_converted_to_sql_if_it_is_an_institution_or_null($incorrectValue) { - $this->setExpectedException('Doctrine\DBAL\Types\ConversionException'); + $this->expectException('Doctrine\DBAL\Types\ConversionException'); $configurationContactInformation = Type::getType(ConfigurationInstitutionType::NAME); $configurationContactInformation->convertToDatabaseValue($incorrectValue, $this->platform); @@ -124,10 +124,11 @@ public function a_non_null_value_is_converted_to_a_configuration_institution_val /** * @test * @group doctrine - * @expectedException \Doctrine\DBAL\Types\ConversionException */ public function an_invalid_database_value_causes_an_exception_upon_conversion() { + $this->expectException(\Doctrine\DBAL\Types\ConversionException::class); + $configurationInstitution = Type::getType(ConfigurationInstitutionType::NAME); $configurationInstitution->convertToPHPValue(false, $this->platform); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/ConfigurationLocationTypeTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/ConfigurationLocationTypeTest.php index 7ddebb7e3..51edb2ae3 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/ConfigurationLocationTypeTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/ConfigurationLocationTypeTest.php @@ -20,11 +20,11 @@ use Doctrine\DBAL\Platforms\MySqlPlatform; use Doctrine\DBAL\Types\Type; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Configuration\Value\Location; use Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\ConfigurationLocationType; -class ConfigurationConfigurationLocationTypeTest extends UnitTest +class ConfigurationLocationTypeTest extends UnitTest { /** * @var \Doctrine\DBAL\Platforms\MySqlPlatform @@ -34,7 +34,7 @@ class ConfigurationConfigurationLocationTypeTest extends UnitTest /** * Register the type, since we're forced to use the factory method. */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { Type::addType( ConfigurationLocationType::NAME, @@ -42,7 +42,7 @@ public static function setUpBeforeClass() ); } - public function setUp() + public function setUp(): void { $this->platform = new MySqlPlatform(); } @@ -69,7 +69,7 @@ public function a_null_value_remains_null_in_to_sql_conversion() */ public function a_value_can_only_be_converted_to_sql_if_it_is_a_location_or_null($incorrectValue) { - $this->setExpectedException('Doctrine\DBAL\Types\ConversionException'); + $this->expectException(\Doctrine\DBAL\Types\ConversionException::class); $configurationContactInformation = Type::getType(ConfigurationLocationType::NAME); $configurationContactInformation->convertToDatabaseValue($incorrectValue, $this->platform); @@ -123,10 +123,11 @@ public function a_non_null_value_is_converted_to_a_configuration_location_value_ /** * @test * @group doctrine - * @expectedException \Doctrine\DBAL\Types\ConversionException */ public function an_invalid_database_value_causes_an_exception_upon_conversion() { + $this->expectException(\Doctrine\DBAL\Types\ConversionException::class); + $configurationLocation = Type::getType(ConfigurationLocationType::NAME); $configurationLocation->convertToPHPValue(false, $this->platform); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/ContactInformationTypeTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/ContactInformationTypeTest.php index 6d8bdd742..865281b1e 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/ContactInformationTypeTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/ContactInformationTypeTest.php @@ -20,7 +20,7 @@ use Doctrine\DBAL\Platforms\MySqlPlatform; use Doctrine\DBAL\Types\Type; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Identity\Value\ContactInformation; use Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\ContactInformationType; @@ -34,7 +34,7 @@ class ContactInformationTypeTest extends UnitTest /** * Register the type, since we're forced to use the factory method. */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { Type::addType( ContactInformationType::NAME, @@ -42,7 +42,7 @@ public static function setUpBeforeClass() ); } - public function setUp() + public function setUp(): void { $this->platform = new MySqlPlatform(); } @@ -108,10 +108,11 @@ public function a_non_null_value_is_converted_to_a_contact_information_value_obj /** * @test * @group doctrine - * @expectedException \Doctrine\DBAL\Types\ConversionException */ public function an_invalid_database_value_causes_an_exception_upon_conversion() { + $this->expectException(\Doctrine\DBAL\Types\ConversionException::class); + $contactInformation = Type::getType(ContactInformationType::NAME); $contactInformation->convertToPHPValue(false, $this->platform); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/DateTimeTypeTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/DateTimeTypeTest.php index e3efc7887..0b1e3b42d 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/DateTimeTypeTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/DateTimeTypeTest.php @@ -22,7 +22,7 @@ use DateTimeZone; use Doctrine\DBAL\Platforms\MySqlPlatform; use Doctrine\DBAL\Types\Type; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\DateTime\DateTime; use Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\DateTimeType; @@ -36,12 +36,12 @@ class DateTimeTypeTest extends UnitTest /** * Register the type, since we're forced to use the factory method. */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { Type::addType(DateTimeType::NAME, 'Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\DateTimeType'); } - public function setUp() + public function setUp(): void { $this->platform = new MySqlPlatform(); } @@ -108,10 +108,12 @@ public function a_string_is_converted_to_the_stepup_datetime_object() /** * @test * @group doctrine - * @expectedException \Doctrine\DBAL\Types\ConversionException + * */ public function an_invalid_database_value_causes_an_exception_upon_conversion() { + $this->expectException(\Doctrine\DBAL\Types\ConversionException::class); + $dateTime = Type::getType(DateTimeType::NAME); $input = 'This is an invalid formatted datetime'; diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/DocumentNumberTypeTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/DocumentNumberTypeTest.php index 18ca50254..c40641c97 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/DocumentNumberTypeTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/DocumentNumberTypeTest.php @@ -20,7 +20,7 @@ use Doctrine\DBAL\Platforms\MySqlPlatform; use Doctrine\DBAL\Types\Type; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Identity\Value\DocumentNumber; use Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\DocumentNumberType; @@ -34,12 +34,12 @@ class DocumentNumberTypeTest extends UnitTest /** * Register the type, since we're forced to use the factory method. */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { Type::addType(DocumentNumberType::NAME, 'Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\DocumentNumberType'); } - public function setUp() + public function setUp(): void { $this->platform = new MySqlPlatform(); } @@ -94,7 +94,7 @@ public function a_null_value_remains_null_when_converting_from_db_to_php_value() */ public function a_value_can_only_be_converted_to_sql_if_it_is_a_document_number_or_null($incorrectValue) { - $this->setExpectedException('Doctrine\DBAL\Types\ConversionException'); + $this->expectException(\Doctrine\DBAL\Types\ConversionException::class); $configurationContactInformation = Type::getType(DocumentNumberType::NAME); $configurationContactInformation->convertToDatabaseValue($incorrectValue, $this->platform); @@ -118,10 +118,11 @@ public function a_non_null_value_is_converted_to_the_stepup_document_number_obje /** * @test * @group doctrine - * @expectedException \Surfnet\Stepup\Exception\InvalidArgumentException */ public function an_invalid_database_value_causes_an_exception_upon_conversion() { + $this->expectException(\Surfnet\Stepup\Exception\InvalidArgumentException::class); + $type = Type::getType(DocumentNumberType::NAME); $input = 12345; diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/EmailTypeTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/EmailTypeTest.php index 6da87a4b4..f630b2a8f 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/EmailTypeTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/EmailTypeTest.php @@ -20,7 +20,7 @@ use Doctrine\DBAL\Platforms\MySqlPlatform; use Doctrine\DBAL\Types\Type; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Identity\Value\Email; use Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\EmailType; @@ -34,12 +34,12 @@ class EmailTypeTest extends UnitTest /** * Register the type, since we're forced to use the factory method. */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { Type::addType(EmailType::NAME, 'Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\EmailType'); } - public function setUp() + public function setUp(): void { $this->platform = new MySqlPlatform(); } @@ -104,10 +104,11 @@ public function a_non_null_value_is_converted_to_the_stepup_email_object() /** * @test * @group doctrine - * @expectedException \Doctrine\DBAL\Types\ConversionException */ public function an_invalid_database_value_causes_an_exception_upon_conversion() { + $this->expectException(\Doctrine\DBAL\Types\ConversionException::class); + $email = Type::getType(EmailType::NAME); $email->convertToPHPValue(false, $this->platform); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/InstitutionRoleTypeTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/InstitutionRoleTypeTest.php index 33cd89a7a..08a2c71d8 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/InstitutionRoleTypeTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/InstitutionRoleTypeTest.php @@ -20,7 +20,7 @@ use Doctrine\DBAL\Platforms\MySqlPlatform; use Doctrine\DBAL\Types\Type; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Configuration\Value\InstitutionRole; use Surfnet\Stepup\Identity\Value\Institution; use Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\InstitutionRoleType; @@ -35,7 +35,7 @@ class InstitutionRoleTypeTest extends UnitTest /** * Register the type, since we're forced to use the factory method. */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { Type::addType( InstitutionRoleType::NAME, @@ -43,7 +43,7 @@ public static function setUpBeforeClass() ); } - public function setUp() + public function setUp(): void { $this->platform = new MySqlPlatform(); } @@ -109,10 +109,11 @@ public function a_non_null_value_is_converted_to_a_configuration_institution_val /** * @test * @group doctrine - * @expectedException \Doctrine\DBAL\Types\ConversionException */ public function an_invalid_database_value_causes_an_exception_upon_conversion() { + $this->expectException(\Doctrine\DBAL\Types\ConversionException::class); + $configurationInstitution = Type::getType(InstitutionRoleType::NAME); $configurationInstitution->convertToPHPValue(false, $this->platform); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/InstitutionTypeTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/InstitutionTypeTest.php index bb922d9c7..1c3c1ff33 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/InstitutionTypeTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/InstitutionTypeTest.php @@ -20,7 +20,7 @@ use Doctrine\DBAL\Platforms\MySqlPlatform; use Doctrine\DBAL\Types\Type; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Identity\Value\Institution; use Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\InstitutionType; @@ -34,7 +34,7 @@ class InstitutionTypeTest extends UnitTest /** * Register the type, since we're forced to use the factory method. */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { Type::addType( InstitutionType::NAME, @@ -42,7 +42,7 @@ public static function setUpBeforeClass() ); } - public function setUp() + public function setUp(): void { $this->platform = new MySqlPlatform(); } @@ -108,10 +108,11 @@ public function a_non_null_value_is_converted_to_a_configuration_institution_val /** * @test * @group doctrine - * @expectedException \Doctrine\DBAL\Types\ConversionException */ public function an_invalid_database_value_causes_an_exception_upon_conversion() { + $this->expectException(\Doctrine\DBAL\Types\ConversionException::class); + $configurationInstitution = Type::getType(InstitutionType::NAME); $configurationInstitution->convertToPHPValue(false, $this->platform); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/LocaleTypeTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/LocaleTypeTest.php index ded01c9cd..4770cd7da 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/LocaleTypeTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/LocaleTypeTest.php @@ -20,7 +20,7 @@ use Doctrine\DBAL\Platforms\MySqlPlatform; use Doctrine\DBAL\Types\Type; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Identity\Value\Locale; use Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\LocaleType; @@ -34,12 +34,12 @@ class LocaleTypeTest extends UnitTest /** * Register the type, since we're forced to use the factory method. */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { Type::addType(LocaleType::NAME, 'Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\LocaleType'); } - public function setUp() + public function setUp(): void { $this->platform = new MySqlPlatform(); } @@ -105,10 +105,11 @@ public function a_non_null_value_is_converted_to_a_locale_value_object() /** * @test * @group doctrine - * @expectedException \Doctrine\DBAL\Types\ConversionException */ public function an_invalid_database_value_causes_an_exception_upon_conversion() { + $this->expectException(\Doctrine\DBAL\Types\ConversionException::class); + $locale = Type::getType(LocaleType::NAME); $locale->convertToPHPValue(false, $this->platform); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/LocationTypeTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/LocationTypeTest.php index ca61b112b..46f08157e 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/LocationTypeTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/LocationTypeTest.php @@ -20,7 +20,7 @@ use Doctrine\DBAL\Platforms\MySqlPlatform; use Doctrine\DBAL\Types\Type; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Identity\Value\Location; use Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\LocationType; @@ -34,7 +34,7 @@ class LocationTypeTest extends UnitTest /** * Register the type, since we're forced to use the factory method. */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { Type::addType( LocationType::NAME, @@ -42,7 +42,7 @@ public static function setUpBeforeClass() ); } - public function setUp() + public function setUp(): void { $this->platform = new MySqlPlatform(); } @@ -108,10 +108,11 @@ public function a_non_null_value_is_converted_to_a_location_value_object() /** * @test * @group doctrine - * @expectedException \Doctrine\DBAL\Types\ConversionException */ public function an_invalid_database_value_causes_an_exception_upon_conversion() { + $this->expectException(\Doctrine\DBAL\Types\ConversionException::class); + $location = Type::getType(LocationType::NAME); $location->convertToPHPValue(false, $this->platform); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/NameIdTypeTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/NameIdTypeTest.php index 73e1f1996..5dbfc7796 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/NameIdTypeTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/NameIdTypeTest.php @@ -20,7 +20,7 @@ use Doctrine\DBAL\Platforms\MySqlPlatform; use Doctrine\DBAL\Types\Type; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Identity\Value\NameId; use Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\NameIdType; @@ -34,12 +34,12 @@ class NameIdTypeTest extends UnitTest /** * Register the type, since we're forced to use the factory method. */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { Type::addType(NameIdType::NAME, 'Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\NameIdType'); } - public function setUp() + public function setUp(): void { $this->platform = new MySqlPlatform(); } @@ -105,10 +105,11 @@ public function a_non_null_value_is_converted_to_a_name_id_value_object() /** * @test * @group doctrine - * @expectedException \Doctrine\DBAL\Types\ConversionException */ public function an_invalid_database_value_causes_an_exception_upon_conversion() { + $this->expectException(\Doctrine\DBAL\Types\ConversionException::class); + $nameId = Type::getType(NameIdType::NAME); $nameId->convertToPHPValue(false, $this->platform); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/NumberOfTokensPerIdentityTypeTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/NumberOfTokensPerIdentityTypeTest.php index 846fb06d9..f44998ed6 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/NumberOfTokensPerIdentityTypeTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/NumberOfTokensPerIdentityTypeTest.php @@ -20,7 +20,7 @@ use Doctrine\DBAL\Platforms\MySqlPlatform; use Doctrine\DBAL\Types\Type; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Configuration\Value\NumberOfTokensPerIdentityOption; use Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\NumberOfTokensPerIdentityType; @@ -35,7 +35,7 @@ class NumberOfTokensPerIdentityTypeTest extends UnitTest /** * Register the type, since we're forced to use the factory method. */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { Type::addType( NumberOfTokensPerIdentityType::NAME, @@ -43,7 +43,7 @@ public static function setUpBeforeClass() ); } - public function setUp() + public function setUp(): void { $this->platform = new MySqlPlatform(); } @@ -70,7 +70,7 @@ public function a_null_value_remains_null_in_to_sql_conversion() */ public function a_value_can_only_be_converted_to_sql_if_it_is_an_option_type_or_null($incorrectValue) { - $this->setExpectedException('Doctrine\DBAL\Types\ConversionException'); + $this->expectException(\Doctrine\DBAL\Types\ConversionException::class); $numberOfTokensPerIdentity = Type::getType(NumberOfTokensPerIdentityType::NAME); $numberOfTokensPerIdentity->convertToDatabaseValue($incorrectValue, $this->platform); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/RaLocationNameTypeTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/RaLocationNameTypeTest.php index d690d4432..b868f6197 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/RaLocationNameTypeTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/RaLocationNameTypeTest.php @@ -20,7 +20,7 @@ use Doctrine\DBAL\Platforms\MySqlPlatform; use Doctrine\DBAL\Types\Type; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Configuration\Value\RaLocationName; use Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\RaLocationNameType; @@ -34,7 +34,7 @@ class RaLocationNameTypeTest extends UnitTest /** * Register the type, since we're forced to use the factory method. */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { Type::addType( RaLocationNameType::NAME, @@ -42,7 +42,7 @@ public static function setUpBeforeClass() ); } - public function setUp() + public function setUp(): void { $this->platform = new MySqlPlatform(); } @@ -85,7 +85,7 @@ public function a_non_null_value_is_converted_to_the_correct_format() */ public function a_value_can_only_be_converted_to_sql_if_it_is_an_ra_location_or_null($incorrectValue) { - $this->setExpectedException('Doctrine\DBAL\Types\ConversionException'); + $this->expectException(\Doctrine\DBAL\Types\ConversionException::class); $configurationContactInformation = Type::getType(RaLocationNameType::NAME); $configurationContactInformation->convertToDatabaseValue($incorrectValue, $this->platform); @@ -123,10 +123,11 @@ public function a_non_null_value_is_converted_to_a_ra_location_name_value_object /** * @test * @group doctrine - * @expectedException \Doctrine\DBAL\Types\ConversionException */ public function an_invalid_database_value_causes_an_exception_upon_conversion() { + $this->expectException(\Doctrine\DBAL\Types\ConversionException::class); + $raLocationName = Type::getType(RaLocationNameType::NAME); $raLocationName->convertToPHPValue(false, $this->platform); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/SecondFactorStatusTypeTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/SecondFactorStatusTypeTest.php index d06dbf80d..0ec91ca14 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/SecondFactorStatusTypeTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/SecondFactorStatusTypeTest.php @@ -20,7 +20,7 @@ use Doctrine\DBAL\Platforms\MySqlPlatform; use Doctrine\DBAL\Types\Type; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\SecondFactorStatusType; use Surfnet\StepupMiddleware\ApiBundle\Identity\Value\SecondFactorStatus; @@ -34,12 +34,12 @@ class SecondFactorStatusTypeTest extends UnitTest /** * Register the type, since we're forced to use the factory method. */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { Type::addType(SecondFactorStatusType::NAME, 'Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\SecondFactorStatusType'); } - public function setUp() + public function setUp(): void { $this->platform = new MySqlPlatform(); } @@ -61,12 +61,13 @@ public function invalidPhpValues() * @test * @dataProvider invalidPhpValues * @group doctrine - * @expectedException \Doctrine\DBAL\Types\ConversionException * * @param mixed $value */ public function an_invalid_php_value_is_not_accepted_in_to_sql_conversion($value) { + $this->expectException(\Doctrine\DBAL\Types\ConversionException::class); + $type = Type::getType(SecondFactorStatusType::NAME); $type->convertToDatabaseValue($value, $this->platform); } @@ -112,12 +113,13 @@ public function invalidDatabaseValues() * @test * @dataProvider invalidDatabaseValues * @group doctrine - * @expectedException \Doctrine\DBAL\Types\ConversionException * * @param mixed $input */ public function an_invalid_database_value_causes_an_exception_upon_conversion($input) { + $this->expectException(\Doctrine\DBAL\Types\ConversionException::class); + $type = Type::getType(SecondFactorStatusType::NAME); $type->convertToPHPValue($input, $this->platform); } diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/ShowRaaContactInformationOptionTypeTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/ShowRaaContactInformationOptionTypeTest.php index 8f9a543fe..eab31cc63 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/ShowRaaContactInformationOptionTypeTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/ShowRaaContactInformationOptionTypeTest.php @@ -20,7 +20,7 @@ use Doctrine\DBAL\Platforms\MySqlPlatform; use Doctrine\DBAL\Types\Type; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Configuration\Value\ShowRaaContactInformationOption; use Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\ShowRaaContactInformationOptionType; @@ -34,7 +34,7 @@ class ShowRaaContactInformationOptionTypeTest extends UnitTest /** * Register the type, since we're forced to use the factory method. */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { Type::addType( ShowRaaContactInformationOptionType::NAME, @@ -42,7 +42,7 @@ public static function setUpBeforeClass() ); } - public function setUp() + public function setUp(): void { $this->platform = new MySqlPlatform(); } @@ -69,7 +69,7 @@ public function a_null_value_remains_null_in_to_sql_conversion() */ public function a_value_can_only_be_converted_to_sql_if_it_is_a_show_raa_contact_information_option_or_null($incorrectValue) { - $this->setExpectedException('Doctrine\DBAL\Types\ConversionException'); + $this->expectException(\Doctrine\DBAL\Types\ConversionException::class); $configurationContactInformation = Type::getType(ShowRaaContactInformationOptionType::NAME); $configurationContactInformation->convertToDatabaseValue($incorrectValue, $this->platform); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/UseRaLocationsOptionTypeTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/UseRaLocationsOptionTypeTest.php index 76468ff15..c93e7a765 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/UseRaLocationsOptionTypeTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/UseRaLocationsOptionTypeTest.php @@ -20,7 +20,7 @@ use Doctrine\DBAL\Platforms\MySqlPlatform; use Doctrine\DBAL\Types\Type; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Configuration\Value\UseRaLocationsOption; use Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\UseRaLocationsOptionType; @@ -34,7 +34,7 @@ class UseRaLocationsOptionTypeTest extends UnitTest /** * Register the type, since we're forced to use the factory method. */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { Type::addType( UseRaLocationsOptionType::NAME, @@ -42,7 +42,7 @@ public static function setUpBeforeClass() ); } - public function setUp() + public function setUp(): void { $this->platform = new MySqlPlatform(); } @@ -69,7 +69,7 @@ public function a_null_value_remains_null_in_to_sql_conversion() */ public function a_value_can_only_be_converted_to_sql_if_it_is_a_use_ra_locations_option_or_null($incorrectValue) { - $this->setExpectedException('Doctrine\DBAL\Types\ConversionException'); + $this->expectException(\Doctrine\DBAL\Types\ConversionException::class); $configurationContactInformation = Type::getType(UseRaLocationsOptionType::NAME); $configurationContactInformation->convertToDatabaseValue($incorrectValue, $this->platform); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/VerifyEmailOptionTypeTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/VerifyEmailOptionTypeTest.php index ae555d961..9dd607f32 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/VerifyEmailOptionTypeTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Doctrine/Type/VerifyEmailOptionTypeTest.php @@ -20,7 +20,7 @@ use Doctrine\DBAL\Platforms\MySqlPlatform; use Doctrine\DBAL\Types\Type; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Configuration\Value\VerifyEmailOption; use Surfnet\StepupMiddleware\ApiBundle\Doctrine\Type\VerifyEmailOptionType; @@ -34,7 +34,7 @@ class VerifyEmailOptionTypeTest extends UnitTest /** * Register the type, since we're forced to use the factory method. */ - public static function setUpBeforeClass() + public static function setUpBeforeClass(): void { Type::addType( VerifyEmailOptionType::NAME, @@ -42,7 +42,7 @@ public static function setUpBeforeClass() ); } - public function setUp() + public function setUp(): void { $this->platform = new MySqlPlatform(); } @@ -69,7 +69,7 @@ public function a_null_value_remains_null_in_to_sql_conversion() */ public function a_value_can_only_be_converted_to_sql_if_it_is_an_option_type_or_null($incorrectValue) { - $this->setExpectedException('Doctrine\DBAL\Types\ConversionException'); + $this->expectException(\Doctrine\DBAL\Types\ConversionException::class); $configurationContactInformation = Type::getType(VerifyEmailOptionType::NAME); $configurationContactInformation->convertToDatabaseValue($incorrectValue, $this->platform); diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Identity/Projector/AuditLogProjectorTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Identity/Projector/AuditLogProjectorTest.php index 870f5d715..54ebc4ee9 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Identity/Projector/AuditLogProjectorTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Identity/Projector/AuditLogProjectorTest.php @@ -23,7 +23,7 @@ use Broadway\Domain\Metadata as MessageMetadata; use DateTime as CoreDateTime; use Mockery as m; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Surfnet\Stepup\DateTime\DateTime as StepupDateTime; use Surfnet\Stepup\Identity\AuditLog\Metadata; use Surfnet\Stepup\Identity\Value\IdentityId; diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Identity/Value/AuthorizedInstitutionCollectionTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Identity/Value/AuthorizedInstitutionCollectionTest.php index ca6e3077c..ba0d6ef48 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Identity/Value/AuthorizedInstitutionCollectionTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Identity/Value/AuthorizedInstitutionCollectionTest.php @@ -18,7 +18,7 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Tests\Identity\Value; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Surfnet\Stepup\Identity\Collection\InstitutionCollection; use Surfnet\Stepup\Identity\Value\Institution; use Surfnet\StepupMiddleware\ApiBundle\Identity\Value\AuthorizedInstitutionCollection; diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Request/CommandParamConverterTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Request/CommandParamConverterTest.php index efbe8edf6..d422feb65 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Request/CommandParamConverterTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Request/CommandParamConverterTest.php @@ -19,9 +19,10 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Tests\Request; use Mockery as m; +use PHPUnit\Framework\TestCase; use Surfnet\StepupMiddleware\ApiBundle\Request\CommandParamConverter; -class CommandParamConverterTest extends \PHPUnit_Framework_TestCase +class CommandParamConverterTest extends TestCase { /** * @test @@ -31,7 +32,7 @@ class CommandParamConverterTest extends \PHPUnit_Framework_TestCase */ public function it_validates_the_command_structure($commandJson) { - $this->setExpectedException('Surfnet\StepupMiddleware\ApiBundle\Exception\BadCommandRequestException'); + $this->expectException(\Surfnet\StepupMiddleware\ApiBundle\Exception\BadCommandRequestException::class); $request = m::mock('Symfony\Component\HttpFoundation\Request') ->shouldReceive('getContent')->with()->andReturn($commandJson) @@ -63,6 +64,8 @@ public function it_can_convert_command_name_notation($expectedCommandClass, $com $converter = new CommandParamConverter(); $converter->apply($request, $configuration); + + $this->assertInstanceOf(CommandParamConverter::class, $converter); } /** diff --git a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Request/InstitutionParamConverterTest.php b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Request/InstitutionParamConverterTest.php index 523ceb6bb..551d0f134 100644 --- a/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Request/InstitutionParamConverterTest.php +++ b/src/Surfnet/StepupMiddleware/ApiBundle/Tests/Request/InstitutionParamConverterTest.php @@ -19,7 +19,7 @@ namespace Surfnet\StepupMiddleware\ApiBundle\Tests\Request; use Mockery as m; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\Stepup\Identity\Value\Institution; use Surfnet\StepupMiddleware\ApiBundle\Request\InstitutionParamConverter; use Symfony\Component\HttpFoundation\ParameterBag; @@ -36,7 +36,7 @@ class InstitutionParamConverterTest extends UnitTest */ private $paramConverterConfig; - public function setUp() + public function setUp(): void { $this->request = m::mock('Symfony\Component\HttpFoundation\Request'); $this->paramConverterConfig = m::mock('Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter'); @@ -45,11 +45,11 @@ public function setUp() /** * @test * @group api-bundle - * - * @expectedException \Surfnet\StepupMiddleware\ApiBundle\Exception\BadApiRequestException */ public function an_exception_is_thrown_when_the_parameter_is_missing() { + $this->expectException(\Surfnet\StepupMiddleware\ApiBundle\Exception\BadApiRequestException::class); + $this->request->query = $this->mockQuery(false); $converter = new InstitutionParamConverter(); diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Configuration/CommandHandler/ConfigurationCommandHandler.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Configuration/CommandHandler/ConfigurationCommandHandler.php index 189c22720..af0afbe30 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Configuration/CommandHandler/ConfigurationCommandHandler.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Configuration/CommandHandler/ConfigurationCommandHandler.php @@ -18,13 +18,13 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Configuration\CommandHandler; -use Broadway\CommandHandling\CommandHandler; +use Broadway\CommandHandling\SimpleCommandHandler; use Broadway\Repository\AggregateNotFoundException; use Surfnet\Stepup\Configuration\Configuration; use Surfnet\Stepup\Configuration\EventSourcing\ConfigurationRepository; use Surfnet\StepupMiddleware\CommandHandlingBundle\Configuration\Command\UpdateConfigurationCommand; -class ConfigurationCommandHandler extends CommandHandler +class ConfigurationCommandHandler extends SimpleCommandHandler { /** * @var \Surfnet\Stepup\Configuration\EventSourcing\ConfigurationRepository diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Configuration/CommandHandler/InstitutionConfigurationCommandHandler.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Configuration/CommandHandler/InstitutionConfigurationCommandHandler.php index 24c737f7f..9d29ff42d 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Configuration/CommandHandler/InstitutionConfigurationCommandHandler.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Configuration/CommandHandler/InstitutionConfigurationCommandHandler.php @@ -18,9 +18,9 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Configuration\CommandHandler; -use Broadway\CommandHandling\CommandHandler; +use Broadway\CommandHandling\SimpleCommandHandler; use Broadway\Repository\AggregateNotFoundException; -use Broadway\Repository\RepositoryInterface; +use Broadway\Repository\Repository as RepositoryInterface; use Surfnet\Stepup\Configuration\InstitutionConfiguration; use Surfnet\Stepup\Configuration\Value\AllowedSecondFactorList; use Surfnet\Stepup\Configuration\Value\ContactInformation; @@ -46,7 +46,7 @@ /** * @SuppressWarnings(PHPMD.CouplingBetweenObjects) Value objects */ -class InstitutionConfigurationCommandHandler extends CommandHandler +class InstitutionConfigurationCommandHandler extends SimpleCommandHandler { /** * @var RepositoryInterface diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/EventHandling/BufferedEventBus.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/EventHandling/BufferedEventBus.php index 7a7a1b9cc..b6c495a58 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/EventHandling/BufferedEventBus.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/EventHandling/BufferedEventBus.php @@ -18,10 +18,10 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\EventHandling; -use Broadway\Domain\DomainEventStreamInterface; +use Broadway\Domain\DomainEventStream as DomainEventStreamInterface; use Broadway\Domain\DomainMessage; -use Broadway\EventHandling\EventBusInterface; -use Broadway\EventHandling\EventListenerInterface; +use Broadway\EventHandling\EventBus as EventBusInterface; +use Broadway\EventHandling\EventListener as EventListenerInterface; use Doctrine\ORM\EntityManagerInterface; use Exception; @@ -54,12 +54,12 @@ public function __construct(EntityManagerInterface $entityManager) $this->entityManager = $entityManager; } - public function subscribe(EventListenerInterface $eventListener) + public function subscribe(EventListenerInterface $eventListener): void { $this->eventListeners[] = $eventListener; } - public function publish(DomainEventStreamInterface $domainMessages) + public function publish(DomainEventStreamInterface $domainMessages): void { foreach ($domainMessages as $domainMessage) { $this->buffer[] = $domainMessage; diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/EventListener/ProcessingAbortedExceptionListener.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/EventListener/ProcessingAbortedExceptionListener.php index f5b2c7be6..e6335ff25 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/EventListener/ProcessingAbortedExceptionListener.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/EventListener/ProcessingAbortedExceptionListener.php @@ -21,7 +21,7 @@ use Surfnet\StepupMiddleware\CommandHandlingBundle\Pipeline\Exception\ProcessingAbortedException; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\HttpFoundation\JsonResponse; -use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent; +use Symfony\Component\HttpKernel\Event\ExceptionEvent; use Symfony\Component\HttpKernel\KernelEvents; class ProcessingAbortedExceptionListener implements EventSubscriberInterface @@ -31,18 +31,18 @@ public static function getSubscribedEvents() return [KernelEvents::EXCEPTION => 'onKernelException']; } - public function onKernelException(GetResponseForExceptionEvent $event) + public function onKernelException(ExceptionEvent $event) { - $exception = $event->getException(); + $throwable = $event->getThrowable(); - if (!$exception instanceof ProcessingAbortedException) { + if (!$throwable instanceof ProcessingAbortedException) { return; } $event->setResponse(new JsonResponse( [ - 'exception' => get_class($exception), - 'errors' => $exception->getErrors(), + 'exception' => get_class($throwable), + 'errors' => $throwable->getErrors(), ], 400 )); diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/EventSourcing/MetadataEnrichingEventStreamDecorator.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/EventSourcing/MetadataEnrichingEventStreamDecorator.php index 6f321f57e..4a08c89dc 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/EventSourcing/MetadataEnrichingEventStreamDecorator.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/EventSourcing/MetadataEnrichingEventStreamDecorator.php @@ -19,12 +19,11 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\EventSourcing; use Broadway\Domain\DomainEventStream; -use Broadway\Domain\DomainEventStreamInterface; use Broadway\Domain\Metadata as BroadwayMetadata; -use Broadway\EventSourcing\EventStreamDecoratorInterface; +use Broadway\EventSourcing\EventStreamDecorator; use Surfnet\StepupMiddleware\CommandHandlingBundle\Command\Metadata; -final class MetadataEnrichingEventStreamDecorator implements EventStreamDecoratorInterface, MetadataEnricher +final class MetadataEnrichingEventStreamDecorator implements EventStreamDecorator, MetadataEnricher { /** * @var Metadata|null @@ -39,8 +38,8 @@ public function setMetadata(Metadata $metadata = null) public function decorateForWrite( $aggregateType, $aggregateIdentifier, - DomainEventStreamInterface $eventStream - ) { + DomainEventStream $eventStream + ): DomainEventStream { if (!$this->metadata) { return $eventStream; } diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Identity/CommandHandler/IdentityCommandHandler.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Identity/CommandHandler/IdentityCommandHandler.php index 4fe30864b..4fda8fe48 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Identity/CommandHandler/IdentityCommandHandler.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Identity/CommandHandler/IdentityCommandHandler.php @@ -18,9 +18,9 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Identity\CommandHandler; -use Broadway\CommandHandling\CommandHandler; +use Broadway\CommandHandling\SimpleCommandHandler; use Broadway\Repository\AggregateNotFoundException; -use Broadway\Repository\RepositoryInterface; +use Broadway\Repository\Repository as RepositoryInterface; use Surfnet\Stepup\Configuration\EventSourcing\InstitutionConfigurationRepository; use Surfnet\Stepup\Configuration\InstitutionConfiguration; use Surfnet\Stepup\Configuration\Value\Institution as ConfigurationInstitution; @@ -68,7 +68,7 @@ * @SuppressWarnings(PHPMD.TooManyMethods) * @SuppressWarnings(PHPMD.TooManyPublicMethods) */ -class IdentityCommandHandler extends CommandHandler +class IdentityCommandHandler extends SimpleCommandHandler { /** * @var \Surfnet\Stepup\Identity\EventSourcing\IdentityRepository diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Identity/CommandHandler/RegistrationAuthorityCommandHandler.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Identity/CommandHandler/RegistrationAuthorityCommandHandler.php index 93c60942a..e1d046d0e 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Identity/CommandHandler/RegistrationAuthorityCommandHandler.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Identity/CommandHandler/RegistrationAuthorityCommandHandler.php @@ -18,9 +18,9 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Identity\CommandHandler; -use Broadway\CommandHandling\CommandHandler; +use Broadway\CommandHandling\SimpleCommandHandler; use Broadway\Repository\AggregateNotFoundException; -use Broadway\Repository\RepositoryInterface; +use Broadway\Repository\Repository as RepositoryInterface; use Surfnet\Stepup\Configuration\EventSourcing\InstitutionConfigurationRepository; use Surfnet\Stepup\Configuration\InstitutionConfiguration; use Surfnet\Stepup\Configuration\Value\InstitutionConfigurationId; @@ -39,7 +39,7 @@ /** * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ -class RegistrationAuthorityCommandHandler extends CommandHandler +class RegistrationAuthorityCommandHandler extends SimpleCommandHandler { /** * @var \Surfnet\Stepup\Identity\EventSourcing\IdentityRepository diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Identity/CommandHandler/ReminderEmailCommandHandler.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Identity/CommandHandler/ReminderEmailCommandHandler.php index 1d764b03e..9c9168d5d 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Identity/CommandHandler/ReminderEmailCommandHandler.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Identity/CommandHandler/ReminderEmailCommandHandler.php @@ -18,11 +18,11 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Identity\CommandHandler; -use Broadway\CommandHandling\CommandHandler; +use Broadway\CommandHandling\SimpleCommandHandler; use Surfnet\StepupMiddleware\CommandHandlingBundle\Identity\Command\SendVerifiedSecondFactorRemindersCommand; use Surfnet\StepupMiddleware\MiddlewareBundle\Service\VerifiedSecondFactorReminderService; -class ReminderEmailCommandHandler extends CommandHandler +class ReminderEmailCommandHandler extends SimpleCommandHandler { /** * @var VerifiedSecondFactorReminderService diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Identity/CommandHandler/RightToBeForgottenCommandHandler.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Identity/CommandHandler/RightToBeForgottenCommandHandler.php index acfa3c792..de0180cf2 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Identity/CommandHandler/RightToBeForgottenCommandHandler.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Identity/CommandHandler/RightToBeForgottenCommandHandler.php @@ -18,7 +18,7 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Identity\CommandHandler; -use Broadway\CommandHandling\CommandHandler; +use Broadway\CommandHandling\SimpleCommandHandler; use Surfnet\Stepup\Identity\Api\Identity; use Surfnet\Stepup\Identity\EventSourcing\IdentityRepository; use Surfnet\Stepup\Identity\Value\IdentityId; @@ -30,7 +30,7 @@ use Surfnet\StepupMiddleware\CommandHandlingBundle\Identity\Command\ForgetIdentityCommand; use Surfnet\StepupMiddleware\CommandHandlingBundle\SensitiveData\Service\SensitiveDataService; -final class RightToBeForgottenCommandHandler extends CommandHandler +final class RightToBeForgottenCommandHandler extends SimpleCommandHandler { /** * @var \Surfnet\Stepup\Identity\EventSourcing\IdentityRepository diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Identity/CommandHandler/WhitelistCommandHandler.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Identity/CommandHandler/WhitelistCommandHandler.php index 791e435f8..e908adc49 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Identity/CommandHandler/WhitelistCommandHandler.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Identity/CommandHandler/WhitelistCommandHandler.php @@ -18,9 +18,9 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Identity\CommandHandler; -use Broadway\CommandHandling\CommandHandler; +use Broadway\CommandHandling\SimpleCommandHandler; use Broadway\Repository\AggregateNotFoundException; -use Broadway\Repository\RepositoryInterface; +use Broadway\Repository\Repository as RepositoryInterface; use Surfnet\Stepup\Identity\Collection\InstitutionCollection; use Surfnet\Stepup\Identity\Value\Institution; use Surfnet\Stepup\Identity\Whitelist; @@ -28,7 +28,7 @@ use Surfnet\StepupMiddleware\CommandHandlingBundle\Identity\Command\RemoveFromWhitelistCommand; use Surfnet\StepupMiddleware\CommandHandlingBundle\Identity\Command\ReplaceWhitelistCommand; -class WhitelistCommandHandler extends CommandHandler +class WhitelistCommandHandler extends SimpleCommandHandler { /** * @var \Surfnet\Stepup\Identity\EventSourcing\WhitelistRepository diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Pipeline/DispatchStage.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Pipeline/DispatchStage.php index 70f969461..5420e512e 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Pipeline/DispatchStage.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Pipeline/DispatchStage.php @@ -18,14 +18,14 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Pipeline; -use Broadway\CommandHandling\CommandBusInterface; +use Broadway\CommandHandling\CommandBus; use Psr\Log\LoggerInterface; use Surfnet\StepupMiddleware\CommandHandlingBundle\Command\Command; class DispatchStage implements Stage { /** - * @var CommandBusInterface + * @var CommandBus */ private $commandBus; @@ -36,9 +36,9 @@ class DispatchStage implements Stage /** * @param LoggerInterface $logger - * @param CommandBusInterface $commandBus + * @param CommandBus $commandBus */ - public function __construct(LoggerInterface $logger, CommandBusInterface $commandBus) + public function __construct(LoggerInterface $logger, CommandBus $commandBus) { $this->logger = $logger; $this->commandBus = $commandBus; diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Resources/config/event_sourcing.yml b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Resources/config/event_sourcing.yml index 150755983..c8aa3338f 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Resources/config/event_sourcing.yml +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Resources/config/event_sourcing.yml @@ -1,4 +1,8 @@ services: + + # BC aliases + Surfnet\StepupMiddleware\CommandHandlingBundle\EventSourcing\MetadataEnricher: "@surfnet_stepup_middleware_command_handling.metadata_enricher.actor" + surfnet_stepup.repository.identity: class: Surfnet\Stepup\Identity\EventSourcing\IdentityRepository arguments: @@ -41,12 +45,13 @@ services: surfnet_stepup.event_store.dbal: public: false - class: Broadway\EventStore\DBALEventStore + class: Broadway\EventStore\Dbal\DBALEventStore arguments: - "@doctrine.dbal.middleware_connection" - "@surfnet_stepup.event_store.simple_serializer" - "@surfnet_stepup.event_store.simple_serializer" - 'event_stream' + - false surfnet_stepup.event_store.simple_serializer: public: false diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Resources/config/pipeline.yml b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Resources/config/pipeline.yml index 150e70d5b..682ae20ac 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Resources/config/pipeline.yml +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Resources/config/pipeline.yml @@ -3,6 +3,16 @@ services: alias: surfnet_stepup_middleware_command_handling.pipeline.transaction_aware_pipeline public: true + # BC aliases + Surfnet\StepupMiddleware\CommandHandlingBundle\Pipeline\TransactionAwarePipeline: "@surfnet_stepup_middleware_command_handling.pipeline.transaction_aware_pipeline" + Surfnet\StepupMiddleware\CommandHandlingBundle\Pipeline\StagedPipeline: "@surfnet_stepup_middleware_command_handling.pipeline.staged_pipeline" + Surfnet\StepupMiddleware\CommandHandlingBundle\Pipeline\AuthorizingStage: "@surfnet_stepup_middleware_command_handling.pipeline.stage.authorizing" + Surfnet\StepupMiddleware\CommandHandlingBundle\Pipeline\ValidationStage: "@surfnet_stepup_middleware_command_handling.pipeline.stage.validation" + Surfnet\StepupMiddleware\CommandHandlingBundle\Pipeline\DispatchStage: "@surfnet_stepup_middleware_command_handling.pipeline.stage.dispatch" + Surfnet\StepupMiddleware\CommandHandlingBundle\Pipeline\EventDispatchingStage: "@surfnet_stepup_middleware_command_handling.pipeline.stage.event_dispatching" + Broadway\CommandHandling\SimpleCommandBus: "@surfnet_stepup_middleware_command_handling.command_bus" + Surfnet\StepupMiddleware\CommandHandlingBundle\EventListener\ProcessingAbortedExceptionListener: "@surfnet_stepup_middleware_command_handling.listener.invalid_command_exception_listener" + surfnet_stepup_middleware_command_handling.pipeline.transaction_aware_pipeline: class: Surfnet\StepupMiddleware\CommandHandlingBundle\Pipeline\TransactionAwarePipeline public: true @@ -51,4 +61,4 @@ services: surfnet_stepup_middleware_command_handling.listener.invalid_command_exception_listener: class: Surfnet\StepupMiddleware\CommandHandlingBundle\EventListener\ProcessingAbortedExceptionListener tags: - - { name: kernel.event_listener, event: kernel.exception, method: onKernelException, priority: 10 } + - { name: kernel.event_listener, event: kernel.exception, priority: 10 } diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/SensitiveData/EventSourcing/SensitiveDataMessage.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/SensitiveData/EventSourcing/SensitiveDataMessage.php index bf4bce650..0009673a3 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/SensitiveData/EventSourcing/SensitiveDataMessage.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/SensitiveData/EventSourcing/SensitiveDataMessage.php @@ -44,13 +44,13 @@ class SensitiveDataMessage * @param int $playhead The associated broadway domain message's playhead. * @param SensitiveData $sensitiveData */ - public function __construct(IdentityId $identityId, $playhead, SensitiveData $sensitiveData) + public function __construct(string $identityId, $playhead, SensitiveData $sensitiveData) { if (!is_int($playhead)) { throw InvalidArgumentException::invalidType('int', 'playhead', $playhead); } - $this->identityId = $identityId; + $this->identityId = new IdentityId($identityId); $this->playhead = $playhead; $this->sensitiveData = $sensitiveData; } diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/SensitiveData/EventSourcing/SensitiveDataMessageStream.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/SensitiveData/EventSourcing/SensitiveDataMessageStream.php index 5a6bb5ac5..ae40ee5cd 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/SensitiveData/EventSourcing/SensitiveDataMessageStream.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/SensitiveData/EventSourcing/SensitiveDataMessageStream.php @@ -19,7 +19,7 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\SensitiveData\EventSourcing; use ArrayIterator; -use Broadway\Domain\DomainEventStreamInterface; +use Broadway\Domain\DomainEventStream; use Broadway\Domain\DomainMessage; use IteratorAggregate; use Surfnet\StepupMiddleware\CommandHandlingBundle\SensitiveData\Exception\SensitiveDataApplicationException; @@ -40,7 +40,7 @@ public function __construct(array $messages) $this->messages = $messages; } - public function applyToDomainEventStream(DomainEventStreamInterface $domainEventStream) + public function applyToDomainEventStream(DomainEventStream $domainEventStream) { $sensitiveDataMap = $this->createSensitiveDataMap($this->messages); diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/SensitiveData/EventStore/SensitiveDataEventStoreDecorator.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/SensitiveData/EventStore/SensitiveDataEventStoreDecorator.php index 35ab7abbb..b55d12abf 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/SensitiveData/EventStore/SensitiveDataEventStoreDecorator.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/SensitiveData/EventStore/SensitiveDataEventStoreDecorator.php @@ -18,10 +18,10 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\SensitiveData\EventStore; -use Broadway\Domain\DomainEventStreamInterface; +use Broadway\Domain\DomainEventStream as DomainEventStreamInterface; use Broadway\Domain\DomainMessage; -use Broadway\EventStore\EventStoreInterface; -use Surfnet\Stepup\Identity\Value\IdentityId; +use Broadway\EventStore\EventStore as EventStoreInterface; +use Surfnet\Stepup\Identity\Event\IdentityEvent; use Surfnet\StepupMiddleware\CommandHandlingBundle\Exception\InvalidArgumentException; use Surfnet\StepupMiddleware\CommandHandlingBundle\SensitiveData\EventSourcing\SensitiveDataMessage; use Surfnet\StepupMiddleware\CommandHandlingBundle\SensitiveData\EventSourcing\SensitiveDataMessageStream; @@ -55,29 +55,21 @@ public function __construct( $this->sensitiveDataMessageRepository = $sensitiveDataMessageRepository; } - public function load($id) + public function load($id): DomainEventStreamInterface { - if (!$id instanceof IdentityId) { - throw new InvalidArgumentException( - 'The SensitiveDataEventStoreDecorator only works with Identities, please pass in an IdentityId $id' - ); - } - $domainEventStream = $this->decoratedEventStore->load($id); + $this->assertIdentityAggregate($domainEventStream); + $sensitiveDataStream = $this->sensitiveDataMessageRepository->findByIdentityId($id); $sensitiveDataStream->applyToDomainEventStream($domainEventStream); return $domainEventStream; } - public function append($id, DomainEventStreamInterface $eventStream) + public function append($id, DomainEventStreamInterface $eventStream): void { - if (!$id instanceof IdentityId) { - throw new InvalidArgumentException( - 'The SensitiveDataEventStoreDecorator only works with Identities, please pass in an IdentityId $id' - ); - } + $this->assertIdentityAggregate($eventStream); $this->decoratedEventStore->append($id, $eventStream); @@ -99,4 +91,35 @@ public function append($id, DomainEventStreamInterface $eventStream) $this->sensitiveDataMessageRepository->append(new SensitiveDataMessageStream($sensitiveDataMessages)); } + + /** + * @param $id + * @param int $playhead + * @return DomainEventStreamInterface + */ + public function loadFromPlayhead($id, int $playhead): DomainEventStreamInterface + { + $domainEventStream = $this->decoratedEventStore->loadFromPlayhead($id, $playhead); + + $this->assertIdentityAggregate($domainEventStream); + + $sensitiveDataStream = $this->sensitiveDataMessageRepository->findByIdentityId($id); + $sensitiveDataStream->applyToDomainEventStream($domainEventStream); + + return $domainEventStream; + } + + /** + * @param DomainEventStreamInterface $stream + */ + public function assertIdentityAggregate(DomainEventStreamInterface $stream) + { + foreach ($stream as $message) { + if (!$message->getPayload() instanceof IdentityEvent) { + throw new InvalidArgumentException( + 'The SensitiveDataEventStoreDecorator only works with Identities, please pass in an IdentityId $id' + ); + } + } + } } diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/SensitiveData/SensitiveData.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/SensitiveData/SensitiveData.php index 021eb8088..6298c4f73 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/SensitiveData/SensitiveData.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/SensitiveData/SensitiveData.php @@ -18,7 +18,7 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\SensitiveData; -use Broadway\Serializer\SerializableInterface; +use Broadway\Serializer\Serializable as SerializableInterface; use Surfnet\Stepup\Identity\Value\CommonName; use Surfnet\Stepup\Identity\Value\DocumentNumber; use Surfnet\Stepup\Identity\Value\Email; @@ -178,7 +178,7 @@ public static function deserialize(array $data) return $self; } - public function serialize() + public function serialize(): array { return array_filter([ 'common_name' => $this->commonName, diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Command/AbstractCommandTest.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Command/AbstractCommandTest.php index 37314eead..4174885e6 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Command/AbstractCommandTest.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Command/AbstractCommandTest.php @@ -18,7 +18,7 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Tests\Command; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; class AbstractCommandTest extends UnitTest { diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Configuration/CommandHandler/ConfigurationCommandHandlerTest.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Configuration/CommandHandler/ConfigurationCommandHandlerTest.php index 37219549c..bd59ee15e 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Configuration/CommandHandler/ConfigurationCommandHandlerTest.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Configuration/CommandHandler/ConfigurationCommandHandlerTest.php @@ -18,9 +18,10 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Tests\Configuration\CommandHandler; -use Broadway\EventHandling\EventBusInterface; +use Broadway\CommandHandling\CommandHandler; +use Broadway\EventHandling\EventBus as EventBusInterface; use Broadway\EventSourcing\AggregateFactory\PublicConstructorAggregateFactory; -use Broadway\EventStore\EventStoreInterface; +use Broadway\EventStore\EventStore as EventStoreInterface; use Surfnet\Stepup\Configuration\Configuration; use Surfnet\Stepup\Configuration\Event\ConfigurationUpdatedEvent; use Surfnet\Stepup\Configuration\Event\EmailTemplatesUpdatedEvent; @@ -130,7 +131,7 @@ public function configuration_can_be_updated() ->then($this->createConfigurationUpdatedEvents($configuration2, $configuration1)); } - protected function createCommandHandler(EventStoreInterface $eventStore, EventBusInterface $eventBus) + protected function createCommandHandler(EventStoreInterface $eventStore, EventBusInterface $eventBus): CommandHandler { $aggregateFactory = new PublicConstructorAggregateFactory(); diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Configuration/CommandHandler/InstitutionConfigurationCommandHandlerTest.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Configuration/CommandHandler/InstitutionConfigurationCommandHandlerTest.php index 1270db7cd..864540c57 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Configuration/CommandHandler/InstitutionConfigurationCommandHandlerTest.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Configuration/CommandHandler/InstitutionConfigurationCommandHandlerTest.php @@ -18,10 +18,11 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Tests\Configuration\CommandHandler; +use Broadway\CommandHandling\CommandHandler; use Broadway\CommandHandling\CommandHandlerInterface; -use Broadway\EventHandling\EventBusInterface; +use Broadway\EventHandling\EventBus as EventBusInterface; use Broadway\EventSourcing\AggregateFactory\PublicConstructorAggregateFactory; -use Broadway\EventStore\EventStoreInterface; +use Broadway\EventStore\EventStore as EventStoreInterface; use Surfnet\Stepup\Configuration\Event\AllowedSecondFactorListUpdatedEvent; use Surfnet\Stepup\Configuration\Event\InstitutionConfigurationRemovedEvent; use Surfnet\Stepup\Configuration\Event\NewInstitutionConfigurationCreatedEvent; @@ -122,10 +123,8 @@ public function an_institution_configuration_is_created_when_there_is_none_for_a */ public function an_institution_configuration_cannot_be_created_when_there_already_is_one_for_a_given_institution() { - $this->setExpectedException( - 'Surfnet\Stepup\Exception\DomainException', - 'Cannot rebuild InstitutionConfiguration as it has not been destroyed' - ); + $this->expectException(\Surfnet\Stepup\Exception\DomainException::class); + $this->expectExceptionMessage('Cannot rebuild InstitutionConfiguration as it has not been destroyed'); $command = new CreateInstitutionConfigurationCommand(); $command->institution = 'An institution'; @@ -573,7 +572,8 @@ public function an_ra_location_can_be_added_to_an_existing_institution_configura */ public function the_same_ra_location_cannot_be_added_twice() { - $this->setExpectedException('Surfnet\Stepup\Exception\DomainException', 'already present'); + $this->expectException(\Surfnet\Stepup\Exception\DomainException::class); + $this->expectExceptionMessage('already present'); $command = new AddRaLocationCommand(); $command->raLocationId = self::uuid(); @@ -676,7 +676,8 @@ public function an_ra_location_can_be_renamed() */ public function an_ra_location_cannot_be_changed_if_it_is_not_present_within_an_institution_configuration() { - $this->setExpectedException('Surfnet\Stepup\Exception\DomainException', 'not present'); + $this->expectException('Surfnet\Stepup\Exception\DomainException'); + $this->expectExceptionMessage('not present'); $command = new ChangeRaLocationCommand(); $command->raLocationId = self::uuid(); @@ -716,7 +717,8 @@ public function an_ra_location_cannot_be_changed_if_it_is_not_present_within_an_ */ public function an_ra_location_cannot_be_changed_if_its_institution_configuration_cannot_be_found() { - $this->setExpectedException('Broadway\Repository\AggregateNotFoundException', 'not found'); + $this->expectException(\Broadway\Repository\AggregateNotFoundException::class); + $this->expectExceptionMessage('not found'); $command = new ChangeRaLocationCommand(); $command->raLocationId = self::uuid(); @@ -869,7 +871,8 @@ public function an_ra_locations_contact_information_can_be_changed() */ public function an_ra_location_cannot_be_removed_if_its_institution_configuration_cannot_be_found() { - $this->setExpectedException('Broadway\Repository\AggregateNotFoundException', 'not found'); + $this->expectException(\Broadway\Repository\AggregateNotFoundException::class); + $this->expectExceptionMessage('not found'); $command = new RemoveRaLocationCommand(); $command->raLocationId = self::uuid(); @@ -907,7 +910,8 @@ public function an_ra_location_cannot_be_removed_if_its_institution_configuratio */ public function an_ra_location_cannot_be_removed_if_it_is_not_present_within_an_institution_configuration() { - $this->setExpectedException('Surfnet\Stepup\Exception\DomainException', 'not present'); + $this->expectException(\Surfnet\Stepup\Exception\DomainException::class); + $this->expectExceptionMessage('not present'); $command = new RemoveRaLocationCommand(); $command->raLocationId = self::uuid(); @@ -1039,9 +1043,9 @@ public function an_institution_configuration_with_unnormalized_institution_confi * @param EventStoreInterface $eventStore * @param EventBusInterface $eventBus * - * @return CommandHandlerInterface + * @return CommandHandler */ - protected function createCommandHandler(EventStoreInterface $eventStore, EventBusInterface $eventBus) + protected function createCommandHandler(EventStoreInterface $eventStore, EventBusInterface $eventBus): CommandHandler { $aggregateFactory = new PublicConstructorAggregateFactory(); diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Configuration/Processor/InstitutionConfigurationProcessorTest.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Configuration/Processor/InstitutionConfigurationProcessorTest.php index 9a48a9915..5a67d02ea 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Configuration/Processor/InstitutionConfigurationProcessorTest.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Configuration/Processor/InstitutionConfigurationProcessorTest.php @@ -19,7 +19,7 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Tests\Configuration\Processor; use Mockery; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Surfnet\Stepup\Configuration\Value\Institution as ConfigurationInstitution; use Surfnet\Stepup\Identity\Collection\InstitutionCollection; use Surfnet\Stepup\Identity\Event\IdentityCreatedEvent; @@ -45,7 +45,7 @@ class InstitutionConfigurationProcessorTest extends TestCase /** * @return Mockery\MockInterface */ - public function setUp() + public function setUp(): void { $this->pipelineMock = Mockery::mock(Pipeline::class); } @@ -82,6 +82,8 @@ public function a_create_institution_configuration_command_is_processed_when_an_ $this->getContainerMock() ); $institutionConfigurationProcessor->handleIdentityCreatedEvent($identityCreatedEvent); + + $this->assertInstanceOf(InstitutionConfigurationProcessor::class, $institutionConfigurationProcessor); } /** @@ -114,6 +116,8 @@ public function no_create_institution_configuration_command_is_processed_when_an $this->getContainerMock() ); $institutionConfigurationProcessor->handleIdentityCreatedEvent($identityCreatedEvent); + + $this->assertInstanceOf(InstitutionConfigurationProcessor::class, $institutionConfigurationProcessor); } /** @@ -153,6 +157,8 @@ public function create_institution_configuration_commands_are_processed_when_a_w $this->getContainerMock() ); $institutionConfigurationProcessor->handleWhitelistCreatedEvent($whitelistCreatedEvent); + + $this->assertInstanceOf(InstitutionConfigurationProcessor::class, $institutionConfigurationProcessor); } /** @@ -196,6 +202,8 @@ public function no_create_institution_configuration_command_is_processed_for_an_ $this->getContainerMock() ); $institutionConfigurationProcessor->handleWhitelistCreatedEvent($whitelistCreatedEvent); + + $this->assertInstanceOf(InstitutionConfigurationProcessor::class, $institutionConfigurationProcessor); } /** @@ -237,6 +245,8 @@ public function create_institution_configuration_commands_are_created_when_a_whi $this->getContainerMock() ); $institutionConfigurationProcessor->handleWhitelistReplacedEvent($whitelistReplacedEvent); + + $this->assertInstanceOf(InstitutionConfigurationProcessor::class, $institutionConfigurationProcessor); } /** @@ -280,6 +290,8 @@ public function no_create_institution_configuration_command_is_processed_for_an_ $this->getContainerMock() ); $institutionConfigurationProcessor->handleWhitelistReplacedEvent($whitelistCreatedEvent); + + $this->assertInstanceOf(InstitutionConfigurationProcessor::class, $institutionConfigurationProcessor); } /** @@ -321,6 +333,8 @@ public function create_institution_configuration_commands_are_created_when_non_c $this->getContainerMock() ); $institutionConfigurationProcessor->handleInstitutionsAddedToWhitelistEvent($institutionsAddedToWhitelistEvent); + + $this->assertInstanceOf(InstitutionConfigurationProcessor::class, $institutionConfigurationProcessor); } /** @@ -364,6 +378,8 @@ public function no_create_institution_configuration_command_is_created_for_an_al $this->getContainerMock() ); $institutionConfigurationProcessor->handleInstitutionsAddedToWhitelistEvent($whitelistCreatedEvent); + + $this->assertInstanceOf(InstitutionConfigurationProcessor::class, $institutionConfigurationProcessor); } /** diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/DateTimeHelperTest.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/DateTimeHelperTest.php index 88644189e..cb0b24f47 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/DateTimeHelperTest.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/DateTimeHelperTest.php @@ -19,12 +19,13 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Tests; use DateTime as CoreDateTime; +use PHPUnit\Framework\TestCase; use Surfnet\Stepup\DateTime\DateTime; /** * @runTestsInSeparateProcesses */ -class DateTimeHelperTest extends \PHPUnit_Framework_TestCase +class DateTimeHelperTest extends TestCase { /** * @test diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/EventHandling/BufferedEventBusTest.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/EventHandling/BufferedEventBusTest.php index 68c71b659..19608e97f 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/EventHandling/BufferedEventBusTest.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/EventHandling/BufferedEventBusTest.php @@ -24,9 +24,10 @@ use Broadway\Domain\Metadata; use Doctrine\ORM\EntityManagerInterface; use Mockery as m; +use PHPUnit\Framework\TestCase; use Surfnet\StepupMiddleware\CommandHandlingBundle\EventHandling\BufferedEventBus; -class BufferedEventBusTest extends \PHPUnit_Framework_TestCase +class BufferedEventBusTest extends TestCase { /** * @test @@ -35,7 +36,7 @@ class BufferedEventBusTest extends \PHPUnit_Framework_TestCase public function it_buffers_events() { $event = $this->createDummyDomainMessage(null); - $listener = m::mock('Broadway\EventHandling\EventListenerInterface') + $listener = m::mock(\Broadway\EventHandling\EventListener::class) ->shouldReceive('handle')->never() ->getMock(); @@ -44,6 +45,8 @@ public function it_buffers_events() // Currently buses typehint against the concrete DomainEventStream. $bus->publish(new DomainEventStream([$event])); + + $this->assertInstanceOf(BufferedEventBus::class, $bus); } /** @@ -53,7 +56,7 @@ public function it_buffers_events() public function it_flushes_events() { $event = $this->createDummyDomainMessage(null); - $listener = m::mock('Broadway\EventHandling\EventListenerInterface') + $listener = m::mock(\Broadway\EventHandling\EventListener::class) ->shouldReceive('handle')->once()->with($event) ->getMock(); @@ -63,6 +66,8 @@ public function it_flushes_events() // Currently buses typehint against the concrete DomainEventStream. $bus->publish(new DomainEventStream([$event])); $bus->flush(); + + $this->assertInstanceOf(BufferedEventBus::class, $bus); } /** @@ -73,7 +78,7 @@ public function it_flushes_events() public function flushing_succesfully_empties_the_buffer_to_prevent_flushing_the_same_event_twice() { $event = $this->createDummyDomainMessage(null); - $listener = m::mock('Broadway\EventHandling\EventListenerInterface') + $listener = m::mock(\Broadway\EventHandling\EventListener::class) ->shouldReceive('handle')->once()->with($event) ->getMock(); @@ -83,6 +88,8 @@ public function flushing_succesfully_empties_the_buffer_to_prevent_flushing_the_ $bus->publish(new DomainEventStream([$event])); $bus->flush(); $bus->flush(); + + $this->assertInstanceOf(BufferedEventBus::class, $bus); } /** diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/EventHandling/RecordEventsAndPublishToBusOnFirstCallEventListener.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/EventHandling/RecordEventsAndPublishToBusOnFirstCallEventListener.php index b461dbc91..075c13374 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/EventHandling/RecordEventsAndPublishToBusOnFirstCallEventListener.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/EventHandling/RecordEventsAndPublishToBusOnFirstCallEventListener.php @@ -20,7 +20,7 @@ use Broadway\Domain\DomainEventStream; use Broadway\Domain\DomainMessage; -use Broadway\EventHandling\EventListenerInterface; +use Broadway\EventHandling\EventListener as EventListenerInterface; use Surfnet\StepupMiddleware\CommandHandlingBundle\EventHandling\BufferedEventBus; class RecordEventsAndPublishToBusOnFirstCallEventListener implements EventListenerInterface @@ -58,7 +58,7 @@ public function __construct(BufferedEventBus $eventBus, DomainEventStream $toPub /** * @param DomainMessage $domainMessage */ - public function handle(DomainMessage $domainMessage) + public function handle(DomainMessage $domainMessage): void { $this->recordedEvents[] = $domainMessage; diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Identity/CommandHandler/IdentityCommandHandlerTest.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Identity/CommandHandler/IdentityCommandHandlerTest.php index 851961969..c4ba18d94 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Identity/CommandHandler/IdentityCommandHandlerTest.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Identity/CommandHandler/IdentityCommandHandlerTest.php @@ -18,9 +18,10 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Tests\Identity\CommandHandler; -use Broadway\EventHandling\EventBusInterface; +use Broadway\CommandHandling\CommandHandler; +use Broadway\EventHandling\EventBus as EventBusInterface; use Broadway\EventSourcing\AggregateFactory\PublicConstructorAggregateFactory; -use Broadway\EventStore\EventStoreInterface; +use Broadway\EventStore\EventStore as EventStoreInterface; use DateTime as CoreDateTime; use Mockery as m; use Surfnet\Stepup\Configuration\EventSourcing\InstitutionConfigurationRepository; @@ -113,7 +114,7 @@ class IdentityCommandHandlerTest extends CommandHandlerTest */ private $institutionConfiguration; - public function setUp() + public function setUp(): void { $this->allowedSecondFactorListServiceMock = m::mock(AllowedSecondFactorListService::class); $this->institutionConfigurationRepositoryMock = m::mock(InstitutionConfigurationRepository::class); @@ -122,7 +123,7 @@ public function setUp() parent::setUp(); } - protected function createCommandHandler(EventStoreInterface $eventStore, EventBusInterface $eventBus) + protected function createCommandHandler(EventStoreInterface $eventStore, EventBusInterface $eventBus): CommandHandler { $aggregateFactory = new PublicConstructorAggregateFactory(); @@ -221,7 +222,7 @@ public function an_identity_cannot_be_bootstrapped_twice() $this->identityProjectionRepository->shouldReceive('hasIdentityWithNameIdAndInstitution')->andReturn(true); $this->configService->shouldReceive('getMaxNumberOfTokensFor')->andReturn(2); - $this->setExpectedException(DuplicateIdentityException::class); + $this->expectException(DuplicateIdentityException::class); $this->scenario ->withAggregateId($command->identityId) @@ -327,7 +328,8 @@ public function a_yubikey_possession_cannot_be_proven_if_the_second_factor_is_no ->shouldReceive('getAllowedSecondFactorListFor') ->andReturn(AllowedSecondFactorList::ofTypes([new SecondFactorType('sms')])); - $this->setExpectedException(SecondFactorNotAllowedException::class, 'does not support second factor'); + $this->expectException(SecondFactorNotAllowedException::class); + $this->expectExceptionMessage('does not support second factor'); $this->scenario ->withAggregateId($id) @@ -348,7 +350,8 @@ public function a_yubikey_possession_cannot_be_proven_if_the_second_factor_is_no */ public function yubikey_possession_cannot_be_proven_twice() { - $this->setExpectedException('Surfnet\Stepup\Exception\DomainException', 'more than 1 token(s)'); + $this->expectException(\Surfnet\Stepup\Exception\DomainException::class); + $this->expectExceptionMessage('more than 1 token(s)'); $id = new IdentityId(self::uuid()); $institution = new Institution('A Corp.'); @@ -491,7 +494,8 @@ public function a_phone_possession_cannot_be_proven_if_the_second_factor_is_not_ ->shouldReceive('getAllowedSecondFactorListFor') ->andReturn(AllowedSecondFactorList::ofTypes([new SecondFactorType('yubikey')])); - $this->setExpectedException(SecondFactorNotAllowedException::class, 'does not support second factor'); + $this->expectException(SecondFactorNotAllowedException::class); + $this->expectExceptionMessage('does not support second factor'); $command = new ProvePhonePossessionCommand(); $command->identityId = (string) $id; @@ -620,7 +624,8 @@ public function a_gssf_possession_can_not_be_proven_if_the_second_factor_is_not_ ->shouldReceive('getAllowedSecondFactorListFor') ->andReturn(AllowedSecondFactorList::ofTypes([new SecondFactorType('sms')])); - $this->setExpectedException(SecondFactorNotAllowedException::class, 'does not support second factor'); + $this->expectException(SecondFactorNotAllowedException::class); + $this->expectExceptionMessage('does not support second factor'); $command = new ProveGssfPossessionCommand(); $command->identityId = (string) $identityId; @@ -733,7 +738,8 @@ public function a_u2f_device_possession_cannot_be_proven_if_the_second_factor_is ->shouldReceive('getAllowedSecondFactorListFor') ->andReturn(AllowedSecondFactorList::ofTypes([new SecondFactorType('yubikey')])); - $this->setExpectedException(SecondFactorNotAllowedException::class, 'does not support second factor'); + $this->expectException(SecondFactorNotAllowedException::class); + $this->expectExceptionMessage('does not support second factor'); $command = new ProveU2fDevicePossessionCommand(); $command->identityId = (string) $id; @@ -760,7 +766,8 @@ public function a_u2f_device_possession_cannot_be_proven_if_the_second_factor_is */ public function phone_possession_cannot_be_proven_twice() { - $this->setExpectedException('Surfnet\Stepup\Exception\DomainException', 'more than 1 token(s)'); + $this->expectException(\Surfnet\Stepup\Exception\DomainException::class); + $this->expectExceptionMessage('more than 1 token(s)'); $id = new IdentityId(self::uuid()); $institution = new Institution('A Corp.'); @@ -818,7 +825,8 @@ public function phone_possession_cannot_be_proven_twice() */ public function cannot_prove_possession_of_arbitrary_second_factor_type_twice() { - $this->setExpectedException('Surfnet\Stepup\Exception\DomainException', 'more than 1 token(s)'); + $this->expectException(\Surfnet\Stepup\Exception\DomainException::class); + $this->expectExceptionMessage('more than 1 token(s)'); $id = new IdentityId(self::uuid()); $institution = new Institution('A Corp.'); @@ -946,10 +954,8 @@ public function an_unverified_second_factors_email_can_be_verified() */ public function a_verified_second_factors_email_cannot_be_verified() { - $this->setExpectedException( - 'Surfnet\Stepup\Exception\DomainException', - 'Cannot verify second factor, no unverified second factor can be verified using the given nonce' - ); + $this->expectException(\Surfnet\Stepup\Exception\DomainException::class); + $this->expectExceptionMessage('Cannot verify second factor, no unverified second factor can be verified using the given nonce'); $id = new IdentityId(self::uuid()); $institution = new Institution('A Corp.'); @@ -1012,10 +1018,8 @@ public function a_verified_second_factors_email_cannot_be_verified() */ public function cannot_verify_an_email_after_the_verification_window_has_closed() { - $this->setExpectedException( - 'Surfnet\Stepup\Exception\DomainException', - 'Cannot verify second factor, the verification window is closed.' - ); + $this->expectException(\Surfnet\Stepup\Exception\DomainException::class); + $this->expectExceptionMessage('Cannot verify second factor, the verification window is closed.'); $id = new IdentityId(self::uuid()); $secondFactorId = new SecondFactorId(self::uuid()); @@ -1282,11 +1286,12 @@ public function a_second_factor_can_be_vetted() /** * @test * @group command-handler - * @expectedException \Surfnet\Stepup\Exception\DomainException - * @expectedExceptionMessage Authority does not have the required LoA */ public function a_second_factor_cannot_be_vetted_without_a_secure_enough_vetted_second_factor() { + $this->expectExceptionMessage("Authority does not have the required LoA"); + $this->expectException(\Surfnet\Stepup\Exception\DomainException::class); + $command = new VetSecondFactorCommand(); $command->authorityId = 'AID'; $command->identityId = 'IID'; @@ -1457,11 +1462,12 @@ public function an_identity_can_express_its_locale_preference() * @test * @group command-handler * @runInSeparateProcess - * @expectedException \Surfnet\StepupMiddleware\CommandHandlingBundle\Exception\UnsupportedLocaleException - * @expectedExceptionMessage Given locale "fi_FI" is not a supported locale */ public function an_identity_cannot_express_a_preference_for_an_unsupported_locale() { + $this->expectExceptionMessage("Given locale \"fi_FI\" is not a supported locale"); + $this->expectException(\Surfnet\StepupMiddleware\CommandHandlingBundle\Exception\UnsupportedLocaleException::class); + $command = new ExpressLocalePreferenceCommand(); $command->identityId = $this->uuid(); $command->preferredLocale = 'fi_FI'; diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Identity/CommandHandler/IdentityIdEnforcingEventStoreDecorator.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Identity/CommandHandler/IdentityIdEnforcingEventStoreDecorator.php index 4edef3d68..2e68ce726 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Identity/CommandHandler/IdentityIdEnforcingEventStoreDecorator.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Identity/CommandHandler/IdentityIdEnforcingEventStoreDecorator.php @@ -18,9 +18,9 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Tests\Identity\CommandHandler; -use Broadway\Domain\DomainEventStreamInterface; -use Broadway\EventStore\EventStoreInterface; -use Surfnet\Stepup\Identity\Value\IdentityId; +use Broadway\Domain\DomainEventStream as DomainEventStreamInterface; +use Broadway\EventStore\EventStore as EventStoreInterface; +use Surfnet\Stepup\Identity\Event\IdentityEvent; use Surfnet\StepupMiddleware\CommandHandlingBundle\Exception\InvalidArgumentException; final class IdentityIdEnforcingEventStoreDecorator implements EventStoreInterface @@ -35,25 +35,47 @@ public function __construct(EventStoreInterface $decoratedEventStore) $this->decoratedEventStore = $decoratedEventStore; } - public function load($id) + public function load($id): DomainEventStreamInterface { - if (!$id instanceof IdentityId) { - throw new InvalidArgumentException( - 'The SensitiveDataEventStoreDecorator only works with Identities, please pass in an IdentityId $id' - ); - } + $eventStream = $this->decoratedEventStore->load($id); + + $this->assertIdentityAggregate($eventStream); - return $this->decoratedEventStore->load($id); + return $eventStream; } - public function append($id, DomainEventStreamInterface $eventStream) + public function append($id, DomainEventStreamInterface $eventStream): void { - if (!$id instanceof IdentityId) { - throw new InvalidArgumentException( - 'The SensitiveDataEventStoreDecorator only works with Identities, please pass in an IdentityId $id' - ); - } + $this->assertIdentityAggregate($eventStream); $this->decoratedEventStore->append($id, $eventStream); } + + /** + * @param $id + * @param int $playhead + * @return DomainEventStreamInterface + */ + public function loadFromPlayhead($id, int $playhead): DomainEventStreamInterface + { + $eventStream = $this->decoratedEventStore->loadFromPlayhead($id, $playhead); + + $this->assertIdentityAggregate($eventStream); + + return $eventStream; + } + + /** + * @param DomainEventStreamInterface $stream + */ + public function assertIdentityAggregate(DomainEventStreamInterface $stream) + { + foreach ($stream as $message) { + if (!$message->getPayload() instanceof IdentityEvent) { + throw new InvalidArgumentException( + 'The SensitiveDataEventStoreDecorator only works with Identities, please pass in an IdentityId $id' + ); + } + } + } } diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Identity/CommandHandler/RegistrationAuthorityCommandHandlerTest.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Identity/CommandHandler/RegistrationAuthorityCommandHandlerTest.php index 8283fe698..da0b60f0d 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Identity/CommandHandler/RegistrationAuthorityCommandHandlerTest.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Identity/CommandHandler/RegistrationAuthorityCommandHandlerTest.php @@ -18,10 +18,11 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Tests\Identity\CommandHandler; +use Broadway\CommandHandling\CommandHandler; use Broadway\CommandHandling\CommandHandlerInterface; -use Broadway\EventHandling\EventBusInterface; +use Broadway\EventHandling\EventBus as EventBusInterface; use Broadway\EventSourcing\AggregateFactory\PublicConstructorAggregateFactory; -use Broadway\EventStore\EventStoreInterface; +use Broadway\EventStore\EventStore as EventStoreInterface; use Mockery as m; use Surfnet\Stepup\Configuration\EventSourcing\InstitutionConfigurationRepository; use Surfnet\Stepup\Configuration\InstitutionConfiguration; @@ -72,9 +73,9 @@ class RegistrationAuthorityCommandHandlerTest extends CommandHandlerTest * @param EventStoreInterface $eventStore * @param EventBusInterface $eventBus * - * @return CommandHandlerInterface + * @return CommandHandler */ - protected function createCommandHandler(EventStoreInterface $eventStore, EventBusInterface $eventBus) + protected function createCommandHandler(EventStoreInterface $eventStore, EventBusInterface $eventBus): CommandHandler { $aggregateFactory = new PublicConstructorAggregateFactory(); @@ -99,11 +100,12 @@ protected function createCommandHandler(EventStoreInterface $eventStore, EventBu * @test * @group command-handler * @group ra-command-handler - * @expectedException \Surfnet\Stepup\Exception\DomainException - * @expectedExceptionMessage An Identity may only be accredited by configured institutions */ public function an_identity_cannot_be_accredited_for_another_institution_than_configured() { + $this->expectExceptionMessage("An Identity may only be accredited by configured institutions"); + $this->expectException(\Surfnet\Stepup\Exception\DomainException::class); + $command = new AccreditIdentityCommand(); $command->identityId = static::uuid(); $command->institution = 'Babelfish Inc.'; @@ -153,11 +155,11 @@ public function an_identity_cannot_be_accredited_for_another_institution_than_co * @test * @group command-handler * @group ra-command-handler - * @expectedException \Surfnet\Stepup\Exception\DomainException - * @expectedExceptionMessage An Identity must have at least one vetted second factor before it can be accredited */ public function an_identity_cannot_be_accredited_when_it_does_not_have_a_vetted_second_factor() { + $this->expectExceptionMessage("An Identity must have at least one vetted second factor before it can be accredited"); + $this->expectException(\Surfnet\Stepup\Exception\DomainException::class); $command = new AccreditIdentityCommand(); $command->identityId = static::uuid(); $command->institution = 'Babelfish Inc.'; @@ -196,11 +198,11 @@ public function an_identity_cannot_be_accredited_when_it_does_not_have_a_vetted_ * @test * @group command-handler * @group ra-command-handler - * @expectedException \Surfnet\Stepup\Exception\DomainException - * @expectedExceptionMessage Cannot accredit Identity as it has already been accredited for institution */ public function an_identity_cannot_be_accredited_when_it_already_has_been_accredited() { + $this->expectExceptionMessage("Cannot accredit Identity as it has already been accredited for institution"); + $this->expectException(\Surfnet\Stepup\Exception\DomainException::class); $command = new AccreditIdentityCommand(); $command->identityId = static::uuid(); $command->institution = 'Babelfish Inc.'; @@ -260,10 +262,10 @@ public function an_identity_cannot_be_accredited_when_it_already_has_been_accred * @test * @group command-handler * @group ra-command-handler - * @expectedException \Surfnet\StepupMiddleware\CommandHandlingBundle\Exception\RuntimeException */ public function an_identity_cannot_be_accredited_with_an_invalid_role() { + $this->expectException(\Surfnet\StepupMiddleware\CommandHandlingBundle\Exception\RuntimeException::class); $command = new AccreditIdentityCommand(); $command->identityId = static::uuid(); @@ -515,11 +517,12 @@ public function a_registration_authoritys_information_can_be_amended() * @test * @group command-handler * @group ra-command-handler - * @expectedException \Surfnet\Stepup\Exception\DomainException - * @expectedExceptionMessage Cannot amend registration authority information: identity is not a registration authority */ public function an_identitys_registration_authority_information_cannot_be_amended() { + $this->expectExceptionMessage("Cannot amend registration authority information: identity is not a registration authority"); + $this->expectException(\Surfnet\Stepup\Exception\DomainException::class); + $command = new AmendRegistrationAuthorityInformationCommand(); $command->identityId = static::uuid(); $command->location = 'New York'; @@ -565,11 +568,12 @@ public function an_identitys_registration_authority_information_cannot_be_amende * @test * @group command-handler * @group ra-command-handler - * @expectedException \Surfnet\Stepup\Exception\DomainException - * @expectedExceptionMessage An Identity must have at least one vetted second factor before it can be accredited */ public function an_identity_without_vetted_second_factor_may_not_be_accredited_as_ra() { + $this->expectExceptionMessage("An Identity must have at least one vetted second factor before it can be accredited"); + $this->expectException(\Surfnet\Stepup\Exception\DomainException::class); + $command = new AccreditIdentityCommand(); $command->identityId = static::uuid(); $command->institution = 'Babelfish Inc.'; @@ -673,11 +677,12 @@ public function an_identity_with_a_vetted_second_factor_can_be_accredited_as_ra( * @test * @group command-handler * @group ra-command-handler - * @expectedException \Surfnet\Stepup\Exception\DomainException - * @expectedExceptionMessage Cannot accredit Identity as it has already been accredited for institution */ public function an_identity_cannot_be_accredited_twice() { + $this->expectExceptionMessage("Cannot accredit Identity as it has already been accredited for institution"); + $this->expectException(\Surfnet\Stepup\Exception\DomainException::class); + $command = new AccreditIdentityCommand(); $command->identityId = static::uuid(); $command->institution = 'Babelfish Inc.'; @@ -736,10 +741,11 @@ public function an_identity_cannot_be_accredited_twice() * @test * @group command-handler * @group ra-command-handler - * @expectedException \Surfnet\StepupMiddleware\CommandHandlingBundle\Exception\RuntimeException */ public function an_identity_cannot_be_accredited_as_sraa() { + $this->expectException(\Surfnet\StepupMiddleware\CommandHandlingBundle\Exception\RuntimeException::class); + $command = new AccreditIdentityCommand(); $command->identityId = static::uuid(); $command->institution = 'Babelfish Inc.'; @@ -919,11 +925,12 @@ public function an_identity_that_is_accredited_as_ra_can_be_appointed_as_raa() * @test * @group command-handler * @group ra-command-handler - * @expectedException \Surfnet\Stepup\Exception\DomainException - * @expectedExceptionMessage Cannot appoint as different RegistrationAuthorityRole: identity is not a registration authority */ public function an_unaccredited_identity_cannot_be_appointed_a_registration_authority_role() { + $this->expectExceptionMessage("Cannot appoint as different RegistrationAuthorityRole: identity is not a registration authority"); + $this->expectException(\Surfnet\Stepup\Exception\DomainException::class); + $command = new AppointRoleCommand(); $command->identityId = static::uuid(); $command->role = 'raa'; @@ -970,11 +977,12 @@ public function an_unaccredited_identity_cannot_be_appointed_a_registration_auth * @test * @group command-handler * @group ra-command-handler - * @expectedException \Surfnet\Stepup\Exception\DomainException - * @expectedExceptionMessage Cannot Retract Registration Authority as the Identity is not a registration authority */ public function an_unaccredited_identity_cannot_have_its_registration_authority_retracted() { + $this->expectExceptionMessage("Cannot Retract Registration Authority as the Identity is not a registration authority"); + $this->expectException(\Surfnet\Stepup\Exception\DomainException::class); + $command = new RetractRegistrationAuthorityCommand(); $command->identityId = static::uuid(); $command->raInstitution = 'RA institution'; diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Identity/CommandHandler/RightToBeForgottenCommandHandlerTest.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Identity/CommandHandler/RightToBeForgottenCommandHandlerTest.php index 843b1f02e..5f13e41b1 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Identity/CommandHandler/RightToBeForgottenCommandHandlerTest.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Identity/CommandHandler/RightToBeForgottenCommandHandlerTest.php @@ -18,9 +18,11 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Tests\Identity\CommandHandler; -use Broadway\EventHandling\EventBusInterface; +use Broadway\CommandHandling\CommandHandler; +use Broadway\EventHandling\EventBus as EventBusInterface; use Broadway\EventSourcing\AggregateFactory\PublicConstructorAggregateFactory; -use Broadway\EventStore\EventStoreInterface; +use Broadway\EventStore\EventStore as EventStoreInterface; +use Hamcrest\Matchers; use Mockery as m; use Mockery\MockInterface; use Surfnet\Stepup\Identity\Event\IdentityAccreditedAsRaEvent; @@ -43,7 +45,6 @@ use Surfnet\StepupMiddleware\CommandHandlingBundle\Identity\Command\ForgetIdentityCommand; use Surfnet\StepupMiddleware\CommandHandlingBundle\Identity\CommandHandler\RightToBeForgottenCommandHandler; use Surfnet\StepupMiddleware\CommandHandlingBundle\Tests\CommandHandlerTest; - /** * @runTestsInSeparateProcesses */ @@ -58,7 +59,7 @@ class RightToBeForgottenCommandHandlerTest extends CommandHandlerTest /** @var MockInterface */ private $sraaRepository; - protected function createCommandHandler(EventStoreInterface $eventStore, EventBusInterface $eventBus) + protected function createCommandHandler(EventStoreInterface $eventStore, EventBusInterface $eventBus): CommandHandler { $aggregateFactory = new PublicConstructorAggregateFactory(); @@ -95,15 +96,15 @@ public function an_identity_can_be_forgotten() $this->apiIdentityRepository ->shouldReceive('findOneByNameIdAndInstitution') ->once() - ->with(m::anyOf($nameId), m::anyOf($institution)) + ->with(Matchers::equalTo($nameId), Matchers::equalTo($institution)) ->andReturn((object) ['id' => $identityId->getIdentityId()]); $this->sensitiveDataService ->shouldReceive('forgetSensitiveData') ->once() - ->with(m::anyOf($identityId)); + ->with(Matchers::equalTo($identityId)); - $this->sraaRepository->shouldReceive('contains')->once()->with(m::anyOf($nameId))->andReturn(false); + $this->sraaRepository->shouldReceive('contains')->once()->with(Matchers::equalTo($nameId))->andReturn(false); $command = new ForgetIdentityCommand(); $command->nameId = $nameId->getNameId(); @@ -141,11 +142,12 @@ public function an_identity_can_be_forgotten() * @test * @group command-handler * @group sensitive-data - * @expectedException Surfnet\Stepup\Exception\DomainException - * @expectedExceptionMessage Operation on this Identity is not allowed: it has been forgotten */ public function an_identity_may_not_be_forgotten_twice() { + $this->expectExceptionMessage("Operation on this Identity is not allowed: it has been forgotten"); + $this->expectException(\Surfnet\Stepup\Exception\DomainException::class); + $identityId = new IdentityId('A'); $institution = new Institution('Helsingin Yliopisto'); $nameId = new NameId('urn:eeva-kuopio'); @@ -156,15 +158,15 @@ public function an_identity_may_not_be_forgotten_twice() $this->apiIdentityRepository ->shouldReceive('findOneByNameIdAndInstitution') ->once() - ->with(m::anyOf($nameId), m::anyOf($institution)) + ->with(Matchers::equalTo($nameId), Matchers::equalTo($institution)) ->andReturn((object) ['id' => $identityId->getIdentityId()]); $this->sensitiveDataService ->shouldReceive('forgetSensitiveData') ->once() - ->with(m::anyOf($identityId)); + ->with(Matchers::equalTo($identityId)); - $this->sraaRepository->shouldReceive('contains')->once()->with(m::anyOf($nameId))->andReturn(false); + $this->sraaRepository->shouldReceive('contains')->once()->with(Matchers::equalTo($nameId))->andReturn(false); $command = new ForgetIdentityCommand(); $command->nameId = $nameId->getNameId(); @@ -200,11 +202,12 @@ public function an_identity_may_not_be_forgotten_twice() * @test * @group command-handler * @group sensitive-data - * @expectedException Surfnet\Stepup\Exception\DomainException - * @expectedExceptionMessage Cannot forget an identity that is currently accredited as an RA(A) */ public function an_ra_cannot_be_forgotten() { + $this->expectExceptionMessage("Cannot forget an identity that is currently accredited as an RA(A)"); + $this->expectException(\Surfnet\Stepup\Exception\DomainException::class); + $identityId = new IdentityId('A'); $institution = new Institution('Helsingin Yliopisto'); $nameId = new NameId('urn:eeva-kuopio'); @@ -215,15 +218,15 @@ public function an_ra_cannot_be_forgotten() $this->apiIdentityRepository ->shouldReceive('findOneByNameIdAndInstitution') ->once() - ->with(m::anyOf($nameId), m::anyOf($institution)) + ->with(Matchers::equalTo($nameId), Matchers::equalTo($institution)) ->andReturn((object) ['id' => $identityId->getIdentityId()]); $this->sensitiveDataService ->shouldReceive('forgetSensitiveData') ->once() - ->with(m::anyOf($identityId)); + ->with(Matchers::equalTo($identityId)); - $this->sraaRepository->shouldReceive('contains')->once()->with(m::anyOf($nameId))->andReturn(false); + $this->sraaRepository->shouldReceive('contains')->once()->with(Matchers::equalTo($nameId))->andReturn(false); $command = new ForgetIdentityCommand(); $command->nameId = $nameId->getNameId(); @@ -267,11 +270,12 @@ public function an_ra_cannot_be_forgotten() * @test * @group command-handler * @group sensitive-data - * @expectedException Surfnet\Stepup\Exception\DomainException - * @expectedExceptionMessage Cannot forget an identity that is currently accredited as an RA(A) */ public function an_raa_cannot_be_forgotten() { + $this->expectExceptionMessage("Cannot forget an identity that is currently accredited as an RA(A)"); + $this->expectException(\Surfnet\Stepup\Exception\DomainException::class); + $identityId = new IdentityId('A'); $institution = new Institution('Helsingin Yliopisto'); $nameId = new NameId('urn:eeva-kuopio'); @@ -282,15 +286,15 @@ public function an_raa_cannot_be_forgotten() $this->apiIdentityRepository ->shouldReceive('findOneByNameIdAndInstitution') ->once() - ->with(m::anyOf($nameId), m::anyOf($institution)) + ->with(Matchers::equalTo($nameId), Matchers::equalTo($institution)) ->andReturn((object) ['id' => $identityId->getIdentityId()]); $this->sensitiveDataService ->shouldReceive('forgetSensitiveData') ->once() - ->with(m::anyOf($identityId)); + ->with(Matchers::equalTo($identityId)); - $this->sraaRepository->shouldReceive('contains')->once()->with(m::anyOf($nameId))->andReturn(false); + $this->sraaRepository->shouldReceive('contains')->once()->with(Matchers::equalTo($nameId))->andReturn(false); $command = new ForgetIdentityCommand(); $command->nameId = $nameId->getNameId(); @@ -334,11 +338,12 @@ public function an_raa_cannot_be_forgotten() * @test * @group command-handler * @group sensitive-data - * @expectedException Surfnet\StepupMiddleware\CommandHandlingBundle\Exception\RuntimeException - * @expectedExceptionMessage Cannot forget an identity that is currently accredited as an SRAA */ public function an_sraa_cannae_be_forgotten() { + $this->expectExceptionMessage("Cannot forget an identity that is currently accredited as an SRAA"); + $this->expectException(\Surfnet\StepupMiddleware\CommandHandlingBundle\Exception\RuntimeException::class); + $identityId = new IdentityId('A'); $institution = new Institution('Helsingin Yliopisto'); $nameId = new NameId('urn:eeva-kuopio'); @@ -349,15 +354,15 @@ public function an_sraa_cannae_be_forgotten() $this->apiIdentityRepository ->shouldReceive('findOneByNameIdAndInstitution') ->once() - ->with(m::anyOf($nameId), m::anyOf($institution)) + ->with(Matchers::equalTo($nameId), Matchers::equalTo($institution)) ->andReturn((object) ['id' => $identityId->getIdentityId()]); $this->sensitiveDataService ->shouldReceive('forgetSensitiveData') ->once() - ->with(m::anyOf($identityId)); + ->with(Matchers::equalTo($identityId)); - $this->sraaRepository->shouldReceive('contains')->once()->with(m::anyOf($nameId))->andReturn(true); + $this->sraaRepository->shouldReceive('contains')->once()->with(Matchers::equalTo($nameId))->andReturn(true); $command = new ForgetIdentityCommand(); $command->nameId = $nameId->getNameId(); diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Identity/CommandHandler/SecondFactorRevocationTest.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Identity/CommandHandler/SecondFactorRevocationTest.php index f526d4372..8ad34f69a 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Identity/CommandHandler/SecondFactorRevocationTest.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Identity/CommandHandler/SecondFactorRevocationTest.php @@ -18,9 +18,10 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Tests\Identity\CommandHandler; -use Broadway\EventHandling\EventBusInterface; +use Broadway\CommandHandling\CommandHandler; +use Broadway\EventHandling\EventBus as EventBusInterface; use Broadway\EventSourcing\AggregateFactory\PublicConstructorAggregateFactory; -use Broadway\EventStore\EventStoreInterface; +use Broadway\EventStore\EventStore as EventStoreInterface; use Mockery as m; use Surfnet\Stepup\Configuration\EventSourcing\InstitutionConfigurationRepository; use Surfnet\Stepup\DateTime\DateTime; @@ -68,7 +69,7 @@ class SecondFactorRevocationTest extends CommandHandlerTest { private static $window = 3600; - protected function createCommandHandler(EventStoreInterface $eventStore, EventBusInterface $eventBus) + protected function createCommandHandler(EventStoreInterface $eventStore, EventBusInterface $eventBus): CommandHandler { $aggregateFactory = new PublicConstructorAggregateFactory(); diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Identity/CommandHandler/WhitelistCommandHandlerTest.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Identity/CommandHandler/WhitelistCommandHandlerTest.php index 562010441..70a8e0fcf 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Identity/CommandHandler/WhitelistCommandHandlerTest.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Identity/CommandHandler/WhitelistCommandHandlerTest.php @@ -18,9 +18,10 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Tests\Identity\CommandHandler; -use Broadway\EventHandling\EventBusInterface; +use Broadway\CommandHandling\CommandHandler; +use Broadway\EventHandling\EventBus as EventBusInterface; use Broadway\EventSourcing\AggregateFactory\PublicConstructorAggregateFactory; -use Broadway\EventStore\EventStoreInterface; +use Broadway\EventStore\EventStore as EventStoreInterface; use Surfnet\Stepup\Identity\Collection\InstitutionCollection; use Surfnet\Stepup\Identity\Event\InstitutionsAddedToWhitelistEvent; use Surfnet\Stepup\Identity\Event\InstitutionsRemovedFromWhitelistEvent; @@ -42,7 +43,7 @@ class WhitelistCommandHandlerTest extends CommandHandlerTest */ const WID = Whitelist::WHITELIST_AGGREGATE_ID; - protected function createCommandHandler(EventStoreInterface $eventStore, EventBusInterface $eventBus) + protected function createCommandHandler(EventStoreInterface $eventStore, EventBusInterface $eventBus): CommandHandler { $aggregateFactory = new PublicConstructorAggregateFactory(); @@ -119,12 +120,12 @@ public function an_institution_not_yet_on_the_whitelist_can_be_added_to_the_whit * @test * @group command-handler * @group whitelist - * - * @expectedException \Surfnet\Stepup\Exception\DomainException - * @expectedExceptionMessage Cannot add institution "already exists" as it is already whitelisted */ public function an_institution_on_the_whitelist_may_not_be_added_again() { + $this->expectExceptionMessage("Cannot add institution \"already exists\" as it is already whitelisted"); + $this->expectException(\Surfnet\Stepup\Exception\DomainException::class); + $initialInstitutions = $this->mapStringValuesToInstitutions(['Initial One', 'Already Exists']); $command = new AddToWhitelistCommand(); @@ -163,12 +164,11 @@ public function an_institution_on_the_whitelist_can_be_removed_from_the_whitelis * @test * @group command-handler * @group whitelist - * - * @expectedException \Surfnet\Stepup\Exception\DomainException - * @expectedExceptionMessage Cannot remove institution "not on the whitelist" as it is not whitelisted */ public function an_institution_that_is_not_on_the_whitelist_cannot_be_removed() { + $this->expectExceptionMessage("Cannot remove institution \"not on the whitelist\" as it is not whitelisted"); + $this->expectException(\Surfnet\Stepup\Exception\DomainException::class); $initialInstitutions = $this->mapStringValuesToInstitutions(['Initial One', 'Initial Two']); $command = new RemoveFromWhitelistCommand(); diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Mockery/HasInstitutionMatcherTest.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Mockery/HasInstitutionMatcherTest.php index f98722bf9..b4c2c0769 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Mockery/HasInstitutionMatcherTest.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Mockery/HasInstitutionMatcherTest.php @@ -19,7 +19,7 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Tests\Mockery; use Mockery\Exception\RuntimeException; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Surfnet\StepupMiddleware\CommandHandlingBundle\Tests\Mockery\TestObjects\ObjectWithInstitutionAccessor; use Surfnet\StepupMiddleware\CommandHandlingBundle\Tests\Mockery\TestObjects\ObjectWithInstitutionProperty; use Surfnet\StepupMiddleware\CommandHandlingBundle\Tests\Mockery\TestObjects\ObjectWithoutInstitutionPropertyAndAccessor; @@ -35,7 +35,7 @@ class HasInstitutionMatcherTest extends TestCase */ public function has_institution_matcher_only_matches_against_strings($nonString) { - $this->setExpectedException(RuntimeException::class); + $this->expectException(RuntimeException::class); $hasInstitutionMatcher = new HasInstitutionMatcher($nonString); } diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Pipeline/AuthorizingStageTest.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Pipeline/AuthorizingStageTest.php index 0d75966c0..b96570df0 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Pipeline/AuthorizingStageTest.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Pipeline/AuthorizingStageTest.php @@ -19,7 +19,7 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Tests\Pipeline; use Mockery as m; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Psr\Log\NullLogger; use Surfnet\StepupMiddleware\CommandHandlingBundle\Pipeline\AuthorizingStage; @@ -35,7 +35,7 @@ class AuthorizingStageTest extends UnitTest */ private $logger; - public function setUp() + public function setUp(): void { $this->logger = new NullLogger(); $this->authorizationChecker = m::mock( @@ -55,6 +55,8 @@ public function when_a_command_has_no_marker_interface_authorization_is_granted_ $authorizingStage = new AuthorizingStage($this->logger, $this->authorizationChecker); $authorizingStage->process($command); + + $this->assertInstanceOf(AuthorizingStage::class, $authorizingStage); } /** @@ -77,6 +79,8 @@ public function a_command_with_a_marker_interface_triggers_a_check_for_the_corre $authorizingStage = new AuthorizingStage($this->logger, $this->authorizationChecker); $authorizingStage->process($command); + + $this->assertInstanceOf(AuthorizingStage::class, $authorizingStage); } /** @@ -110,15 +114,18 @@ public function when_a_command_implements_multiple_marker_interfaces_at_least_on $authorizingStage = new AuthorizingStage($this->logger, $this->authorizationChecker); $authorizingStage->process($command); + + $this->assertInstanceOf(AuthorizingStage::class, $authorizingStage); } /** * @test * @group pipeline - * @expectedException \Surfnet\StepupMiddleware\CommandHandlingBundle\Exception\ForbiddenException */ public function when_the_client_does_not_have_the_required_role_an_forbidden_exception_is_thrown() { + $this->expectException(\Surfnet\StepupMiddleware\CommandHandlingBundle\Exception\ForbiddenException::class); + $command = m::mock( 'Surfnet\StepupMiddleware\CommandHandlingBundle\Command\Command, ' . 'Surfnet\StepupMiddleware\CommandHandlingBundle\Command\SelfServiceExecutable' @@ -133,6 +140,8 @@ public function when_the_client_does_not_have_the_required_role_an_forbidden_exc $authorizingStage = new AuthorizingStage($this->logger, $this->authorizationChecker); $authorizingStage->process($command); + + $this->assertInstanceOf($authorizingStage, AuthorizingStage::class); } public function interfaceToRoleMappingProvider() diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Pipeline/DispatchStageTest.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Pipeline/DispatchStageTest.php index faa985167..9f3366964 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Pipeline/DispatchStageTest.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Pipeline/DispatchStageTest.php @@ -18,11 +18,13 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Tests\Pipeline; +use Broadway\CommandHandling\CommandBus; use Mockery as m; +use PHPUnit\Framework\TestCase; use Psr\Log\NullLogger; use Surfnet\StepupMiddleware\CommandHandlingBundle\Pipeline\DispatchStage; -class DispatchStageTest extends \PHPUnit_Framework_TestCase +class DispatchStageTest extends TestCase { /** * @test @@ -31,7 +33,7 @@ class DispatchStageTest extends \PHPUnit_Framework_TestCase public function it_dispatches_commands() { $command = m::mock('Surfnet\StepupMiddleware\CommandHandlingBundle\Command\Command'); - $commandBus = m::mock('Broadway\CommandHandling\CommandBusInterface') + $commandBus = m::mock(CommandBus::class)->makePartial() ->shouldReceive('dispatch')->once()->with($command)->andReturnNull() ->getMock(); diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Pipeline/EventDispatchingStageTest.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Pipeline/EventDispatchingStageTest.php index df7fc0b99..6f6928be8 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Pipeline/EventDispatchingStageTest.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Pipeline/EventDispatchingStageTest.php @@ -19,7 +19,7 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Tests\Pipeline; use Mockery as m; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Psr\Log\NullLogger; use Surfnet\StepupMiddleware\CommandHandlingBundle\Pipeline\EventDispatchingStage; use Surfnet\StepupMiddleware\CommandHandlingBundle\Tests\Command\FixedUuidStubCommand; @@ -39,6 +39,8 @@ public function buffered_event_bus_flush_is_called_during_process() $stage = new EventDispatchingStage(new NullLogger(), $eventBus); $stage->process($command); + + $this->assertInstanceOf(EventDispatchingStage::class, $stage); } /** @@ -59,5 +61,7 @@ public function it_returns_the_same_command_as_it_processes_unmodified() $this->assertSame($command, $returnedCommand); $this->assertEquals($uuid, $returnedCommand->UUID); + + $this->assertInstanceOf(EventDispatchingStage::class, $stage); } } diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Pipeline/StagedPipelineTest.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Pipeline/StagedPipelineTest.php index 4266c6fd6..ab22e271a 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Pipeline/StagedPipelineTest.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Pipeline/StagedPipelineTest.php @@ -19,10 +19,11 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Tests\Pipeline; use Mockery as m; +use PHPUnit\Framework\TestCase; use Psr\Log\NullLogger; use Surfnet\StepupMiddleware\CommandHandlingBundle\Pipeline\StagedPipeline; -class StagedPipelineTest extends \PHPUnit_Framework_TestCase +class StagedPipelineTest extends TestCase { /** * @test diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Pipeline/ValidationStageTest.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Pipeline/ValidationStageTest.php index 1f6773838..1fd8c2dd8 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Pipeline/ValidationStageTest.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Pipeline/ValidationStageTest.php @@ -19,10 +19,11 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Tests\Pipeline; use Mockery as m; +use PHPUnit\Framework\TestCase; use Psr\Log\NullLogger; use Surfnet\StepupMiddleware\CommandHandlingBundle\Pipeline\ValidationStage; -class ValidationStageTest extends \PHPUnit_Framework_TestCase +class ValidationStageTest extends TestCase { /** * @test @@ -49,9 +50,7 @@ public function it_validates_commands() */ public function it_throws_an_exception_when_validation_fails() { - $this->setExpectedException( - 'Surfnet\StepupMiddleware\CommandHandlingBundle\Pipeline\Exception\InvalidCommandException' - ); + $this->expectException(\Surfnet\StepupMiddleware\CommandHandlingBundle\Pipeline\Exception\InvalidCommandException::class); $command = m::mock('Surfnet\StepupMiddleware\CommandHandlingBundle\Command\Command'); $violations = m::mock('Symfony\Component\Validator\ConstraintViolationListInterface') diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/SensitiveData/EventSourcing/SensitiveDataMessageStreamTest.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/SensitiveData/EventSourcing/SensitiveDataMessageStreamTest.php index 2536b330e..627578ec6 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/SensitiveData/EventSourcing/SensitiveDataMessageStreamTest.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/SensitiveData/EventSourcing/SensitiveDataMessageStreamTest.php @@ -23,7 +23,7 @@ use Broadway\Domain\DomainMessage; use Broadway\Domain\Metadata; use Mockery as m; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Surfnet\Stepup\Identity\Value\CommonName; use Surfnet\Stepup\Identity\Value\Email; use Surfnet\Stepup\Identity\Value\IdentityId; @@ -43,6 +43,8 @@ final class SensitiveDataMessageStreamTest extends TestCase public function it_can_work_with_zero_sensitive_data_messages_and_zero_events() { $this->apply([], []); + + $this->assertTrue(true); } /** @@ -149,11 +151,12 @@ public function it_can_apply_one_sensitive_data_message_to_one_regular_event_and /** * @test * @group sensitive-data - * @expectedException Surfnet\StepupMiddleware\CommandHandlingBundle\SensitiveData\Exception\SensitiveDataApplicationException - * @expectedExceptionMessage Sensitive data is missing for event with UUID A, playhead 0 */ public function it_fails_when_sensitive_data_is_missing_for_an_event() { + $this->expectExceptionMessage("Sensitive data is missing for event with UUID A, playhead 0"); + $this->expectException(\Surfnet\StepupMiddleware\CommandHandlingBundle\SensitiveData\Exception\SensitiveDataApplicationException::class); + $sensitiveDataMessages = []; $domainMessages = [ new DomainMessage( @@ -171,11 +174,11 @@ public function it_fails_when_sensitive_data_is_missing_for_an_event() /** * @test * @group sensitive-data - * @expectedException Surfnet\StepupMiddleware\CommandHandlingBundle\SensitiveData\Exception\SensitiveDataApplicationException - * @expectedExceptionMessage 1 sensitive data messages are still to be matched to events */ public function it_fails_when_not_all_sensitive_data_could_be_matched_to_an_event() { + $this->expectExceptionMessage("1 sensitive data messages are still to be matched to events"); + $this->expectException(\Surfnet\StepupMiddleware\CommandHandlingBundle\SensitiveData\Exception\SensitiveDataApplicationException::class); $sensitiveDataMessages = [ new SensitiveDataMessage( new IdentityId(self::EVENT_STREAM_A), @@ -199,11 +202,12 @@ public function it_fails_when_not_all_sensitive_data_could_be_matched_to_an_even /** * @test * @group sensitive-data - * @expectedException Surfnet\StepupMiddleware\CommandHandlingBundle\SensitiveData\Exception\SensitiveDataApplicationException - * @expectedExceptionMessage Encountered sensitive data for event which does not support sensitive data, UUID A, playhead 0 */ public function it_fails_when_sensitive_data_matches_a_regular_event() { + $this->expectExceptionMessage("Encountered sensitive data for event which does not support sensitive data, UUID A, playhead 0"); + $this->expectException(\Surfnet\StepupMiddleware\CommandHandlingBundle\SensitiveData\Exception\SensitiveDataApplicationException::class); + $sensitiveDataMessages = [ new SensitiveDataMessage( new IdentityId(self::EVENT_STREAM_A), @@ -227,11 +231,12 @@ public function it_fails_when_sensitive_data_matches_a_regular_event() /** * @test * @group sensitive-data - * @expectedException Surfnet\StepupMiddleware\CommandHandlingBundle\SensitiveData\Exception\SensitiveDataApplicationException - * @expectedExceptionMessage Encountered sensitive data from stream A for event from stream B */ public function it_fails_when_stream_ids_dont_match() { + $this->expectExceptionMessage("Encountered sensitive data from stream A for event from stream B"); + $this->expectException(\Surfnet\StepupMiddleware\CommandHandlingBundle\SensitiveData\Exception\SensitiveDataApplicationException::class); + $sensitiveDataMessages = [ new SensitiveDataMessage( new IdentityId(self::EVENT_STREAM_A), @@ -264,6 +269,8 @@ public function it_can_forget_all_sensitive_data() ->getMock(), ]); $sensitiveDataMessageStream->forget(); + + $this->assertInstanceOf(SensitiveDataMessageStream::class, $sensitiveDataMessageStream); } private function apply(array $sensitiveDataMessages, array $domainMessages) diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/SensitiveData/SensitiveDataTest.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/SensitiveData/SensitiveDataTest.php index 74d2a4a7f..30244eb9e 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/SensitiveData/SensitiveDataTest.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/SensitiveData/SensitiveDataTest.php @@ -18,7 +18,7 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Tests\SensitiveData; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Surfnet\Stepup\Identity\Value\CommonName; use Surfnet\Stepup\Identity\Value\DocumentNumber; use Surfnet\Stepup\Identity\Value\Email; @@ -118,5 +118,7 @@ public function it_serialises_and_deserialises( "get$data() returned an unexpected value" ); } + + $this->assertInstanceOf(SensitiveData::class, $sensitiveData); } } diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/SensitiveData/Servi/SensitiveDataServiceTest.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/SensitiveData/Service/SensitiveDataServiceTest.php similarity index 94% rename from src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/SensitiveData/Servi/SensitiveDataServiceTest.php rename to src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/SensitiveData/Service/SensitiveDataServiceTest.php index 24900b608..e637573d7 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/SensitiveData/Servi/SensitiveDataServiceTest.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/SensitiveData/Service/SensitiveDataServiceTest.php @@ -19,7 +19,7 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Tests\SensitiveData\Service; use Mockery as m; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Surfnet\Stepup\Identity\Value\IdentityId; use Surfnet\StepupMiddleware\CommandHandlingBundle\SensitiveData\Service\SensitiveDataService; @@ -41,5 +41,7 @@ public function it_can_forget_sensitive_data_in_a_stream() $service = new SensitiveDataService($sensitiveDataMessageRepository); $service->forgetSensitiveData($identityId); + + $this->assertInstanceOf(SensitiveDataService::class, $service); } } diff --git a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Value/InstitutionTest.php b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Value/InstitutionTest.php index 059b84f51..7f7fe08b0 100644 --- a/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Value/InstitutionTest.php +++ b/src/Surfnet/StepupMiddleware/CommandHandlingBundle/Tests/Value/InstitutionTest.php @@ -18,7 +18,7 @@ namespace Surfnet\StepupMiddleware\CommandHandlingBundle\Tests\Value; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Surfnet\StepupMiddleware\CommandHandlingBundle\Value\Institution; class InstitutionTest extends UnitTest @@ -26,12 +26,13 @@ class InstitutionTest extends UnitTest /** * @test * @dataProvider nonStringOrNonEmptyStringProvider - * @expectedException \Surfnet\StepupMiddleware\CommandHandlingBundle\Exception\InvalidArgumentException * * @param mixed $invalidValue */ public function an_institution_cannot_be_created_with_anything_but_a_nonempty_string($invalidValue) { + $this->expectException(\Surfnet\StepupMiddleware\CommandHandlingBundle\Exception\InvalidArgumentException::class); + new Institution($invalidValue); } diff --git a/src/Surfnet/StepupMiddleware/GatewayBundle/DependencyInjection/SurfnetStepupMiddlewareGatewayExtension.php b/src/Surfnet/StepupMiddleware/GatewayBundle/DependencyInjection/SurfnetStepupMiddlewareGatewayExtension.php index 52e8e9195..82e1c1e1c 100644 --- a/src/Surfnet/StepupMiddleware/GatewayBundle/DependencyInjection/SurfnetStepupMiddlewareGatewayExtension.php +++ b/src/Surfnet/StepupMiddleware/GatewayBundle/DependencyInjection/SurfnetStepupMiddlewareGatewayExtension.php @@ -30,7 +30,7 @@ public function load(array $configs, ContainerBuilder $container) $configuration = new Configuration(); $this->processConfiguration($configuration, $configs); - $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); + $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); $loader->load('repositories.yml'); $loader->load('projection.yml'); } diff --git a/src/Surfnet/StepupMiddleware/ManagementBundle/Configuration/Entity/EmailTemplate.php b/src/Surfnet/StepupMiddleware/ManagementBundle/Configuration/Entity/EmailTemplate.php index 2a0832fbc..f609e78c9 100644 --- a/src/Surfnet/StepupMiddleware/ManagementBundle/Configuration/Entity/EmailTemplate.php +++ b/src/Surfnet/StepupMiddleware/ManagementBundle/Configuration/Entity/EmailTemplate.php @@ -62,18 +62,24 @@ class EmailTemplate */ private $htmlContent; + public static function create($name, $locale, $htmlContent) + { + $self = new self(); + $self->id = (string) Uuid::uuid4(); + + $self->name = $name; + $self->locale = $locale; + $self->htmlContent = $htmlContent; + + return $self; + } + /** - * @param string $name - * @param string $locale - * @param string $htmlContent + * @return string */ - public function __construct($name, $locale, $htmlContent) + public function getId(): string { - $this->id = (string) Uuid::uuid4(); - - $this->name = $name; - $this->locale = $locale; - $this->htmlContent = $htmlContent; + return $this->id; } /** diff --git a/src/Surfnet/StepupMiddleware/ManagementBundle/Configuration/Projector/EmailTemplatesProjector.php b/src/Surfnet/StepupMiddleware/ManagementBundle/Configuration/Projector/EmailTemplatesProjector.php index e615e9867..4a0a17ef1 100644 --- a/src/Surfnet/StepupMiddleware/ManagementBundle/Configuration/Projector/EmailTemplatesProjector.php +++ b/src/Surfnet/StepupMiddleware/ManagementBundle/Configuration/Projector/EmailTemplatesProjector.php @@ -41,7 +41,7 @@ public function applyEmailTemplatesUpdatedEvent(EmailTemplatesUpdatedEvent $even foreach ($event->emailTemplates as $name => $templates) { foreach ($templates as $locale => $htmlContent) { - $this->repository->save(new EmailTemplate($name, $locale, $htmlContent)); + $this->repository->save(EmailTemplate::create($name, $locale, $htmlContent)); } } } diff --git a/src/Surfnet/StepupMiddleware/ManagementBundle/Configuration/Repository/EmailTemplateRepository.php b/src/Surfnet/StepupMiddleware/ManagementBundle/Configuration/Repository/EmailTemplateRepository.php index c8b386f93..1c86e5f30 100644 --- a/src/Surfnet/StepupMiddleware/ManagementBundle/Configuration/Repository/EmailTemplateRepository.php +++ b/src/Surfnet/StepupMiddleware/ManagementBundle/Configuration/Repository/EmailTemplateRepository.php @@ -18,16 +18,22 @@ namespace Surfnet\StepupMiddleware\ManagementBundle\Configuration\Repository; -use Doctrine\ORM\EntityRepository; +use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; +use Doctrine\Common\Persistence\ManagerRegistry; use Surfnet\StepupMiddleware\ManagementBundle\Configuration\Entity\EmailTemplate; -final class EmailTemplateRepository extends EntityRepository +final class EmailTemplateRepository extends ServiceEntityRepository { + public function __construct(ManagerRegistry $registry) + { + parent::__construct($registry, EmailTemplate::class); + } + /** * @param string $name * @param string $preferredLocale * @param string $fallbackLocale - * @return \Surfnet\StepupMiddleware\ManagementBundle\Configuration\Entity\EmailTemplate|null + * @return EmailTemplate|null */ public function findOneByName($name, $preferredLocale, $fallbackLocale) { diff --git a/src/Surfnet/StepupMiddleware/ManagementBundle/Controller/InstitutionConfigurationController.php b/src/Surfnet/StepupMiddleware/ManagementBundle/Controller/InstitutionConfigurationController.php index d93e9b3b7..ef9743653 100644 --- a/src/Surfnet/StepupMiddleware/ManagementBundle/Controller/InstitutionConfigurationController.php +++ b/src/Surfnet/StepupMiddleware/ManagementBundle/Controller/InstitutionConfigurationController.php @@ -35,7 +35,7 @@ use Surfnet\StepupMiddleware\CommandHandlingBundle\Pipeline\TransactionAwarePipeline; use Surfnet\StepupMiddleware\ManagementBundle\Service\DBALConnectionHelper; use Surfnet\StepupMiddleware\ManagementBundle\Validator\Constraints\ValidReconfigureInstitutionsRequest; -use Symfony\Bundle\FrameworkBundle\Controller\Controller; +use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; @@ -44,7 +44,7 @@ /** * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ -final class InstitutionConfigurationController extends Controller +final class InstitutionConfigurationController extends AbstractController { /** * @return InstitutionConfigurationOptionsService diff --git a/src/Surfnet/StepupMiddleware/ManagementBundle/DependencyInjection/SurfnetStepupMiddlewareManagementExtension.php b/src/Surfnet/StepupMiddleware/ManagementBundle/DependencyInjection/SurfnetStepupMiddlewareManagementExtension.php index 2af824da1..4f10d1086 100644 --- a/src/Surfnet/StepupMiddleware/ManagementBundle/DependencyInjection/SurfnetStepupMiddlewareManagementExtension.php +++ b/src/Surfnet/StepupMiddleware/ManagementBundle/DependencyInjection/SurfnetStepupMiddlewareManagementExtension.php @@ -30,7 +30,7 @@ public function load(array $config, ContainerBuilder $container) $configuration = new Configuration(); $config = $this->processConfiguration($configuration, $config); - $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); + $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); $loader->load('services.yml'); $container diff --git a/src/Surfnet/StepupMiddleware/ManagementBundle/Resources/config/services.yml b/src/Surfnet/StepupMiddleware/ManagementBundle/Resources/config/services.yml index fb402e841..451e9f126 100644 --- a/src/Surfnet/StepupMiddleware/ManagementBundle/Resources/config/services.yml +++ b/src/Surfnet/StepupMiddleware/ManagementBundle/Resources/config/services.yml @@ -1,11 +1,20 @@ services: - # The ManagementBundle controllers are available as a service Surfnet\StepupMiddleware\ManagementBundle\Controller\: resource: '../../Controller' autowire: true tags: ['controller.service_arguments'] + Surfnet\StepupMiddleware\ManagementBundle\: + resource: '../../*' + autowire: true + exclude: '../../{DependencyInjection,Entity,Repository,Migrations,Tests,Exception,Controller}' + + # BC aliases + Surfnet\StepupMiddleware\ManagementBundle\Service\DBALConnectionHelper: "@surfnet_stepup_middleware_management.dbal_connection_helper" + Surfnet\StepupMiddleware\ManagementBundle\Validator\EmailTemplatesConfigurationValidator: "@surfnet_stepup_middleware_management.validator.email_templates_configuration" + + Liip\FunctionalTestBundle\Validator\DataCollectingValidator: '@validator' surfnet_stepup_middleware_management.validator.configuration: @@ -48,10 +57,7 @@ services: - "@surfnet_stepup_middleware_management.repository.email_template" tags: [{ name: event_bus.event_listener, disable_for_replay: false }] - surfnet_stepup_middleware_management.repository.email_template: - class: Surfnet\StepupMiddleware\ManagementBundle\Configuration\Repository\EmailTemplateRepository - factory: ["@doctrine.orm.middleware_entity_manager", getRepository] - arguments: [ Surfnet\StepupMiddleware\ManagementBundle\Configuration\Entity\EmailTemplate ] + surfnet_stepup_middleware_management.repository.email_template: '@Surfnet\StepupMiddleware\ManagementBundle\Configuration\Repository\EmailTemplateRepository' surfnet_stepup_middleware_management.service.email_template: class: Surfnet\StepupMiddleware\ManagementBundle\Configuration\Service\EmailTemplateService diff --git a/src/Surfnet/StepupMiddleware/ManagementBundle/Tests/Controller/ConfigurationControllerTest.php b/src/Surfnet/StepupMiddleware/ManagementBundle/Tests/Controller/ConfigurationControllerTest.php index e2b04b4ea..0e171899a 100644 --- a/src/Surfnet/StepupMiddleware/ManagementBundle/Tests/Controller/ConfigurationControllerTest.php +++ b/src/Surfnet/StepupMiddleware/ManagementBundle/Tests/Controller/ConfigurationControllerTest.php @@ -18,10 +18,13 @@ namespace Surfnet\StepupMiddleware\ManagementBundle\Tests\Controller; -use Liip\FunctionalTestBundle\Test\WebTestCase; +use Liip\TestFixturesBundle\Test\FixturesTrait; +use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; class ConfigurationControllerTest extends WebTestCase { + use FixturesTrait; + /** * @var \Symfony\Bundle\FrameworkBundle\Client */ @@ -32,7 +35,7 @@ class ConfigurationControllerTest extends WebTestCase */ private $password; - public function setUp() + public function setUp(): void { // Initialises schema. $this->loadFixtures([]); @@ -56,7 +59,7 @@ public function requests_with_invalid_content_are_bad_requests() 'HTTP_ACCEPT' => 'application/json', 'CONTENT_TYPE' => 'application/json', 'PHP_AUTH_USER' => 'management', - 'PHP_AUTH_PW' => $this->password, + 'PHP_AUTH_PW' => $this->password ], json_encode([]) ); @@ -77,7 +80,7 @@ public function authorization_is_required() [], [ 'HTTP_ACCEPT' => 'application/json', - 'CONTENT_TYPE' => 'application/json', + 'CONTENT_TYPE' => 'application/json' ], json_encode([]) ); @@ -100,7 +103,7 @@ public function only_post_requests_are_accepted($invalidHttpMethod) [], [ 'HTTP_ACCEPT' => 'application/json', - 'CONTENT_TYPE' => 'application/json', + 'CONTENT_TYPE' => 'application/json' ], json_encode([]) ); diff --git a/src/Surfnet/StepupMiddleware/ManagementBundle/Tests/Controller/InstitutionConfigurationControllerTest.php b/src/Surfnet/StepupMiddleware/ManagementBundle/Tests/Controller/InstitutionConfigurationControllerTest.php index 805a79d8e..f2f43d586 100644 --- a/src/Surfnet/StepupMiddleware/ManagementBundle/Tests/Controller/InstitutionConfigurationControllerTest.php +++ b/src/Surfnet/StepupMiddleware/ManagementBundle/Tests/Controller/InstitutionConfigurationControllerTest.php @@ -18,10 +18,13 @@ namespace Surfnet\StepupMiddleware\ManagementBundle\Tests\Controller; -use Liip\FunctionalTestBundle\Test\WebTestCase; +use Liip\TestFixturesBundle\Test\FixturesTrait; +use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; class InstitutionConfigurationControllerTest extends WebTestCase { + use FixturesTrait; + /** * @var \Symfony\Bundle\FrameworkBundle\Client */ @@ -32,7 +35,7 @@ class InstitutionConfigurationControllerTest extends WebTestCase */ private $password; - public function setUp() + public function setUp(): void { // Initialises schema. $this->loadFixtures([]); @@ -41,6 +44,11 @@ public function setUp() $this->password = $this->client->getKernel()->getContainer()->getParameter('management_password'); } + public function tearDown(): void + { + static::ensureKernelShutdown(); + } + /** * @test * @group management @@ -54,7 +62,7 @@ public function authorization_is_required_for_reconfiguring_institution_configur [], [ 'HTTP_ACCEPT' => 'application/json', - 'CONTENT_TYPE' => 'application/json', + 'CONTENT_TYPE' => 'application/json' ], json_encode([]) ); @@ -75,7 +83,7 @@ public function authorization_is_required_for_querying_institution_configuration [], [ 'HTTP_ACCEPT' => 'application/json', - 'CONTENT_TYPE' => 'application/json', + 'CONTENT_TYPE' => 'application/json' ], json_encode([]) ); @@ -98,7 +106,7 @@ public function requests_with_invalid_content_are_bad_requests() 'HTTP_ACCEPT' => 'application/json', 'CONTENT_TYPE' => 'application/json', 'PHP_AUTH_USER' => 'management', - 'PHP_AUTH_PW' => $this->password, + 'PHP_AUTH_PW' => $this->password ], json_encode(['non-existing.organisation.test' => []]) ); @@ -122,7 +130,7 @@ public function only_post_and_get_requests_are_accepted($invalidHttpMethod) [], [ 'HTTP_ACCEPT' => 'application/json', - 'CONTENT_TYPE' => 'application/json', + 'CONTENT_TYPE' => 'application/json' ], json_encode([]) ); @@ -145,7 +153,7 @@ public function a_get_request_without_content_is_valid() 'HTTP_ACCEPT' => 'application/json', 'CONTENT_TYPE' => 'application/json', 'PHP_AUTH_USER' => 'management', - 'PHP_AUTH_PW' => $this->password, + 'PHP_AUTH_PW' => $this->password ], json_encode([]) ); @@ -168,7 +176,7 @@ public function json_is_returned_from_the_institution_configuration_api() 'HTTP_ACCEPT' => 'application/json', 'CONTENT_TYPE' => 'application/json', 'PHP_AUTH_USER' => 'management', - 'PHP_AUTH_PW' => $this->password, + 'PHP_AUTH_PW' => $this->password ], json_encode([]) ); diff --git a/src/Surfnet/StepupMiddleware/ManagementBundle/Tests/Validator/ConfigurationValidationTest.php b/src/Surfnet/StepupMiddleware/ManagementBundle/Tests/Validator/ConfigurationValidationTest.php index bc18cd7fd..43c2469c0 100644 --- a/src/Surfnet/StepupMiddleware/ManagementBundle/Tests/Validator/ConfigurationValidationTest.php +++ b/src/Surfnet/StepupMiddleware/ManagementBundle/Tests/Validator/ConfigurationValidationTest.php @@ -19,7 +19,7 @@ namespace Surfnet\StepupMiddleware\ManagementBundle\Tests\Validator; use Mockery as m; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Surfnet\StepupMiddleware\ManagementBundle\Validator\ConfigurationStructureValidator; use Surfnet\StepupMiddleware\ManagementBundle\Validator\Constraints\HasValidConfigurationStructure; use Surfnet\StepupMiddleware\ManagementBundle\Validator\EmailTemplatesConfigurationValidator; diff --git a/src/Surfnet/StepupMiddleware/ManagementBundle/Tests/Validator/ReconfigureInstitutionRequestValidatorTest.php b/src/Surfnet/StepupMiddleware/ManagementBundle/Tests/Validator/ReconfigureInstitutionRequestValidatorTest.php index 1cfeab52d..ea72148a2 100644 --- a/src/Surfnet/StepupMiddleware/ManagementBundle/Tests/Validator/ReconfigureInstitutionRequestValidatorTest.php +++ b/src/Surfnet/StepupMiddleware/ManagementBundle/Tests/Validator/ReconfigureInstitutionRequestValidatorTest.php @@ -20,7 +20,7 @@ use Doctrine\Common\Collections\ArrayCollection; use Mockery; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Surfnet\Stepup\Configuration\Value\Institution; use Surfnet\Stepup\Identity\Value\Institution as IdentityInstitution; use Surfnet\StepupBundle\Service\SecondFactorTypeService; @@ -103,7 +103,7 @@ public function it_rejects_invalid_configuration( $actualPropertyPath, sprintf('Actual path to erroneous property does not match expected path (%s)', $actualErrorMessage) ); - $this->assertContains( + $this->assertStringContainsString( $expectErrorMessageToContain, $actualErrorMessage, sprintf( @@ -151,7 +151,7 @@ public function reconfigure_institution_request_cannot_contain_institutions_that $validator->validate($invalidRequest, new ValidReconfigureInstitutionsRequest); - $this->assertContains($expectedErrorMessage, $errorMessage); + $this->assertStringContainsString($expectedErrorMessage, $errorMessage); } /** @@ -196,6 +196,8 @@ public function validation_for_existing_institutions_is_done_case_insensitively( $validator->initialize($context); $validator->validate($invalidRequest, new ValidReconfigureInstitutionsRequest); + + $this->assertInstanceOf(ConfiguredInstitution::class, $existingInstitutions[0]); } /** @@ -237,6 +239,9 @@ public function valid_reconfigure_institution_requests_do_not_cause_any_violatio ); $validator->initialize($context); $validator->validate($validRequest, new ValidReconfigureInstitutionsRequest); + + + $this->assertInstanceOf(ConfiguredInstitution::class, $existingInstitution); } /** diff --git a/src/Surfnet/StepupMiddleware/MiddlewareBundle/Console/Command/AbstractBootstrapCommand.php b/src/Surfnet/StepupMiddleware/MiddlewareBundle/Console/Command/AbstractBootstrapCommand.php index bb47f672c..038b930a4 100644 --- a/src/Surfnet/StepupMiddleware/MiddlewareBundle/Console/Command/AbstractBootstrapCommand.php +++ b/src/Surfnet/StepupMiddleware/MiddlewareBundle/Console/Command/AbstractBootstrapCommand.php @@ -18,7 +18,7 @@ namespace Surfnet\StepupMiddleware\MiddlewareBundle\Console\Command; -use Broadway\EventHandling\EventBusInterface; +use Broadway\EventHandling\EventBus as EventBusInterface; use Rhumsaa\Uuid\Uuid; use Surfnet\StepupMiddleware\CommandHandlingBundle\Command\Command as MiddlewareCommand; use Surfnet\StepupMiddleware\CommandHandlingBundle\Command\Metadata; diff --git a/src/Surfnet/StepupMiddleware/MiddlewareBundle/Console/Command/MigrateInstitutionConfigurationsCommand.php b/src/Surfnet/StepupMiddleware/MiddlewareBundle/Console/Command/MigrateInstitutionConfigurationsCommand.php deleted file mode 100644 index 5f96cf8fe..000000000 --- a/src/Surfnet/StepupMiddleware/MiddlewareBundle/Console/Command/MigrateInstitutionConfigurationsCommand.php +++ /dev/null @@ -1,125 +0,0 @@ -setName('stepup:migrate:institution-configuration'); - $this->setDescription( - 'Migrates institution configurations to work with UUIDv5 identifiers' - . 'based on institutions with normalized casing' - ); - } - - public function execute(InputInterface $input, OutputInterface $output) - { - /** @var QuestionHelper $questionHelper */ - $questionHelper = $this->getHelper('question'); - - $output->writeln([ - 'WARNING: you are about to migrate institution configurations' - . ' to work with identifiers based on insitutions with normalized casing.', - 'This command is intended to be run only once.', - '' - ]); - - $confirmationQuestion = new ConfirmationQuestion( - 'Are you sure you want to run the institution configuration migrations? [y/N]', - false - ); - $confirmed = $questionHelper->ask($input, $output, $confirmationQuestion); - - if (!$confirmed) { - $output->writeln('Exiting without running migrations.'); - return; - } - - /** @var Container $container */ - $container = $this->getApplication()->getKernel()->getContainer(); - - $tokenStorage = $container->get('security.token_storage'); - $connectionHelper = $container->get('surfnet_stepup_middleware_middleware.dbal_connection_helper'); - $provider = $container->get('surfnet_stepup_middleware_middleware.institution_configuration_provider'); - $pipeline = $container->get('pipeline'); - $entityManager = $container->get('doctrine.orm.middleware_entity_manager'); - - // The InstitutionConfiguration commands require ROLE_MANAGEMENT, AddRaLocation requires ROLE_RA - // Note that the new events will not have any actor metadata associated with them - $tokenStorage->setToken( - new AnonymousToken('cli.institution_configuration_migration', 'cli', ['ROLE_MANAGEMENT', 'ROLE_RA']) - ); - - $output->writeln('Starting institution configuration migrations'); - $connectionHelper->beginTransaction(); - - try { - $output->writeln('Loading existing institution configuration data'); - $state = $provider->loadData(); - - $output->writeln('Removing existing institution configurations'); - foreach ($state->inferRemovalCommands() as $removalCommand) { - $pipeline->process($removalCommand); - } - $entityManager->flush(); - $entityManager->clear(); - - $output->writeln('Creating new institution configurations'); - foreach ($state->inferCreateCommands() as $createCommand) { - $pipeline->process($createCommand); - } - $entityManager->flush(); - $entityManager->clear(); - - $output->writeln('Reconfiguring institution configurations'); - foreach ($state->inferReconfigureCommands() as $reconfigureCommand) { - $pipeline->process($reconfigureCommand); - } - $entityManager->flush(); - $entityManager->clear(); - - $output->writeln('Adding RA locations'); - foreach ($state->inferAddRaLocationCommands() as $addRaLocationCommand) { - $pipeline->process($addRaLocationCommand); - } - $entityManager->flush(); - $entityManager->clear(); - - $connectionHelper->commit(); - $output->writeln('Successfully migrated institution configurations.'); - } catch (Exception $exception) { - $output->writeln( - sprintf('Could not migrate institution configurations: %s', $exception->getMessage()) - ); - $connectionHelper->rollBack(); - - throw $exception; - } - } -} diff --git a/src/Surfnet/StepupMiddleware/MiddlewareBundle/Console/Command/MigrationsDiffDoctrineCommand.php b/src/Surfnet/StepupMiddleware/MiddlewareBundle/Console/Command/MigrationsDiffDoctrineCommand.php deleted file mode 100644 index b5280549c..000000000 --- a/src/Surfnet/StepupMiddleware/MiddlewareBundle/Console/Command/MigrationsDiffDoctrineCommand.php +++ /dev/null @@ -1,68 +0,0 @@ -setName('middleware:migrations:diff'); - $this->setDescription('Performs a mapping/database diff using the correct entity manager'); - } - - public function execute(InputInterface $input, OutputInterface $output) - { - $output->writeln(['Generating diff for Middleware...', '']); - - // Cannae run migrations command twice in the same process: registers the migration classes twice with - // Doctrine\DBAL\Migrations\Version. - ProcessBuilder::create( - ['app/console', 'doc:mig:diff', '--em=middleware', '--filter-expression=~^(?!event_stream).*$~'] - ) - ->getProcess() - ->run(function ($type, $data) use ($output) { - $output->write($data); - }); - - // Quick migrations will cause Gateway migrations to overwrite Middleware's as they are identified per second - sleep(1); - - $output->writeln(['Generating diff for Gateway...', '']); - - ProcessBuilder::create(['app/console', 'doc:mig:diff', '--em=gateway']) - ->getProcess() - ->run(function ($type, $data) use ($output) { - $output->write($data); - }); - - $output->writeln( - '' - .PHP_EOL.PHP_EOL - .' Warning: The Gateway migration diff should be manually edited so' - .' the correct database configuration will be used during migrations!' - .PHP_EOL - .'' - ); - } -} diff --git a/src/Surfnet/StepupMiddleware/MiddlewareBundle/Console/Command/MigrationsMigrateDoctrineCommand.php b/src/Surfnet/StepupMiddleware/MiddlewareBundle/Console/Command/MigrationsMigrateDoctrineCommand.php deleted file mode 100644 index 292fae518..000000000 --- a/src/Surfnet/StepupMiddleware/MiddlewareBundle/Console/Command/MigrationsMigrateDoctrineCommand.php +++ /dev/null @@ -1,38 +0,0 @@ -setName('middleware:migrations:migrate'); - $this->setDescription('Performs database migrations using the correct entity manager'); - } - - public function execute(InputInterface $input, OutputInterface $output) - { - $this->getApplication()->doRun(new StringInput('doc:mig:mig --em=deploy'), $output); - } -} diff --git a/src/Surfnet/StepupMiddleware/MiddlewareBundle/Console/Command/ReplayEventsCommand.php b/src/Surfnet/StepupMiddleware/MiddlewareBundle/Console/Command/ReplayEventsCommand.php index 09f16cc69..7caf0db2e 100644 --- a/src/Surfnet/StepupMiddleware/MiddlewareBundle/Console/Command/ReplayEventsCommand.php +++ b/src/Surfnet/StepupMiddleware/MiddlewareBundle/Console/Command/ReplayEventsCommand.php @@ -47,7 +47,7 @@ protected function configure() ); } - public function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output) { /** @var KernelInterface $kernel */ $kernel = $this->getApplication()->getKernel(); @@ -125,9 +125,6 @@ public function execute(InputInterface $input, OutputInterface $output) $formatter->formatBlock(' >> If it is interrupted it must be rerun till completed', 'comment') ); - // ensures the progressbar doesn't overwrite the messages above - $output->writeln(['', '', ''], 'info'); - /** @var Container $container */ $container = $kernel->getContainer(); $replayer = $container->get('middleware.event_replay.event_stream_replayer'); diff --git a/src/Surfnet/StepupMiddleware/MiddlewareBundle/Console/Command/ReplaySpecificEventsCommand.php b/src/Surfnet/StepupMiddleware/MiddlewareBundle/Console/Command/ReplaySpecificEventsCommand.php index 452664aef..d238ec3ad 100644 --- a/src/Surfnet/StepupMiddleware/MiddlewareBundle/Console/Command/ReplaySpecificEventsCommand.php +++ b/src/Surfnet/StepupMiddleware/MiddlewareBundle/Console/Command/ReplaySpecificEventsCommand.php @@ -49,7 +49,7 @@ protected function configure() ); } - public function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output) { $container = $this->getContainer(); $eventCollection = $container->get('middleware.event_replay.event_collection'); diff --git a/src/Surfnet/StepupMiddleware/MiddlewareBundle/EventSourcing/DBALEventHydrator.php b/src/Surfnet/StepupMiddleware/MiddlewareBundle/EventSourcing/DBALEventHydrator.php index 98290774d..86a4a1db5 100644 --- a/src/Surfnet/StepupMiddleware/MiddlewareBundle/EventSourcing/DBALEventHydrator.php +++ b/src/Surfnet/StepupMiddleware/MiddlewareBundle/EventSourcing/DBALEventHydrator.php @@ -21,7 +21,7 @@ use Broadway\Domain\DateTime; use Broadway\Domain\DomainEventStream; use Broadway\Domain\DomainMessage; -use Broadway\Serializer\SerializerInterface; +use Broadway\Serializer\SimpleInterfaceSerializer; use Doctrine\DBAL\Connection; use PDO; use Surfnet\StepupMiddleware\CommandHandlingBundle\SensitiveData\Forgettable; @@ -35,12 +35,12 @@ class DBALEventHydrator private $connection; /** - * @var \Broadway\Serializer\SerializerInterface + * @var SimpleInterfaceSerializer */ private $payloadSerializer; /** - * @var \Broadway\Serializer\SerializerInterface + * @var SimpleInterfaceSerializer */ private $metadataSerializer; @@ -61,15 +61,15 @@ class DBALEventHydrator /** * @param Connection $connection - * @param SerializerInterface $payloadSerializer - * @param SerializerInterface $metadataSerializer + * @param SimpleInterfaceSerializer $payloadSerializer + * @param SimpleInterfaceSerializer $metadataSerializer * @param string $eventStreamTable * @param string $sensitiveDataTable */ public function __construct( Connection $connection, - SerializerInterface $payloadSerializer, - SerializerInterface $metadataSerializer, + SimpleInterfaceSerializer $payloadSerializer, + SimpleInterfaceSerializer $metadataSerializer, $eventStreamTable, $sensitiveDataTable ) { diff --git a/src/Surfnet/StepupMiddleware/MiddlewareBundle/EventSourcing/ProjectorCollection.php b/src/Surfnet/StepupMiddleware/MiddlewareBundle/EventSourcing/ProjectorCollection.php index 12c0593b8..de683c885 100644 --- a/src/Surfnet/StepupMiddleware/MiddlewareBundle/EventSourcing/ProjectorCollection.php +++ b/src/Surfnet/StepupMiddleware/MiddlewareBundle/EventSourcing/ProjectorCollection.php @@ -19,7 +19,7 @@ namespace Surfnet\StepupMiddleware\MiddlewareBundle\EventSourcing; use ArrayIterator; -use Broadway\ReadModel\ProjectorInterface; +use Broadway\EventHandling\EventListener as ProjectorInterface; use IteratorAggregate; use Surfnet\StepupMiddleware\MiddlewareBundle\Exception\InvalidArgumentException; diff --git a/src/Surfnet/StepupMiddleware/MiddlewareBundle/Resources/config/event_replaying.yml b/src/Surfnet/StepupMiddleware/MiddlewareBundle/Resources/config/event_replaying.yml index 46a702844..e1cd08140 100644 --- a/src/Surfnet/StepupMiddleware/MiddlewareBundle/Resources/config/event_replaying.yml +++ b/src/Surfnet/StepupMiddleware/MiddlewareBundle/Resources/config/event_replaying.yml @@ -32,6 +32,7 @@ services: - 'event_stream_sensitive_data' middleware.event_replay.event_stream_replayer: + public: true class: Surfnet\StepupMiddleware\MiddlewareBundle\Service\EventStreamReplayer arguments: - "@surfnet_stepup_middleware_command_handling.event_bus.buffered" diff --git a/src/Surfnet/StepupMiddleware/MiddlewareBundle/SurfnetStepupMiddlewareMiddlewareBundle.php b/src/Surfnet/StepupMiddleware/MiddlewareBundle/SurfnetStepupMiddlewareMiddlewareBundle.php index a0a2e5787..a010b6215 100644 --- a/src/Surfnet/StepupMiddleware/MiddlewareBundle/SurfnetStepupMiddlewareMiddlewareBundle.php +++ b/src/Surfnet/StepupMiddleware/MiddlewareBundle/SurfnetStepupMiddlewareMiddlewareBundle.php @@ -20,9 +20,6 @@ use Surfnet\StepupMiddleware\MiddlewareBundle\Console\Command\BootstrapIdentityWithYubikeySecondFactorCommand; use Surfnet\StepupMiddleware\MiddlewareBundle\Console\Command\EmailVerifiedSecondFactorRemindersCommand; -use Surfnet\StepupMiddleware\MiddlewareBundle\Console\Command\MigrateInstitutionConfigurationsCommand; -use Surfnet\StepupMiddleware\MiddlewareBundle\Console\Command\MigrationsDiffDoctrineCommand; -use Surfnet\StepupMiddleware\MiddlewareBundle\Console\Command\MigrationsMigrateDoctrineCommand; use Surfnet\StepupMiddleware\MiddlewareBundle\Console\Command\ReplayEventsCommand; use Surfnet\StepupMiddleware\MiddlewareBundle\Console\Command\ReplaySpecificEventsCommand; use Surfnet\StepupMiddleware\MiddlewareBundle\DependencyInjection\CompilerPass\CollectProjectorsForEventReplayCompilerPass; @@ -41,11 +38,8 @@ public function build(ContainerBuilder $container) public function registerCommands(Application $application) { - $application->add(new MigrationsDiffDoctrineCommand()); - $application->add(new MigrationsMigrateDoctrineCommand()); $application->add(new BootstrapIdentityWithYubikeySecondFactorCommand()); $application->add(new ReplayEventsCommand()); - $application->add(new MigrateInstitutionConfigurationsCommand()); $application->add(new ReplaySpecificEventsCommand()); $application->add(new EmailVerifiedSecondFactorRemindersCommand()); } diff --git a/src/Surfnet/StepupMiddleware/MiddlewareBundle/Tests/EventSourcing/EventCollectionTest.php b/src/Surfnet/StepupMiddleware/MiddlewareBundle/Tests/EventSourcing/EventCollectionTest.php index d29003082..74a4fca85 100644 --- a/src/Surfnet/StepupMiddleware/MiddlewareBundle/Tests/EventSourcing/EventCollectionTest.php +++ b/src/Surfnet/StepupMiddleware/MiddlewareBundle/Tests/EventSourcing/EventCollectionTest.php @@ -18,7 +18,7 @@ namespace Surfnet\StepupMiddleware\MiddlewareBundle\Tests\EventSourcing; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use stdClass; use Surfnet\Stepup\Configuration\Event\NewConfigurationCreatedEvent; use Surfnet\Stepup\Identity\Event\SecondFactorVettedEvent; @@ -36,10 +36,8 @@ class EventCollectionTest extends TestCase */ public function an_event_collection_must_be_created_from_an_array_of_non_empty_strings($emptyOrNonString) { - $this->setExpectedException( - InvalidArgumentException::class, - 'Invalid argument type: "non-empty string" expected' - ); + $this->expectException(InvalidArgumentException::class); + $this->expectExceptionMessage('Invalid argument type: "non-empty string" expected'); new EventCollection([$emptyOrNonString]); } @@ -50,7 +48,8 @@ public function an_event_collection_must_be_created_from_an_array_of_non_empty_s */ public function an_event_collection_must_contain_event_names_that_are_existing_class_names() { - $this->setExpectedException(InvalidArgumentException::class, 'does not exist'); + $this->expectException(InvalidArgumentException::class); + $this->expectExceptionMessage('does not exist'); $nonExistantClass = 'This\Class\Does\Not\Exist'; @@ -125,10 +124,8 @@ public function a_subset_of_events_can_be_selected_from_an_event_collection() */ public function a_subset_containing_events_not_present_in_the_event_collection_cannot_be_selected() { - $this->setExpectedException( - InvalidArgumentException::class, - 'Subset of event names contains event names not present in collection' - ); + $this->expectException(InvalidArgumentException::class); + $this->expectExceptionMessage('Subset of event names contains event names not present in collection'); $eventCollection = new EventCollection([NewConfigurationCreatedEvent::class]); $eventCollection->select([SecondFactorVettedEvent::class]); diff --git a/src/Surfnet/StepupMiddleware/MiddlewareBundle/Tests/EventSourcing/ProjectorCollectionTest.php b/src/Surfnet/StepupMiddleware/MiddlewareBundle/Tests/EventSourcing/ProjectorCollectionTest.php index 374cbc535..4473d7306 100644 --- a/src/Surfnet/StepupMiddleware/MiddlewareBundle/Tests/EventSourcing/ProjectorCollectionTest.php +++ b/src/Surfnet/StepupMiddleware/MiddlewareBundle/Tests/EventSourcing/ProjectorCollectionTest.php @@ -19,7 +19,7 @@ namespace Surfnet\StepupMiddleware\MiddlewareBundle\Tests\EventSourcing; use Mockery as m; -use PHPUnit_Framework_TestCase as TestCase; +use PHPUnit\Framework\TestCase as TestCase; use Surfnet\StepupMiddleware\ApiBundle\Identity\Projector\SraaProjector; use Surfnet\StepupMiddleware\ApiBundle\Identity\Projector\WhitelistProjector; use Surfnet\StepupMiddleware\ApiBundle\Identity\Repository\SraaRepository; @@ -106,7 +106,8 @@ public function a_subset_of_projectors_can_be_selected_from_a_projector_collecti */ public function a_subset_containing_projectors_not_present_in_a_projector_collection_cannot_be_selected() { - $this->setExpectedException(InvalidArgumentException::class, 'not present in the collection'); + $this->expectException(InvalidArgumentException::class); + $this->expectExceptionMessage('not present in the collection'); $sraaProjector = new SraaProjector( m::mock(SraaRepository::class)); $nonPresentWhitelistProjector = new WhitelistProjector(m::mock(WhitelistEntryRepository::class)); diff --git a/src/Surfnet/StepupMiddleware/MiddlewareBundle/Tests/Migrations/InstitutionConfiguration/MappedInstitutionConfigurationTest.php b/src/Surfnet/StepupMiddleware/MiddlewareBundle/Tests/Migrations/InstitutionConfiguration/MappedInstitutionConfigurationTest.php index e76bb4852..f50cde179 100644 --- a/src/Surfnet/StepupMiddleware/MiddlewareBundle/Tests/Migrations/InstitutionConfiguration/MappedInstitutionConfigurationTest.php +++ b/src/Surfnet/StepupMiddleware/MiddlewareBundle/Tests/Migrations/InstitutionConfiguration/MappedInstitutionConfigurationTest.php @@ -16,9 +16,9 @@ * limitations under the License. */ -namespace Surfnet\StepupMiddleware\MiddlewareBundle\Tests\Migrations\InstitutionConfiguration\InstitutionConfiguration; +namespace Surfnet\StepupMiddleware\MiddlewareBundle\Tests\Migrations\InstitutionConfiguration; -use PHPUnit_Framework_TestCase as UnitTest; +use PHPUnit\Framework\TestCase as UnitTest; use Rhumsaa\Uuid\Uuid; use Surfnet\Stepup\Configuration\Value\ContactInformation; use Surfnet\Stepup\Configuration\Value\Institution; diff --git a/src/Surfnet/StepupMiddleware/MiddlewareBundle/Tests/Service/VerifiedSecondFactorReminderServiceTest.php b/src/Surfnet/StepupMiddleware/MiddlewareBundle/Tests/Service/VerifiedSecondFactorReminderServiceTest.php index 845043d8f..c1808ef0f 100644 --- a/src/Surfnet/StepupMiddleware/MiddlewareBundle/Tests/Service/VerifiedSecondFactorReminderServiceTest.php +++ b/src/Surfnet/StepupMiddleware/MiddlewareBundle/Tests/Service/VerifiedSecondFactorReminderServiceTest.php @@ -56,7 +56,7 @@ class VerifiedSecondFactorReminderServiceTest extends TestCase private $identityRepository; - public function setUp() + public function setUp(): void { $this->mailService = m::mock(VerifiedSecondFactorReminderMailService::class); $this->logger = m::mock(LoggerInterface::class); @@ -91,6 +91,8 @@ public function test_no_token_reminders_sent() ->with('0 reminders have been sent'); $this->service->sendReminders($date, false); + + $this->assertInstanceOf(VerifiedSecondFactorReminderService::class, $this->service); } public function test_one_token_reminders_sent() @@ -144,6 +146,8 @@ public function test_one_token_reminders_sent() ->with('1 reminders have been sent'); $this->service->sendReminders($date, false); + + $this->assertInstanceOf(VerifiedSecondFactorReminderService::class, $this->service); } public function test_one_token_reminders_sent_failing_mailer() @@ -192,6 +196,8 @@ public function test_one_token_reminders_sent_failing_mailer() ->with('0 reminders have been sent'); $this->service->sendReminders($date, false); + + $this->assertInstanceOf(VerifiedSecondFactorReminderService::class, $this->service); } public function test_multiple_tokens_reminders_sent() @@ -233,7 +239,7 @@ public function test_multiple_tokens_reminders_sent() $this->logger ->shouldReceive('info') - ->with('/^Message successfully sent to "mail@example\d.org" with token id "fa125c7c-c9ee-11e7-800\d-00000000000\d" of type "yubikey"/') + ->with(\Mockery::pattern('/^Message successfully sent to "mail@example\d.org" with token id "fa125c7c-c9ee-11e7-800\d-00000000000\d" of type "yubikey"/')) ->times(9); $this->logger @@ -242,6 +248,8 @@ public function test_multiple_tokens_reminders_sent() ->with('9 reminders have been sent'); $this->service->sendReminders($date, false); + + $this->assertInstanceOf(VerifiedSecondFactorReminderService::class, $this->service); } public function test_missing_identity() @@ -278,6 +286,8 @@ public function test_missing_identity() ->with('0 reminders have been sent'); $this->service->sendReminders($date, false); + + $this->assertInstanceOf(VerifiedSecondFactorReminderService::class, $this->service); } public function test_one_token_reminders_sent_dry_run() @@ -320,6 +330,8 @@ public function test_one_token_reminders_sent_dry_run() ->with('1 reminders would have been sent'); $this->service->sendReminders($date, true); + + $this->assertInstanceOf(VerifiedSecondFactorReminderService::class, $this->service); } public function test_multiple_tokens_reminders_sent_dry_run() @@ -355,7 +367,7 @@ public function test_multiple_tokens_reminders_sent_dry_run() $this->logger ->shouldReceive('info') - ->with('/^Message successfully sent in dry run mode to "mail@example\d.org" with token id "fa125c7c-c9ee-11e7-800\d-00000000000\d" of type "yubikey"/') + ->with(\Mockery::pattern('/^Message successfully sent in dry run mode to "mail@example\d.org" with token id "fa125c7c-c9ee-11e7-800\d-00000000000\d" of type "yubikey"/')) ->times(9); $this->logger @@ -364,6 +376,8 @@ public function test_multiple_tokens_reminders_sent_dry_run() ->with('9 reminders would have been sent'); $this->service->sendReminders($date, true); + + $this->assertInstanceOf(VerifiedSecondFactorReminderService::class, $this->service); } public function test_no_token_reminders_sent_dry_run() @@ -386,6 +400,8 @@ public function test_no_token_reminders_sent_dry_run() ->with('0 reminders would have been sent'); $this->service->sendReminders($date, true); + + $this->assertInstanceOf(VerifiedSecondFactorReminderService::class, $this->service); } /** diff --git a/symfony.lock b/symfony.lock new file mode 100644 index 000000000..291a3dc81 --- /dev/null +++ b/symfony.lock @@ -0,0 +1,723 @@ +{ + "beberlei/assert": { + "version": "v3.2.7" + }, + "broadway/broadway": { + "version": "2.3.1" + }, + "broadway/event-store-dbal": { + "version": "0.2", + "recipe": { + "repo": "github.com/symfony/recipes-contrib", + "branch": "master", + "version": "0.2", + "ref": "a8e44b60058a2798f65be93037aa1562f4de60eb" + } + }, + "broadway/uuid-generator": { + "version": "1.0.0" + }, + "composer/ca-bundle": { + "version": "1.2.7" + }, + "composer/xdebug-handler": { + "version": "1.4.2" + }, + "doctrine/annotations": { + "version": "1.0", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "1.0", + "ref": "a2759dd6123694c8d901d0ec80006e044c2e6457" + }, + "files": [ + "config/routes/annotations.yaml" + ] + }, + "doctrine/cache": { + "version": "1.10.1" + }, + "doctrine/collections": { + "version": "1.6.5" + }, + "doctrine/common": { + "version": "2.13.3" + }, + "doctrine/data-fixtures": { + "version": "1.4.3" + }, + "doctrine/dbal": { + "version": "2.10.2" + }, + "doctrine/doctrine-bundle": { + "version": "2.0", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "2.0", + "ref": "a9f2463b9f73efe74482f831f03a204a41328555" + }, + "files": [ + "config/packages/doctrine.yaml", + "config/packages/prod/doctrine.yaml", + "src/Surfnet/Entity/.gitignore", + "src/Surfnet/Repository/.gitignore" + ] + }, + "doctrine/doctrine-cache-bundle": { + "version": "1.4.0" + }, + "doctrine/doctrine-fixtures-bundle": { + "version": "3.0", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.0", + "ref": "fc52d86631a6dfd9fdf3381d0b7e3df2069e51b3" + }, + "files": [ + "src/Surfnet/DataFixtures/AppFixtures.php" + ] + }, + "doctrine/doctrine-migrations-bundle": { + "version": "2.2", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "2.2", + "ref": "baaa439e3e3179e69e3da84b671f0a3e4a2f56ad" + }, + "files": [ + "config/packages/doctrine_migrations.yaml", + "migrations/.gitignore" + ] + }, + "doctrine/event-manager": { + "version": "1.1.0" + }, + "doctrine/inflector": { + "version": "1.4.3" + }, + "doctrine/instantiator": { + "version": "1.3.1" + }, + "doctrine/lexer": { + "version": "1.2.1" + }, + "doctrine/migrations": { + "version": "3.0.0" + }, + "doctrine/orm": { + "version": "v2.7.3" + }, + "doctrine/persistence": { + "version": "1.3.7" + }, + "doctrine/reflection": { + "version": "1.2.1" + }, + "egulias/email-validator": { + "version": "2.1.17" + }, + "guzzlehttp/guzzle": { + "version": "6.5.4" + }, + "guzzlehttp/promises": { + "version": "v1.3.1" + }, + "guzzlehttp/psr7": { + "version": "1.6.1" + }, + "hamcrest/hamcrest-php": { + "version": "v2.0.0" + }, + "incenteev/composer-parameter-handler": { + "version": "v2.1.4" + }, + "jdorn/sql-formatter": { + "version": "v1.2.17" + }, + "jms/translation-bundle": { + "version": "1.5.4" + }, + "liip/test-fixtures-bundle": { + "version": "1.9.1" + }, + "mockery/mockery": { + "version": "1.3.1" + }, + "monolog/monolog": { + "version": "1.25.4" + }, + "moontoast/math": { + "version": "1.2.1" + }, + "myclabs/deep-copy": { + "version": "1.9.5" + }, + "nelmio/security-bundle": { + "version": "2.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "2.4", + "ref": "65726efb67ff51d89de38195bc0d230fa811f64d" + }, + "files": [ + "config/packages/nelmio_security.yaml" + ] + }, + "nikic/php-parser": { + "version": "v4.5.0" + }, + "ocramius/package-versions": { + "version": "1.4.2" + }, + "ocramius/proxy-manager": { + "version": "2.2.3" + }, + "openconext/monitor-bundle": { + "version": "dev-feature/add-symfony-4-support" + }, + "pagerfanta/pagerfanta": { + "version": "v1.1.0" + }, + "paragonie/random_compat": { + "version": "v2.0.18" + }, + "pdepend/pdepend": { + "version": "2.7.1" + }, + "phar-io/manifest": { + "version": "1.0.3" + }, + "phar-io/version": { + "version": "2.0.1" + }, + "php": { + "version": "7.2" + }, + "phpdocumentor/reflection-common": { + "version": "2.1.0" + }, + "phpdocumentor/reflection-docblock": { + "version": "5.1.0" + }, + "phpdocumentor/type-resolver": { + "version": "1.1.0" + }, + "phpmd/phpmd": { + "version": "2.8.2" + }, + "phpseclib/bcmath_compat": { + "version": "1.0.5" + }, + "phpseclib/phpseclib": { + "version": "2.0.27" + }, + "phpspec/prophecy": { + "version": "v1.10.3" + }, + "phpunit/php-code-coverage": { + "version": "7.0.10" + }, + "phpunit/php-file-iterator": { + "version": "2.0.2" + }, + "phpunit/php-text-template": { + "version": "1.2.1" + }, + "phpunit/php-timer": { + "version": "2.1.2" + }, + "phpunit/php-token-stream": { + "version": "3.1.1" + }, + "phpunit/phpunit": { + "version": "4.7", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "4.7", + "ref": "00fdb38c318774cd39f475a753028a5e8d25d47c" + }, + "files": [ + ".env.test", + "phpunit.xml.dist", + "tests/bootstrap.php" + ] + }, + "psr/cache": { + "version": "1.0.1" + }, + "psr/container": { + "version": "1.0.0" + }, + "psr/http-message": { + "version": "1.0.1" + }, + "psr/log": { + "version": "1.1.3" + }, + "ralouphie/getallheaders": { + "version": "3.0.3" + }, + "ramsey/uuid": { + "version": "2.9.0" + }, + "robrichards/xmlseclibs": { + "version": "3.1.0" + }, + "sebastian/code-unit-reverse-lookup": { + "version": "1.0.1" + }, + "sebastian/comparator": { + "version": "3.0.2" + }, + "sebastian/diff": { + "version": "3.0.2" + }, + "sebastian/environment": { + "version": "4.2.3" + }, + "sebastian/exporter": { + "version": "3.1.2" + }, + "sebastian/finder-facade": { + "version": "1.2.3" + }, + "sebastian/global-state": { + "version": "3.0.0" + }, + "sebastian/object-enumerator": { + "version": "3.0.3" + }, + "sebastian/object-reflector": { + "version": "1.1.1" + }, + "sebastian/phpcpd": { + "version": "2.0.1" + }, + "sebastian/recursion-context": { + "version": "3.0.0" + }, + "sebastian/resource-operations": { + "version": "2.0.1" + }, + "sebastian/type": { + "version": "1.1.3" + }, + "sebastian/version": { + "version": "2.0.1" + }, + "sensio/framework-extra-bundle": { + "version": "5.2", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "5.2", + "ref": "fb7e19da7f013d0d422fa9bce16f5c510e27609b" + }, + "files": [ + "config/packages/sensio_framework_extra.yaml" + ] + }, + "sensiolabs/security-checker": { + "version": "4.0", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "4.0", + "ref": "160c9b600564faa1224e8f387d49ef13ceb8b793" + }, + "files": [ + "config/packages/security_checker.yaml" + ] + }, + "simplesamlphp/saml2": { + "version": "v3.2.6" + }, + "squizlabs/php_codesniffer": { + "version": "3.0", + "recipe": { + "repo": "github.com/symfony/recipes-contrib", + "branch": "master", + "version": "3.0", + "ref": "0dc9cceda799fd3a08b96987e176a261028a3709" + }, + "files": [ + "phpcs.xml.dist" + ] + }, + "surfnet/stepup-bundle": { + "version": "4.1.1" + }, + "surfnet/stepup-saml-bundle": { + "version": "4.1.11" + }, + "swiftmailer/swiftmailer": { + "version": "v6.2.3" + }, + "symfony/asset": { + "version": "v4.4.9" + }, + "symfony/browser-kit": { + "version": "v4.4.10" + }, + "symfony/cache": { + "version": "v4.4.10" + }, + "symfony/config": { + "version": "v4.4.10" + }, + "symfony/console": { + "version": "4.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "4.4", + "ref": "ea8c0eda34fda57e7d5cd8cbd889e2a387e3472c" + }, + "files": [ + "bin/console", + "config/bootstrap.php" + ] + }, + "symfony/contracts": { + "version": "v1.1.8" + }, + "symfony/debug": { + "version": "v4.4.10" + }, + "symfony/dependency-injection": { + "version": "v4.4.10" + }, + "symfony/doctrine-bridge": { + "version": "v4.4.9" + }, + "symfony/dom-crawler": { + "version": "v4.4.10" + }, + "symfony/dotenv": { + "version": "v4.4.9" + }, + "symfony/error-handler": { + "version": "v4.4.10" + }, + "symfony/event-dispatcher": { + "version": "v4.4.10" + }, + "symfony/expression-language": { + "version": "v4.4.9" + }, + "symfony/filesystem": { + "version": "v4.4.10" + }, + "symfony/finder": { + "version": "v4.4.10" + }, + "symfony/flex": { + "version": "1.0", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "1.0", + "ref": "c0eeb50665f0f77226616b6038a9b06c03752d8e" + }, + "files": [ + ".env" + ] + }, + "symfony/form": { + "version": "v4.4.9" + }, + "symfony/framework-bundle": { + "version": "4.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "4.4", + "ref": "36d3075b2b8e0c4de0e82356a86e4c4a4eb6681b" + }, + "files": [ + "config/bootstrap.php", + "config/packages/cache.yaml", + "config/packages/framework.yaml", + "config/packages/test/framework.yaml", + "config/routes/dev/framework.yaml", + "config/services.yaml", + "public/index.php", + "src/Controller/.gitignore", + "src/Kernel.php" + ] + }, + "symfony/http-client": { + "version": "v4.4.10" + }, + "symfony/http-foundation": { + "version": "v4.4.10" + }, + "symfony/http-kernel": { + "version": "v4.4.10" + }, + "symfony/inflector": { + "version": "v4.4.9" + }, + "symfony/intl": { + "version": "v4.4.9" + }, + "symfony/mailer": { + "version": "4.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "4.3", + "ref": "15658c2a0176cda2e7dba66276a2030b52bd81b2" + }, + "files": [ + "config/packages/mailer.yaml" + ] + }, + "symfony/maker-bundle": { + "version": "1.0", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "1.0", + "ref": "fadbfe33303a76e25cb63401050439aa9b1a9c7f" + } + }, + "symfony/mime": { + "version": "v4.4.10" + }, + "symfony/monolog-bridge": { + "version": "v4.4.9" + }, + "symfony/monolog-bundle": { + "version": "3.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.3", + "ref": "d7249f7d560f6736115eee1851d02a65826f0a56" + }, + "files": [ + "config/packages/dev/monolog.yaml", + "config/packages/prod/deprecations.yaml", + "config/packages/prod/monolog.yaml", + "config/packages/test/monolog.yaml" + ] + }, + "symfony/options-resolver": { + "version": "v4.4.9" + }, + "symfony/orm-pack": { + "version": "v1.0.8" + }, + "symfony/phpunit-bridge": { + "version": "3.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.3", + "ref": "7e941371431f5245d05c6490ada44c17eb0d27ed" + }, + "files": [ + ".env.test", + "bin/phpunit", + "phpunit.xml.dist", + "tests/bootstrap.php" + ] + }, + "symfony/polyfill-ctype": { + "version": "v1.17.0" + }, + "symfony/polyfill-iconv": { + "version": "v1.17.0" + }, + "symfony/polyfill-intl-icu": { + "version": "v1.17.0" + }, + "symfony/polyfill-intl-idn": { + "version": "v1.17.0" + }, + "symfony/polyfill-mbstring": { + "version": "v1.17.0" + }, + "symfony/polyfill-php72": { + "version": "v1.17.0" + }, + "symfony/polyfill-php73": { + "version": "v1.17.0" + }, + "symfony/polyfill-php80": { + "version": "v1.17.0" + }, + "symfony/profiler-pack": { + "version": "v1.0.4" + }, + "symfony/property-access": { + "version": "v4.4.9" + }, + "symfony/routing": { + "version": "4.2", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "4.2", + "ref": "683dcb08707ba8d41b7e34adb0344bfd68d248a7" + }, + "files": [ + "config/packages/prod/routing.yaml", + "config/packages/routing.yaml", + "config/routes.yaml" + ] + }, + "symfony/security-bundle": { + "version": "4.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "4.4", + "ref": "7b4408dc203049666fe23fabed23cbadc6d8440f" + }, + "files": [ + "config/packages/security.yaml" + ] + }, + "symfony/security-core": { + "version": "v4.4.9" + }, + "symfony/security-csrf": { + "version": "v4.4.9" + }, + "symfony/security-guard": { + "version": "v4.4.9" + }, + "symfony/security-http": { + "version": "v4.4.9" + }, + "symfony/stopwatch": { + "version": "v4.4.10" + }, + "symfony/swiftmailer-bundle": { + "version": "2.5", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "2.5", + "ref": "ae4d22af30bbd484506bc1817c5a3ef72c855b93" + }, + "files": [ + "config/packages/dev/swiftmailer.yaml", + "config/packages/swiftmailer.yaml", + "config/packages/test/swiftmailer.yaml" + ] + }, + "symfony/templating": { + "version": "v4.4.9" + }, + "symfony/translation": { + "version": "3.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.3", + "ref": "2ad9d2545bce8ca1a863e50e92141f0b9d87ffcd" + }, + "files": [ + "config/packages/translation.yaml", + "translations/.gitignore" + ] + }, + "symfony/twig-bridge": { + "version": "v4.4.10" + }, + "symfony/twig-bundle": { + "version": "4.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "4.4", + "ref": "15a41bbd66a1323d09824a189b485c126bbefa51" + }, + "files": [ + "config/packages/test/twig.yaml", + "config/packages/twig.yaml", + "templates/base.html.twig" + ] + }, + "symfony/twig-pack": { + "version": "v1.0.0" + }, + "symfony/validator": { + "version": "4.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "4.3", + "ref": "d902da3e4952f18d3bf05aab29512eb61cabd869" + }, + "files": [ + "config/packages/test/validator.yaml", + "config/packages/validator.yaml" + ] + }, + "symfony/var-dumper": { + "version": "v4.4.10" + }, + "symfony/var-exporter": { + "version": "v4.4.10" + }, + "symfony/web-profiler-bundle": { + "version": "3.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.3", + "ref": "6bdfa1a95f6b2e677ab985cd1af2eae35d62e0f6" + }, + "files": [ + "config/packages/dev/web_profiler.yaml", + "config/packages/test/web_profiler.yaml", + "config/routes/dev/web_profiler.yaml" + ] + }, + "symfony/yaml": { + "version": "v4.4.9" + }, + "theseer/fdomdocument": { + "version": "1.6.6" + }, + "theseer/tokenizer": { + "version": "1.1.3" + }, + "twig/extensions": { + "version": "1.0", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "1.0", + "ref": "a86723ee8d8b2f9437c8ce60a5546a1c267da5ed" + }, + "files": [ + "config/packages/twig_extensions.yaml" + ] + }, + "twig/twig": { + "version": "v2.12.5" + }, + "ua-parser/uap-php": { + "version": "v3.9.8" + }, + "webmozart/assert": { + "version": "1.8.0" + }, + "zendframework/zend-code": { + "version": "3.4.1" + }, + "zendframework/zend-eventmanager": { + "version": "3.2.1" + } +} diff --git a/app/Resources/views/base.html.twig b/templates/base.html.twig similarity index 70% rename from app/Resources/views/base.html.twig rename to templates/base.html.twig index 7ccd8886b..043f42d1a 100644 --- a/app/Resources/views/base.html.twig +++ b/templates/base.html.twig @@ -1,10 +1,9 @@ - + {% block title %}Welcome!{% endblock %} {% block stylesheets %}{% endblock %} - {% block body %}{% endblock %} diff --git a/tests/bootstrap.php b/tests/bootstrap.php new file mode 100644 index 000000000..469dccee4 --- /dev/null +++ b/tests/bootstrap.php @@ -0,0 +1,11 @@ +bootEnv(dirname(__DIR__).'/.env'); +} diff --git a/app/Resources/translations/messages.en_GB.xliff b/translations/translations/messages.en_GB.xliff similarity index 100% rename from app/Resources/translations/messages.en_GB.xliff rename to translations/translations/messages.en_GB.xliff diff --git a/app/Resources/translations/messages.nl_NL.xliff b/translations/translations/messages.nl_NL.xliff similarity index 100% rename from app/Resources/translations/messages.nl_NL.xliff rename to translations/translations/messages.nl_NL.xliff diff --git a/app/Resources/translations/validators.en_GB.xliff b/translations/translations/validators.en_GB.xliff similarity index 100% rename from app/Resources/translations/validators.en_GB.xliff rename to translations/translations/validators.en_GB.xliff diff --git a/app/Resources/translations/validators.nl_NL.xliff b/translations/translations/validators.nl_NL.xliff similarity index 100% rename from app/Resources/translations/validators.nl_NL.xliff rename to translations/translations/validators.nl_NL.xliff diff --git a/web/app.php b/web/app.php deleted file mode 100644 index 33efedf31..000000000 --- a/web/app.php +++ /dev/null @@ -1,17 +0,0 @@ -boot(); - -$trustedProxies = $kernel->getContainer()->getParameter('trusted_proxies'); -Request::setTrustedProxies($trustedProxies, Request::HEADER_X_FORWARDED_ALL); - -$response = $kernel->handle($request); -$response->send(); -$kernel->terminate($request, $response);