From 71b0d68b109708c4d38ee17ef3ec4c3e54d93e26 Mon Sep 17 00:00:00 2001 From: Marc Weistroff Date: Thu, 29 Mar 2018 08:24:26 +0200 Subject: [PATCH] Add experimental Docker support --- .env.dist | 18 + .gitignore | 1 + Dockerfile | 124 +- Dockerfile.nginx | 1 + Dockerfile.node | 11 + README.md | 9 + app/config/config.yml | 34 +- app/config/parameters.yml.dist | 47 - app/config/parameters.yml.test | 40 - bin/console | 31 +- bin/symfony_requirements | 146 - composer.json | 3 - composer.lock | 3515 ++++++++++++++--- docker-compose.yml | 54 + docker/nginx/conf.d/default.conf | 40 + docker/node/docker-entrypoint.sh | 5 + docker/php/docker-entrypoint.sh | 22 + docker/php/php.ini | 10 + .../Bundle/CoreBundle/composer.json | 10 +- web/app.php | 31 - web/app_prod.php | 21 - web/index.php | 38 + 22 files changed, 3379 insertions(+), 832 deletions(-) create mode 100644 .env.dist create mode 100644 Dockerfile.nginx create mode 100644 Dockerfile.node delete mode 100644 app/config/parameters.yml.dist delete mode 100644 app/config/parameters.yml.test delete mode 100755 bin/symfony_requirements create mode 100644 docker-compose.yml create mode 100644 docker/nginx/conf.d/default.conf create mode 100644 docker/node/docker-entrypoint.sh create mode 100644 docker/php/docker-entrypoint.sh create mode 100644 docker/php/php.ini delete mode 100644 web/app.php delete mode 100644 web/app_prod.php create mode 100644 web/index.php diff --git a/.env.dist b/.env.dist new file mode 100644 index 0000000..2cb7b8b --- /dev/null +++ b/.env.dist @@ -0,0 +1,18 @@ +APP_ENV=dev +APP_SECRET=foo +LOCALE=en +DATABASE_URL=pgsql://audiencehero:audiencehero@db/audiencehero +MAILER_URL=smtp://smtp.mailgun.com?login=postmaster@foo&password=foo +RABBITMQ_URL=amqp://guest:guest@localhost:5672/audiencehero +AWS_ID=foo +AWS_SECRET=foo +AWS_UPLOAD_BUCKET=foo +GOOGLE_API_KEY=foo +MAILGUN_KEY=foo +RECAPTCHA_PUBLIC_KEY=foo +RECAPTCHA_PRIVATE_KEY=foo +CORS_ALLOW_ORIGIN=* +JWT_PRIVATE_KEY_PATH=%kernel.root_dir%/../var/jwt/dev_private.pem +JWT_PUBLIC_KEY_PATH=%kernel.root_dir%/../var/jwt/dev_public.pem +JWT_KEY_PASS_PHRASE=passphrase +JWT_TOKEN_TTL=86400 diff --git a/.gitignore b/.gitignore index 03f70c6..f4fa63a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +/.env app/config/parameters.yml docs/build build/ diff --git a/Dockerfile b/Dockerfile index f1ecc34..d49d818 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,53 +1,71 @@ -FROM php:7.1 - -ENV DEBIAN_FRONTEND noninteractive - -RUN apt-get update -yqq && apt-get install -yqq apt-transport-https -RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - -RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list - -RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - - -RUN apt-get update -y && \ - apt-get install -y apt-transport-https && \ - apt-get install -y apt-utils && \ - apt-get install -y awscli && \ - apt-get install -y sudo wget yarn nodejs git libmagickwand-dev libmagickcore-dev libcurl4-gnutls-dev libicu-dev \ - libmcrypt-dev libvpx-dev libjpeg-dev libpng-dev libxpm-dev zlib1g-dev libfreetype6-dev \ - libxml2-dev libexpat1-dev libbz2-dev libgmp3-dev libldap2-dev unixodbc-dev libpq-dev \ - libsqlite3-dev libaspell-dev libsnmp-dev libpcre3-dev libtidy-dev librabbitmq-dev librabbitmq1 \ - unzip - - -RUN pecl install redis-3.1.1 && \ - pecl install imagick-3.4.3 && \ - pecl install xdebug-2.5.1 && \ - pecl install amqp-1.9.0 && \ - docker-php-ext-enable redis && \ - docker-php-ext-enable imagick && \ - docker-php-ext-enable xdebug && \ - docker-php-ext-enable amqp && \ - docker-php-ext-install bcmath mbstring mcrypt pdo pdo_pgsql curl json intl gd xml zip bz2 opcache soap pcntl - -## -# Install composer -# -RUN wget https://composer.github.io/installer.sig -O - -q | tr -d '\n' > installer.sig && \ - php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ - php -r "if (hash_file('SHA384', 'composer-setup.php') === file_get_contents('installer.sig')) { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" && \ - php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ - php -r "unlink('composer-setup.php'); unlink('installer.sig');" - -## -# At this point Google Chrome Beta is 59 - first version with headless support -# -RUN wget -q https://dl.google.com/linux/direct/google-chrome-beta_current_amd64.deb -RUN dpkg -i google-chrome-beta_current_amd64.deb; apt-get -fy install - -## -# Install chromedriver to make it work with Selenium -# -RUN wget -q https://chromedriver.storage.googleapis.com/2.29/chromedriver_linux64.zip -RUN unzip chromedriver_linux64.zip -d /usr/local/bin - -RUN apt-get clean +FROM composer:1.6 +FROM php:7.2-fpm-alpine3.7 + +RUN apk add --no-cache \ + git + +ENV APCU_VERSION 5.1.9 +RUN set -xe \ + && apk add --no-cache --virtual .build-deps \ + $PHPIZE_DEPS \ + icu-dev \ + postgresql-dev \ + zlib-dev \ + libpng-dev \ + libxml2-dev \ + imagemagick-dev \ + imagemagick \ + imagemagick-libs \ + && docker-php-ext-install \ + intl \ + pdo \ + pdo_mysql \ + pdo_pgsql \ + zip \ + gd \ + soap \ + bcmath \ + && pecl install \ + apcu-${APCU_VERSION} \ + imagick \ + && docker-php-ext-enable pdo \ + && docker-php-ext-enable pdo_mysql \ + && docker-php-ext-enable pdo_pgsql \ + && docker-php-ext-enable imagick \ + && docker-php-ext-enable gd \ + && docker-php-ext-enable soap \ + && docker-php-ext-enable bcmath \ + && docker-php-ext-enable --ini-name 20-apcu.ini apcu \ + && docker-php-ext-enable --ini-name 05-opcache.ini opcache \ + && runDeps="$( \ + scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \ + | tr ',' '\n' \ + | sort -u \ + | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ + )" \ + && apk add --no-cache --virtual .php-phpexts-rundeps $runDeps \ + && apk del .build-deps + +COPY --from=0 /usr/bin/composer /usr/bin/composer +COPY docker/php/php.ini /usr/local/etc/php/php.ini +COPY docker/php/docker-entrypoint.sh /usr/local/bin/docker-entrypoint +RUN chmod +x /usr/local/bin/docker-entrypoint + +WORKDIR /srv/audiencehero +ENTRYPOINT ["docker-entrypoint"] +CMD ["php-fpm"] + +# https://getcomposer.org/doc/03-cli.md#composer-allow-superuser +ENV COMPOSER_ALLOW_SUPERUSER 1 +RUN composer global require "hirak/prestissimo:^0.3" --prefer-dist --no-progress --no-suggest --classmap-authoritative + +# Prevent the reinstallation of vendors at every changes in the source code +COPY composer.json composer.lock ./ +RUN composer install --prefer-dist --no-dev --no-autoloader --no-scripts --no-progress --no-suggest \ + && composer clear-cache + +COPY . ./ + +RUN mkdir -p var/cache var/logs var/sessions \ + && composer dump-autoload --classmap-authoritative --no-dev \ + && chown -R www-data var diff --git a/Dockerfile.nginx b/Dockerfile.nginx new file mode 100644 index 0000000..c50d182 --- /dev/null +++ b/Dockerfile.nginx @@ -0,0 +1 @@ +FROM nginx:1.13-alpine diff --git a/Dockerfile.node b/Dockerfile.node new file mode 100644 index 0000000..355ee05 --- /dev/null +++ b/Dockerfile.node @@ -0,0 +1,11 @@ +FROM node:9-alpine + +RUN apk add --no-cache \ + git \ + yarn + +COPY docker/node/docker-entrypoint.sh /usr/local/bin/docker-entrypoint +RUN chmod +x /usr/local/bin/docker-entrypoint +WORKDIR /srv/audiencehero + +ENTRYPOINT ["docker-entrypoint"] diff --git a/README.md b/README.md index ff55b91..fd89068 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,11 @@ The project is organized around a core, with extensions providing several differ - PromoBundle: Send unreleased media to people, and gather feedback. - SitemapBundle: Generate sitemaps. + +## Warning + +AudienceHero is **alpha software**. Things can be broken, and might change. + ## Installation 1. `composer install` @@ -27,6 +32,10 @@ The project is organized around a core, with extensions providing several differ 3. `./bin/console audiencehero:generate:configuration` 4. `NODE_ENV=development yarn run encore dev` +Experimental: + +1. docker-compose up + At this point, you have all the necessary files to run the projet. You will still need to configure your virtualhost. ## Documentation diff --git a/app/config/config.yml b/app/config/config.yml index d3bd6d2..ad5dc2e 100644 --- a/app/config/config.yml +++ b/app/config/config.yml @@ -1,15 +1,14 @@ imports: - - { resource: parameters.yml } - { resource: parameters_assets.yml } - { resource: security.yml } - { resource: services.yml } parameters: - locale: en + env(DATABASE_URL): '' enqueue: transport: - default: 'amqp://' + default: '%env(RABBITMQ_URL)%' client: app_name: 'audience_hero' async_events: false @@ -28,8 +27,8 @@ bazinga_geocoder: database_filename: '%kernel.root_dir%/../vendor/geocoder-php/geoip2-provider/Tests/fixtures/GeoLite2-City.mmdb' framework: - translator: { fallback: "%locale%" } - secret: "%secret%" + translator: { fallback: "%env(LOCALE)%" } + secret: "%env(APP_SECRET)%" router: resource: "%kernel.root_dir%/config/routing.yml" strict_requirements: ~ @@ -39,7 +38,7 @@ framework: json_manifest_path: '%kernel.project_dir%/web/assets/manifest.json' templating: engines: ['twig'] - default_locale: "%locale%" + default_locale: "%env(LOCALE)%" trusted_hosts: ~ session: metadata_update_threshold: 86400 @@ -61,11 +60,7 @@ twig: doctrine: dbal: driver: pdo_pgsql - host: "%database_host%" - port: "%database_port%" - dbname: "%database_name%" - user: "%database_user%" - password: "%database_password%" + url: "%env(resolve:DATABASE_URL)%" charset: UTF8 server_version: 9.4 types: @@ -112,11 +107,8 @@ doctrine: # Swiftmailer Configuration swiftmailer: - transport: "%mailer_transport%" - host: "%mailer_host%" - username: "%mailer_user%" - password: "%mailer_password%" - spool: { type: memory } + url: "%env(MAILER_URL)%" + spool: { type: memory } stof_doctrine_extensions: default_locale: en_US @@ -195,7 +187,7 @@ ewz_recaptcha: nelmio_cors: defaults: - allow_origin: ['%cors_allow_origin%'] + allow_origin: ['%env(CORS_ALLOW_ORIGIN)%'] allow_methods: ['POST', 'PUT', 'GET', 'DELETE', 'OPTIONS'] allow_headers: ['content-type', 'authorization'] expose_headers: ['link'] @@ -214,8 +206,8 @@ nelmio_cors: # public: true lexik_jwt_authentication: - private_key_path: '%jwt_private_key_path%' - public_key_path: '%jwt_public_key_path%' - pass_phrase: '%jwt_key_pass_phrase%' - token_ttl: '%jwt_token_ttl%' + private_key_path: '%env(JWT_PRIVATE_KEY_PATH)%' + public_key_path: '%env(JWT_PUBLIC_KEY_PATH)%' + pass_phrase: '%env(JWT_KEY_PASS_PHRASE)%' + token_ttl: '%env(JWT_TOKEN_TTL)%' diff --git a/app/config/parameters.yml.dist b/app/config/parameters.yml.dist deleted file mode 100644 index 362f4d6..0000000 --- a/app/config/parameters.yml.dist +++ /dev/null @@ -1,47 +0,0 @@ -parameters: - database_host: 127.0.0.1 - database_port: ~ - database_name: symfony - database_user: root - database_password: ~ - - mailer_transport: smtp - mailer_host: 127.0.0.1 - mailer_user: ~ - mailer_password: ~ - - locale: en - secret: ThisTokenIsNotSoSecretChangeIt - - twitter_key: foobar - twitter_secret: foobar - facebook_key: foobar - facebook_secret: foobar - - redis_dsn: redis://localhost - - rabbitmq_host: localhost - rabbitmq_port: 5672 - rabbitmq_login: mopro - rabbitmq_password: guest - rabbitmq_vhost: mopro - - aws_id: AKIAJCMIJKOKYASGCSLA - aws_secret: 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 - aws_upload_bucket: mopro-dev-upload - - raven_dsn: 'https://foobar:barfoo@app.getsentry.com/59044' - - google_api_key: AIzaSyDwpAyyhvlOTus09xU3tN7NviHpdXnWoMY - - mailgun_key: "fake" - recaptcha_public_key: 6LemGCEUAAAAAPCHSv6vxa0Sx51wK3kSyT9wM1Jx - recaptcha_private_key: FOOBAR - - varnish_urls: [http://varnish] - cors_allow_origin: http://localhost - jwt_private_key_path: '%kernel.root_dir%/../var/jwt/dev_private.pem' # ssh private key path - jwt_public_key_path: '%kernel.root_dir%/../var/jwt/dev_public.pem' # ssh public key path - jwt_key_pass_phrase: 'passphrase' # ssh key pass phrase - jwt_token_ttl: 86400 - diff --git a/app/config/parameters.yml.test b/app/config/parameters.yml.test deleted file mode 100644 index 22ec69d..0000000 --- a/app/config/parameters.yml.test +++ /dev/null @@ -1,40 +0,0 @@ -parameters: - database_host: postgres - database_port: ~ - database_name: mopro_test - database_user: mopro_test - database_password: mopro_test - - mailer_transport: smtp - mailer_host: 127.0.0.1 - mailer_user: ~ - mailer_password: ~ - - locale: en - secret: ThisTokenIsNotSoSecretChangeIt - - twitter_key: foobar - twitter_secret: foobar - facebook_key: foobar - facebook_secret: foobar - - redis_dsn: redis://redis - - rabbitmq_host: rabbitmq - rabbitmq_port: 5672 - rabbitmq_login: mopro_test - rabbitmq_password: mopro_test - rabbitmq_vhost: mopro_test - - aws_id: AKIAJCMIJKOKYASGCSLA - aws_secret: uNvkU7ZTJ+3AHnhBtc8T+ObG7JsNdu9eRTlGcu/B - aws_upload_bucket: mopro-dev-upload - - mailgun_key: "fake" - - google_api_key: AIzaSyDwpAyyhvlOTus09xU3tN7NviHpdXnWoMY - - raven_dsn: 'https://foobar:barfoo@app.getsentry.com/59044' - - recaptcha_public_key: 6LemGCEUAAAAAPCHSv6vxa0Sx51wK3kSyT9wM1Jx - recaptcha_private_key: FOOBAR diff --git a/bin/console b/bin/console index ca74e93..7e027bb 100755 --- a/bin/console +++ b/bin/console @@ -4,24 +4,33 @@ use Symfony\Bundle\FrameworkBundle\Console\Application; use Symfony\Component\Console\Input\ArgvInput; use Symfony\Component\Debug\Debug; - -// if you don't want to setup permissions the proper way, just uncomment the following PHP line -// read http://symfony.com/doc/current/book/installation.html#configuration-and-setup for more information -//umask(0000); +use Symfony\Component\Dotenv\Dotenv; set_time_limit(0); -/** - * @var Composer\Autoload\ClassLoader $loader - */ -$loader = require __DIR__.'/../app/autoload.php'; +require __DIR__.'/../vendor/autoload.php'; + +if (!class_exists(Application::class)) { + throw new \RuntimeException('You need to add "symfony/framework-bundle" as a Composer dependency.'); +} + +if (!isset($_SERVER['APP_ENV'])) { + if (!class_exists(Dotenv::class)) { + throw new \RuntimeException('APP_ENV environment variable is not defined. You need to define environment variables for configuration or add "symfony/dotenv" as a Composer dependency to load variables from a .env file.'); + } + (new Dotenv())->load(__DIR__.'/../.env'); +} $input = new ArgvInput(); -$env = $input->getParameterOption(array('--env', '-e'), getenv('SYMFONY_ENV') ?: 'dev'); -$debug = getenv('SYMFONY_DEBUG') !== '0' && !$input->hasParameterOption(array('--no-debug', '')) && $env !== 'prod'; +$env = $input->getParameterOption(['--env', '-e'], $_SERVER['APP_ENV'] ?? 'dev', true); +$debug = ($_SERVER['APP_DEBUG'] ?? ('prod' !== $env)) && !$input->hasParameterOption('--no-debug', true); if ($debug) { - Debug::enable(); + umask(0000); + + if (class_exists(Debug::class)) { + Debug::enable(); + } } $kernel = new AppKernel($env, $debug); diff --git a/bin/symfony_requirements b/bin/symfony_requirements deleted file mode 100755 index eeead32..0000000 --- a/bin/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/composer.json b/composer.json index 691aeae..d18711a 100644 --- a/composer.json +++ b/composer.json @@ -11,8 +11,6 @@ }, "require": { "ext-pdo_pgsql": "*", - "ext-redis": "*", - "ext-imagick": "*", "incenteev/composer-parameter-handler": "^2.0", "twig/extensions": "~1.0", "knplabs/knp-markdown-bundle": "~1.3", @@ -21,7 +19,6 @@ "league/oauth2-instagram": "^0.2.0", "cebe/markdown": "^1.1", "mpociot/vat-calculator": "^1.6", - "php-amqplib/php-amqplib": "^2.6", "voku/html2text": "^3.1", "guzzlehttp/oauth-subscriber": "0.3.*", "php-http/httplug-bundle": "^1.7", diff --git a/composer.lock b/composer.lock index 713a511..c8df480 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "d2f2a72c50a81fff0c12771a3d4e34f1", + "content-hash": "e1514b5e26907cd2268a848d14615a46", "packages": [ { "name": "api-platform/core", @@ -1309,34 +1309,34 @@ "time": "2017-01-03T11:02:14+00:00" }, { - "name": "enqueue/amqp-ext", + "name": "enqueue/amqp-lib", "version": "dev-master", "source": { "type": "git", - "url": "https://github.com/php-enqueue/amqp-ext.git", - "reference": "494ba068137e57cdfe8c379b580cec23c42128a4" + "url": "https://github.com/php-enqueue/amqp-lib.git", + "reference": "02a65b6e73495fa84479724ae2b18b1766ae9d8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-enqueue/amqp-ext/zipball/494ba068137e57cdfe8c379b580cec23c42128a4", - "reference": "494ba068137e57cdfe8c379b580cec23c42128a4", + "url": "https://api.github.com/repos/php-enqueue/amqp-lib/zipball/02a65b6e73495fa84479724ae2b18b1766ae9d8c", + "reference": "02a65b6e73495fa84479724ae2b18b1766ae9d8c", "shasum": "" }, "require": { - "enqueue/amqp-tools": "^0.7@dev", - "ext-amqp": "^1.6", + "enqueue/amqp-tools": "^0.8.5@dev", "php": ">=5.6", - "queue-interop/amqp-interop": "^0.6@dev" + "php-amqplib/php-amqplib": "^2.7@dev", + "queue-interop/amqp-interop": "^0.7@dev", + "queue-interop/queue-interop": "^0.6@dev|^1.0.0-alpha1" }, "require-dev": { - "empi89/php-amqp-stubs": "*@dev", - "enqueue/enqueue": "^0.7@dev", - "enqueue/null": "^0.7@dev", - "enqueue/test": "^0.7@dev", + "enqueue/enqueue": "^0.8@dev", + "enqueue/null": "^0.8@dev", + "enqueue/test": "^0.8@dev", "phpunit/phpunit": "~5.4.0", - "queue-interop/queue-spec": "^0.5@dev", - "symfony/config": "^2.8|^3", - "symfony/dependency-injection": "^2.8|^3" + "queue-interop/queue-spec": "^0.5.3@dev", + "symfony/config": "^2.8|^3|^4", + "symfony/dependency-injection": "^2.8|^3|^4" }, "suggest": { "enqueue/enqueue": "If you'd like to use advanced features like Client abstract layer or Symfony integration features" @@ -1344,12 +1344,12 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "0.7.x-dev" + "dev-master": "0.8.x-dev" } }, "autoload": { "psr-4": { - "Enqueue\\AmqpExt\\": "" + "Enqueue\\AmqpLib\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -1360,41 +1360,42 @@ "MIT" ], "description": "Message Queue Amqp Transport", + "homepage": "https://enqueue.forma-pro.com/", "keywords": [ "AMQP", "messaging", "queue" ], - "time": "2017-08-16T07:38:27+00:00" + "time": "2018-03-06T10:46:03+00:00" }, { "name": "enqueue/amqp-tools", - "version": "0.7.5", + "version": "dev-master", "source": { "type": "git", "url": "https://github.com/php-enqueue/amqp-tools.git", - "reference": "6d8a64df01140c2c5ca31316506f1c4a11e89ec8" + "reference": "e401314d9548a7327b78de1bf48af7b3a098a57d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-enqueue/amqp-tools/zipball/6d8a64df01140c2c5ca31316506f1c4a11e89ec8", - "reference": "6d8a64df01140c2c5ca31316506f1c4a11e89ec8", + "url": "https://api.github.com/repos/php-enqueue/amqp-tools/zipball/e401314d9548a7327b78de1bf48af7b3a098a57d", + "reference": "e401314d9548a7327b78de1bf48af7b3a098a57d", "shasum": "" }, "require": { "php": ">=5.6", - "queue-interop/amqp-interop": "^0.6@dev", - "queue-interop/queue-interop": "^0.6@dev" + "queue-interop/amqp-interop": "^0.7@dev", + "queue-interop/queue-interop": "^0.6@dev|^1.0.0-alpha1" }, "require-dev": { - "enqueue/null": "^0.7@dev", - "enqueue/test": "^0.7@dev", + "enqueue/null": "^0.8@dev", + "enqueue/test": "^0.8@dev", "phpunit/phpunit": "~5.4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "0.7.x-dev" + "dev-master": "0.8.x-dev" } }, "autoload": { @@ -1410,49 +1411,50 @@ "MIT" ], "description": "Message Queue Amqp Tools", + "homepage": "https://enqueue.forma-pro.com/", "keywords": [ "AMQP", "messaging", "queue" ], - "time": "2017-08-10T16:29:27+00:00" + "time": "2018-03-06T10:46:03+00:00" }, { "name": "enqueue/async-event-dispatcher", - "version": "0.7.5", + "version": "0.8.24", "source": { "type": "git", "url": "https://github.com/php-enqueue/async-event-dispatcher.git", - "reference": "2642e4ccb2d883477fea8daf24335830bd39cc55" + "reference": "36902adf96e01a4db2311fd7896b9e5c96ed29de" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-enqueue/async-event-dispatcher/zipball/2642e4ccb2d883477fea8daf24335830bd39cc55", - "reference": "2642e4ccb2d883477fea8daf24335830bd39cc55", + "url": "https://api.github.com/repos/php-enqueue/async-event-dispatcher/zipball/36902adf96e01a4db2311fd7896b9e5c96ed29de", + "reference": "36902adf96e01a4db2311fd7896b9e5c96ed29de", "shasum": "" }, "require": { - "enqueue/enqueue": "^0.7@dev", + "enqueue/enqueue": "^0.8@dev", "php": ">=5.6", - "symfony/event-dispatcher": "^2.8|^3" + "symfony/event-dispatcher": "^2.8|^3|^4" }, "require-dev": { - "enqueue/fs": "^0.7@dev", - "enqueue/null": "^0.7@dev", - "enqueue/test": "^0.7@dev", + "enqueue/fs": "^0.8@dev", + "enqueue/null": "^0.8@dev", + "enqueue/test": "^0.8@dev", "phpunit/phpunit": "~5.5", - "symfony/config": "^2.8|^3", - "symfony/dependency-injection": "^2.8|^3", - "symfony/filesystem": "^2.8|^3", - "symfony/http-kernel": "^2.8|^3" + "symfony/config": "^2.8|^3|^4", + "symfony/dependency-injection": "^2.8|^3|^4", + "symfony/filesystem": "^2.8|^3|^4", + "symfony/http-kernel": "^2.8|^3|^4" }, "suggest": { - "symfony/dependency-injection": "^2.8|^3 If you'd like to use async event dispatcher container extension." + "symfony/dependency-injection": "^2.8|^3|^4 If you'd like to use async event dispatcher container extension." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "0.7.x-dev" + "dev-master": "0.8.x-dev" } }, "autoload": { @@ -1467,52 +1469,59 @@ "license": [ "MIT" ], - "description": "Symfony async event dispathcer", + "description": "Symfony async event dispatcher", + "homepage": "https://enqueue.forma-pro.com/", "keywords": [ "async event", "event dispatcher", "messaging", "queue" ], - "time": "2017-08-10T16:19:00+00:00" + "time": "2018-03-23T10:52:55+00:00" }, { "name": "enqueue/enqueue", - "version": "0.7.9", + "version": "0.8.24", "source": { "type": "git", "url": "https://github.com/php-enqueue/enqueue.git", - "reference": "020ff9cf2defa1a06da0c7627470f020a6147219" + "reference": "5f74ada67f4073dbe378e5c984b66e2663dc991e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-enqueue/enqueue/zipball/020ff9cf2defa1a06da0c7627470f020a6147219", - "reference": "020ff9cf2defa1a06da0c7627470f020a6147219", + "url": "https://api.github.com/repos/php-enqueue/enqueue/zipball/5f74ada67f4073dbe378e5c984b66e2663dc991e", + "reference": "5f74ada67f4073dbe378e5c984b66e2663dc991e", "shasum": "" }, "require": { - "enqueue/null": "^0.7@dev", + "enqueue/null": "^0.8@dev", "php": ">=5.6", "psr/log": "^1", - "queue-interop/queue-interop": "^0.6@dev", + "queue-interop/queue-interop": "^0.6@dev|^1.0.0-alpha1", "ramsey/uuid": "^2|^3.5" }, "require-dev": { "empi89/php-amqp-stubs": "*@dev", - "enqueue/amqp-ext": "^0.7@dev", - "enqueue/dbal": "^0.7@dev", - "enqueue/fs": "^0.7@dev", - "enqueue/gearman": "^0.7@dev", - "enqueue/pheanstalk": "^0.7@dev", - "enqueue/rdkafka": "^0.7@dev", - "enqueue/simple-client": "^0.7@dev", - "enqueue/test": "^0.7@dev", + "enqueue/amqp-bunny": "^0.8@dev", + "enqueue/amqp-ext": "^0.8@dev", + "enqueue/amqp-lib": "^0.8@dev", + "enqueue/dbal": "^0.8@dev", + "enqueue/fs": "^0.8@dev", + "enqueue/gearman": "^0.8@dev", + "enqueue/gps": "^0.8@dev", + "enqueue/pheanstalk": "^0.8@dev", + "enqueue/rdkafka": "^0.8@dev", + "enqueue/redis": "^0.8@dev", + "enqueue/simple-client": "^0.8@dev", + "enqueue/sqs": "^0.8@dev", + "enqueue/stomp": "^0.8@dev", + "enqueue/test": "^0.8@dev", "phpunit/phpunit": "~5.5", - "symfony/config": "^2.8|^3", - "symfony/console": "^2.8|^3", - "symfony/dependency-injection": "^2.8|^3", - "symfony/event-dispatcher": "^2.8|^3", - "symfony/http-kernel": "^2.8|^3" + "symfony/config": "^2.8|^3|^4", + "symfony/console": "^2.8|^3|^4", + "symfony/dependency-injection": "^2.8|^3|^4", + "symfony/event-dispatcher": "^2.8|^3|^4", + "symfony/http-kernel": "^2.8|^3|^4" }, "suggest": { "enqueue/amqp-ext": "AMQP transport (based on php extension)", @@ -1521,14 +1530,14 @@ "enqueue/redis": "Redis transport", "enqueue/sqs": "Amazon AWS SQS transport", "enqueue/stomp": "STOMP transport", - "symfony/config": "^2.8|^3", - "symfony/console": "^2.8|^3 If you want to use li commands", - "symfony/dependency-injection": "^2.8|^3" + "symfony/config": "^2.8|^3|^4", + "symfony/console": "^2.8|^3|^4 If you want to use li commands", + "symfony/dependency-injection": "^2.8|^3|^4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "0.7.x-dev" + "dev-master": "0.8.x-dev" } }, "autoload": { @@ -1547,13 +1556,14 @@ "MIT" ], "description": "Message Queue Library", + "homepage": "https://enqueue.forma-pro.com/", "keywords": [ "AMQP", "messaging", "queue", "rabbitmq" ], - "time": "2017-08-28T11:05:15+00:00" + "time": "2018-03-23T10:52:55+00:00" }, { "name": "enqueue/enqueue-bundle", @@ -1561,43 +1571,44 @@ "source": { "type": "git", "url": "https://github.com/php-enqueue/enqueue-bundle.git", - "reference": "d6d0ad11330926f097c458643c618ce1b3b724bc" + "reference": "b2840eebc14150aa5ba90a2ce93842b232ab059b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-enqueue/enqueue-bundle/zipball/d6d0ad11330926f097c458643c618ce1b3b724bc", - "reference": "d6d0ad11330926f097c458643c618ce1b3b724bc", + "url": "https://api.github.com/repos/php-enqueue/enqueue-bundle/zipball/b2840eebc14150aa5ba90a2ce93842b232ab059b", + "reference": "b2840eebc14150aa5ba90a2ce93842b232ab059b", "shasum": "" }, "require": { - "enqueue/async-event-dispatcher": "^0.7@dev", - "enqueue/enqueue": "^0.7@dev", - "enqueue/null": "^0.7@dev", + "enqueue/async-event-dispatcher": "^0.8@dev", + "enqueue/enqueue": "^0.8@dev", + "enqueue/null": "^0.8@dev", "php": ">=5.6", - "symfony/framework-bundle": "^2.8|^3" + "symfony/framework-bundle": "^2.8|^3|^4" }, "require-dev": { "doctrine/doctrine-bundle": "~1.2", - "enqueue/amqp-bunny": "^0.7@dev", - "enqueue/amqp-ext": "^0.7@dev", - "enqueue/amqp-lib": "^0.7@dev", - "enqueue/dbal": "^0.7@dev", - "enqueue/fs": "^0.7@dev", - "enqueue/job-queue": "^0.7@dev", - "enqueue/redis": "^0.7@dev", - "enqueue/sqs": "^0.7@dev", - "enqueue/stomp": "^0.7@dev", - "enqueue/test": "^0.7@dev", + "enqueue/amqp-bunny": "^0.8@dev", + "enqueue/amqp-ext": "^0.8@dev", + "enqueue/amqp-lib": "^0.8@dev", + "enqueue/dbal": "^0.8@dev", + "enqueue/fs": "^0.8@dev", + "enqueue/gps": "^0.8@dev", + "enqueue/job-queue": "^0.8@dev", + "enqueue/redis": "^0.8@dev", + "enqueue/sqs": "^0.8@dev", + "enqueue/stomp": "^0.8@dev", + "enqueue/test": "^0.8@dev", "php-amqplib/php-amqplib": "^2.7@dev", "phpunit/phpunit": "~5.5", - "symfony/browser-kit": "^2.8|^3", - "symfony/expression-language": "^2.8|^3", - "symfony/monolog-bundle": "^2.8|^3" + "symfony/browser-kit": "^2.8|^3|^4", + "symfony/expression-language": "^2.8|^3|^4", + "symfony/monolog-bundle": "^2.8|^3|^4" }, "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "0.7.x-dev" + "dev-master": "0.8.x-dev" } }, "autoload": { @@ -1613,13 +1624,14 @@ "MIT" ], "description": "Message Queue Bundle", + "homepage": "https://enqueue.forma-pro.com/", "keywords": [ "AMQP", "messaging", "queue", "rabbitmq" ], - "time": "2017-08-16T07:02:40+00:00" + "time": "2018-03-27T09:52:36+00:00" }, { "name": "enqueue/null", @@ -1627,30 +1639,30 @@ "source": { "type": "git", "url": "https://github.com/php-enqueue/null.git", - "reference": "783882757215a5764a35a6fb553da13b7fdbdc82" + "reference": "e75270a99e6d65a2b7d739fa6c6131338d85acee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-enqueue/null/zipball/783882757215a5764a35a6fb553da13b7fdbdc82", - "reference": "783882757215a5764a35a6fb553da13b7fdbdc82", + "url": "https://api.github.com/repos/php-enqueue/null/zipball/e75270a99e6d65a2b7d739fa6c6131338d85acee", + "reference": "e75270a99e6d65a2b7d739fa6c6131338d85acee", "shasum": "" }, "require": { "php": ">=5.6", - "queue-interop/queue-interop": "^0.6@dev" + "queue-interop/queue-interop": "^0.6@dev|^1.0.0-alpha1" }, "require-dev": { - "enqueue/enqueue": "^0.7@dev", - "enqueue/test": "^0.7@dev", + "enqueue/enqueue": "^0.8@dev", + "enqueue/test": "^0.8@dev", "phpunit/phpunit": "~5.5", - "queue-interop/queue-spec": "^0.5@dev", - "symfony/config": "^2.8|^3", - "symfony/dependency-injection": "^2.8|^3" + "queue-interop/queue-spec": "^0.5.3@dev", + "symfony/config": "^2.8|^3|^4", + "symfony/dependency-injection": "^2.8|^3|^4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "0.7.x-dev" + "dev-master": "0.8.x-dev" } }, "autoload": { @@ -1666,12 +1678,13 @@ "MIT" ], "description": "Enqueue Null transport", + "homepage": "https://enqueue.forma-pro.com/", "keywords": [ "messaging", "queue", "testing" ], - "time": "2017-08-16T07:38:27+00:00" + "time": "2018-03-23T10:52:55+00:00" }, { "name": "excelwebzone/recaptcha-bundle", @@ -1720,60 +1733,6 @@ ], "time": "2017-04-18T15:13:02+00:00" }, - { - "name": "fig/link-util", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/php-fig/link-util.git", - "reference": "1a07821801a148be4add11ab0603e4af55a72fac" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/link-util/zipball/1a07821801a148be4add11ab0603e4af55a72fac", - "reference": "1a07821801a148be4add11ab0603e4af55a72fac", - "shasum": "" - }, - "require": { - "php": ">=5.5.0", - "psr/link": "~1.0@dev" - }, - "require-dev": { - "phpunit/phpunit": "^5.1", - "squizlabs/php_codesniffer": "^2.3.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Fig\\Link\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common utility implementations for HTTP links", - "keywords": [ - "http", - "http-link", - "link", - "psr", - "psr-13", - "rest" - ], - "time": "2016-10-17T18:31:11+00:00" - }, { "name": "friendsofsymfony/user-bundle", "version": "dev-master", @@ -4236,16 +4195,16 @@ }, { "name": "php-amqplib/php-amqplib", - "version": "v2.6.3", + "version": "dev-master", "source": { "type": "git", "url": "https://github.com/php-amqplib/php-amqplib.git", - "reference": "fa2f0d4410a11008cb36b379177291be7ee9e4f6" + "reference": "dfd3694a86f1a7394d3693485259d4074a6ec79b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-amqplib/php-amqplib/zipball/fa2f0d4410a11008cb36b379177291be7ee9e4f6", - "reference": "fa2f0d4410a11008cb36b379177291be7ee9e4f6", + "url": "https://api.github.com/repos/php-amqplib/php-amqplib/zipball/dfd3694a86f1a7394d3693485259d4074a6ec79b", + "reference": "dfd3694a86f1a7394d3693485259d4074a6ec79b", "shasum": "" }, "require": { @@ -4257,6 +4216,7 @@ "videlalvaro/php-amqplib": "self.version" }, "require-dev": { + "phpdocumentor/phpdocumentor": "^2.9", "phpunit/phpunit": "^4.8", "scrutinizer/ocular": "^1.1", "squizlabs/php_codesniffer": "^2.5" @@ -4277,7 +4237,7 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "LGPL-2.1" + "LGPL-2.1-or-later" ], "authors": [ { @@ -4302,7 +4262,7 @@ "queue", "rabbitmq" ], - "time": "2016-04-11T14:30:01+00:00" + "time": "2018-02-11T19:28:00+00:00" }, { "name": "php-http/cache-plugin", @@ -5246,56 +5206,6 @@ ], "time": "2016-08-06T14:39:51+00:00" }, - { - "name": "psr/link", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/php-fig/link.git", - "reference": "131b5c337db3599ef922e9d6c22889ad237b80b9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/link/zipball/131b5c337db3599ef922e9d6c22889ad237b80b9", - "reference": "131b5c337db3599ef922e9d6c22889ad237b80b9", - "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", - "homepage": "https://github.com/php-fig/link", - "keywords": [ - "http", - "http-link", - "link", - "psr", - "psr-13", - "rest" - ], - "time": "2016-11-17T00:27:01+00:00" - }, { "name": "psr/log", "version": "dev-master", @@ -5393,21 +5303,21 @@ }, { "name": "queue-interop/amqp-interop", - "version": "0.6.1", + "version": "dev-master", "source": { "type": "git", "url": "https://github.com/queue-interop/amqp-interop.git", - "reference": "154cc82b9cc9e32f36d5bda0613997e8d81e6908" + "reference": "1a437a8efd7a6835198b0d16031d3ed38dbceeab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/queue-interop/amqp-interop/zipball/154cc82b9cc9e32f36d5bda0613997e8d81e6908", - "reference": "154cc82b9cc9e32f36d5bda0613997e8d81e6908", + "url": "https://api.github.com/repos/queue-interop/amqp-interop/zipball/1a437a8efd7a6835198b0d16031d3ed38dbceeab", + "reference": "1a437a8efd7a6835198b0d16031d3ed38dbceeab", "shasum": "" }, "require": { "php": ">=5.5", - "queue-interop/queue-interop": "^0.6@dev" + "queue-interop/queue-interop": "^0.6@dev|^1.0.0-alpha1" }, "require-dev": { "phpunit/phpunit": "~5.4.0" @@ -5415,7 +5325,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "0.6.x-dev" + "dev-master": "0.7.x-dev" } }, "autoload": { @@ -5424,20 +5334,23 @@ } }, "notification-url": "https://packagist.org/downloads/", - "time": "2017-08-10T11:22:09+00:00" + "license": [ + "MIT" + ], + "time": "2018-03-06T10:44:28+00:00" }, { "name": "queue-interop/queue-interop", - "version": "0.6.1", + "version": "dev-master", "source": { "type": "git", "url": "https://github.com/queue-interop/queue-interop.git", - "reference": "38579005c0492c0275bbae31170edf30a7e740fa" + "reference": "7fa3949ef22cd975b0ee7f1bbeaaaa98bd34db84" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/queue-interop/queue-interop/zipball/38579005c0492c0275bbae31170edf30a7e740fa", - "reference": "38579005c0492c0275bbae31170edf30a7e740fa", + "url": "https://api.github.com/repos/queue-interop/queue-interop/zipball/7fa3949ef22cd975b0ee7f1bbeaaaa98bd34db84", + "reference": "7fa3949ef22cd975b0ee7f1bbeaaaa98bd34db84", "shasum": "" }, "require": { @@ -5467,7 +5380,7 @@ "messaging", "queue" ], - "time": "2017-08-10T11:24:15+00:00" + "time": "2018-03-15T07:44:20+00:00" }, { "name": "ramsey/uuid", @@ -6010,132 +5923,106 @@ "time": "2017-07-08T13:15:10+00:00" }, { - "name": "symfony/monolog-bundle", - "version": "v3.1.0", + "name": "symfony/asset", + "version": "3.4.x-dev", "source": { "type": "git", - "url": "https://github.com/symfony/monolog-bundle.git", - "reference": "6f96c7dbb6b2ef70b307a1a6f897153cbca3da47" + "url": "https://github.com/symfony/asset.git", + "reference": "89e9267bf33a8214efceb1ead12fb73504e81089" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/6f96c7dbb6b2ef70b307a1a6f897153cbca3da47", - "reference": "6f96c7dbb6b2ef70b307a1a6f897153cbca3da47", + "url": "https://api.github.com/repos/symfony/asset/zipball/89e9267bf33a8214efceb1ead12fb73504e81089", + "reference": "89e9267bf33a8214efceb1ead12fb73504e81089", "shasum": "" }, "require": { - "monolog/monolog": "~1.22", - "php": ">=5.3.2", - "symfony/config": "~2.7|~3.0", - "symfony/dependency-injection": "~2.7|~3.0", - "symfony/http-kernel": "~2.7|~3.0", - "symfony/monolog-bridge": "~2.7|~3.0" + "php": "^5.5.9|>=7.0.8" }, "require-dev": { - "phpunit/phpunit": "^4.8", - "symfony/console": "~2.3|~3.0", - "symfony/yaml": "~2.3|~3.0" + "symfony/http-foundation": "~2.8|~3.0|~4.0", + "symfony/http-kernel": "~2.8|~3.0|~4.0" }, - "type": "symfony-bundle", + "suggest": { + "symfony/http-foundation": "" + }, + "type": "library", "extra": { "branch-alias": { - "dev-master": "3.x-dev" + "dev-master": "3.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" - ], - "time": "2017-03-26T11:55:59+00:00" + "description": "Symfony Asset Component", + "homepage": "https://symfony.com", + "time": "2018-01-03T07:37:34+00:00" }, { - "name": "symfony/polyfill", - "version": "v1.5.0", + "name": "symfony/cache", + "version": "v4.0.6", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill.git", - "reference": "157dfe598da2181908ff2345cad1807b2c23f5f9" + "url": "https://github.com/symfony/cache.git", + "reference": "fcffcf7f26d232b64329f37182defe253caa06b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill/zipball/157dfe598da2181908ff2345cad1807b2c23f5f9", - "reference": "157dfe598da2181908ff2345cad1807b2c23f5f9", + "url": "https://api.github.com/repos/symfony/cache/zipball/fcffcf7f26d232b64329f37182defe253caa06b0", + "reference": "fcffcf7f26d232b64329f37182defe253caa06b0", "shasum": "" }, "require": { - "ircmaxell/password-compat": "~1.0", - "paragonie/random_compat": "~1.0|~2.0", - "php": ">=5.3.3", - "symfony/intl": "~2.3|~3.0|~4.0" + "php": "^7.1.3", + "psr/cache": "~1.0", + "psr/log": "~1.0", + "psr/simple-cache": "^1.0" }, - "replace": { - "symfony/polyfill-apcu": "self.version", - "symfony/polyfill-iconv": "self.version", - "symfony/polyfill-intl-grapheme": "self.version", - "symfony/polyfill-intl-icu": "self.version", - "symfony/polyfill-intl-normalizer": "self.version", - "symfony/polyfill-mbstring": "self.version", - "symfony/polyfill-php54": "self.version", - "symfony/polyfill-php55": "self.version", - "symfony/polyfill-php56": "self.version", - "symfony/polyfill-php70": "self.version", - "symfony/polyfill-php71": "self.version", - "symfony/polyfill-php72": "self.version", - "symfony/polyfill-util": "self.version", - "symfony/polyfill-xml": "self.version" + "conflict": { + "symfony/var-dumper": "<3.4" + }, + "provide": { + "psr/cache-implementation": "1.0", + "psr/simple-cache-implementation": "1.0" }, "require-dev": { - "symfony/phpunit-bridge": "~3.2" + "cache/integration-tests": "dev-master", + "doctrine/cache": "~1.6", + "doctrine/dbal": "~2.4", + "predis/predis": "~1.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.5-dev" + "dev-master": "4.0-dev" } }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\": "src/" + "Symfony\\Component\\Cache\\": "" }, - "files": [ - "src/Apcu/bootstrap.php", - "src/Php54/bootstrap.php", - "src/Php55/bootstrap.php", - "src/Php56/bootstrap.php", - "src/Php70/bootstrap.php", - "src/Php71/bootstrap.php", - "src/Php72/bootstrap.php", - "src/Iconv/bootstrap.php", - "src/Intl/Grapheme/bootstrap.php", - "src/Intl/Icu/bootstrap.php", - "src/Intl/Normalizer/bootstrap.php", - "src/Mbstring/bootstrap.php" - ], - "classmap": [ - "src/Intl/Normalizer/Resources/stubs", - "src/Php70/Resources/stubs", - "src/Php54/Resources/stubs" + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -6152,205 +6039,2711 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfills backporting features to lower PHP versions", + "description": "Symfony Cache component with PSR-6, PSR-16, and tags", "homepage": "https://symfony.com", "keywords": [ - "compat", - "compatibility", - "polyfill", - "shim" + "caching", + "psr6" ], - "time": "2017-08-16T07:33:06+00:00" + "time": "2018-02-11T17:17:44+00:00" }, { - "name": "symfony/swiftmailer-bundle", - "version": "v2.6.3", + "name": "symfony/class-loader", + "version": "v3.4.6", "source": { "type": "git", - "url": "https://github.com/symfony/swiftmailer-bundle.git", - "reference": "11555c338f3c367b0a1bd2f024a53aa813f4ce00" + "url": "https://github.com/symfony/class-loader.git", + "reference": "e63c12699822bb3b667e7216ba07fbcc3a3e203e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/11555c338f3c367b0a1bd2f024a53aa813f4ce00", - "reference": "11555c338f3c367b0a1bd2f024a53aa813f4ce00", + "url": "https://api.github.com/repos/symfony/class-loader/zipball/e63c12699822bb3b667e7216ba07fbcc3a3e203e", + "reference": "e63c12699822bb3b667e7216ba07fbcc3a3e203e", "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": "^5.5.9|>=7.0.8" }, "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" + "symfony/finder": "~2.8|~3.0|~4.0", + "symfony/polyfill-apcu": "~1.1" + }, + "suggest": { + "symfony/polyfill-apcu": "For using ApcClassLoader on HHVM" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\ClassLoader\\": "" + }, + "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 ClassLoader Component", + "homepage": "https://symfony.com", + "time": "2018-01-03T07:37:34+00:00" + }, + { + "name": "symfony/config", + "version": "v3.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "05e10567b529476a006b00746c5f538f1636810e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/05e10567b529476a006b00746c5f538f1636810e", + "reference": "05e10567b529476a006b00746c5f538f1636810e", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/filesystem": "~2.8|~3.0|~4.0" + }, + "conflict": { + "symfony/dependency-injection": "<3.3", + "symfony/finder": "<3.3" + }, + "require-dev": { + "symfony/dependency-injection": "~3.3|~4.0", + "symfony/event-dispatcher": "~3.3|~4.0", + "symfony/finder": "~3.3|~4.0", + "symfony/yaml": "~3.0|~4.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "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 Config Component", + "homepage": "https://symfony.com", + "time": "2018-02-14T10:03:57+00:00" + }, + { + "name": "symfony/console", + "version": "v3.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "067339e9b8ec30d5f19f5950208893ff026b94f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/067339e9b8ec30d5f19f5950208893ff026b94f7", + "reference": "067339e9b8ec30d5f19f5950208893ff026b94f7", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/debug": "~2.8|~3.0|~4.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/dependency-injection": "<3.4", + "symfony/process": "<3.3" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~3.3|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/event-dispatcher": "~2.8|~3.0|~4.0", + "symfony/lock": "~3.4|~4.0", + "symfony/process": "~3.3|~4.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "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 Console Component", + "homepage": "https://symfony.com", + "time": "2018-02-26T15:46:28+00:00" + }, + { + "name": "symfony/css-selector", + "version": "v3.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "544655f1fc078a9cd839fdda2b7b1e64627c826a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/544655f1fc078a9cd839fdda2b7b1e64627c826a", + "reference": "544655f1fc078a9cd839fdda2b7b1e64627c826a", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony CssSelector Component", + "homepage": "https://symfony.com", + "time": "2018-02-03T14:55:07+00:00" + }, + { + "name": "symfony/debug", + "version": "v4.0.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug.git", + "reference": "1721e4e7effb23480966690cdcdc7d2a4152d489" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug/zipball/1721e4e7effb23480966690cdcdc7d2a4152d489", + "reference": "1721e4e7effb23480966690cdcdc7d2a4152d489", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "psr/log": "~1.0" + }, + "conflict": { + "symfony/http-kernel": "<3.4" + }, + "require-dev": { + "symfony/http-kernel": "~3.4|~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Debug\\": "" + }, + "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 Debug Component", + "homepage": "https://symfony.com", + "time": "2018-02-28T21:50:02+00:00" + }, + { + "name": "symfony/debug-bundle", + "version": "3.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug-bundle.git", + "reference": "e5de2664081e8c7753e951970af43f0ee01cf645" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/e5de2664081e8c7753e951970af43f0ee01cf645", + "reference": "e5de2664081e8c7753e951970af43f0ee01cf645", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": "^5.5.9|>=7.0.8", + "symfony/http-kernel": "~2.8|~3.0|~4.0", + "symfony/twig-bridge": "~2.8|~3.0|~4.0", + "symfony/var-dumper": "~3.4|~4.0" + }, + "conflict": { + "symfony/dependency-injection": "<3.4" + }, + "require-dev": { + "symfony/config": "~3.3|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/web-profiler-bundle": "~2.8|~3.0|~4.0" + }, + "suggest": { + "symfony/config": "For service container configuration", + "symfony/dependency-injection": "For using as a service from the container" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\DebugBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony DebugBundle", + "homepage": "https://symfony.com", + "time": "2018-01-03T07:37:34+00:00" + }, + { + "name": "symfony/dependency-injection", + "version": "v3.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "12e901abc1cb0d637a0e5abe9923471361d96b07" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/12e901abc1cb0d637a0e5abe9923471361d96b07", + "reference": "12e901abc1cb0d637a0e5abe9923471361d96b07", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "psr/container": "^1.0" + }, + "conflict": { + "symfony/config": "<3.3.7", + "symfony/finder": "<3.3", + "symfony/proxy-manager-bridge": "<3.4", + "symfony/yaml": "<3.4" + }, + "provide": { + "psr/container-implementation": "1.0" + }, + "require-dev": { + "symfony/config": "~3.3|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/yaml": "~3.4|~4.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": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" + }, + "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 DependencyInjection Component", + "homepage": "https://symfony.com", + "time": "2018-03-04T03:54:53+00:00" + }, + { + "name": "symfony/doctrine-bridge", + "version": "v3.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/doctrine-bridge.git", + "reference": "cecd7a87f23b969fae706f35744fba601ed694cb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/cecd7a87f23b969fae706f35744fba601ed694cb", + "reference": "cecd7a87f23b969fae706f35744fba601ed694cb", + "shasum": "" + }, + "require": { + "doctrine/common": "~2.4", + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/dependency-injection": "<3.4" + }, + "require-dev": { + "doctrine/data-fixtures": "1.0.*", + "doctrine/dbal": "~2.4", + "doctrine/orm": "^2.4.5", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/form": "^3.3.10|~4.0", + "symfony/http-kernel": "~2.8|~3.0|~4.0", + "symfony/property-access": "~2.8|~3.0|~4.0", + "symfony/property-info": "~2.8|3.0|~4.0", + "symfony/proxy-manager-bridge": "~2.8|~3.0|~4.0", + "symfony/security": "~2.8|~3.0|~4.0", + "symfony/stopwatch": "~2.8|~3.0|~4.0", + "symfony/translation": "~2.8|~3.0|~4.0", + "symfony/validator": "^3.2.5|~4.0" + }, + "suggest": { + "doctrine/data-fixtures": "", + "doctrine/dbal": "", + "doctrine/orm": "", + "symfony/form": "", + "symfony/property-info": "", + "symfony/validator": "" + }, + "type": "symfony-bridge", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bridge\\Doctrine\\": "" + }, + "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 Doctrine Bridge", + "homepage": "https://symfony.com", + "time": "2018-02-01T06:11:27+00:00" + }, + { + "name": "symfony/dotenv", + "version": "3.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/dotenv.git", + "reference": "66265f80c0f585cd6aec3fbdfc4ffdf7a0d75992" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/66265f80c0f585cd6aec3fbdfc4ffdf7a0d75992", + "reference": "66265f80c0f585cd6aec3fbdfc4ffdf7a0d75992", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "require-dev": { + "symfony/process": "~3.2|~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Dotenv\\": "" + }, + "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": "Registers environment variables from a .env file", + "homepage": "https://symfony.com", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "time": "2018-01-03T17:14:19+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v3.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "58990682ac3fdc1f563b7e705452921372aad11d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/58990682ac3fdc1f563b7e705452921372aad11d", + "reference": "58990682ac3fdc1f563b7e705452921372aad11d", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "conflict": { + "symfony/dependency-injection": "<3.3" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.3|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/stopwatch": "~2.8|~3.0|~4.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "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 EventDispatcher Component", + "homepage": "https://symfony.com", + "time": "2018-02-14T10:03:57+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v3.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "253a4490b528597aa14d2bf5aeded6f5e5e4a541" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/253a4490b528597aa14d2bf5aeded6f5e5e4a541", + "reference": "253a4490b528597aa14d2bf5aeded6f5e5e4a541", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "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 Filesystem Component", + "homepage": "https://symfony.com", + "time": "2018-02-22T10:48:49+00:00" + }, + { + "name": "symfony/finder", + "version": "v3.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "a479817ce0a9e4adfd7d39c6407c95d97c254625" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/a479817ce0a9e4adfd7d39c6407c95d97c254625", + "reference": "a479817ce0a9e4adfd7d39c6407c95d97c254625", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "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 Finder Component", + "homepage": "https://symfony.com", + "time": "2018-03-05T18:28:11+00:00" + }, + { + "name": "symfony/form", + "version": "v3.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/form.git", + "reference": "9495e1bed5397bb9618059d37a1494f87964b878" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/form/zipball/9495e1bed5397bb9618059d37a1494f87964b878", + "reference": "9495e1bed5397bb9618059d37a1494f87964b878", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/event-dispatcher": "~2.8|~3.0|~4.0", + "symfony/intl": "^2.8.18|^3.2.5|~4.0", + "symfony/options-resolver": "~3.4|~4.0", + "symfony/polyfill-mbstring": "~1.0", + "symfony/property-access": "~2.8|~3.0|~4.0" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/dependency-injection": "<3.3", + "symfony/doctrine-bridge": "<2.7", + "symfony/framework-bundle": "<3.4", + "symfony/http-kernel": "<3.3.5", + "symfony/twig-bridge": "<3.4.5|<4.0.5,>=4.0" + }, + "require-dev": { + "doctrine/collections": "~1.0", + "symfony/config": "~2.7|~3.0|~4.0", + "symfony/console": "~3.4|~4.0", + "symfony/dependency-injection": "~3.3|~4.0", + "symfony/http-foundation": "~2.8|~3.0|~4.0", + "symfony/http-kernel": "^3.3.5|~4.0", + "symfony/security-csrf": "~2.8|~3.0|~4.0", + "symfony/translation": "~2.8|~3.0|~4.0", + "symfony/validator": "^3.2.5|~4.0", + "symfony/var-dumper": "~3.3.11|~3.4|~4.0" + }, + "suggest": { + "symfony/framework-bundle": "For templating with PHP.", + "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.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", + "time": "2018-03-01T10:20:19+00:00" + }, + { + "name": "symfony/framework-bundle", + "version": "v3.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/framework-bundle.git", + "reference": "ee18b39bb52c6cc7ed550a9df981650660d4be92" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/ee18b39bb52c6cc7ed550a9df981650660d4be92", + "reference": "ee18b39bb52c6cc7ed550a9df981650660d4be92", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": "^5.5.9|>=7.0.8", + "symfony/cache": "~3.4|~4.0", + "symfony/class-loader": "~3.2", + "symfony/config": "~3.4|~4.0", + "symfony/dependency-injection": "^3.4.3|^4.0.3", + "symfony/event-dispatcher": "~3.4|~4.0", + "symfony/filesystem": "~2.8|~3.0|~4.0", + "symfony/finder": "~2.8|~3.0|~4.0", + "symfony/http-foundation": "^3.3.11|~4.0", + "symfony/http-kernel": "~3.4|~4.0", + "symfony/polyfill-mbstring": "~1.0", + "symfony/routing": "^3.4.5|^4.0.5" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "<3.0", + "phpdocumentor/type-resolver": "<0.2.1", + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/asset": "<3.3", + "symfony/console": "<3.4", + "symfony/form": "<3.4", + "symfony/property-info": "<3.3", + "symfony/serializer": "<3.3", + "symfony/stopwatch": "<3.4", + "symfony/translation": "<3.4", + "symfony/validator": "<3.4", + "symfony/workflow": "<3.3" + }, + "require-dev": { + "doctrine/annotations": "~1.0", + "doctrine/cache": "~1.0", + "fig/link-util": "^1.0", + "phpdocumentor/reflection-docblock": "^3.0|^4.0", + "symfony/asset": "~3.3|~4.0", + "symfony/browser-kit": "~2.8|~3.0|~4.0", + "symfony/console": "~3.4|~4.0", + "symfony/css-selector": "~2.8|~3.0|~4.0", + "symfony/dom-crawler": "~2.8|~3.0|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/form": "~3.4|~4.0", + "symfony/lock": "~3.4|~4.0", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/process": "~2.8|~3.0|~4.0", + "symfony/property-info": "~3.3|~4.0", + "symfony/security": "~2.8|~3.0|~4.0", + "symfony/security-core": "~3.2|~4.0", + "symfony/security-csrf": "~2.8|~3.0|~4.0", + "symfony/serializer": "~3.3|~4.0", + "symfony/stopwatch": "~3.4|~4.0", + "symfony/templating": "~2.8|~3.0|~4.0", + "symfony/translation": "~3.4|~4.0", + "symfony/validator": "~3.4|~4.0", + "symfony/var-dumper": "~3.3|~4.0", + "symfony/web-link": "~3.3|~4.0", + "symfony/workflow": "~3.3|~4.0", + "symfony/yaml": "~3.2|~4.0", + "twig/twig": "~1.34|~2.4" + }, + "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": "3.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", + "time": "2018-03-01T14:51:10+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v3.3.16", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "ea73615f7f4e76b149b73f59daaa677068712d90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ea73615f7f4e76b149b73f59daaa677068712d90", + "reference": "ea73615f7f4e76b149b73f59daaa677068712d90", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-mbstring": "~1.1" + }, + "require-dev": { + "symfony/expression-language": "~2.8|~3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3-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", + "time": "2018-01-29T09:02:23+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v3.4.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "1c2a82d6a8ec9b354fe4ef48ad1ad3f1a4f7db0e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/1c2a82d6a8ec9b354fe4ef48ad1ad3f1a4f7db0e", + "reference": "1c2a82d6a8ec9b354fe4ef48ad1ad3f1a4f7db0e", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "psr/log": "~1.0", + "symfony/debug": "~2.8|~3.0|~4.0", + "symfony/event-dispatcher": "~2.8|~3.0|~4.0", + "symfony/http-foundation": "^3.3.11|~4.0" + }, + "conflict": { + "symfony/config": "<2.8", + "symfony/dependency-injection": "<3.4", + "symfony/var-dumper": "<3.3", + "twig/twig": "<1.34|<2.4,>=2" + }, + "provide": { + "psr/log-implementation": "1.0" + }, + "require-dev": { + "psr/cache": "~1.0", + "symfony/browser-kit": "~2.8|~3.0|~4.0", + "symfony/class-loader": "~2.8|~3.0", + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/console": "~2.8|~3.0|~4.0", + "symfony/css-selector": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/dom-crawler": "~2.8|~3.0|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/finder": "~2.8|~3.0|~4.0", + "symfony/process": "~2.8|~3.0|~4.0", + "symfony/routing": "~3.4|~4.0", + "symfony/stopwatch": "~2.8|~3.0|~4.0", + "symfony/templating": "~2.8|~3.0|~4.0", + "symfony/translation": "~2.8|~3.0|~4.0", + "symfony/var-dumper": "~3.3|~4.0" + }, + "suggest": { + "symfony/browser-kit": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "", + "symfony/finder": "", + "symfony/var-dumper": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.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", + "time": "2018-01-05T08:33:00+00:00" + }, + { + "name": "symfony/inflector", + "version": "v4.0.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/inflector.git", + "reference": "da634a9968162f7c5c94f8d6949a4ede86085304" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/inflector/zipball/da634a9968162f7c5c94f8d6949a4ede86085304", + "reference": "da634a9968162f7c5c94f8d6949a4ede86085304", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-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" + ], + "time": "2018-01-03T17:15:19+00:00" + }, + { + "name": "symfony/intl", + "version": "v4.0.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/intl.git", + "reference": "929953d9e64c7209afb907fc34ac64b135c79cb8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/intl/zipball/929953d9e64c7209afb907fc34ac64b135c79cb8", + "reference": "929953d9e64c7209afb907fc34ac64b135c79cb8", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-intl-icu": "~1.0" + }, + "require-dev": { + "symfony/filesystem": "~3.4|~4.0" + }, + "suggest": { + "ext-intl": "to use the component with locales other than \"en\"" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-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" + ], + "time": "2018-02-03T00:57:23+00:00" + }, + { + "name": "symfony/monolog-bridge", + "version": "v3.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bridge.git", + "reference": "7d208fe9223e60a0196dbe8b90e9f697f248b9d6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/7d208fe9223e60a0196dbe8b90e9f697f248b9d6", + "reference": "7d208fe9223e60a0196dbe8b90e9f697f248b9d6", + "shasum": "" + }, + "require": { + "monolog/monolog": "~1.19", + "php": "^5.5.9|>=7.0.8", + "symfony/http-kernel": "~2.8|~3.0|~4.0" + }, + "conflict": { + "symfony/http-foundation": "<3.3" + }, + "require-dev": { + "symfony/console": "~2.8|~3.0|~4.0", + "symfony/event-dispatcher": "~2.8|~3.0|~4.0", + "symfony/security-core": "~2.8|~3.0|~4.0", + "symfony/var-dumper": "~3.3|~4.0" + }, + "suggest": { + "symfony/console": "For the possibility to show log messages in console commands depending on verbosity settings. You need version ~2.3 of the console for it.", + "symfony/event-dispatcher": "Needed when using log messages in console commands.", + "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": "3.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", + "time": "2018-02-01T06:11:27+00:00" + }, + { + "name": "symfony/monolog-bundle", + "version": "v3.1.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bundle.git", + "reference": "6f96c7dbb6b2ef70b307a1a6f897153cbca3da47" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/6f96c7dbb6b2ef70b307a1a6f897153cbca3da47", + "reference": "6f96c7dbb6b2ef70b307a1a6f897153cbca3da47", + "shasum": "" + }, + "require": { + "monolog/monolog": "~1.22", + "php": ">=5.3.2", + "symfony/config": "~2.7|~3.0", + "symfony/dependency-injection": "~2.7|~3.0", + "symfony/http-kernel": "~2.7|~3.0", + "symfony/monolog-bridge": "~2.7|~3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8", + "symfony/console": "~2.3|~3.0", + "symfony/yaml": "~2.3|~3.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\MonologBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Symfony MonologBundle", + "homepage": "http://symfony.com", + "keywords": [ + "log", + "logging" + ], + "time": "2017-03-26T11:55:59+00:00" + }, + { + "name": "symfony/options-resolver", + "version": "v3.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/options-resolver.git", + "reference": "f3109a6aedd20e35c3a33190e932c2b063b7b50e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/f3109a6aedd20e35c3a33190e932c2b063b7b50e", + "reference": "f3109a6aedd20e35c3a33190e932c2b063b7b50e", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.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" + ], + "time": "2018-01-11T07:56:07+00:00" + }, + { + "name": "symfony/polyfill", + "version": "v1.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill.git", + "reference": "157dfe598da2181908ff2345cad1807b2c23f5f9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill/zipball/157dfe598da2181908ff2345cad1807b2c23f5f9", + "reference": "157dfe598da2181908ff2345cad1807b2c23f5f9", + "shasum": "" + }, + "require": { + "ircmaxell/password-compat": "~1.0", + "paragonie/random_compat": "~1.0|~2.0", + "php": ">=5.3.3", + "symfony/intl": "~2.3|~3.0|~4.0" + }, + "replace": { + "symfony/polyfill-apcu": "self.version", + "symfony/polyfill-iconv": "self.version", + "symfony/polyfill-intl-grapheme": "self.version", + "symfony/polyfill-intl-icu": "self.version", + "symfony/polyfill-intl-normalizer": "self.version", + "symfony/polyfill-mbstring": "self.version", + "symfony/polyfill-php54": "self.version", + "symfony/polyfill-php55": "self.version", + "symfony/polyfill-php56": "self.version", + "symfony/polyfill-php70": "self.version", + "symfony/polyfill-php71": "self.version", + "symfony/polyfill-php72": "self.version", + "symfony/polyfill-util": "self.version", + "symfony/polyfill-xml": "self.version" + }, + "require-dev": { + "symfony/phpunit-bridge": "~3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.5-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\": "src/" + }, + "files": [ + "src/Apcu/bootstrap.php", + "src/Php54/bootstrap.php", + "src/Php55/bootstrap.php", + "src/Php56/bootstrap.php", + "src/Php70/bootstrap.php", + "src/Php71/bootstrap.php", + "src/Php72/bootstrap.php", + "src/Iconv/bootstrap.php", + "src/Intl/Grapheme/bootstrap.php", + "src/Intl/Icu/bootstrap.php", + "src/Intl/Normalizer/bootstrap.php", + "src/Mbstring/bootstrap.php" + ], + "classmap": [ + "src/Intl/Normalizer/Resources/stubs", + "src/Php70/Resources/stubs", + "src/Php54/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 polyfills backporting features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compat", + "compatibility", + "polyfill", + "shim" + ], + "time": "2017-08-16T07:33:06+00:00" + }, + { + "name": "symfony/process", + "version": "v3.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "cc4aea21f619116aaf1c58016a944e4821c8e8af" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/cc4aea21f619116aaf1c58016a944e4821c8e8af", + "reference": "cc4aea21f619116aaf1c58016a944e4821c8e8af", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "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 Process Component", + "homepage": "https://symfony.com", + "time": "2018-02-12T17:55:00+00:00" + }, + { + "name": "symfony/property-access", + "version": "v3.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/property-access.git", + "reference": "a6e8c778b220dfd5cd5f5dcb09f87ee232dd608a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/property-access/zipball/a6e8c778b220dfd5cd5f5dcb09f87ee232dd608a", + "reference": "a6e8c778b220dfd5cd5f5dcb09f87ee232dd608a", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/inflector": "~3.1|~4.0", + "symfony/polyfill-php70": "~1.0" + }, + "require-dev": { + "symfony/cache": "~3.1|~4.0" + }, + "suggest": { + "psr/cache-implementation": "To cache access methods." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.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" + ], + "time": "2018-01-03T07:37:34+00:00" + }, + { + "name": "symfony/property-info", + "version": "v4.0.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/property-info.git", + "reference": "e647665a46c91ebe146e0a8c1a756fb4d37916ba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/property-info/zipball/e647665a46c91ebe146e0a8c1a756fb4d37916ba", + "reference": "e647665a46c91ebe146e0a8c1a756fb4d37916ba", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/inflector": "~3.4|~4.0" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "<3.0||>=3.2.0,<3.2.2", + "phpdocumentor/type-resolver": "<0.2.1", + "symfony/dependency-injection": "<3.4" + }, + "require-dev": { + "doctrine/annotations": "~1.0", + "phpdocumentor/reflection-docblock": "^3.0|^4.0", + "symfony/cache": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/serializer": "~3.4|~4.0" + }, + "suggest": { + "phpdocumentor/reflection-docblock": "To use the PHPDoc", + "psr/cache-implementation": "To cache results", + "symfony/doctrine-bridge": "To use Doctrine metadata", + "symfony/serializer": "To use Serializer metadata" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\PropertyInfo\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kévin Dunglas", + "email": "dunglas@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Property Info Component", + "homepage": "https://symfony.com", + "keywords": [ + "doctrine", + "phpdoc", + "property", + "symfony", + "type", + "validator" + ], + "time": "2018-02-22T12:30:04+00:00" + }, + { + "name": "symfony/routing", + "version": "v4.0.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "9c6268c1970c7e507bedc8946bece32a7db23515" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/9c6268c1970c7e507bedc8946bece32a7db23515", + "reference": "9c6268c1970c7e507bedc8946bece32a7db23515", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "conflict": { + "symfony/config": "<3.4", + "symfony/dependency-injection": "<3.4", + "symfony/yaml": "<3.4" + }, + "require-dev": { + "doctrine/annotations": "~1.0", + "doctrine/common": "~2.2", + "psr/log": "~1.0", + "symfony/config": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/expression-language": "~3.4|~4.0", + "symfony/http-foundation": "~3.4|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "doctrine/annotations": "For using the annotation loader", + "symfony/config": "For using the all-in-one router or any loader", + "symfony/dependency-injection": "For loading routes from a service", + "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.0-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" + ], + "time": "2018-02-28T21:50:02+00:00" + }, + { + "name": "symfony/security", + "version": "v3.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/security.git", + "reference": "9a9ab07334e511ff205bcf2daea81ccde500f3aa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security/zipball/9a9ab07334e511ff205bcf2daea81ccde500f3aa", + "reference": "9a9ab07334e511ff205bcf2daea81ccde500f3aa", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/event-dispatcher": "~2.8|~3.0|~4.0", + "symfony/http-foundation": "^2.8.31|~3.3.13|~3.4|~4.0", + "symfony/http-kernel": "~3.3|~4.0", + "symfony/polyfill-php56": "~1.0", + "symfony/polyfill-php70": "~1.0", + "symfony/property-access": "~2.8|~3.0|~4.0" + }, + "replace": { + "symfony/security-core": "self.version", + "symfony/security-csrf": "self.version", + "symfony/security-guard": "self.version", + "symfony/security-http": "self.version" + }, + "require-dev": { + "psr/container": "^1.0", + "psr/log": "~1.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/finder": "~2.8|~3.0|~4.0", + "symfony/ldap": "~3.1|~4.0", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/routing": "~2.8|~3.0|~4.0", + "symfony/validator": "^3.2.5|~4.0" + }, + "suggest": { + "psr/container": "To instantiate the Security class", + "symfony/expression-language": "For using the expression voter", + "symfony/form": "", + "symfony/ldap": "For using the LDAP user and authentication providers", + "symfony/routing": "For using the HttpUtils class to create sub-requests, redirect the user, and match URLs", + "symfony/validator": "For using the user password constraint" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\": "" + }, + "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", + "homepage": "https://symfony.com", + "time": "2018-02-23T15:50:25+00:00" + }, + { + "name": "symfony/security-bundle", + "version": "v3.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-bundle.git", + "reference": "77f54a63d5a9a30581d01c2189c2484e1bb107c6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/77f54a63d5a9a30581d01c2189c2484e1bb107c6", + "reference": "77f54a63d5a9a30581d01c2189c2484e1bb107c6", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": "^5.5.9|>=7.0.8", + "symfony/dependency-injection": "^3.4.3|^4.0.3", + "symfony/http-kernel": "~3.4|~4.0", + "symfony/polyfill-php70": "~1.0", + "symfony/security": "~3.4|~4.0" + }, + "conflict": { + "symfony/console": "<3.4", + "symfony/event-dispatcher": "<3.4", + "symfony/framework-bundle": "<3.4", + "symfony/var-dumper": "<3.3" + }, + "require-dev": { + "doctrine/doctrine-bundle": "~1.5", + "symfony/asset": "~2.8|~3.0|~4.0", + "symfony/browser-kit": "~2.8|~3.0|~4.0", + "symfony/console": "~3.4|~4.0", + "symfony/css-selector": "~2.8|~3.0|~4.0", + "symfony/dom-crawler": "~2.8|~3.0|~4.0", + "symfony/event-dispatcher": "~3.4|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/form": "^3.4|~4.0", + "symfony/framework-bundle": "~3.4|~4.0", + "symfony/http-foundation": "~3.3|~4.0", + "symfony/process": "~3.3|~4.0", + "symfony/security-acl": "~2.8|~3.0", + "symfony/translation": "~3.4|~4.0", + "symfony/twig-bridge": "~3.4|~4.0", + "symfony/twig-bundle": "~3.4|~4.0", + "symfony/validator": "^3.4|~4.0", + "symfony/var-dumper": "~3.3|~4.0", + "symfony/yaml": "~3.4|~4.0", + "twig/twig": "~1.34|~2.4" + }, + "suggest": { + "symfony/security-acl": "For using the ACL functionality of this bundle" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.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", + "time": "2018-02-06T08:09:00+00:00" + }, + { + "name": "symfony/serializer", + "version": "v3.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/serializer.git", + "reference": "11bea1aebe9c8d506f47c01931b0df9f18629a8f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/serializer/zipball/11bea1aebe9c8d506f47c01931b0df9f18629a8f", + "reference": "11bea1aebe9c8d506f47c01931b0df9f18629a8f", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "conflict": { + "phpdocumentor/type-resolver": "<0.2.1", + "symfony/dependency-injection": "<3.2", + "symfony/property-access": ">=3.0,<3.0.4|>=2.8,<2.8.4", + "symfony/property-info": "<3.1", + "symfony/yaml": "<3.4" + }, + "require-dev": { + "doctrine/annotations": "~1.0", + "doctrine/cache": "~1.0", + "phpdocumentor/reflection-docblock": "^3.0|^4.0", + "symfony/cache": "~3.1|~4.0", + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.2|~4.0", + "symfony/http-foundation": "~2.8|~3.0|~4.0", + "symfony/property-access": "~2.8|~3.0|~4.0", + "symfony/property-info": "~3.1|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", + "doctrine/cache": "For using the default cached annotation reader and metadata cache.", + "psr/cache-implementation": "For using the metadata cache.", + "symfony/config": "For using the XML mapping loader.", + "symfony/http-foundation": "To use the DataUriNormalizer.", + "symfony/property-access": "For using the ObjectNormalizer.", + "symfony/property-info": "To deserialize relations.", + "symfony/yaml": "For using the default YAML mapping loader." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Serializer\\": "" + }, + "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 Serializer Component", + "homepage": "https://symfony.com", + "time": "2018-02-14T14:07:03+00:00" + }, + { + "name": "symfony/stopwatch", + "version": "v3.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/stopwatch.git", + "reference": "eb17cfa072cab26537ac37e9c4ece6c0361369af" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/eb17cfa072cab26537ac37e9c4ece6c0361369af", + "reference": "eb17cfa072cab26537ac37e9c4ece6c0361369af", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.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", + "time": "2018-02-17T14:55:25+00:00" + }, + { + "name": "symfony/swiftmailer-bundle", + "version": "v2.6.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/swiftmailer-bundle.git", + "reference": "11555c338f3c367b0a1bd2f024a53aa813f4ce00" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/11555c338f3c367b0a1bd2f024a53aa813f4ce00", + "reference": "11555c338f3c367b0a1bd2f024a53aa813f4ce00", + "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" + }, + "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" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.6-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\SwiftmailerBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Symfony SwiftmailerBundle", + "homepage": "http://symfony.com", + "time": "2017-07-22T07:18:13+00:00" + }, + { + "name": "symfony/templating", + "version": "v3.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/templating.git", + "reference": "6ac0bb6dea36053b97027dae0bf3888e432c1f74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/templating/zipball/6ac0bb6dea36053b97027dae0bf3888e432c1f74", + "reference": "6ac0bb6dea36053b97027dae0bf3888e432c1f74", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "require-dev": { + "psr/log": "~1.0" + }, + "suggest": { + "psr/log": "For using debug logging in loaders" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.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", + "time": "2018-01-03T07:37:34+00:00" + }, + { + "name": "symfony/translation", + "version": "v3.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "80e19eaf12cbb546ac40384e5c55c36306823e57" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/80e19eaf12cbb546ac40384e5c55c36306823e57", + "reference": "80e19eaf12cbb546ac40384e5c55c36306823e57", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/config": "<2.8", + "symfony/dependency-injection": "<3.4", + "symfony/yaml": "<3.4" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/finder": "~2.8|~3.0|~4.0", + "symfony/intl": "^2.8.18|^3.2.5|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "psr/log": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.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", + "time": "2018-02-22T06:28:18+00:00" + }, + { + "name": "symfony/twig-bridge", + "version": "v4.0.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/twig-bridge.git", + "reference": "575004ae3bcfb7d909a34db20edb7c349defb092" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/575004ae3bcfb7d909a34db20edb7c349defb092", + "reference": "575004ae3bcfb7d909a34db20edb7c349defb092", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "twig/twig": "^1.35|^2.4.4" + }, + "conflict": { + "symfony/console": "<3.4", + "symfony/form": "<3.4.5|<4.0.5,>=4.0" + }, + "require-dev": { + "symfony/asset": "~3.4|~4.0", + "symfony/console": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/expression-language": "~3.4|~4.0", + "symfony/finder": "~3.4|~4.0", + "symfony/form": "^3.4.5|^4.0.5", + "symfony/http-foundation": "~3.4|~4.0", + "symfony/http-kernel": "~3.4|~4.0", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/routing": "~3.4|~4.0", + "symfony/security": "~3.4|~4.0", + "symfony/security-acl": "~2.8|~3.0", + "symfony/stopwatch": "~3.4|~4.0", + "symfony/templating": "~3.4|~4.0", + "symfony/translation": "~3.4|~4.0", + "symfony/var-dumper": "~3.4|~4.0", + "symfony/web-link": "~3.4|~4.0", + "symfony/workflow": "~3.4|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "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": "For using the SecurityExtension", + "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.0-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", + "time": "2018-03-01T10:21:51+00:00" + }, + { + "name": "symfony/twig-bundle", + "version": "v3.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/twig-bundle.git", + "reference": "c06e47e4b93500c1e6dbf9a29d10f88845d7958c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/c06e47e4b93500c1e6dbf9a29d10f88845d7958c", + "reference": "c06e47e4b93500c1e6dbf9a29d10f88845d7958c", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/config": "~3.2|~4.0", + "symfony/http-foundation": "~2.8|~3.0|~4.0", + "symfony/http-kernel": "^3.3|~4.0", + "symfony/twig-bridge": "^3.4.3|^4.0.3", + "twig/twig": "~1.34|~2.4" + }, + "conflict": { + "symfony/dependency-injection": "<3.4", + "symfony/event-dispatcher": "<3.3.1" + }, + "require-dev": { + "doctrine/annotations": "~1.0", + "doctrine/cache": "~1.0", + "symfony/asset": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/finder": "~2.8|~3.0|~4.0", + "symfony/form": "~2.8|~3.0|~4.0", + "symfony/framework-bundle": "^3.3.11|~4.0", + "symfony/routing": "~2.8|~3.0|~4.0", + "symfony/stopwatch": "~2.8|~3.0|~4.0", + "symfony/templating": "~2.8|~3.0|~4.0", + "symfony/web-link": "~3.3|~4.0", + "symfony/yaml": "~2.8|~3.0|~4.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.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", + "time": "2018-02-14T12:23:44+00:00" + }, + { + "name": "symfony/validator", + "version": "v3.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/validator.git", + "reference": "b0dcfa428168b381ac0340e5209a47780799e393" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/validator/zipball/b0dcfa428168b381ac0340e5209a47780799e393", + "reference": "b0dcfa428168b381ac0340e5209a47780799e393", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/translation": "~2.8|~3.0|~4.0" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/dependency-injection": "<3.3", + "symfony/http-kernel": "<3.3.5", + "symfony/yaml": "<3.4" + }, + "require-dev": { + "doctrine/annotations": "~1.0", + "doctrine/cache": "~1.0", + "egulias/email-validator": "^1.2.8|~2.0", + "symfony/cache": "~3.1|~4.0", + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.3|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/http-foundation": "~2.8|~3.0|~4.0", + "symfony/http-kernel": "^3.3.5|~4.0", + "symfony/intl": "^2.8.18|^3.2.5|~4.0", + "symfony/property-access": "~2.8|~3.0|~4.0", + "symfony/var-dumper": "~3.3|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", + "doctrine/cache": "For using the default cached annotation reader and metadata cache.", + "egulias/email-validator": "Strict (RFC compliant) email validation", + "psr/cache-implementation": "For using the metadata 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/yaml": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.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", + "time": "2018-03-01T10:20:19+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "1980802a1d6897500adf072df7c2256daba8392c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1980802a1d6897500adf072df7c2256daba8392c", + "reference": "1980802a1d6897500adf072df7c2256daba8392c", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php72": "~1.5" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/console": "<3.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/process": "~3.4|~4.0", + "twig/twig": "~1.34|~2.4" + }, + "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" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.1-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" + ], + "time": "2018-03-23T09:12:13+00:00" + }, + { + "name": "symfony/web-profiler-bundle", + "version": "3.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/web-profiler-bundle.git", + "reference": "cd0509905713d083de2d1e761525d1094300d126" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/cd0509905713d083de2d1e761525d1094300d126", + "reference": "cd0509905713d083de2d1e761525d1094300d126", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/http-kernel": "~3.3|~4.0", + "symfony/polyfill-php70": "~1.0", + "symfony/routing": "~2.8|~3.0|~4.0", + "symfony/twig-bridge": "~2.8|~3.0|~4.0", + "symfony/var-dumper": "~3.3|~4.0", + "twig/twig": "~1.34|~2.4" + }, + "conflict": { + "symfony/config": "<3.4", + "symfony/dependency-injection": "<3.4", + "symfony/event-dispatcher": "<3.3.1", + "symfony/var-dumper": "<3.3" + }, + "require-dev": { + "symfony/config": "~3.4|~4.0", + "symfony/console": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/stopwatch": "~2.8|~3.0|~4.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\WebProfilerBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony WebProfilerBundle", + "homepage": "https://symfony.com", + "time": "2018-03-21T19:24:29+00:00" + }, + { + "name": "symfony/web-server-bundle", + "version": "v3.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/web-server-bundle.git", + "reference": "44a6b2deb1c58b2dfd3592139db9091d7cfce8ed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/web-server-bundle/zipball/44a6b2deb1c58b2dfd3592139db9091d7cfce8ed", + "reference": "44a6b2deb1c58b2dfd3592139db9091d7cfce8ed", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/config": "~3.4|~4.0", + "symfony/console": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/http-kernel": "~3.3|~4.0", + "symfony/process": "~3.3.14|^3.4.2|^4.0.2" }, "suggest": { - "psr/log": "Allows logging" + "symfony/expression-language": "For using the filter option of the log server.", + "symfony/monolog-bridge": "For using the log server." }, "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "3.4-dev" } }, "autoload": { "psr-4": { - "Symfony\\Bundle\\SwiftmailerBundle\\": "" - } + "Symfony\\Bundle\\WebServerBundle\\": "" + }, + "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 SwiftmailerBundle", - "homepage": "http://symfony.com", - "time": "2017-07-22T07:18:13+00:00" + "description": "Symfony WebServerBundle", + "homepage": "https://symfony.com", + "time": "2018-01-03T17:14:19+00:00" }, { - "name": "symfony/symfony", - "version": "3.3.x-dev", + "name": "symfony/yaml", + "version": "v3.4.6", "source": { "type": "git", - "url": "https://github.com/symfony/symfony.git", - "reference": "e273d8107efe108b3cec4a85a3508c90b7607acc" + "url": "https://github.com/symfony/yaml.git", + "reference": "6af42631dcf89e9c616242c900d6c52bd53bd1bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/symfony/zipball/e273d8107efe108b3cec4a85a3508c90b7607acc", - "reference": "e273d8107efe108b3cec4a85a3508c90b7607acc", + "url": "https://api.github.com/repos/symfony/yaml/zipball/6af42631dcf89e9c616242c900d6c52bd53bd1bb", + "reference": "6af42631dcf89e9c616242c900d6c52bd53bd1bb", "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-intl-icu": "~1.0", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php56": "~1.0", - "symfony/polyfill-php70": "~1.0", - "twig/twig": "~1.34|~2.4" + "php": "^5.5.9|>=7.0.8" }, "conflict": { - "phpdocumentor/reflection-docblock": "<3.0||>=3.2.0,<3.2.2", - "phpdocumentor/type-resolver": "<0.2.1", - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" - }, - "provide": { - "psr/cache-implementation": "1.0", - "psr/container-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/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" + "symfony/console": "<3.4" }, "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", - "sensio/framework-extra-bundle": "^3.0.2", - "symfony/phpunit-bridge": "~3.4|~4.0", - "symfony/security-acl": "~2.8|~3.0" + "symfony/console": "~3.4|~4.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "3.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\\Yaml\\": "" }, - "classmap": [ - "src/Symfony/Component/Intl/Resources/stubs" - ], "exclude-from-classmap": [ - "**/Tests/" + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -6367,12 +8760,9 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "The Symfony PHP framework", + "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "keywords": [ - "framework" - ], - "time": "2017-12-14T22:23:34+00:00" + "time": "2018-02-16T09:50:28+00:00" }, { "name": "thepixeldeveloper/sitemap", @@ -8479,6 +10869,60 @@ ], "time": "2017-01-03T13:21:43+00:00" }, + { + "name": "fig/link-util", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/php-fig/link-util.git", + "reference": "1a07821801a148be4add11ab0603e4af55a72fac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/link-util/zipball/1a07821801a148be4add11ab0603e4af55a72fac", + "reference": "1a07821801a148be4add11ab0603e4af55a72fac", + "shasum": "" + }, + "require": { + "php": ">=5.5.0", + "psr/link": "~1.0@dev" + }, + "require-dev": { + "phpunit/phpunit": "^5.1", + "squizlabs/php_codesniffer": "^2.3.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Fig\\Link\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common utility implementations for HTTP links", + "keywords": [ + "http", + "http-link", + "link", + "psr", + "psr-13", + "rest" + ], + "time": "2016-10-17T18:31:11+00:00" + }, { "name": "friends-of-behat/performance-extension", "version": "v1.0.2", @@ -12043,6 +14487,56 @@ ], "time": "2016-12-08T20:27:08+00:00" }, + { + "name": "psr/link", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/php-fig/link.git", + "reference": "131b5c337db3599ef922e9d6c22889ad237b80b9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/link/zipball/131b5c337db3599ef922e9d6c22889ad237b80b9", + "reference": "131b5c337db3599ef922e9d6c22889ad237b80b9", + "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", + "homepage": "https://github.com/php-fig/link", + "keywords": [ + "http", + "http-link", + "link", + "psr", + "psr-13", + "rest" + ], + "time": "2016-11-17T00:27:01+00:00" + }, { "name": "roave/security-advisories", "version": "dev-master", @@ -12828,6 +15322,119 @@ ], "time": "2017-06-20T01:39:06+00:00" }, + { + "name": "symfony/browser-kit", + "version": "v3.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/browser-kit.git", + "reference": "490f27762705c8489bd042fe3e9377a191dba9b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/490f27762705c8489bd042fe3e9377a191dba9b4", + "reference": "490f27762705c8489bd042fe3e9377a191dba9b4", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/dom-crawler": "~2.8|~3.0|~4.0" + }, + "require-dev": { + "symfony/css-selector": "~2.8|~3.0|~4.0", + "symfony/process": "~2.8|~3.0|~4.0" + }, + "suggest": { + "symfony/process": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\BrowserKit\\": "" + }, + "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 BrowserKit Component", + "homepage": "https://symfony.com", + "time": "2018-01-03T07:37:34+00:00" + }, + { + "name": "symfony/dom-crawler", + "version": "v3.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "2bb5d3101cc01f4fe580e536daf4f1959bc2d24d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/2bb5d3101cc01f4fe580e536daf4f1959bc2d24d", + "reference": "2bb5d3101cc01f4fe580e536daf4f1959bc2d24d", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-mbstring": "~1.0" + }, + "require-dev": { + "symfony/css-selector": "~2.8|~3.0|~4.0" + }, + "suggest": { + "symfony/css-selector": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\DomCrawler\\": "" + }, + "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 DomCrawler Component", + "homepage": "https://symfony.com", + "time": "2018-02-22T10:48:49+00:00" + }, { "name": "symfony/phpunit-bridge", "version": "v3.3.8", @@ -13288,24 +15895,18 @@ "wikimedia/composer-merge-plugin": 20, "piwik/referrer-spam-blacklist": 20, "ddmaster/postgre-search-bundle": 20, - "enqueue/amqp-ext": 20, + "enqueue/amqp-lib": 20, + "enqueue/amqp-tools": 20, "enqueue/enqueue-bundle": 20, "enqueue/null": 20, - "umpirsky/language-list": 20, - "roave/security-advisories": 20, - "phpstan/phpstan": 20, - "phpstan/phpstan-doctrine": 20, - "hautelook/alice-bundle": 10, - "theofidry/alice-data-fixtures": 10, - "devinci/devinci-behat-extension": 20 + "umpirsky/language-list": 20 }, - "prefer-stable": false, + "prefer-stable": true, "prefer-lowest": false, "platform": { "ext-pdo_pgsql": "*", - "ext-redis": "*", - "ext-imagick": "*", - "php": ">=7.1" + "php": ">=7.1", + "ext-imagick": "*" }, "platform-dev": [] } diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..53914e4 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,54 @@ +version: '3.5' + +services: + db: + image: postgres:9.6 + volumes: + - db-data:/var/lib/postgresql/data:rw + environment: + POSTGRES_USER: audiencehero + POSTGRES_PASSWORD: audiencehero + POSTGRES_DB: audiencehero + ports: + - "5432:5432" + + rabbitmq: + image: rabbitmq:3-management-alpine + environment: + RABBITMQ_DEFAULT_VHOST: audiencehero + + php: + build: + context: ./ + dockerfile: ./Dockerfile + env_file: + - ./.env + depends_on: + - db + - rabbitmq + volumes: + - ./:/srv/audiencehero:rw,cached + + node: + build: + context: ./ + dockerfile: ./Dockerfile.node + env_file: + - ./.env + volumes: + - ./:/srv/audiencehero:rw,cached + + nginx: + image: nginx:1.13-alpine + env_file: + - ./.env + depends_on: + - php + ports: + - "8080:80" + volumes: + - ./docker/nginx/conf.d/default.template:/etc/nginx/conf.d/default.template + - ./web:/srv/audiencehero/web:ro + +volumes: + db-data: {} diff --git a/docker/nginx/conf.d/default.conf b/docker/nginx/conf.d/default.conf new file mode 100644 index 0000000..373044c --- /dev/null +++ b/docker/nginx/conf.d/default.conf @@ -0,0 +1,40 @@ +server { + root /srv/audiencehero/web; + + client_max_body_size 100M; + + location / { + # try to serve file directly, fallback to index.php + try_files $uri /index.php$is_args$args; + } + + location ~ ^/index\.php(/|$) { + # Comment the next line and uncomment the next to enable dynamic resolution (incompatible with Kubernetes) + fastcgi_pass php:9000; + #resolver 127.0.0.11; + #set $upstream_host php; + #fastcgi_pass $upstream_host:9000; + + fastcgi_split_path_info ^(.+\.php)(/.*)$; + include fastcgi_params; + # When you are using symlinks to link the document root to the + # current version of your application, you should pass the real + # application path instead of the path to the symlink to PHP + # FPM. + # Otherwise, PHP's OPcache may not properly detect changes to + # your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126 + # for more information). + fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; + fastcgi_param DOCUMENT_ROOT $realpath_root; + # Prevents URIs that include the front controller. This will 404: + # http://domain.tld/index.php/some-path + # Remove the internal directive to allow URIs like this + internal; + } + + # return 404 for all other php files not matching the front controller + # this prevents access to other php files you don't want to be accessible. + location ~ \.php$ { + return 404; + } +} \ No newline at end of file diff --git a/docker/node/docker-entrypoint.sh b/docker/node/docker-entrypoint.sh new file mode 100644 index 0000000..e4549ad --- /dev/null +++ b/docker/node/docker-entrypoint.sh @@ -0,0 +1,5 @@ +#!/bin/sh +set -e + +yarn install +NODE_ENV=development yarn run encore dev --watch diff --git a/docker/php/docker-entrypoint.sh b/docker/php/docker-entrypoint.sh new file mode 100644 index 0000000..923a8fe --- /dev/null +++ b/docker/php/docker-entrypoint.sh @@ -0,0 +1,22 @@ +#!/bin/sh +set -e + +# first arg is `-f` or `--some-option` +if [ "${1#-}" != "$1" ]; then + set -- php-fpm "$@" +fi + +if [ "$1" = 'php-fpm' ] || [ "$1" = 'bin/console' ]; then + composer install --prefer-dist --no-progress --no-suggest --no-interaction + php bin/console assets:install + php bin/console doctrine:database:create --if-not-exists + php bin/console doctrine:schema:drop --full-database --force --no-interaction + php bin/console doctrine:schema:create --no-interaction + php bin/console doctrine:query:sql "CREATE EXTENSION IF NOT EXISTS \"uuid-ossp\"" + php bin/console hautelook:fixtures:load --no-interaction + + # Permissions hack because setfacl does not work on Mac and Windows + chown -R www-data var +fi + +exec docker-php-entrypoint "$@" \ No newline at end of file diff --git a/docker/php/php.ini b/docker/php/php.ini new file mode 100644 index 0000000..e978763 --- /dev/null +++ b/docker/php/php.ini @@ -0,0 +1,10 @@ +apc.enable_cli = 1 +date.timezone = UTC +session.auto_start = Off +short_open_tag = Off + +# http://symfony.com/doc/current/performance.html +opcache.max_accelerated_files = 20000 +realpath_cache_size = 4096K +realpath_cache_ttl = 600 +upload_max_filesize = 200M \ No newline at end of file diff --git a/src/AudienceHero/Bundle/CoreBundle/composer.json b/src/AudienceHero/Bundle/CoreBundle/composer.json index fac5fd1..94c0cca 100644 --- a/src/AudienceHero/Bundle/CoreBundle/composer.json +++ b/src/AudienceHero/Bundle/CoreBundle/composer.json @@ -21,7 +21,8 @@ "ddmaster/postgre-search-bundle": "dev-master", "doctrine/doctrine-cache-bundle": "^1.3", "dunglas/doctrine-json-odm": "^0.1.0", - "enqueue/amqp-ext": "dev-master", + "enqueue/amqp-lib": "dev-master", + "enqueue/amqp-tools": "dev-master", "enqueue/enqueue-bundle": "dev-master", "enqueue/null": "dev-master", "friendsofsymfony/user-bundle": "^2.0", @@ -47,7 +48,12 @@ "symfony/swiftmailer-bundle": "^2.3.10", "umpirsky/country-list": "^2.0", "umpirsky/language-list": "dev-master", - "willdurand/geocoder-bundle": "^5.0" + "willdurand/geocoder-bundle": "^5.0", + "symfony/debug-bundle": "^3.3", + "symfony/web-profiler-bundle": "^3.3", + "symfony/dotenv": "^3.3", + "symfony/asset": "^3.3", + "symfony/templating": "^3.3" }, "require-dev": { "roave/security-advisories": "dev-master", diff --git a/web/app.php b/web/app.php deleted file mode 100644 index 897af66..0000000 --- a/web/app.php +++ /dev/null @@ -1,31 +0,0 @@ -loadClassCache(); -$request = Request::createFromGlobals(); -$response = $kernel->handle($request); -$response->send(); -$kernel->terminate($request, $response); diff --git a/web/app_prod.php b/web/app_prod.php deleted file mode 100644 index a3c1519..0000000 --- a/web/app_prod.php +++ /dev/null @@ -1,21 +0,0 @@ -loadClassCache(); -//$kernel = new AppCache($kernel); - -// When using the HttpCache, you need to call the method in your front controller instead of relying on the configuration parameter -//Request::enableHttpMethodParameterOverride(); -$request = Request::createFromGlobals(); -$response = $kernel->handle($request); -$response->send(); -$kernel->terminate($request, $response); diff --git a/web/index.php b/web/index.php new file mode 100644 index 0000000..26468a8 --- /dev/null +++ b/web/index.php @@ -0,0 +1,38 @@ +load(__DIR__.'/../.env'); +} + +$env = $_SERVER['APP_ENV'] ?? 'dev'; +$debug = $_SERVER['APP_DEBUG'] ?? ('prod' !== $env); + +if ($debug) { + umask(0000); + + Debug::enable(); +} + +if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? false) { + Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST); +} + +if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? false) { + Request::setTrustedHosts(explode(',', $trustedHosts)); +} + +$kernel = new AppKernel($env, $debug); +$request = Request::createFromGlobals(); +$response = $kernel->handle($request); +$response->send(); +$kernel->terminate($request, $response);