diff --git a/.gitignore b/.gitignore index e826e327a71..36393e157f2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,3 @@ -/.php_cs.cache - /var/* !/var/.gitkeep @@ -21,12 +19,23 @@ !/etc/build/.gitkeep /behat.yml -/phpunit.xml /phpspec.yml -/.web-server-pid /.env /.env.prod /.env.staging /.env.test /.env.test_cached + +###> symfony/web-server-bundle ### +/.web-server-pid +###< symfony/web-server-bundle ### + +###> friendsofphp/php-cs-fixer ### +/.php_cs +/.php_cs.cache +###< friendsofphp/php-cs-fixer ### + +###> phpunit/phpunit ### +/phpunit.xml +###< phpunit/phpunit ### diff --git a/composer.json b/composer.json index b610c802a21..50c6d30b173 100644 --- a/composer.json +++ b/composer.json @@ -20,11 +20,9 @@ ], "require": { "php": "^7.2", - "ext-exif": "*", "ext-fileinfo": "*", "ext-gd": "*", - "doctrine/collections": "^1.3", "doctrine/data-fixtures": "^1.1", "doctrine/doctrine-bundle": "^1.6", @@ -53,13 +51,38 @@ "swiftmailer/swiftmailer": "^6.0", "sylius-labs/association-hydrator": "^1.1", "sylius-labs/sensio-distribution-bundle": "^6.0", + "symfony/asset": "^3.4|^4.1", + "symfony/config": "^3.4|^4.1", + "symfony/console": "^3.4|^4.1", + "symfony/dependency-injection": "^3.4|^4.1", + "symfony/doctrine-bridge": "^3.4|^4.1", + "symfony/event-dispatcher": "^3.4|^4.1", + "symfony/expression-language": "^3.4|^4.1", + "symfony/filesystem": "^3.4|^4.1", + "symfony/finder": "^3.4|^4.1", + "symfony/flex": "^1.1", + "symfony/form": "^3.4|^4.1", + "symfony/framework-bundle": "^3.4|^4.1", + "symfony/http-foundation": "^3.4|^4.1", + "symfony/http-kernel": "^3.4|^4.1", "symfony/monolog-bundle": "^3.0", + "symfony/options-resolver": "^3.4|^4.1", "symfony/polyfill-iconv": "^1.3", "symfony/polyfill-intl-icu": "^1.3", "symfony/polyfill-mbstring": "^1.3", + "symfony/process": "^3.4|^4.1", + "symfony/property-access": "^3.4|^4.1", + "symfony/proxy-manager-bridge": "^3.4|^4.1", + "symfony/routing": "^3.4|^4.1", + "symfony/security": "^3.4|^4.1", + "symfony/security-bundle": "^3.4|^4.1", "symfony/swiftmailer-bundle": "^3.0", - "symfony/symfony": "^3.4|^4.1.1", + "symfony/templating": "^3.4|^4.1", "symfony/thanks": "^1.0", + "symfony/translation": "^3.4|^4.1", + "symfony/twig-bundle": "^3.4|^4.1", + "symfony/validator": "^3.4|^4.1", + "symfony/yaml": "^3.4|^4.1", "twig/extensions": "^1.4", "twig/twig": "^2.0", "webmozart/assert": "^1.1", @@ -97,7 +120,13 @@ "phpstan/phpstan-webmozart-assert": "^0.10", "phpunit/phpunit": "^6.5", "stripe/stripe-php": "^4.1", - "sylius-labs/coding-standard": "^2.0" + "sylius-labs/coding-standard": "^2.0", + "symfony/browser-kit": "^3.4|^4.1", + "symfony/debug-bundle": "^3.4|^4.1", + "symfony/dotenv": "^3.4|^4.1", + "symfony/intl": "^3.4|^4.1", + "symfony/web-profiler-bundle": "^3.4|^4.1", + "symfony/web-server-bundle": "^3.4|^4.1" }, "replace": { "sylius/addressing": "self.version", @@ -149,6 +178,7 @@ "sylius/ui-bundle": "self.version", "sylius/user": "self.version", "sylius/user-bundle": "self.version", + "symfony/polyfill-php72": "*", "symfony/polyfill-php71": "*", "symfony/polyfill-php70": "*", "symfony/polyfill-php56": "*" @@ -161,20 +191,6 @@ "ext-intl": "For better performance than using Symfony Polyfill Component", "ext-mbstring": "For better performance than using Symfony Polyfill Component" }, - "scripts": { - "post-install-cmd": [ - "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", - "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", - "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", - "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" - ], - "post-update-cmd": [ - "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", - "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", - "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", - "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" - ] - }, "autoload": { "psr-4": { "Sylius\\Behat\\": "src/Sylius/Behat/", @@ -191,15 +207,28 @@ }, "classmap": ["app/AppKernel.php", "app/TestAppKernel.php", "src/Kernel.php"] }, + "scripts": { + "auto-scripts": { + "cache:clear": "symfony-cmd", + "assets:install %PUBLIC_DIR%": "symfony-cmd", + "security-checker security:check": "script" + }, + "post-install-cmd": [ + "@auto-scripts" + ], + "post-update-cmd": [ + "@auto-scripts" + ] + }, + "config": { + "preferred-install": { + "*": "dist" + }, + "sort-packages": true + }, "extra": { - "symfony-app-dir": "app", - "symfony-bin-dir": "bin", - "symfony-var-dir": "var", - "symfony-web-dir": "public", - "symfony-tests-dir": "tests", - "symfony-assets-install": "relative", - "incenteev-parameters": { - "file": "app/config/parameters.yml" + "symfony": { + "allow-contrib": false }, "branch-alias": { "dev-master": "1.3-dev" diff --git a/config/bundles.php b/config/bundles.php index 2bc298c148a..29f1b687298 100644 --- a/config/bundles.php +++ b/config/bundles.php @@ -1,7 +1,5 @@ ['all' => true], Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true], @@ -10,7 +8,6 @@ Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true], Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true], Doctrine\Bundle\DoctrineCacheBundle\DoctrineCacheBundle::class => ['all' => true], - Sylius\Bundle\OrderBundle\SyliusOrderBundle::class => ['all' => true], Sylius\Bundle\MoneyBundle\SyliusMoneyBundle::class => ['all' => true], Sylius\Bundle\CurrencyBundle\SyliusCurrencyBundle::class => ['all' => true], @@ -34,38 +31,30 @@ Sylius\Bundle\ResourceBundle\SyliusResourceBundle::class => ['all' => true], Sylius\Bundle\GridBundle\SyliusGridBundle::class => ['all' => true], winzou\Bundle\StateMachineBundle\winzouStateMachineBundle::class => ['all' => true], - Sonata\CoreBundle\SonataCoreBundle::class => ['all' => true], Sonata\BlockBundle\SonataBlockBundle::class => ['all' => true], Sonata\IntlBundle\SonataIntlBundle::class => ['all' => true], Bazinga\Bundle\HateoasBundle\BazingaHateoasBundle::class => ['all' => true], JMS\SerializerBundle\JMSSerializerBundle::class => ['all' => true], FOS\RestBundle\FOSRestBundle::class => ['all' => true], - Knp\Bundle\GaufretteBundle\KnpGaufretteBundle::class => ['all' => true], Knp\Bundle\MenuBundle\KnpMenuBundle::class => ['all' => true], Liip\ImagineBundle\LiipImagineBundle::class => ['all' => true], Payum\Bundle\PayumBundle\PayumBundle::class => ['all' => true], Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle::class => ['all' => true], WhiteOctober\PagerfantaBundle\WhiteOctoberPagerfantaBundle::class => ['all' => true], - Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true], Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['all' => true], Sylius\Bundle\FixturesBundle\SyliusFixturesBundle::class => ['all' => true], - Sylius\Bundle\PayumBundle\SyliusPayumBundle::class => ['all' => true], // must be added after PayumBundle. - Sylius\Bundle\ThemeBundle\SyliusThemeBundle::class => ['all' => true], // must be added after FrameworkBundle - - Symfony\Bundle\WebServerBundle\WebServerBundle::class => ['all' => true], // allows to run build in web server, not recommended for prod environment - + Sylius\Bundle\PayumBundle\SyliusPayumBundle::class => ['all' => true], + Sylius\Bundle\ThemeBundle\SyliusThemeBundle::class => ['all' => true], + Symfony\Bundle\WebServerBundle\WebServerBundle::class => ['all' => true], Sylius\Bundle\AdminBundle\SyliusAdminBundle::class => ['all' => true], Sylius\Bundle\ShopBundle\SyliusShopBundle::class => ['all' => true], - - FOS\OAuthServerBundle\FOSOAuthServerBundle::class => ['all' => true], // Required by SyliusAdminApiBundle + FOS\OAuthServerBundle\FOSOAuthServerBundle::class => ['all' => true], Sylius\Bundle\AdminApiBundle\SyliusAdminApiBundle::class => ['all' => true], - - Sensio\Bundle\DistributionBundle\SensioDistributionBundle::class => ['dev' => true, 'test' => true, 'test_cached' => true], Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true, 'test' => true, 'test_cached' => true], Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true, 'test_cached' => true], Fidry\AliceDataFixtures\Bridge\Symfony\FidryAliceDataFixturesBundle::class => ['dev' => true, 'test' => true, 'test_cached' => true], - Nelmio\Alice\Bridge\Symfony\NelmioAliceBundle::class => ['dev' => true, 'test' => true, 'test_cached' => true], + Nelmio\Alice\Bridge\Symfony\NelmioAliceBundle::class => ['dev' => true, 'test' => true, 'test_cached' => true] ]; diff --git a/config/packages/dev/jms_serializer.yaml b/config/packages/dev/jms_serializer.yaml new file mode 100644 index 00000000000..353e4602754 --- /dev/null +++ b/config/packages/dev/jms_serializer.yaml @@ -0,0 +1,7 @@ +jms_serializer: + visitors: + json: + options: + - JSON_PRETTY_PRINT + - JSON_UNESCAPED_SLASHES + - JSON_PRESERVE_ZERO_FRACTION diff --git a/config/packages/dev/routing.yaml b/config/packages/dev/routing.yaml new file mode 100644 index 00000000000..4116679a2e0 --- /dev/null +++ b/config/packages/dev/routing.yaml @@ -0,0 +1,3 @@ +framework: + router: + strict_requirements: true diff --git a/config/packages/framework.yaml b/config/packages/framework.yaml index 86bc1c51442..e74ed811e7d 100644 --- a/config/packages/framework.yaml +++ b/config/packages/framework.yaml @@ -1,12 +1,7 @@ framework: - translator: { fallbacks: ["%locale%", "en"] } secret: '%env(APP_SECRET)%' - router: - strict_requirements: '%kernel.debug%' form: true csrf_protection: true - validation: { enable_annotations: true } templating: { engines: ["twig"] } - default_locale: "%locale%" session: handler_id: ~ diff --git a/config/packages/jms_serializer.yaml b/config/packages/jms_serializer.yaml new file mode 100644 index 00000000000..64dd8d10353 --- /dev/null +++ b/config/packages/jms_serializer.yaml @@ -0,0 +1,4 @@ +jms_serializer: + visitors: + xml: + format_output: '%kernel.debug%' diff --git a/config/packages/nelmio_alice.yaml b/config/packages/nelmio_alice.yaml new file mode 100644 index 00000000000..e2ae069cd42 --- /dev/null +++ b/config/packages/nelmio_alice.yaml @@ -0,0 +1,3 @@ +nelmio_alice: + functions_blacklist: + - 'current' diff --git a/config/packages/prod/doctrine.yaml b/config/packages/prod/doctrine.yaml new file mode 100644 index 00000000000..2f16f0fdea9 --- /dev/null +++ b/config/packages/prod/doctrine.yaml @@ -0,0 +1,31 @@ +doctrine: + orm: + metadata_cache_driver: + type: service + id: doctrine.system_cache_provider + query_cache_driver: + type: service + id: doctrine.system_cache_provider + result_cache_driver: + type: service + id: doctrine.result_cache_provider + +services: + doctrine.result_cache_provider: + class: Symfony\Component\Cache\DoctrineProvider + public: false + arguments: + - '@doctrine.result_cache_pool' + doctrine.system_cache_provider: + class: Symfony\Component\Cache\DoctrineProvider + public: false + arguments: + - '@doctrine.system_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/jms_serializer.yaml b/config/packages/prod/jms_serializer.yaml new file mode 100644 index 00000000000..bc97faf1f6f --- /dev/null +++ b/config/packages/prod/jms_serializer.yaml @@ -0,0 +1,6 @@ +jms_serializer: + visitors: + json: + options: + - JSON_UNESCAPED_SLASHES + - JSON_PRESERVE_ZERO_FRACTION diff --git a/config/packages/routing.yaml b/config/packages/routing.yaml new file mode 100644 index 00000000000..368bc7f491f --- /dev/null +++ b/config/packages/routing.yaml @@ -0,0 +1,3 @@ +framework: + router: + strict_requirements: ~ diff --git a/config/packages/security_checker.yaml b/config/packages/security_checker.yaml new file mode 100644 index 00000000000..0f9cf00fea9 --- /dev/null +++ b/config/packages/security_checker.yaml @@ -0,0 +1,9 @@ +services: + SensioLabs\Security\SecurityChecker: + public: false + + SensioLabs\Security\Command\SecurityCheckerCommand: + arguments: ['@SensioLabs\Security\SecurityChecker'] + public: false + tags: + - { name: console.command, command: 'security:check' } diff --git a/config/packages/sonata_core.yaml b/config/packages/sonata_core.yaml new file mode 100644 index 00000000000..e9a6e895214 --- /dev/null +++ b/config/packages/sonata_core.yaml @@ -0,0 +1,4 @@ +sonata_core: + form: + mapping: + enabled: false diff --git a/config/packages/stof_doctrine_extensions.yaml b/config/packages/stof_doctrine_extensions.yaml new file mode 100644 index 00000000000..7770f74e1f3 --- /dev/null +++ b/config/packages/stof_doctrine_extensions.yaml @@ -0,0 +1,4 @@ +# Read the documentation: https://symfony.com/doc/current/bundles/StofDoctrineExtensionsBundle/index.html +# See the official DoctrineExtensions documentation for more details: https://github.com/Atlantic18/DoctrineExtensions/tree/master/doc/ +stof_doctrine_extensions: + default_locale: '%locale%' diff --git a/config/packages/test/web_profiler.yaml b/config/packages/test/web_profiler.yaml new file mode 100644 index 00000000000..03752de213c --- /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 00000000000..1f4f96646f8 --- /dev/null +++ b/config/packages/translation.yaml @@ -0,0 +1,8 @@ +framework: + default_locale: '%locale%' + translator: + paths: + - '%kernel.project_dir%/translations' + fallbacks: + - '%locale%' + - 'en' diff --git a/config/packages/twig.yaml b/config/packages/twig.yaml new file mode 100644 index 00000000000..3b315dcc15f --- /dev/null +++ b/config/packages/twig.yaml @@ -0,0 +1,4 @@ +twig: + paths: ['%kernel.project_dir%/templates'] + debug: '%kernel.debug%' + strict_variables: '%kernel.debug%' diff --git a/config/packages/twig_extensions.yaml b/config/packages/twig_extensions.yaml new file mode 100644 index 00000000000..0881cc9588e --- /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: ~ + #Twig\Extensions\DateExtension: ~ + #Twig\Extensions\IntlExtension: ~ + #Twig\Extensions\TextExtension: ~ diff --git a/config/packages/validator.yaml b/config/packages/validator.yaml new file mode 100644 index 00000000000..61807db6292 --- /dev/null +++ b/config/packages/validator.yaml @@ -0,0 +1,3 @@ +framework: + validation: + enable_annotations: true diff --git a/etc/travis/suites/application/before_script.sh b/etc/travis/suites/application/before_script.sh index aedc2f04cfb..a3691e76754 100755 --- a/etc/travis/suites/application/before_script.sh +++ b/etc/travis/suites/application/before_script.sh @@ -14,4 +14,4 @@ run_command "bin/console assets:install public --env=test_cached --no-debug -vvv run_command "yarn build" || exit $? print_header "Making filesystem readonly" "Sylius" -run_command "chmod -R 555 app bin config docs features src templates tests vendor" +run_command "chmod -R 555 app bin config docs features src templates tests translations vendor" diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 7df77c054a5..4e7d62388b3 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -13,10 +13,16 @@ - - + + - + + + + + + + diff --git a/symfony.lock b/symfony.lock new file mode 100644 index 00000000000..74719b8a3d7 --- /dev/null +++ b/symfony.lock @@ -0,0 +1,845 @@ +{ + "akeneo/phpspec-skip-example-extension": { + "version": "v3.0.0" + }, + "behat/behat": { + "version": "v3.5.0" + }, + "behat/gherkin": { + "version": "v4.5.1" + }, + "behat/mink": { + "version": "1.7.x-dev" + }, + "behat/mink-browserkit-driver": { + "version": "1.3.3" + }, + "behat/mink-extension": { + "version": "2.3.1" + }, + "behat/mink-selenium2-driver": { + "version": "v1.3.1" + }, + "behat/transliterator": { + "version": "v1.2.0" + }, + "clue/stream-filter": { + "version": "v1.4.0" + }, + "cocur/slugify": { + "version": "v3.1" + }, + "coduo/php-matcher": { + "version": "3.1.0" + }, + "coduo/php-to-string": { + "version": "2.0.1" + }, + "composer/ca-bundle": { + "version": "1.1.2" + }, + "composer/semver": { + "version": "1.4.2" + }, + "composer/xdebug-handler": { + "version": "1.2.0" + }, + "container-interop/container-interop": { + "version": "1.2.0" + }, + "doctrine/annotations": { + "version": "1.0", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "1.0", + "ref": "cb4152ebcadbe620ea2261da1a1c5a9b8cea7672" + } + }, + "doctrine/cache": { + "version": "v1.8.0" + }, + "doctrine/collections": { + "version": "v1.5.0" + }, + "doctrine/common": { + "version": "v2.9.0" + }, + "doctrine/data-fixtures": { + "version": "v1.3.1" + }, + "doctrine/dbal": { + "version": "v2.8.0" + }, + "doctrine/doctrine-bundle": { + "version": "1.6", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "1.6", + "ref": "ae205d5114e719deb64d2110f56ef910787d1e04" + } + }, + "doctrine/doctrine-cache-bundle": { + "version": "1.3.3" + }, + "doctrine/doctrine-fixtures-bundle": { + "version": "v2.4.1" + }, + "doctrine/doctrine-migrations-bundle": { + "version": "1.2", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "1.2", + "ref": "c1431086fec31f17fbcfe6d6d7e92059458facc1" + } + }, + "doctrine/event-manager": { + "version": "v1.0.0" + }, + "doctrine/inflector": { + "version": "v1.3.0" + }, + "doctrine/instantiator": { + "version": "1.1.0" + }, + "doctrine/lexer": { + "version": "v1.0.1" + }, + "doctrine/migrations": { + "version": "v1.8.1" + }, + "doctrine/orm": { + "version": "v2.6.2" + }, + "doctrine/persistence": { + "version": "v1.0.0" + }, + "doctrine/reflection": { + "version": "v1.0.0" + }, + "egulias/email-validator": { + "version": "2.1.5" + }, + "friends-of-behat/context-service-extension": { + "version": "v1.2.0" + }, + "friends-of-behat/cross-container-extension": { + "version": "v1.1.0" + }, + "friends-of-behat/page-object-extension": { + "version": "0.1" + }, + "friends-of-behat/service-container-extension": { + "version": "v1.0.1" + }, + "friends-of-behat/symfony-extension": { + "version": "v1.2.2" + }, + "friends-of-behat/variadic-extension": { + "version": "v1.1.0" + }, + "friendsofphp/php-cs-fixer": { + "version": "2.2", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "2.2", + "ref": "81dee417d2cc60cd1c9d6208dff2ec22a1103e93" + } + }, + "friendsofsymfony/oauth-server-bundle": { + "version": "1.6.1" + }, + "friendsofsymfony/oauth2-php": { + "version": "1.2.3" + }, + "friendsofsymfony/rest-bundle": { + "version": "2.2", + "recipe": { + "repo": "github.com/symfony/recipes-contrib", + "branch": "master", + "version": "2.2", + "ref": "258300d52be6ad59b32a888d5ddafbf9638540ff" + } + }, + "fzaninotto/faker": { + "version": "v1.8.0" + }, + "gedmo/doctrine-extensions": { + "version": "v2.4.36" + }, + "guzzlehttp/guzzle": { + "version": "6.3.3" + }, + "guzzlehttp/promises": { + "version": "v1.3.1" + }, + "guzzlehttp/psr7": { + "version": "1.4.2" + }, + "hamcrest/hamcrest-php": { + "version": "v2.0.0" + }, + "hwi/oauth-bundle": { + "version": "0.6", + "recipe": { + "repo": "github.com/symfony/recipes-contrib", + "branch": "master", + "version": "0.6", + "ref": "20cacc9b2da49d96ea55c8a8dd31324c5be88bc9" + } + }, + "imagine/imagine": { + "version": "v0.7.1" + }, + "incenteev/composer-parameter-handler": { + "version": "v2.1.3" + }, + "instaclick/php-webdriver": { + "version": "1.4.5" + }, + "jdorn/sql-formatter": { + "version": "v1.2.17" + }, + "jean85/pretty-package-versions": { + "version": "1.2" + }, + "jms/metadata": { + "version": "1.6.0" + }, + "jms/parser-lib": { + "version": "1.0.0" + }, + "jms/serializer": { + "version": "1.13.0" + }, + "jms/serializer-bundle": { + "version": "2.0", + "recipe": { + "repo": "github.com/symfony/recipes-contrib", + "branch": "master", + "version": "2.0", + "ref": "fe60ce509ef04a3f40da96e3979bc8d9b13b2372" + } + }, + "knplabs/gaufrette": { + "version": "v0.6.0" + }, + "knplabs/knp-gaufrette-bundle": { + "version": "v0.5.3" + }, + "knplabs/knp-menu": { + "version": "2.3.0" + }, + "knplabs/knp-menu-bundle": { + "version": "v2.2.1" + }, + "lakion/api-test-case": { + "version": "v3.1.3" + }, + "lakion/mink-debug-extension": { + "version": "v1.2.3" + }, + "league/uri": { + "version": "5.3.0" + }, + "league/uri-components": { + "version": "1.8.1" + }, + "league/uri-hostname-parser": { + "version": "1.1.1" + }, + "league/uri-interfaces": { + "version": "1.1.0" + }, + "league/uri-manipulations": { + "version": "1.5.0" + }, + "league/uri-parser": { + "version": "1.4.0" + }, + "league/uri-schemes": { + "version": "1.2.0" + }, + "liip/imagine-bundle": { + "version": "1.8", + "recipe": { + "repo": "github.com/symfony/recipes-contrib", + "branch": "master", + "version": "1.8", + "ref": "7f6676627c1ceeeee204553d24a0545d5f918b7b" + } + }, + "matthiasnoback/symfony-config-test": { + "version": "3.1.1" + }, + "matthiasnoback/symfony-dependency-injection-test": { + "version": "v2.3.1" + }, + "mikey179/vfsstream": { + "version": "v1.6.5" + }, + "mockery/mockery": { + "version": "1.1.0" + }, + "monolog/monolog": { + "version": "1.23.0" + }, + "myclabs/deep-copy": { + "version": "1.8.1" + }, + "nelmio/alice": { + "version": "3.2", + "recipe": { + "repo": "github.com/symfony/recipes-contrib", + "branch": "master", + "version": "3.2", + "ref": "5ef2976310e8f9621c1a722a73bfbe115c1559a3" + } + }, + "nette/finder": { + "version": "v2.4.2" + }, + "nette/robot-loader": { + "version": "v3.0.4" + }, + "nette/utils": { + "version": "v2.5.2" + }, + "ocramius/package-versions": { + "version": "1.3.0" + }, + "ocramius/proxy-manager": { + "version": "2.2.0" + }, + "openlss/lib-array2xml": { + "version": "0.0.10" + }, + "pagerfanta/pagerfanta": { + "version": "v2.0.1" + }, + "pamil/prophecy-common": { + "version": "v0.1.0" + }, + "paragonie/random_compat": { + "version": "v2.0.17" + }, + "payum/iso4217": { + "version": "1.0.1" + }, + "payum/payum": { + "version": "1.5.0" + }, + "payum/payum-bundle": { + "version": "2.3.1" + }, + "phar-io/manifest": { + "version": "1.0.1" + }, + "phar-io/version": { + "version": "1.0.1" + }, + "php-cs-fixer/diff": { + "version": "v1.3.0" + }, + "php-http/client-common": { + "version": "1.7.0" + }, + "php-http/discovery": { + "version": "1.4.0" + }, + "php-http/guzzle6-adapter": { + "version": "v1.1.1" + }, + "php-http/httplug": { + "version": "v1.1.0" + }, + "php-http/message": { + "version": "1.7.0" + }, + "php-http/message-factory": { + "version": "v1.0.2" + }, + "php-http/promise": { + "version": "v1.0.0" + }, + "phpcollection/phpcollection": { + "version": "0.5.0" + }, + "phpdocumentor/reflection-common": { + "version": "1.0.1" + }, + "phpdocumentor/reflection-docblock": { + "version": "4.3.0" + }, + "phpdocumentor/type-resolver": { + "version": "0.4.0" + }, + "phpoption/phpoption": { + "version": "1.5.0" + }, + "phpspec/php-diff": { + "version": "v1.1.0" + }, + "phpspec/phpspec": { + "version": "4.3.1" + }, + "phpspec/prophecy": { + "version": "1.8.0" + }, + "phpstan/phpstan-doctrine": { + "version": "0.10" + }, + "phpstan/phpstan-shim": { + "version": "0.10.3" + }, + "phpstan/phpstan-symfony": { + "version": "0.10.1" + }, + "phpstan/phpstan-webmozart-assert": { + "version": "0.10" + }, + "phpunit/php-code-coverage": { + "version": "5.3.2" + }, + "phpunit/php-file-iterator": { + "version": "1.4.5" + }, + "phpunit/php-text-template": { + "version": "1.2.1" + }, + "phpunit/php-timer": { + "version": "1.0.9" + }, + "phpunit/php-token-stream": { + "version": "2.0.2" + }, + "phpunit/phpunit": { + "version": "4.7", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "4.7", + "ref": "c276fa48d4713de91eb410289b3b1834acb7e403" + } + }, + "phpunit/phpunit-mock-objects": { + "version": "5.0.10" + }, + "polishsymfonycommunity/symfony-mocker-container": { + "version": "v1.0.2" + }, + "psr/cache": { + "version": "1.0.1" + }, + "psr/container": { + "version": "1.0.0" + }, + "psr/http-message": { + "version": "1.0.1" + }, + "psr/log": { + "version": "1.0.2" + }, + "psr/simple-cache": { + "version": "1.0.1" + }, + "ramsey/uuid": { + "version": "3.8.0" + }, + "sebastian/code-unit-reverse-lookup": { + "version": "1.0.1" + }, + "sebastian/comparator": { + "version": "2.1.3" + }, + "sebastian/diff": { + "version": "2.0.1" + }, + "sebastian/environment": { + "version": "3.1.0" + }, + "sebastian/exporter": { + "version": "3.1.0" + }, + "sebastian/global-state": { + "version": "2.0.0" + }, + "sebastian/object-enumerator": { + "version": "3.0.3" + }, + "sebastian/object-reflector": { + "version": "1.1.1" + }, + "sebastian/recursion-context": { + "version": "3.0.0" + }, + "sebastian/resource-operations": { + "version": "1.0.0" + }, + "sebastian/version": { + "version": "2.0.1" + }, + "sensiolabs/security-checker": { + "version": "4.0", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "4.0", + "ref": "421933bf8f0e75546ac8e00cb3eb12904fa2ac1a" + } + }, + "slevomat/coding-standard": { + "version": "4.6.3" + }, + "sonata-project/block-bundle": { + "version": "3.12.1" + }, + "sonata-project/cache": { + "version": "2.0.1" + }, + "sonata-project/core-bundle": { + "version": "3.9", + "recipe": { + "repo": "github.com/symfony/recipes-contrib", + "branch": "master", + "version": "3.9", + "ref": "2f69bd1995730b73a5211a9707622fb25a925df7" + } + }, + "sonata-project/datagrid-bundle": { + "version": "2.3.1" + }, + "sonata-project/intl-bundle": { + "version": "2.5.0" + }, + "squizlabs/php_codesniffer": { + "version": "3.3.1" + }, + "stof/doctrine-extensions-bundle": { + "version": "1.2", + "recipe": { + "repo": "github.com/symfony/recipes-contrib", + "branch": "master", + "version": "1.2", + "ref": "6c1ceb662f8997085f739cd089bfbef67f245983" + } + }, + "stripe/stripe-php": { + "version": "v4.13.0" + }, + "swiftmailer/swiftmailer": { + "version": "v6.1.2" + }, + "sylius-labs/association-hydrator": { + "version": "v1.1.0" + }, + "sylius-labs/coding-standard": { + "version": "v2.0.0" + }, + "sylius-labs/sensio-distribution-bundle": { + "version": "v6.0.1" + }, + "symfony/asset": { + "version": "v4.1.3" + }, + "symfony/browser-kit": { + "version": "v4.1.3" + }, + "symfony/cache": { + "version": "v4.1.3" + }, + "symfony/class-loader": { + "version": "v3.4.14" + }, + "symfony/config": { + "version": "v4.1.3" + }, + "symfony/console": { + "version": "3.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.3", + "ref": "e3868d2f4a5104f19f844fe551099a00c6562527" + } + }, + "symfony/css-selector": { + "version": "v4.1.3" + }, + "symfony/debug": { + "version": "v4.1.3" + }, + "symfony/debug-bundle": { + "version": "4.1", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "4.1", + "ref": "f8863cbad2f2e58c4b65fa1eac892ab189971bea" + } + }, + "symfony/dependency-injection": { + "version": "v4.1.3" + }, + "symfony/doctrine-bridge": { + "version": "v4.1.3" + }, + "symfony/dom-crawler": { + "version": "v4.1.3" + }, + "symfony/dotenv": { + "version": "v4.1.3" + }, + "symfony/event-dispatcher": { + "version": "v4.1.3" + }, + "symfony/expression-language": { + "version": "v4.1.3" + }, + "symfony/filesystem": { + "version": "v4.1.3" + }, + "symfony/finder": { + "version": "v4.1.3" + }, + "symfony/flex": { + "version": "1.0", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "1.0", + "ref": "e921bdbfe20cdefa3b82f379d1cd36df1bc8d115" + } + }, + "symfony/form": { + "version": "v4.1.3" + }, + "symfony/framework-bundle": { + "version": "3.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.3", + "ref": "87c585d24de9f43bca80ebcfd5cf5cb39445d95f" + } + }, + "symfony/http-foundation": { + "version": "v4.1.3" + }, + "symfony/http-kernel": { + "version": "v4.1.3" + }, + "symfony/inflector": { + "version": "v4.1.3" + }, + "symfony/intl": { + "version": "v4.1.3" + }, + "symfony/monolog-bridge": { + "version": "v4.1.3" + }, + "symfony/monolog-bundle": { + "version": "3.1", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.1", + "ref": "18ebf5a940573a20de06f9c4060101eeb438cf3d" + } + }, + "symfony/options-resolver": { + "version": "v4.1.3" + }, + "symfony/polyfill-ctype": { + "version": "v1.9.0" + }, + "symfony/polyfill-iconv": { + "version": "v1.9.0" + }, + "symfony/polyfill-intl-icu": { + "version": "v1.9.0" + }, + "symfony/polyfill-mbstring": { + "version": "v1.9.0" + }, + "symfony/process": { + "version": "v4.1.3" + }, + "symfony/property-access": { + "version": "v4.1.3" + }, + "symfony/proxy-manager-bridge": { + "version": "v4.1.3" + }, + "symfony/routing": { + "version": "4.0", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "4.0", + "ref": "cda8b550123383d25827705d05a42acf6819fe4e" + } + }, + "symfony/security": { + "version": "v4.1.3" + }, + "symfony/security-bundle": { + "version": "3.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.3", + "ref": "f8a63faa0d9521526499c0a8f403c9964ecb0527" + } + }, + "symfony/stopwatch": { + "version": "v4.1.3" + }, + "symfony/swiftmailer-bundle": { + "version": "2.5", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "2.5", + "ref": "3db029c03e452b4a23f7fc45cec7c922c2247eb8" + } + }, + "symfony/templating": { + "version": "v4.1.3" + }, + "symfony/thanks": { + "version": "v1.0.8" + }, + "symfony/translation": { + "version": "3.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.3", + "ref": "6bcd6c570c017ea6ae5a7a6a027c929fd3542cd8" + } + }, + "symfony/twig-bridge": { + "version": "v4.1.3" + }, + "symfony/twig-bundle": { + "version": "3.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.3", + "ref": "f75ac166398e107796ca94cc57fa1edaa06ec47f" + } + }, + "symfony/validator": { + "version": "4.1", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "4.1", + "ref": "0cdc982334f45d554957a6167e030482795bf9d7" + } + }, + "symfony/var-dumper": { + "version": "v4.1.3" + }, + "symfony/web-profiler-bundle": { + "version": "3.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.3", + "ref": "6bdfa1a95f6b2e677ab985cd1af2eae35d62e0f6" + } + }, + "symfony/web-server-bundle": { + "version": "3.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.3", + "ref": "dae9b39fd6717970be7601101ce5aa960bf53d9a" + } + }, + "symfony/yaml": { + "version": "v4.1.3" + }, + "symplify/better-phpdoc-parser": { + "version": "v4.6.1" + }, + "symplify/coding-standard": { + "version": "v4.6.1" + }, + "symplify/easy-coding-standard": { + "version": "v4.6.1" + }, + "symplify/package-builder": { + "version": "v4.6.1" + }, + "symplify/token-runner": { + "version": "v4.6.1" + }, + "theofidry/alice-data-fixtures": { + "version": "1.0", + "recipe": { + "repo": "github.com/symfony/recipes-contrib", + "branch": "master", + "version": "1.0", + "ref": "fe5a50faf580eb58f08ada2abe8afbd2d4941e05" + } + }, + "theseer/tokenizer": { + "version": "1.1.0" + }, + "twig/extensions": { + "version": "1.0", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "1.0", + "ref": "ddb2e0a77773b7fd75d8d649545f174e664500ab" + } + }, + "twig/twig": { + "version": "v2.5.0" + }, + "webmozart/assert": { + "version": "1.3.0" + }, + "white-october/pagerfanta-bundle": { + "version": "v1.2.1" + }, + "willdurand/hateoas": { + "version": "2.12.0" + }, + "willdurand/hateoas-bundle": { + "version": "1.4.0" + }, + "willdurand/jsonp-callback-validator": { + "version": "v1.1.0" + }, + "willdurand/negotiation": { + "version": "v2.3.1" + }, + "winzou/state-machine": { + "version": "0.3.3" + }, + "winzou/state-machine-bundle": { + "version": "v0.3.1" + }, + "zendframework/zend-code": { + "version": "3.3.1" + }, + "zendframework/zend-eventmanager": { + "version": "3.2.1" + }, + "zendframework/zend-hydrator": { + "version": "2.4.0" + }, + "zendframework/zend-stdlib": { + "version": "3.2.0" + } +} diff --git a/templates/.gitkeep b/templates/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d diff --git a/translations/.gitkeep b/translations/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d