diff --git a/.gitattributes b/.gitattributes index 9377e98..7c8cbb0 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,2 @@ /.github export-ignore -/.gitattributes export-ignore -/screenshots export-ignore \ No newline at end of file +/.gitattributes export-ignore \ No newline at end of file diff --git a/.github/workflows/dockerpublish.yml b/.github/workflows/ci.yaml similarity index 50% rename from .github/workflows/dockerpublish.yml rename to .github/workflows/ci.yaml index 6036a20..f48ecee 100644 --- a/.github/workflows/dockerpublish.yml +++ b/.github/workflows/ci.yaml @@ -1,32 +1,40 @@ -name: Docker +name: CI + +on: push -on: - push: - branches: - - master env: - PHP_IMAGE: vuongxuongminh/docker-helm-symfony-php - NGINX_IMAGE: vuongxuongminh/docker-helm-symfony-nginx + IMAGE: vuongxuongminh/docker-helm-symfony jobs: - # Run tests. - # See also https://docs.docker.com/docker-hub/builds/automated-testing/ + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Run setup + run: docker-compose run --rm setup + - name: Up services + run: docker-compose up -d + - name: Wait seconds + run: sleep 5 + - name: Test with curl + run: curl http://localhost | grep "Welcome to Symfony!" build: + if: ${{ github.ref == 'refs/heads/main' }} + needs: [test] runs-on: ubuntu-latest - steps: - uses: actions/checkout@v2 - name: Log into registry run: echo "${{ secrets.DOCKER_HUB_TOKEN }}" | docker login -u ${{ github.actor }} --password-stdin - + - name: Build images run: | - docker-compose -f docker-compose.yaml -f docker-compose.override.yaml build - docker-compose -f docker-compose.yaml -f docker-compose.prod.yaml build + docker-compose -f docker-compose.yaml -f docker-compose.override.yaml build fpm + docker-compose -f docker-compose.yaml -f docker-compose.prod.yaml build fpm - name: Push image run: | - docker-compose -f docker-compose.yaml -f docker-compose.override.yaml push - docker-compose -f docker-compose.yaml -f docker-compose.prod.yaml push + docker-compose -f docker-compose.yaml -f docker-compose.override.yaml push fpm + docker-compose -f docker-compose.yaml -f docker-compose.prod.yaml push fpm diff --git a/README.md b/README.md index c7c9890..097fb30 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,10 @@ # Modern containerize template for Symfony -![Build Status](https://github.com/vuongxuongminh/docker-helm-symfony/workflows/Docker/badge.svg) +![Build Status](https://github.com/vuongxuongminh/docker-helm-symfony/actions/workflows/ci.yaml/badge.svg) ## About it -This is a clean template base on `symfony/skeleton` (Symfony 5) with common Symfony packages: - -+ Debug (dev env). -+ Mailer. -+ Messenger. -+ ORM. -+ Twig. - -And set of Docker services, include basic Helm chart help you save time and easy to deploy it in your Kubernetes cluster. +This is a clean template base on `symfony/skeleton` project template and set of Docker services, include basic Helm chart help you save time and easy to deploy it in your Kubernetes cluster. ## Prerequisites @@ -28,7 +20,8 @@ Start by downloading [distribution .tar.gz file](https://github.com/vuongxuongmi After download and extract, open a terminal, and navigate to the directory containing your project. Run the following command to start all services using Docker Compose: ```shell script -$ docker-compose pull # Download the latest versions of the pre-built images +$ docker-compose pull # Download the latest versions of the pre-built images. +$ docker-compose run --rm setup # Setup project (first time only). $ docker-compose up -d # Running in detached mode ``` @@ -37,57 +30,29 @@ This starts the following services: | Name | Description | Ports | Environments | |---------------|---------------------------------------------------------------------|------ |--------------| | fpm | FastCGI process manager with PHP-FPM 7.4.12, Composer. | n/a | all | -| supervisor | Process control system with PHP 7.4.12, Supervisor 4.1.0, Composer | 9000 | all | | nginx | Reverse proxy handle request with NGINX 1.17 | 80 | all | | setup | Setup service help run migration & install Composer package | n/a | dev | -| promtail | Ship logs of Nginx & FPM & Supervisor services to Loki | n/a | dev | -| loki | Logs datasource | n/a | dev | -| grafana | Logs visualization | 3000 | dev | -| rabbitmq | Message broker | 15672 | dev | -| mysql | Mysql database server | 3306 | dev | -| mailhog | Mail server mock | 8025 | dev | This results in the following running containers: ```shell script $ docker-compose ps - Name Command State Ports ---------------------------------------------------------------------------------------------------------------------------------------------------------------- -docker-helm-symfony_fpm_1 docker-entrypoint fpm Up (healthy) 9000/tcp -docker-helm-symfony_grafana_1 /run.sh Up 0.0.0.0:3000->3000/tcp -docker-helm-symfony_loki_1 /usr/bin/loki -config.file ... Up 3100/tcp -docker-helm-symfony_mailhog_1 MailHog Up 1025/tcp, 0.0.0.0:8025->8025/tcp -docker-helm-symfony_mysql_1 docker-entrypoint.sh --def ... Up 3306/tcp, 33060/tcp -docker-helm-symfony_nginx_1 docker-entrypoint nginx -g ... Up (healthy) 0.0.0.0:80->80/tcp -docker-helm-symfony_promtail_1 /usr/bin/promtail -config. ... Up -docker-helm-symfony_rabbitmq_1 docker-entrypoint.sh rabbi ... Up 15671/tcp, 0.0.0.0:15672->15672/tcp, 25672/tcp, 4369/tcp, 5671/tcp, 5672/tcp -docker-helm-symfony_setup_1 docker-entrypoint setup Exit 0 -docker-helm-symfony_supervisor_1 docker-entrypoint supervisor Up (healthy) 0.0.0.0:9000->9000/tcp + Name Command State Ports +------------------------------------------------------------------------------------------------------------ +docker-helm-symfony_fpm_1 docker-entrypoint fpm Up (healthy) +docker-helm-symfony_nginx_1 /opt/bitnami/scripts/nginx ... Up (healthy) 0.0.0.0:80->8080/tcp, 8443/tcp +docker-helm-symfony_setup_1 docker-entrypoint setup Exit 0 ``` -If you want to change a PHP or Nginx version, open `docker-compose.yaml` and add build args: - -+ `PHP_VERSION` for change php version (ex: `PHP_VERSION: '7.3'`). -+ `NGINX_VERSION` for change nginx version (ex: `NGINX_VERSION: '1.16'`). - -Open [Dockerfile](/docker/Dockerfile) to see more build args. - -Now you can visiting: +If you want to change a PHP version, open `docker-compose.yaml` and add build args: -+ Your Symfony app: http://localhost -+ Supervisor: http://localhost:9000 (Username: `root`, Password: `root` you can set it in `docker-compose.override.yaml`) -+ RabbitMQ: http://localhost:15672 (Username: `guest`, Password: `guest` you can set it in `docker-compose.override.yaml`) -+ Grafana: http://localhost:3000/dashboards (Username: `admin`, Password: `admin` you can set it in `docker-compose.override.yaml`) -+ Mailhog: http://localhost:8025 ++ `PHP_VERSION` for change php version (ex: `PHP_VERSION: '7.4'`). -And access MySQL via port 3306 (Username: `root`, Password: `root` you can set it in `docker-compose.override.yaml`) -### Grafana dashboards - -+ Logs visualization +Open [Dockerfile](/docker/Dockerfile) to see more build args. -![Logs visualization](./screenshots/dashboard.png) +Now you can visiting your Symfony app: http://localhost ## Deploy project into Kubernetes cluster @@ -96,13 +61,13 @@ And access MySQL via port 3306 (Username: `root`, Password: `root` you can set i Firstly you need to update helm dependencies by running: ```shell script -$ helm dep update ./helm/symfony +$ helm dep update ./helm-chart/ ``` And install chart: ```shell script -$ helm install app ./helm/symfony +$ helm install app ./helm-chart/ ``` The command deploys your project on the Kubernetes cluster in the default configuration. The [Parameters](#parameters) section lists the parameters that can be configured during installation. @@ -122,89 +87,25 @@ The following table lists the configurable parameters of this chart and their de | Parameter | Description | Default | |----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------| | imagePullSecrets | Docker registry secret names as an array. | `[]` | -| imagePullPolicy | Image pull policy. | `Always` | -| php.image.repository | PHP image name. | `vuongxuongminh/docker-helm-symfony-php` | -| php.image.tag | PHP image tag. | `prod` | -| php.supervisor.basicAuth.username | Supervisor basic auth username. | `user` | -| php.supervisor.basicAuth.password | Supervisor basic auth password. | `!ChangeMe!` | -| php.supervisor.replicaCount | Supervisor replica count. | `1` | -| php.supervisor.nodeSelector | Supervisor node labels for pod assignment. | `{}` | -| php.supervisor.tolerations | Supervisor toleration labels for pod assignment. | `[]` | -| php.supervisor.affinity | Supervisor affinity settings for pod assignment. | `{}` | -| php.supervisor.podAnnotations | Supervisor pod annotations. | `{}` | -| php.supervisor.resources | Supervisor resource needs and limits to apply to the pod. | `{}` | -| php.fpm.replicaCount | FPM replica count. | `1` | -| php.fpm.nodeSelector | FPM node labels for pod assignment. | `{}` | -| php.fpm.tolerations | FPM toleration labels for pod assignment. | `[]` | -| php.fpm.affinity | FPM affinity settings for pod assignment. | `{}` | -| php.fpm.podAnnotations | FPM pod annotations. | `{}` | -| php.fpm.resources | FPM resource needs and limits to apply to the pod. | `{}` | -| php.env | Use to set `APP_ENV` env in Supervisor & FPM containers. | `prod` | -| php.debug | Use to set `APP_DEBUG` env in Supervisor & FPM containers. | `0` | -| php.trustedHosts | Use to set `TRUSTED_HOSTS` env in Supervisor & FPM containers. | `^.*\\.example\\.com$` | -| php.trustedProxies | Use to set `TRUSTED_PROXIES` env in Supervisor & FPM containers. | `[10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16]` list common CIDR default of K8S. | -| nginx.image.repository | Nginx image name. | `vuongxuongminh/docker-helm-symfony-nginx` | -| nginx.image.tag | Nginx image tag. | `prod` | -| nginx.replicaCount | Nginx replica count. | `1` | -| nginx.nodeSelector | Nginx node labels for pod assignment. | `{}` | -| nginx.tolerations | Nginx toleration labels for pod assignment. | `[]` | -| nginx.affinity | Nginx affinity settings for pod assignment. | `{}` | -| nginx.podAnnotations | Nginx pod annotations. | `{}` | -| nginx.resources | Nginx resource needs and limits to apply to the pod. | `{}` | -| ingress.annotations | Ingress annotations. | `{}` | -| ingress.tls | Enable ingress with tls. | `false` | -| ingress.nginx.host | Ingress Nginx host name. | `nginx.example` | -| ingress.nginx.tlsSecret | Ingress Nginx tls secret name. | `nginx-tls` | -| ingress.supervisor.host | Ingress Supervisor host name. | `supervisor.example` | -| ingress.supervisor.tlsSecret | Ingress Supervisor tls secret name. | `supervisor-tls` | -| mysql.internal | Use internal MySQL (sub chart) or not. | `true` | -| mysql.fullnameOverride | MySQL internal fullname. | `sub-chart-mysql` | -| mysql.mysqlDatabase | MySQL internal database name. | `test` | -| mysql.mysqlUser | MySQL internal username. | `user` | -| mysql.mysqlPassword | MySQL internal password. | `!ChangeMe!` | -| mysql.persistence.enabled | MySQL internal use a PVC to persist data. | `false` | -| mysql.nodeSelector | MySQL internal node labels for pod assignment. | `{}` | -| mysql.tolerations | MySQL internal toleration labels for pod assignment. | `[]` | -| mysql.podAnnotations | MySQL internal pod annotations. | `{}` | -| mysql.resources | MySQL internal resource needs and limits to apply to the pod. | `{}` | -| mysql.externalDsn | MySQL externalDsn use to set `DATABASE_URL` env in Supervisor & FPM containers. Use when `mysql.internal` is false. | `''` | -| rabbitmq.internal | Use internal RabbitMQ (sub chart) or not. | `true` | -| rabbitmq.fullnameOverride | RabbitMQ internal fullname. | `sub-chart-rabbitmq` | -| rabbitmq.updateStrategy.type | RabbitMQ internal statefulset update strategy policy. | `OnDelete` | -| rabbitmq.persistence.enabled | RabbitMQ internal use a PVC to persist data. | `false` | -| rabbitmq.service.port | RabbitMQ internal service port. | `5672` | -| rabbitmq.rabbitmq.username | RabbitMQ internal username. | `user` | -| rabbitmq.rabbitmq.password | RabbitMQ internal password. | `!ChangeMe!` | -| rabbitmq.ingress.enabled | RabbitMQ internal enable ingress for management site or not. | `true` | -| rabbitmq.ingress.tls | RabbitMQ internal enable ingress with tls. | `false` | -| rabbitmq.ingress.tlsSecret | RabbitMQ internal ingress tls secret name. | `rabbitmq-tls` | -| rabbitmq.ingress.hostName | RabbitMQ internal ingress host name. | `rabbitmq.example` | -| rabbitmq.ingress.annotations | RabbitMQ internal ingress annotations. | `{}` | -| rabbitmq.nodeSelector | RabbitMQ internal node labels for pod assignment. | `{}` | -| rabbitmq.tolerations | RabbitMQ internal toleration labels for pod assignment. | `[]` | -| rabbitmq.affinity | RabbitMQ internal affinity settings for pod assignment. | `{}` | -| rabbitmq.podAnnotations | RabbitMQ internal pod annotations. | `{}` | -| rabbitmq.resources | RabbitMQ internal resource needs and limits to apply to the pod. | `{}` | -| rabbitmq.externalDsn | RabbitMQ externalDsn use to set `MESSENGER_TRANSPORT_DSN` env in Supervisor & FPM containers. Use when `rabbitmq.internal` is false. | `''` | +| global.fpm.image.repository | Image repo. | `vuongxuongminh/docker-helm-symfony-php` | +| global.fpm.image.tag | Image tag. | `prod` | +| global.fpm.image.pullPolicy | Image pull policy. | `prod` | +| global.fpm.env | Use to set `APP_ENV` env in FPM container. | `prod` | +| global.fpm.debug | Use to set `APP_DEBUG` env in FPM container. | `0` | Specify each parameter using the --set key=value[,key=value] argument to helm install. For example, ```shell script -$ helm install app ./helm/symfony \ - --set ingress.nginx.hostName=nginx.example.com,ingress.supervisor.hostName=supervisor.example.com,rabbitmq.ingress.hostName=rabbitmq.example.com +$ helm install app ./helm-chart \ + --set global.fpm.env=prod,global.fpm.debug=1 ``` -The above command sets the Nginx host name to `nginx.example.com`, Supervisor host name to `supervisor.example.com` and RabbitMQ management host name to `rabbitmq.example.com`. +The above command sets the environment variables APP_ENV to `prod`, APP_DEBUG to `1`. Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example, ```shell script -$ helm install app ./helm/symfony -f values.yaml +$ helm install app ./helm-chart -f values.yaml ``` -> Tip: You can use the default [values.yaml](/helm/symfony/values.yaml) - - -### About database migration job - -When you install or upgrade chart, Helm automatically invoke [database migration job](/helm/symfony/templates/hook/job.yaml) after it done thanks to [chart hook](https://helm.sh/docs/topics/charts_hooks/). +> Tip: You can use the default [values.yaml](/helm-chart/values.yaml) and read more Nginx parameters at [here](https://github.com/bitnami/charts/tree/master/bitnami/nginx). diff --git a/docker-compose.override.yaml b/docker-compose.override.yaml index 1a28c37..fbe1b6e 100644 --- a/docker-compose.override.yaml +++ b/docker-compose.override.yaml @@ -5,38 +5,25 @@ x-build: APP_ENV: 'dev' APP_DEBUG: '1' - &build-cache - - ${PHP_IMAGE:-vuongxuongminh/docker-helm-symfony-php}:dev - - ${NGINX_IMAGE:-vuongxuongminh/docker-helm-symfony-nginx}:dev + - ${IMAGE:-vuongxuongminh/docker-helm-symfony}:dev services: - mysql: - image: mysql:8 - command: ['--default-authentication-plugin=mysql_native_password'] - environment: - MYSQL_DATABASE: 'test' - MYSQL_ROOT_PASSWORD: 'root' - volumes: - - db-data:/var/lib/mysql - setup: - image: ${PHP_IMAGE:-vuongxuongminh/docker-helm-symfony-php}:dev + image: ${IMAGE:-vuongxuongminh/docker-helm-symfony}:dev command: ['setup'] build: context: . - dockerfile: ./docker/Dockerfile - target: php + dockerfile: ./docker/fpm/Dockerfile cache_from: *build-cache args: << : *build-args environment: << : *build-args volumes: - - ./symfony:/symfony:rw - depends_on: - - mysql + - ./symfony:/symfony fpm: - image: ${PHP_IMAGE:-vuongxuongminh/docker-helm-symfony-php}:dev + image: ${IMAGE:-vuongxuongminh/docker-helm-symfony-php}:dev build: cache_from: *build-cache args: @@ -44,102 +31,9 @@ services: environment: << : *build-args volumes: - - ./symfony:/symfony:rw,cached - - fpm-log-data:/symfony/var/log:rw - depends_on: - - rabbitmq - - mailhog - - mysql - - supervisor: - image: ${PHP_IMAGE:-vuongxuongminh/docker-helm-symfony-php}:dev - build: - cache_from: *build-cache - args: - << : *build-args - environment: - << : *build-args - SUPERVISOR_USERNAME: root - SUPERVISOR_PASSWORD: root - volumes: - - ./symfony:/symfony:rw,cached - - supervisor-log-data:/symfony/var/log:rw - ports: - - target: 9000 - published: 9000 - protocol: tcp - depends_on: - - rabbitmq - - mailhog - - mysql + - ./symfony:/symfony nginx: - image: ${NGINX_IMAGE:-vuongxuongminh/docker-helm-symfony-nginx}:dev - build: - cache_from: *build-cache - args: - << : *build-args - environment: - # `fpm` container name use to pass request via `fastcgi_pass`, it useful when you want to change `fpm` service name or container name of it. - FPM_SERVICE: fpm - volumes: - - ./symfony/public:/symfony/public:rw,cached - - nginx-log-data:/var/log/nginx:rw - ports: - - target: 80 - published: 80 - protocol: tcp - depends_on: - - fpm - - mailhog: - image: mailhog/mailhog - ports: - - target: 8025 - published: 8025 - protocol: tcp - - rabbitmq: - image: rabbitmq:3.8-management-alpine - ports: - - target: 15672 - published: 15672 - protocol: tcp - - grafana: - image: grafana/grafana - environment: - GF_SECURITY_ADMIN_USER: admin - GF_SECURITY_ADMIN_PASSWORD: admin - volumes: - - grafana-data:/var/lib/grafana - - ./docker/grafana/datasources:/etc/grafana/provisioning/datasources:ro - - ./docker/grafana/dashboards:/etc/grafana/provisioning/dashboards:ro - depends_on: - - promtail - ports: - - target: 3000 - published: 3000 - protocol: tcp - - loki: - image: grafana/loki - command: -config.file=/etc/loki/local-config.yaml - - promtail: - image: grafana/promtail - depends_on: - - loki volumes: - - fpm-log-data:/var/log/fpm - - nginx-log-data:/var/log/nginx - - supervisor-log-data:/var/log/supervisor - - ./docker/promtail:/etc/promtail:ro - command: -config.file=/etc/promtail/config.yaml - -volumes: - db-data: {} - grafana-data: {} - fpm-log-data: {} - nginx-log-data: {} - supervisor-log-data: {} + - ./symfony/public:/symfony/public + - ./docker/nginx/default.conf:/opt/bitnami/nginx/conf/server_blocks/default.conf:ro diff --git a/docker-compose.prod.yaml b/docker-compose.prod.yaml index e799bbb..567391b 100644 --- a/docker-compose.prod.yaml +++ b/docker-compose.prod.yaml @@ -5,26 +5,11 @@ x-build: APP_ENV: 'prod' APP_DEBUG: '0' - &build-cache - - ${PHP_IMAGE:-vuongxuongminh/docker-helm-symfony-php}:prod - - ${NGINX_IMAGE:-vuongxuongminh/docker-helm-symfony-nginx}:prod + - ${IMAGE:-vuongxuongminh/docker-helm-symfony}:prod services: fpm: - image: ${PHP_IMAGE:-vuongxuongminh/docker-helm-symfony-php}:prod - build: - cache_from: *build-cache - args: - << : *build-args - - supervisor: - image: ${PHP_IMAGE:-vuongxuongminh/docker-helm-symfony-php}:prod - build: - cache_from: *build-cache - args: - << : *build-args - - nginx: - image: ${NGINX_IMAGE:-vuongxuongminh/docker-helm-symfony-nginx}:prod + image: ${IMAGE:-vuongxuongminh/docker-helm-symfony}:prod build: cache_from: *build-cache args: diff --git a/docker-compose.yaml b/docker-compose.yaml index 69d593a..fa0b394 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -5,38 +5,24 @@ services: command: ['fpm'] build: context: . - dockerfile: ./docker/Dockerfile - target: php + dockerfile: ./docker/fpm/Dockerfile healthcheck: test: ['CMD', 'docker-healthcheck', 'fpm'] interval: 10s timeout: 3s retries: 3 - start_period: 30s - - supervisor: - command: ['supervisor'] - build: - context: . - dockerfile: ./docker/Dockerfile - target: php - healthcheck: - test: ['CMD', 'docker-healthcheck', 'supervisor'] - interval: 10s - timeout: 3s - retries: 3 - start_period: 30s + start_period: 10s + network_mode: service:nginx nginx: - build: - context: . - dockerfile: ./docker/Dockerfile - target: nginx + image: bitnami/nginx healthcheck: - test: ['CMD', 'docker-healthcheck'] + test: ['CMD', 'curl', '-f', 'http://localhost:8080/status'] interval: 10s timeout: 3s retries: 3 - start_period: 30s - depends_on: - - fpm \ No newline at end of file + start_period: 10s + ports: + - target: 8080 + published: 80 + protocol: tcp \ No newline at end of file diff --git a/docker/Dockerfile b/docker/Dockerfile deleted file mode 100644 index 43429bc..0000000 --- a/docker/Dockerfile +++ /dev/null @@ -1,146 +0,0 @@ -ARG PHP_VERSION='7.4.12' -ARG NGINX_VERSION='1.17' - -# "php" stage -FROM php:${PHP_VERSION}-fpm-alpine AS php - -ARG APP_ENV -ARG APP_DEBUG - -# extensions default version -ARG APCU_VERSION=5.1.18 -ARG AMQP_VERSION=1.9.4 - -RUN apk add --no-cache \ - git \ - acl \ - fcgi \ - file \ - gettext \ - py3-pip \ - ; - -RUN set -eux; \ - apk add --no-cache --virtual .build-deps \ - $PHPIZE_DEPS \ - icu-dev \ - libzip-dev \ - zlib-dev \ - rabbitmq-c-dev \ - ; \ - pip3 install supervisor; \ - docker-php-ext-configure zip; \ - docker-php-ext-install -j$(nproc) \ - intl \ - zip \ - pdo_mysql \ - ; \ - pecl install \ - apcu-${APCU_VERSION} \ - amqp-${AMQP_VERSION} \ - ; \ - pecl clear-cache; \ - docker-php-ext-enable \ - apcu \ - opcache \ - amqp \ - ; \ - \ - 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 .api-phpexts-rundeps $runDeps; \ - apk del .build-deps - -COPY --from=composer:2 /usr/bin/composer /usr/bin/composer - -RUN chmod +x /usr/bin/composer; sync - -RUN if [ "${APP_ENV}" = 'prod' ]; then \ - ln -sf $PHP_INI_DIR/php.ini-production $PHP_INI_DIR/php.ini; \ - else \ - ln -sf $PHP_INI_DIR/php.ini-development $PHP_INI_DIR/php.ini; \ - fi - -COPY /docker/php/conf.d/$APP_ENV.ini $PHP_INI_DIR/conf.d/config.ini -COPY /docker/php/supervisord /var/supervisord - -WORKDIR /symfony - -# Copy needed resources of app. -COPY /symfony/composer.json /symfony/composer.json -COPY /symfony/composer.lock /symfony/composer.lock -COPY /symfony/symfony.lock /symfony/symfony.lock -COPY /symfony/.env /symfony/.env -COPY /symfony/bin /symfony/bin -COPY /symfony/config /symfony/config -COPY /symfony/src /symfony/src -COPY /symfony/migrations /symfony/migrations -COPY /symfony/public /symfony/public - -# Install Symfony Flex globally to speed up download of Composer packages (parallelized prefetching) -RUN set -eux; \ - composer global require "symfony/flex" --prefer-dist --no-progress --no-suggest --classmap-authoritative; \ - composer clear-cache - -ENV PATH="${PATH}:/root/.composer/vendor/bin" - -RUN if [ "${APP_ENV}" = 'prod' ]; then \ - composer install --prefer-dist --no-dev --no-scripts --no-progress --no-suggest; \ - else \ - composer install --prefer-dist --no-scripts --no-progress --no-suggest; \ - fi - -# do not use .env files -RUN composer clear-cache; \ - composer dump-env $APP_ENV; \ - rm .env - -RUN mkdir -p /symfony/var/cache /symfony/var/log; - -RUN if [ "$APP_ENV" = 'prod' ]; then \ - composer dump-autoload --classmap-authoritative --no-dev; \ - composer run-script --no-dev post-install-cmd; \ - else \ - composer dump-autoload --classmap-authoritative; \ - composer run-script post-install-cmd; \ - fi - -VOLUME /symfony/var - -RUN chmod +x bin/console; sync - -RUN set -eux; \ - { \ - echo '[www]'; \ - echo 'ping.path = /ping'; \ - } | tee /usr/local/etc/php-fpm.d/docker-healthcheck.conf - -COPY /docker/php/docker-entrypoint.sh /usr/local/bin/docker-entrypoint -COPY /docker/php/docker-healthcheck.sh /usr/local/bin/docker-healthcheck - -RUN chmod +x /usr/local/bin/docker-entrypoint /usr/local/bin/docker-healthcheck - -ENTRYPOINT ["docker-entrypoint"] - -# "nginx" stage -FROM nginx:${NGINX_VERSION}-alpine AS nginx - -# Add curl for health check. -RUN set -eux; \ - apk add curl --no-cache - -WORKDIR /symfony/public - -COPY /docker/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.stuff -COPY /docker/nginx/docker-entrypoint.sh /usr/local/bin/docker-entrypoint -COPY /docker/nginx/docker-healthcheck.sh /usr/local/bin/docker-healthcheck -COPY --from=php /symfony/public /symfony/public - -RUN chmod +x /usr/local/bin/docker-entrypoint /usr/local/bin/docker-healthcheck - -ENTRYPOINT ["docker-entrypoint"] -CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/docker/fpm/Dockerfile b/docker/fpm/Dockerfile new file mode 100644 index 0000000..db4c9ab --- /dev/null +++ b/docker/fpm/Dockerfile @@ -0,0 +1,68 @@ +ARG PHP_VERSION='8.0' + +FROM php:${PHP_VERSION}-fpm-alpine + +RUN apk add --no-cache \ + git \ + acl \ + fcgi \ + file \ + gettext \ + ; + +COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/ + +ARG APP_ENV +ARG APP_DEBUG + +COPY /docker/fpm/conf.d/ $PHP_INI_DIR/conf.d/ + +RUN set -exu; \ + if [ "${APP_ENV}" = "dev" ]; then \ + ln -sf $PHP_INI_DIR/php.ini-development $PHP_INI_DIR/php.ini; \ + ln -sf $PHP_INI_DIR/conf.d/custom.ini-development $PHP_INI_DIR/custom.ini; \ + else \ + ln -sf $PHP_INI_DIR/php.ini-production $PHP_INI_DIR/php.ini; \ + ln -sf $PHP_INI_DIR/conf.d/custom.ini-production $PHP_INI_DIR/custom.ini; \ + fi; \ + install-php-extensions gd intl zip pcntl apcu opcache @composer; \ + rm /usr/local/bin/install-php-extensions; + +WORKDIR /symfony + +## Remove it and copy your source here. +RUN if [ "${APP_ENV}" = "prod" ]; then \ + composer create-project symfony/skeleton . --prefer-dist --no-dev --no-progress --no-interaction; \ + else \ + composer create-project symfony/skeleton . --prefer-dist --no-progress --no-interaction; \ + fi + +RUN mkdir -p var/cache var/log; + +RUN if [ "${APP_ENV}" = "prod" ]; then \ + composer install --prefer-dist --no-dev --no-scripts --no-progress --no-suggest; \ + composer dump-autoload --classmap-authoritative --no-dev; \ + else \ + composer install --prefer-dist --no-scripts --no-progress --no-suggest; \ + composer dump-autoload --classmap-authoritative; \ + fi + +RUN set -eux; \ + composer symfony:dump-env "${APP_ENV}"; \ + composer run-script --no-dev post-install-cmd; \ + chmod +x bin/console; sync; +RUN { \ + echo '[www]'; \ + echo 'ping.path = /ping'; \ + } | tee /usr/local/etc/php-fpm.d/docker-healthcheck.conf + +VOLUME /symfony/var + +COPY /docker/fpm/docker-entrypoint.sh /usr/local/bin/docker-entrypoint +COPY /docker/fpm/docker-healthcheck.sh /usr/local/bin/docker-healthcheck + +RUN chmod +x /usr/local/bin/docker-entrypoint /usr/local/bin/docker-healthcheck + +ENTRYPOINT ["docker-entrypoint"] + +CMD ["fpm"] \ No newline at end of file diff --git a/docker/php/conf.d/dev.ini b/docker/fpm/conf.d/custom.ini-development similarity index 100% rename from docker/php/conf.d/dev.ini rename to docker/fpm/conf.d/custom.ini-development diff --git a/docker/php/conf.d/prod.ini b/docker/fpm/conf.d/custom.ini-production similarity index 85% rename from docker/php/conf.d/prod.ini rename to docker/fpm/conf.d/custom.ini-production index fb0eb3c..48f3228 100644 --- a/docker/php/conf.d/prod.ini +++ b/docker/fpm/conf.d/custom.ini-production @@ -2,6 +2,7 @@ apc.enable_cli = 1 date.timezone = UTC session.auto_start = Off short_open_tag = Off +expose_php = Off # https://symfony.com/doc/current/performance.html opcache.interned_strings_buffer = 16 @@ -12,5 +13,5 @@ realpath_cache_size = 4096K realpath_cache_ttl = 600 # https://symfony.com/blog/new-in-symfony-4-4-preloading-symfony-applications-in-php-7-4 -opcache.preload=/symfony/var/cache/prod/App_KernelProdContainer.preload.php +opcache.preload=/symfony/config/preload.php opcache.preload_user=www-data \ No newline at end of file diff --git a/docker/fpm/docker-entrypoint.sh b/docker/fpm/docker-entrypoint.sh new file mode 100644 index 0000000..70d3aed --- /dev/null +++ b/docker/fpm/docker-entrypoint.sh @@ -0,0 +1,30 @@ +#!/bin/sh +set -e + +mkdir -p /symfony/var/cache /symfony/var/log + +setfacl -R -m u:www-data:rwX -m u:"$(whoami)":rwX /symfony/var +setfacl -dR -m u:www-data:rwX -m u:"$(whoami)":rwX /symfony/var + +if [ "$1" = 'setup' ]; then + umask 0000 + + # First time we need to create project + if [ ! -f composer.json ]; then + composer create-project symfony/skeleton tmp/ --prefer-dist --no-dev --no-progress --no-interaction; + cp -Rp tmp/. . + rm -Rf tmp/ + fi + + # Next time just ensure dependencies are up to date. + + composer install --prefer-dist --no-progress --no-interaction + + exit 0 +fi + +if [ "$1" = 'fpm' ]; then + set -- php-fpm +fi + +exec docker-php-entrypoint "$@" \ No newline at end of file diff --git a/docker/fpm/docker-healthcheck.sh b/docker/fpm/docker-healthcheck.sh new file mode 100644 index 0000000..f15b998 --- /dev/null +++ b/docker/fpm/docker-healthcheck.sh @@ -0,0 +1,12 @@ +#!/bin/sh +set -e + +export SCRIPT_NAME=/ping +export SCRIPT_FILENAME=/ping +export REQUEST_METHOD=GET + +if cgi-fcgi -bind -connect 127.0.0.1:9000; then + exit 0 +fi + +exit 1 diff --git a/docker/grafana/dashboards/dashboards.yaml b/docker/grafana/dashboards/dashboards.yaml deleted file mode 100644 index 4adc55a..0000000 --- a/docker/grafana/dashboards/dashboards.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: 1 - -providers: - - name: dashboards - type: file - updateIntervalSeconds: 30 - options: - path: /etc/grafana/provisioning/dashboards - foldersFromFilesStructure: true \ No newline at end of file diff --git a/docker/grafana/dashboards/default.json b/docker/grafana/dashboards/default.json deleted file mode 100644 index e642a19..0000000 --- a/docker/grafana/dashboards/default.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "editable": true, - "gnetId": null, - "graphTooltip": 0, - "id": 1, - "links": [], - "panels": [ - { - "datasource": "Loki", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 4, - "options": { - "showLabels": false, - "showTime": false, - "sortOrder": "Descending", - "wrapLogMessage": false - }, - "pluginVersion": "7.3.2", - "targets": [ - { - "expr": "{container=\"supervisor\"} | json | level=\"500\"", - "legendFormat": "", - "queryType": "randomWalk", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Supervisor error logs", - "type": "logs" - }, - { - "datasource": "Loki", - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 24, - "x": 0, - "y": 10 - }, - "id": 2, - "options": { - "showLabels": false, - "showTime": false, - "sortOrder": "Descending", - "wrapLogMessage": false - }, - "pluginVersion": "7.3.2", - "targets": [ - { - "expr": "{container=\"fpm\"} | json | level=\"500\"", - "legendFormat": "", - "queryType": "randomWalk", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "FPM error logs", - "type": "logs" - } - ], - "schemaVersion": 26, - "style": "dark", - "tags": [], - "templating": { - "list": [] - }, - "time": { - "from": "now-6h", - "to": "now" - }, - "timepicker": {}, - "timezone": "", - "title": "Dashboard", - "uid": "7W_RWMAMz", - "version": 3 -} \ No newline at end of file diff --git a/docker/grafana/datasources/loki.yaml b/docker/grafana/datasources/loki.yaml deleted file mode 100644 index 23e6367..0000000 --- a/docker/grafana/datasources/loki.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: 1 - -datasources: - - name: Loki - type: loki - access: proxy - url: http://loki:3100 - jsonData: - maxLines: 1000 \ No newline at end of file diff --git a/docker/nginx/conf.d/default.conf b/docker/nginx/conf.d/default.conf deleted file mode 100644 index 670936f..0000000 --- a/docker/nginx/conf.d/default.conf +++ /dev/null @@ -1,44 +0,0 @@ -server { - root /symfony/public; - - location /healthcheck { - access_log off; - return 200 "healthy"; - } - - location / { - # try to serve file directly, fallback to index.php - try_files $uri /index.php$is_args$args; - } - - location ~ ^/index\.php(/|$) { - fastcgi_pass ${FPM_SERVICE}: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; - } - - error_log /var/log/nginx/symfony_error.log; - access_log /var/log/nginx/symfony_access.log; -} \ No newline at end of file diff --git a/docker/nginx/default.conf b/docker/nginx/default.conf new file mode 100644 index 0000000..3a5a9d6 --- /dev/null +++ b/docker/nginx/default.conf @@ -0,0 +1,30 @@ +server { + listen 0.0.0.0:8080; + + root /symfony/public; + + + location / { + # try to serve file directly, fallback to index.php + try_files $uri /index.php$is_args$args; + } + + location ~ ^/index\.php(/|$) { + fastcgi_pass 0.0.0.0:9000; + + fastcgi_split_path_info ^(.+\.php)(/.*)$; + include fastcgi_params; + + fastcgi_param DOCUMENT_ROOT $realpath_root; + fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; + + internal; + } + + location /status { + stub_status on; + access_log off; + allow 127.0.0.1; + deny all; + } +} \ No newline at end of file diff --git a/docker/nginx/docker-entrypoint.sh b/docker/nginx/docker-entrypoint.sh deleted file mode 100755 index 8c872f8..0000000 --- a/docker/nginx/docker-entrypoint.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -set -e - -if [ "$1" = "nginx" ]; then - export FPM_SERVICE=${FPM_SERVICE:-fpm} - envsubst '\$FPM_SERVICE' < /etc/nginx/conf.d/default.conf.stuff > /etc/nginx/conf.d/default.conf -fi - -exec "$@" \ No newline at end of file diff --git a/docker/nginx/docker-healthcheck.sh b/docker/nginx/docker-healthcheck.sh deleted file mode 100644 index 592e130..0000000 --- a/docker/nginx/docker-healthcheck.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -set -e - -if [ $(curl -sS 'http://localhost/healthcheck') = 'healthy' ]; then - exit 0 -fi - -exit 1 \ No newline at end of file diff --git a/docker/php/docker-entrypoint.sh b/docker/php/docker-entrypoint.sh deleted file mode 100755 index 96bb824..0000000 --- a/docker/php/docker-entrypoint.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh -set -e - -if [ "$1" = 'fpm' ] || [ "$1" = 'supervisor' ] || [ "$1" = 'setup' ]; then - mkdir -p /symfony/var/cache /symfony/var/log - - setfacl -R -m u:www-data:rwX -m u:"$(whoami)":rwX /symfony/var - setfacl -dR -m u:www-data:rwX -m u:"$(whoami)":rwX /symfony/var - - if [ "$1" = 'supervisor' ]; then - cp /var/supervisord/base.conf /var/supervisord/supervisord.conf - - { \ - echo '[inet_http_server]'; \ - echo 'port = *:9000'; \ - echo "username = ${SUPERVISOR_USERNAME:-root}"; \ - echo "password = ${SUPERVISOR_PASSWORD:-root}"; \ - } >> /var/supervisord/supervisord.conf - - set -- supervisord -c /var/supervisord/supervisord.conf - - setfacl -R -m u:www-data:rwX -m u:"$(whoami)":rwX /var/supervisord - setfacl -dR -m u:www-data:rwX -m u:"$(whoami)":rwX /var/supervisord - elif [ "$1" = 'fpm' ]; then - set -- php-fpm - elif [ "$1" = 'setup' ]; then - # Install composer package & run migrate on dev env. - - composer install --prefer-dist --no-progress --no-suggest --no-interaction - - echo "Waiting for db to be ready..." - - until bin/console doctrine:query:sql "SELECT 1" > /dev/null 2>&1; do - sleep 1 - done - - if ls -A src/Migrations/*.php > /dev/null 2>&1; then - bin/console doctrine:migrations:migrate --no-interaction - fi - - exit 0 - fi - -fi - -exec docker-php-entrypoint "$@" \ No newline at end of file diff --git a/docker/php/docker-healthcheck.sh b/docker/php/docker-healthcheck.sh deleted file mode 100755 index e717ffb..0000000 --- a/docker/php/docker-healthcheck.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -set -e - -if [ "$1" = 'fpm' ]; then - export SCRIPT_NAME=/ping - export SCRIPT_FILENAME=/ping - export REQUEST_METHOD=GET - - if cgi-fcgi -bind -connect 127.0.0.1:9000; then - exit 0 - fi -elif [ "$1" = 'supervisor' ]; then - if curl -I http://localhost:9000; then - exit 0 - fi -fi - -exit 1 diff --git a/docker/php/supervisord/base.conf b/docker/php/supervisord/base.conf deleted file mode 100644 index b819043..0000000 --- a/docker/php/supervisord/base.conf +++ /dev/null @@ -1,24 +0,0 @@ -[unix_http_server] -file=/var/supervisord/supervisord.sock -chmod=0700 -chown=www-data:www-data - -[supervisorctl] -serverurl=unix:///var/supervisord/supervisord.sock - -[supervisord] -logfile=/var/supervisord/supervisord.log -pidfile=/var/supervisord/supervisord.pid -nodaemon=true -minfds=1024 -minprocs=200 -user=www-data -umask=022 -strip_ansi=false - -[rpcinterface:supervisor] -supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface - -[include] -files=/var/supervisord/consumers/*.conf - diff --git a/docker/php/supervisord/consumers/async.conf b/docker/php/supervisord/consumers/async.conf deleted file mode 100644 index 9610ba5..0000000 --- a/docker/php/supervisord/consumers/async.conf +++ /dev/null @@ -1,10 +0,0 @@ -[program:async] -command=/symfony/bin/console messenger:consume async -numprocs=1 -process_name=%(program_name)s_%(process_num)02d -autostart=true -autorestart = true -startsecs = 0 -startretries = 1 -stopwaitsecs = 60 -user = www-data diff --git a/docker/promtail/config.yaml b/docker/promtail/config.yaml deleted file mode 100644 index bb95cb0..0000000 --- a/docker/promtail/config.yaml +++ /dev/null @@ -1,28 +0,0 @@ -server: - http_listen_port: 9080 - grpc_listen_port: 0 - -positions: - filename: /tmp/positions.yaml - -clients: - - url: http://loki:3100/loki/api/v1/push - -scrape_configs: - - job_name: local - static_configs: - - targets: - - localhost - labels: - container: supervisor - __path__: /var/log/supervisor/*log - - targets: - - localhost - labels: - container: fpm - __path__: /var/log/fpm/*log - - targets: - - localhost - labels: - container: nginx - __path__: /var/log/nginx/*log \ No newline at end of file diff --git a/helm-chart/Chart.lock b/helm-chart/Chart.lock new file mode 100644 index 0000000..ba118be --- /dev/null +++ b/helm-chart/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: nginx + repository: https://charts.bitnami.com/bitnami + version: 8.8.5 +digest: sha256:3f27710a56ef2c508e09111dc1b3ac3dd92e5d0f33e6dcf502f0237a3fbf1a20 +generated: "2021-04-30T09:53:15.152606796+07:00" diff --git a/helm/symfony/Chart.yaml b/helm-chart/Chart.yaml similarity index 79% rename from helm/symfony/Chart.yaml rename to helm-chart/Chart.yaml index bde9585..f0bf06c 100644 --- a/helm/symfony/Chart.yaml +++ b/helm-chart/Chart.yaml @@ -21,11 +21,6 @@ version: 1.0.0 appVersion: 1.0.0 dependencies: - - name: mysql - version: ~1.6.2 - repository: https://charts.helm.sh/stable - condition: mysql.internal - - name: rabbitmq - version: ~6.18.9 - repository: https://charts.bitnami.com/bitnami - condition: rabbitmq.internal + - name: nginx + version: ^8.8 + repository: https://charts.bitnami.com/bitnami \ No newline at end of file diff --git a/helm/symfony/templates/_helpers.tpl b/helm-chart/templates/_helpers.tpl similarity index 55% rename from helm/symfony/templates/_helpers.tpl rename to helm-chart/templates/_helpers.tpl index 30b599d..162c625 100644 --- a/helm/symfony/templates/_helpers.tpl +++ b/helm-chart/templates/_helpers.tpl @@ -37,38 +37,10 @@ release: {{ .Release.Name }} app: "{{ template "name" . }}" {{- end -}} -{{- define "php" -}} - {{- printf "%s-php" (include "fullname" .) -}} -{{- end -}} - {{- define "fpm" -}} {{- printf "%s-fpm" (include "fullname" .) -}} {{- end -}} -{{- define "supervisor" -}} - {{- printf "%s-supervisor" (include "fullname" .) -}} -{{- end -}} - {{- define "nginx" -}} {{- printf "%s-nginx" (include "fullname" .) -}} -{{- end -}} - -{{- define "hook" -}} - {{- printf "%s-hook" (include "fullname" .) -}} -{{- end -}} - -{{- define "databaseDsn" -}} - {{- if .Values.mysql.internal }} - {{- printf "mysql://%s:%s@%s/%s?serverVersion=5.7" (.Values.mysql.mysqlUser) (.Values.mysql.mysqlPassword) (.Values.mysql.fullnameOverride) (.Values.mysql.mysqlDatabase) -}} - {{- else }} - {{- .Values.mysql.externalDsn -}} - {{- end }} -{{- end -}} - -{{- define "messengerTransportDsn" -}} - {{- if .Values.rabbitmq.internal }} - {{- printf "amqp://%s:%s@%s:%s/%s" (.Values.rabbitmq.rabbitmq.username) (.Values.rabbitmq.rabbitmq.password) (.Values.rabbitmq.fullnameOverride) (.Values.rabbitmq.service.port | toString) "%2f" -}} - {{- else }} - {{- .Values.rabbitmq.externalDsn -}} - {{- end }} {{- end -}} \ No newline at end of file diff --git a/helm-chart/templates/fpm/configmap.yaml b/helm-chart/templates/fpm/configmap.yaml new file mode 100644 index 0000000..f5ba5e7 --- /dev/null +++ b/helm-chart/templates/fpm/configmap.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ template "fpm" . }} + labels: + {{- include "labels" . | nindent 4 }} +data: + APP_ENV: {{ .Values.global.fpm.env | quote }} + APP_DEBUG: {{ .Values.global.fpm.debug | quote }} \ No newline at end of file diff --git a/helm-chart/templates/fpm/secret.yaml b/helm-chart/templates/fpm/secret.yaml new file mode 100644 index 0000000..47e5d35 --- /dev/null +++ b/helm-chart/templates/fpm/secret.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ template "fpm" . }} + labels: + {{- include "labels" . | nindent 4 }} +type: Opaque +data: + APP_SECRET: {{ .Values.global.fpm.secret | b64enc | quote }} \ No newline at end of file diff --git a/helm-chart/templates/nginx/configmap.yaml b/helm-chart/templates/nginx/configmap.yaml new file mode 100644 index 0000000..ee7174b --- /dev/null +++ b/helm-chart/templates/nginx/configmap.yaml @@ -0,0 +1,37 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ .Values.nginx.existingServerBlockConfigmap }} + labels: + {{- include "labels" . | nindent 4 }} +data: + server.conf: | + server { + listen 0.0.0.0:8080; + + root /symfony/public; + + location / { + # try to serve file directly, fallback to index.php + try_files $uri /index.php$is_args$args; + } + + location ~ ^/index\.php(/|$) { + fastcgi_pass 0.0.0.0:9000; + + fastcgi_split_path_info ^(.+\.php)(/.*)$; + include fastcgi_params; + + fastcgi_param DOCUMENT_ROOT $realpath_root; + fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; + + internal; + } + + location /status { + stub_status on; + access_log off; + allow 127.0.0.1; + deny all; + } + } diff --git a/helm-chart/values.yaml b/helm-chart/values.yaml new file mode 100644 index 0000000..47bf485 --- /dev/null +++ b/helm-chart/values.yaml @@ -0,0 +1,61 @@ +global: + fpm: + image: + repository: vuongxuongminh/docker-helm-symfony + tag: prod + pullPolicy: IfNotPresent + env: 'prod' + debug: '0' + secret: '!ChangeMe!' + +nginx: + replicaCount: 1 + existingServerBlockConfigmap: nginx-server-block + extraVolumes: + - name: asset-bundles + emptyDir: {} + extraVolumeMounts: + - name: asset-bundles + mountPath: /symfony/public/bundles/ + initContainers: + - name: publish-asset-bundles + image: '{{ .Values.global.fpm.image.repository }}:{{ .Values.global.fpm.image.tag }}' + imagePullPolicy: '{{ .Values.global.fpm.image.pullPolicy }}' + args: + - composer + - auto-scripts + envFrom: + - configMapRef: + name: '{{ template "fpm" . }}' + - secretRef: + name: '{{ template "fpm" . }}' + volumeMounts: + - name: asset-bundles + mountPath: /symfony/public/bundles/ + sidecars: + - name: fpm + image: '{{ .Values.global.fpm.image.repository }}:{{ .Values.global.fpm.image.tag }}' + imagePullPolicy: '{{ .Values.global.fpm.image.pullPolicy }}' + livenessProbe: + exec: + command: + - docker-healthcheck + initialDelaySeconds: 10 + periodSeconds: 5 + readinessProbe: + exec: + command: + - docker-healthcheck + initialDelaySeconds: 10 + timeoutSeconds: 5 + envFrom: + - configMapRef: + name: '{{ template "fpm" . }}' + - secretRef: + name: '{{ template "fpm" . }}' + ports: + - name: fpm + containerPort: 9000 + volumeMounts: + - name: asset-bundles + mountPath: /symfony/public/bundles/ \ No newline at end of file diff --git a/helm/symfony/Chart.lock b/helm/symfony/Chart.lock deleted file mode 100644 index 1332320..0000000 --- a/helm/symfony/Chart.lock +++ /dev/null @@ -1,9 +0,0 @@ -dependencies: -- name: mysql - repository: https://charts.helm.sh/stable - version: 1.6.9 -- name: rabbitmq - repository: https://charts.bitnami.com/bitnami - version: 6.18.9 -digest: sha256:8b1b4689a2d032e29dace81ca0f14e04af465470f990361d5502478caedbdd7f -generated: "2020-12-01T23:40:27.008321715+07:00" diff --git a/helm/symfony/templates/NOTES.txt b/helm/symfony/templates/NOTES.txt deleted file mode 100644 index 01d9e68..0000000 --- a/helm/symfony/templates/NOTES.txt +++ /dev/null @@ -1,7 +0,0 @@ -Now you can access: - -Your Symfony app: {{ .Values.ingress.nginx.hostName }} -Supervisor management: {{ .Values.ingress.supervisor.hostName }} -{{- if .Values.rabbitmq.ingress.enabled }} -RabbitMQ management: {{ .Values.rabbitmq.ingress.hostName }} -{{- end }} \ No newline at end of file diff --git a/helm/symfony/templates/fpm/deployment.yaml b/helm/symfony/templates/fpm/deployment.yaml deleted file mode 100644 index 94a9db7..0000000 --- a/helm/symfony/templates/fpm/deployment.yaml +++ /dev/null @@ -1,73 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ template "fpm" . }} - labels: - {{- include "labels" . | nindent 4 }} - component: fpm -spec: - replicas: {{ .Values.php.fpm.replicaCount }} - selector: - matchLabels: - {{- include "matchLabels" . | nindent 6 }} - component: fpm - template: - metadata: - labels: - {{- include "labels" . | nindent 8 }} - component: fpm - {{- with .Values.php.fpm.podAnnotations }} - annotations: - {{- toYaml . | nindent 8 }} - {{- end }} - spec: - {{- with .Values.imagePullSecrets }} - imagePullSecrets: - {{- toYaml . | nindent 8 }} - {{- end }} - containers: - - name: fpm - image: {{ .Values.php.image.repository }}:{{ .Values.php.image.tag }} - imagePullPolicy: {{ .Values.imagePullPolicy }} - command: - - docker-entrypoint - args: - - fpm - livenessProbe: - exec: - command: - - docker-healthcheck - - fpm - initialDelaySeconds: 30 - periodSeconds: 5 - readinessProbe: - exec: - command: - - docker-healthcheck - - fpm - initialDelaySeconds: 10 - timeoutSeconds: 5 - envFrom: - - configMapRef: - name: {{ template "php" . }} - - secretRef: - name: {{ template "php" . }} - {{- with .Values.php.fpm.resources }} - resources: - {{- toYaml . | nindent 10 }} - {{- end }} - ports: - - containerPort: 9000 - name: fpm - {{- with .Values.php.fpm.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.php.fpm.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.php.fpm.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} \ No newline at end of file diff --git a/helm/symfony/templates/fpm/service.yaml b/helm/symfony/templates/fpm/service.yaml deleted file mode 100644 index 7198bf5..0000000 --- a/helm/symfony/templates/fpm/service.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ template "fpm" . }} - labels: - {{- include "labels" . | nindent 4 }} -spec: - type: ClusterIP - ports: - - name: fpm - port: 9000 - targetPort: 9000 - selector: - {{- include "matchLabels" . | nindent 4 }} - component: fpm \ No newline at end of file diff --git a/helm/symfony/templates/hook/job.yaml b/helm/symfony/templates/hook/job.yaml deleted file mode 100644 index 9e60f3f..0000000 --- a/helm/symfony/templates/hook/job.yaml +++ /dev/null @@ -1,42 +0,0 @@ -apiVersion: batch/v1 -kind: Job -metadata: - name: {{ template "hook" . }} - labels: - {{- include "labels" . | nindent 4 }} - annotations: - # This is what defines this resource as a hook. Without this line, the - # job is considered part of the release. - "helm.sh/hook": "post-install,post-upgrade" - "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" - "helm.sh/hook-weight": "0" -spec: - # Because if we use internal database, in first time install chart database need time to boot up for that reason job may be fail, - # we should give it retry more time. - backoffLimit: 5 - template: - metadata: - labels: - {{- include "labels" . | nindent 8 }} - spec: - {{- with .Values.imagePullSecrets }} - imagePullSecrets: - {{- toYaml . | nindent 8 }} - {{- end }} - restartPolicy: Never - containers: - - name: job - image: "{{ .Values.php.image.repository }}:{{ .Values.php.image.tag }}" - command: - - docker-entrypoint - args: - - "bin/console" - - "doctrine:migrations:migrate" - - "latest" - - "--no-interaction" - - "--allow-no-migration" - envFrom: - - configMapRef: - name: {{ template "php" . }} - - secretRef: - name: {{ template "php" . }} \ No newline at end of file diff --git a/helm/symfony/templates/ingress/ingress.yaml b/helm/symfony/templates/ingress/ingress.yaml deleted file mode 100644 index f536f95..0000000 --- a/helm/symfony/templates/ingress/ingress.yaml +++ /dev/null @@ -1,36 +0,0 @@ -apiVersion: networking.k8s.io/v1beta1 -kind: Ingress -metadata: - name: ingress - labels: - {{- include "labels" . | nindent 4 }} - component: ingress - {{- with .Values.ingress.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -spec: -{{- if .Values.ingress.tls }} - tls: - - hosts: - - {{ .Values.ingress.nginx.hostName | quote }} - secretName: {{ .Values.ingress.nginx.tlsSecret | quote }} - - hosts: - - {{ .Values.ingress.supervisor.hostName | quote }} - secretName: {{ .Values.ingress.supervisor.tlsSecret | quote }} -{{- end }} - rules: - - http: - paths: - - path: / - backend: - serviceName: {{ template "nginx" . }} - servicePort: 80 - host: {{ .Values.ingress.nginx.hostName | quote }} - - http: - paths: - - path: / - backend: - serviceName: {{ template "supervisor" . }} - servicePort: 9000 - host: {{ .Values.ingress.supervisor.hostName | quote }} \ No newline at end of file diff --git a/helm/symfony/templates/nginx/deployment.yaml b/helm/symfony/templates/nginx/deployment.yaml deleted file mode 100644 index 12b38f7..0000000 --- a/helm/symfony/templates/nginx/deployment.yaml +++ /dev/null @@ -1,65 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ template "nginx" . }} - labels: - {{- include "labels" . | nindent 4 }} - component: nginx -spec: - replicas: {{ .Values.nginx.replicaCount }} - selector: - matchLabels: - {{- include "matchLabels" . | nindent 6 }} - component: nginx - template: - metadata: - labels: - {{- include "labels" . | nindent 8 }} - component: nginx - {{- with .Values.nginx.podAnnotations }} - annotations: - {{- toYaml . | nindent 8 }} - {{- end }} - spec: - {{- with .Values.imagePullSecrets }} - imagePullSecrets: - {{- toYaml . | nindent 8 }} - {{- end }} - containers: - - name: supervisor - image: {{ .Values.nginx.image.repository }}:{{ .Values.nginx.image.tag }} - imagePullPolicy: {{ .Values.imagePullPolicy }} - livenessProbe: - exec: - command: - - docker-healthcheck - initialDelaySeconds: 30 - periodSeconds: 5 - readinessProbe: - exec: - command: - - docker-healthcheck - initialDelaySeconds: 10 - timeoutSeconds: 5 - env: - - name: FPM_SERVICE - value: {{ template "fpm" . }} - {{- with .Values.nginx.resources }} - resources: - {{- toYaml . | nindent 10 }} - {{- end }} - ports: - - containerPort: 80 - name: http - {{- with .Values.nginx.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.nginx.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.nginx.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} \ No newline at end of file diff --git a/helm/symfony/templates/nginx/service.yaml b/helm/symfony/templates/nginx/service.yaml deleted file mode 100644 index dcd6475..0000000 --- a/helm/symfony/templates/nginx/service.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ template "nginx" . }} - labels: - {{- include "labels" . | nindent 4 }} -spec: - type: ClusterIP - ports: - - name: http - port: 80 - targetPort: 80 - selector: - {{- include "matchLabels" . | nindent 4 }} - component: nginx diff --git a/helm/symfony/templates/php/configmap.yaml b/helm/symfony/templates/php/configmap.yaml deleted file mode 100644 index 1a98812..0000000 --- a/helm/symfony/templates/php/configmap.yaml +++ /dev/null @@ -1,11 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ template "php" . }} - labels: - {{- include "labels" . | nindent 4 }} -data: - APP_ENV: {{ .Values.php.env | quote }} - APP_DEBUG: {{ .Values.php.debug | quote }} - TRUSTED_HOSTS: {{ .Values.php.trustedHosts | quote }} - TRUSTED_PROXIES: {{ join "," .Values.php.trustedProxies | quote }} \ No newline at end of file diff --git a/helm/symfony/templates/php/secret.yaml b/helm/symfony/templates/php/secret.yaml deleted file mode 100644 index 275a749..0000000 --- a/helm/symfony/templates/php/secret.yaml +++ /dev/null @@ -1,11 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: {{ template "php" . }} - labels: - {{- include "labels" . | nindent 4 }} -type: Opaque -data: - APP_SECRET: {{ .Values.php.secret | b64enc | quote }} - DATABASE_URL: {{ include "databaseDsn" . | b64enc | quote }} - MESSENGER_TRANSPORT_DSN: {{ include "messengerTransportDsn" . | b64enc | quote }} \ No newline at end of file diff --git a/helm/symfony/templates/supervisor/deployment.yaml b/helm/symfony/templates/supervisor/deployment.yaml deleted file mode 100644 index 095f3a6..0000000 --- a/helm/symfony/templates/supervisor/deployment.yaml +++ /dev/null @@ -1,75 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ template "supervisor" . }} - labels: - {{- include "labels" . | nindent 4 }} - component: supervisor -spec: - replicas: {{ .Values.php.supervisor.replicaCount }} - selector: - matchLabels: - {{- include "matchLabels" . | nindent 6 }} - component: supervisor - template: - metadata: - labels: - {{- include "labels" . | nindent 8 }} - component: supervisor - {{- with .Values.php.supervisor.podAnnotations }} - annotations: - {{- toYaml . | nindent 8 }} - {{- end }} - spec: - {{- with .Values.imagePullSecrets }} - imagePullSecrets: - {{- toYaml . | nindent 8 }} - {{- end }} - containers: - - name: supervisor - image: {{ .Values.php.image.repository }}:{{ .Values.php.image.tag }} - imagePullPolicy: {{ .Values.imagePullPolicy }} - command: - - docker-entrypoint - args: - - supervisor - livenessProbe: - exec: - command: - - docker-healthcheck - - supervisor - initialDelaySeconds: 30 - periodSeconds: 5 - readinessProbe: - exec: - command: - - docker-healthcheck - - supervisor - initialDelaySeconds: 10 - timeoutSeconds: 5 - envFrom: - - configMapRef: - name: {{ template "php" . }} - - secretRef: - name: {{ template "php" . }} - - secretRef: - name: {{ template "supervisor" . }} - {{- with .Values.php.supervisor.resources }} - resources: - {{- toYaml . | nindent 10 }} - {{- end }} - ports: - - containerPort: 9000 - name: supervisor - {{- with .Values.php.supervisor.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.php.supervisor.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.php.supervisor.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} \ No newline at end of file diff --git a/helm/symfony/templates/supervisor/secret.yaml b/helm/symfony/templates/supervisor/secret.yaml deleted file mode 100644 index f269f6a..0000000 --- a/helm/symfony/templates/supervisor/secret.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: {{ template "supervisor" . }} - labels: - {{- include "labels" . | nindent 4 }} -type: Opaque -data: - SUPERVISOR_USERNAME: {{ .Values.php.supervisor.basicAuth.username | b64enc | quote }} - SUPERVISOR_PASSWORD: {{ .Values.php.supervisor.basicAuth.password | b64enc | quote }} \ No newline at end of file diff --git a/helm/symfony/templates/supervisor/service.yaml b/helm/symfony/templates/supervisor/service.yaml deleted file mode 100644 index 15073ae..0000000 --- a/helm/symfony/templates/supervisor/service.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ template "supervisor" . }} - labels: - {{- include "labels" . | nindent 4 }} -spec: - type: ClusterIP - ports: - - name: supervisor - port: 9000 - targetPort: 9000 - selector: - {{- include "matchLabels" . | nindent 4 }} - component: supervisor \ No newline at end of file diff --git a/helm/symfony/values.yaml b/helm/symfony/values.yaml deleted file mode 100644 index c7e5809..0000000 --- a/helm/symfony/values.yaml +++ /dev/null @@ -1,125 +0,0 @@ -# Use this set to assign a list of default pullSecrets -# - name: docker-registry-secret -# - name: internal-registry-secret -imagePullSecrets: [] - -imagePullPolicy: Always - -php: - image: - repository: vuongxuongminh/docker-helm-symfony-php - tag: prod - supervisor: - basicAuth: - username: 'user' - password: '!ChangeMe!' - replicaCount: 1 - nodeSelector: {} - tolerations: [] - affinity: {} - ## Additional deployment annotations - podAnnotations: {} - resources: {} - # requests: - # cpu: 100m - # memory: 256Mi - fpm: - replicaCount: 1 - nodeSelector: {} - tolerations: [] - affinity: {} - ## Additional deployment annotations - podAnnotations: {} - resources: {} - # requests: - # cpu: 100m - # memory: 256Mi - env: 'prod' - debug: '0' - secret: '!ChangeMe!' - trustedHosts: '^.*\\.example$' - trustedProxies: - - 10.0.0.0/8 - - 172.16.0.0/12 - - 192.168.0.0/16 - -nginx: - image: - repository: vuongxuongminh/docker-helm-symfony-nginx - tag: prod - replicaCount: 1 - nodeSelector: {} - tolerations: [] - affinity: {} - ## Additional deployment annotations - podAnnotations: {} - resources: {} - # requests: - # cpu: 100m - # memory: 256Mi - -ingress: - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - tls: false - nginx: - hostName: 'nginx.example' - # Tls secret name only affect when `tls` bellow is true. - tlsSecret: 'nginx-tls' - supervisor: - hostName: 'supervisor.example' - # Tls secret name only affect when `tls` bellow is true. - tlsSecret: 'supervisor-tls' - -mysql: - internal: true - # TODO: Move it to _helpers.tpl when issue: https://github.com/helm/helm/issues/3920 solved - fullnameOverride: 'sub-chart-mysql' - mysqlDatabase: test - mysqlUser: user - mysqlPassword: '!ChangeMe!' -# mysqlRootPassword: 'root' - # Persist data to a persistent volume - persistence: - enabled: false - nodeSelector: {} - tolerations: [] - ## Additional deployment annotations - podAnnotations: {} - resources: {} - # See more config at https://github.com/helm/charts/tree/master/stable/mysql - - # Set when you want to use external MySQL. Affect only `mysql.internal` is false. - externalDsn: '' - -rabbitmq: - internal: true - # TODO: Move it to _helpers.tpl when issue: https://github.com/helm/helm/issues/3920 solved - fullnameOverride: 'sub-chart-rabbitmq' - updateStrategy: - type: 'OnDelete' - persistence: - enabled: false - service: - port: 5672 - rabbitmq: - username: user - password: '!ChangeMe!' - ingress: - enabled: true - tls: false - # Tls secret only affect when `tls` bellow is true. - tlsSecret: 'rabbitmq-tls' - hostName: 'rabbitmq.example' - annotations: {} - nodeSelector: {} - tolerations: [] - affinity: {} - ## Additional deployment annotations - podAnnotations: {} - resources: {} - # See more config at https://github.com/bitnami/charts/blob/master/bitnami/rabbitmq - - # Set when you want to use external RabbitMQ. Affect only `rabbitmq.internal` is false. - externalDsn: '' \ No newline at end of file diff --git a/screenshots/dashboard.png b/screenshots/dashboard.png deleted file mode 100644 index 94a2d11..0000000 Binary files a/screenshots/dashboard.png and /dev/null differ diff --git a/symfony/.env b/symfony/.env deleted file mode 100644 index a888c94..0000000 --- a/symfony/.env +++ /dev/null @@ -1,33 +0,0 @@ -# In all environments, the following files are loaded if they exist, -# the latter taking precedence over the former: -# -# * .env contains default values for the environment variables needed by the app -# * .env.local uncommitted file with local overrides -# * .env.$APP_ENV committed environment-specific defaults -# * .env.$APP_ENV.local uncommitted environment-specific overrides -# -# Real environment variables win over .env files. -# -# DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES. -# -# Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2). -# https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration - -###> symfony/framework-bundle ### -APP_ENV=dev -APP_SECRET=d606114b19c9cc51fddb4efc4c3f3744 -#TRUSTED_PROXIES=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 -#TRUSTED_HOSTS='^(localhost|example\.com)$' -###< symfony/framework-bundle ### - -###> symfony/messenger ### -MESSENGER_TRANSPORT_DSN=amqp://guest:guest@rabbitmq:5672/%2f/messages -###< symfony/messenger ### - -###> symfony/mailer ### -MAILER_DSN=smtp://mailhog:1025 -###< symfony/mailer ### - -###> doctrine/doctrine-bundle ### -DATABASE_URL=mysql://root:root@mysql:3306/test?serverVersion=8 -###< doctrine/doctrine-bundle ### \ No newline at end of file diff --git a/symfony/.gitignore b/symfony/.gitignore deleted file mode 100644 index a67f91e..0000000 --- a/symfony/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ - -###> symfony/framework-bundle ### -/.env.local -/.env.local.php -/.env.*.local -/config/secrets/prod/prod.decrypt.private.php -/public/bundles/ -/var/ -/vendor/ -###< symfony/framework-bundle ### diff --git a/symfony/bin/console b/symfony/bin/console deleted file mode 100755 index 8fe9d49..0000000 --- a/symfony/bin/console +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env php -getParameterOption(['--env', '-e'], null, true)) { - putenv('APP_ENV='.$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = $env); -} - -if ($input->hasParameterOption('--no-debug', true)) { - putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0'); -} - -(new Dotenv())->bootEnv(dirname(__DIR__).'/.env'); - -if ($_SERVER['APP_DEBUG']) { - umask(0000); - - if (class_exists(Debug::class)) { - Debug::enable(); - } -} - -$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']); -$application = new Application($kernel); -$application->run($input); diff --git a/symfony/composer.json b/symfony/composer.json deleted file mode 100644 index bc9d990..0000000 --- a/symfony/composer.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "type": "project", - "license": "proprietary", - "require": { - "php": ">=7.2.5", - "ext-ctype": "*", - "ext-iconv": "*", - "composer/package-versions-deprecated": "1.11.99.1", - "doctrine/doctrine-bundle": "^2.2", - "doctrine/doctrine-migrations-bundle": "^3.0", - "doctrine/orm": "^2.7", - "symfony/console": "5.1.*", - "symfony/dotenv": "5.1.*", - "symfony/flex": "^1.3.1", - "symfony/framework-bundle": "5.1.*", - "symfony/mailer": "5.1.*", - "symfony/messenger": "5.1.*", - "symfony/monolog-bundle": "^3.6", - "symfony/twig-bundle": "5.1.*", - "symfony/yaml": "5.1.*", - "twig/extra-bundle": "^2.12|^3.0", - "twig/twig": "^2.12|^3.0" - }, - "require-dev": { - "symfony/debug-bundle": "^5.1", - "symfony/stopwatch": "^5.1", - "symfony/var-dumper": "^5.1", - "symfony/web-profiler-bundle": "^5.1" - }, - "config": { - "optimize-autoloader": true, - "preferred-install": { - "*": "dist" - }, - "sort-packages": true - }, - "autoload": { - "psr-4": { - "App\\": "src/" - } - }, - "autoload-dev": { - "psr-4": { - "App\\Tests\\": "tests/" - } - }, - "replace": { - "paragonie/random_compat": "2.*", - "symfony/polyfill-ctype": "*", - "symfony/polyfill-iconv": "*", - "symfony/polyfill-php72": "*", - "symfony/polyfill-php71": "*", - "symfony/polyfill-php70": "*", - "symfony/polyfill-php56": "*" - }, - "scripts": { - "auto-scripts": { - "cache:clear": "symfony-cmd", - "assets:install %PUBLIC_DIR%": "symfony-cmd" - }, - "post-install-cmd": [ - "@auto-scripts" - ], - "post-update-cmd": [ - "@auto-scripts" - ] - }, - "conflict": { - "symfony/symfony": "*" - }, - "extra": { - "symfony": { - "allow-contrib": false, - "require": "5.1.*" - } - } -} diff --git a/symfony/composer.lock b/symfony/composer.lock deleted file mode 100644 index b27f905..0000000 --- a/symfony/composer.lock +++ /dev/null @@ -1,5879 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", - "This file is @generated automatically" - ], - "content-hash": "ab4b3d50e5caba005e5847627eeb5bc7", - "packages": [ - { - "name": "composer/package-versions-deprecated", - "version": "1.11.99.1", - "source": { - "type": "git", - "url": "https://github.com/composer/package-versions-deprecated.git", - "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/7413f0b55a051e89485c5cb9f765fe24bb02a7b6", - "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.1.0 || ^2.0", - "php": "^7 || ^8" - }, - "replace": { - "ocramius/package-versions": "1.11.99" - }, - "require-dev": { - "composer/composer": "^1.9.3 || ^2.0@dev", - "ext-zip": "^1.13", - "phpunit/phpunit": "^6.5 || ^7" - }, - "type": "composer-plugin", - "extra": { - "class": "PackageVersions\\Installer", - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "PackageVersions\\": "src/PackageVersions" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be" - } - ], - "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", - "support": { - "issues": "https://github.com/composer/package-versions-deprecated/issues", - "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.1" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2020-11-11T10:22:58+00:00" - }, - { - "name": "doctrine/annotations", - "version": "1.11.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/annotations.git", - "reference": "ce77a7ba1770462cd705a91a151b6c3746f9c6ad" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/ce77a7ba1770462cd705a91a151b6c3746f9c6ad", - "reference": "ce77a7ba1770462cd705a91a151b6c3746f9c6ad", - "shasum": "" - }, - "require": { - "doctrine/lexer": "1.*", - "ext-tokenizer": "*", - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/cache": "1.*", - "doctrine/coding-standard": "^6.0 || ^8.1", - "phpstan/phpstan": "^0.12.20", - "phpunit/phpunit": "^7.5 || ^9.1.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.11.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Docblock Annotations Parser", - "homepage": "https://www.doctrine-project.org/projects/annotations.html", - "keywords": [ - "annotations", - "docblock", - "parser" - ], - "support": { - "issues": "https://github.com/doctrine/annotations/issues", - "source": "https://github.com/doctrine/annotations/tree/1.11.1" - }, - "time": "2020-10-26T10:28:16+00:00" - }, - { - "name": "doctrine/cache", - "version": "1.10.2", - "source": { - "type": "git", - "url": "https://github.com/doctrine/cache.git", - "reference": "13e3381b25847283a91948d04640543941309727" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/13e3381b25847283a91948d04640543941309727", - "reference": "13e3381b25847283a91948d04640543941309727", - "shasum": "" - }, - "require": { - "php": "~7.1 || ^8.0" - }, - "conflict": { - "doctrine/common": ">2.2,<2.4" - }, - "require-dev": { - "alcaeus/mongo-php-adapter": "^1.1", - "doctrine/coding-standard": "^6.0", - "mongodb/mongodb": "^1.1", - "phpunit/phpunit": "^7.0", - "predis/predis": "~1.0" - }, - "suggest": { - "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.9.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", - "homepage": "https://www.doctrine-project.org/projects/cache.html", - "keywords": [ - "abstraction", - "apcu", - "cache", - "caching", - "couchdb", - "memcached", - "php", - "redis", - "xcache" - ], - "support": { - "issues": "https://github.com/doctrine/cache/issues", - "source": "https://github.com/doctrine/cache/tree/1.10.x" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache", - "type": "tidelift" - } - ], - "time": "2020-07-07T18:54:01+00:00" - }, - { - "name": "doctrine/collections", - "version": "1.6.7", - "source": { - "type": "git", - "url": "https://github.com/doctrine/collections.git", - "reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/55f8b799269a1a472457bd1a41b4f379d4cfba4a", - "reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a", - "shasum": "" - }, - "require": { - "php": "^7.1.3 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpstan/phpstan-shim": "^0.9.2", - "phpunit/phpunit": "^7.0", - "vimeo/psalm": "^3.8.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.", - "homepage": "https://www.doctrine-project.org/projects/collections.html", - "keywords": [ - "array", - "collections", - "iterators", - "php" - ], - "support": { - "issues": "https://github.com/doctrine/collections/issues", - "source": "https://github.com/doctrine/collections/tree/1.6.7" - }, - "time": "2020-07-27T17:53:49+00:00" - }, - { - "name": "doctrine/common", - "version": "3.0.2", - "source": { - "type": "git", - "url": "https://github.com/doctrine/common.git", - "reference": "a3c6479858989e242a2465972b4f7a8642baf0d4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/a3c6479858989e242a2465972b4f7a8642baf0d4", - "reference": "a3c6479858989e242a2465972b4f7a8642baf0d4", - "shasum": "" - }, - "require": { - "doctrine/persistence": "^2.0", - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^1.0", - "phpstan/phpstan": "^0.11", - "phpstan/phpstan-phpunit": "^0.11", - "phpunit/phpunit": "^7.0", - "squizlabs/php_codesniffer": "^3.0", - "symfony/phpunit-bridge": "^4.0.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, persistence interfaces, proxies, event system and much more.", - "homepage": "https://www.doctrine-project.org/projects/common.html", - "keywords": [ - "common", - "doctrine", - "php" - ], - "support": { - "issues": "https://github.com/doctrine/common/issues", - "source": "https://github.com/doctrine/common/tree/3.0.2" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcommon", - "type": "tidelift" - } - ], - "time": "2020-06-05T16:59:53+00:00" - }, - { - "name": "doctrine/dbal", - "version": "2.12.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/dbal.git", - "reference": "adce7a954a1c2f14f85e94aed90c8489af204086" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/adce7a954a1c2f14f85e94aed90c8489af204086", - "reference": "adce7a954a1c2f14f85e94aed90c8489af204086", - "shasum": "" - }, - "require": { - "doctrine/cache": "^1.0", - "doctrine/event-manager": "^1.0", - "ext-pdo": "*", - "php": "^7.3 || ^8" - }, - "require-dev": { - "doctrine/coding-standard": "^8.1", - "jetbrains/phpstorm-stubs": "^2019.1", - "phpstan/phpstan": "^0.12.40", - "phpunit/phpunit": "^9.4", - "psalm/plugin-phpunit": "^0.10.0", - "symfony/console": "^2.0.5|^3.0|^4.0|^5.0", - "vimeo/psalm": "^3.17.2" - }, - "suggest": { - "symfony/console": "For helpful console commands such as SQL execution and import of files." - }, - "bin": [ - "bin/doctrine-dbal" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\DBAL\\": "lib/Doctrine/DBAL" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - } - ], - "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", - "homepage": "https://www.doctrine-project.org/projects/dbal.html", - "keywords": [ - "abstraction", - "database", - "db2", - "dbal", - "mariadb", - "mssql", - "mysql", - "oci8", - "oracle", - "pdo", - "pgsql", - "postgresql", - "queryobject", - "sasql", - "sql", - "sqlanywhere", - "sqlite", - "sqlserver", - "sqlsrv" - ], - "support": { - "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/2.12.1" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal", - "type": "tidelift" - } - ], - "time": "2020-11-14T20:26:58+00:00" - }, - { - "name": "doctrine/doctrine-bundle", - "version": "2.2.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "9e07bb1ff35d35d9ec4597b79e5d05502d7d4d43" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/9e07bb1ff35d35d9ec4597b79e5d05502d7d4d43", - "reference": "9e07bb1ff35d35d9ec4597b79e5d05502d7d4d43", - "shasum": "" - }, - "require": { - "doctrine/dbal": "^2.9.0|^3.0", - "doctrine/persistence": "^1.3.3|^2.0", - "doctrine/sql-formatter": "^1.0.1", - "php": "^7.1 || ^8.0", - "symfony/cache": "^4.3.3|^5.0", - "symfony/config": "^4.3.3|^5.0", - "symfony/console": "^3.4.30|^4.3.3|^5.0", - "symfony/dependency-injection": "^4.3.3|^5.0", - "symfony/doctrine-bridge": "^4.3.7|^5.0", - "symfony/framework-bundle": "^3.4.30|^4.3.3|^5.0", - "symfony/service-contracts": "^1.1.1|^2.0" - }, - "conflict": { - "doctrine/orm": "<2.6", - "twig/twig": "<1.34|>=2.0,<2.4" - }, - "require-dev": { - "doctrine/coding-standard": "^8.0", - "doctrine/orm": "^2.6", - "ocramius/proxy-manager": "^2.1", - "phpunit/phpunit": "^7.5 || ^9.3", - "symfony/phpunit-bridge": "^4.2", - "symfony/property-info": "^4.3.3|^5.0", - "symfony/proxy-manager-bridge": "^3.4|^4.3.3|^5.0", - "symfony/twig-bridge": "^3.4.30|^4.3.3|^5.0", - "symfony/validator": "^3.4.30|^4.3.3|^5.0", - "symfony/web-profiler-bundle": "^3.4.30|^4.3.3|^5.0", - "symfony/yaml": "^3.4.30|^4.3.3|^5.0", - "twig/twig": "^1.34|^2.12|^3.0" - }, - "suggest": { - "doctrine/orm": "The Doctrine ORM integration is optional in the bundle.", - "symfony/web-profiler-bundle": "To use the data collector." - }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "2.3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Bundle\\DoctrineBundle\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - }, - { - "name": "Doctrine Project", - "homepage": "http://www.doctrine-project.org/" - } - ], - "description": "Symfony DoctrineBundle", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "database", - "dbal", - "orm", - "persistence" - ], - "support": { - "issues": "https://github.com/doctrine/DoctrineBundle/issues", - "source": "https://github.com/doctrine/DoctrineBundle/tree/2.2.1" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-bundle", - "type": "tidelift" - } - ], - "time": "2020-11-10T20:42:15+00:00" - }, - { - "name": "doctrine/doctrine-migrations-bundle", - "version": "3.0.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/DoctrineMigrationsBundle.git", - "reference": "96e730b0ffa0bb39c0f913c1966213f1674bf249" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/96e730b0ffa0bb39c0f913c1966213f1674bf249", - "reference": "96e730b0ffa0bb39c0f913c1966213f1674bf249", - "shasum": "" - }, - "require": { - "doctrine/doctrine-bundle": "~1.0|~2.0", - "doctrine/migrations": "~3.0", - "php": "^7.2", - "symfony/framework-bundle": "~3.4|~4.0|~5.0" - }, - "require-dev": { - "doctrine/coding-standard": "^5.0", - "doctrine/orm": "^2.6", - "phpstan/phpstan": "^0.11", - "phpstan/phpstan-deprecation-rules": "^0.11", - "phpstan/phpstan-phpunit": "^0.11", - "phpstan/phpstan-strict-rules": "^0.11", - "phpunit/phpunit": "^6.4|^7.0" - }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Bundle\\MigrationsBundle\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Doctrine Project", - "homepage": "http://www.doctrine-project.org" - }, - { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - } - ], - "description": "Symfony DoctrineMigrationsBundle", - "homepage": "https://www.doctrine-project.org", - "keywords": [ - "dbal", - "migrations", - "schema" - ], - "support": { - "issues": "https://github.com/doctrine/DoctrineMigrationsBundle/issues", - "source": "https://github.com/doctrine/DoctrineMigrationsBundle/tree/3.0.x" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-migrations-bundle", - "type": "tidelift" - } - ], - "time": "2020-06-15T06:04:38+00:00" - }, - { - "name": "doctrine/event-manager", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/event-manager.git", - "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/event-manager/zipball/41370af6a30faa9dc0368c4a6814d596e81aba7f", - "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "conflict": { - "doctrine/common": "<2.9@dev" - }, - "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpunit/phpunit": "^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", - "homepage": "https://www.doctrine-project.org/projects/event-manager.html", - "keywords": [ - "event", - "event dispatcher", - "event manager", - "event system", - "events" - ], - "support": { - "issues": "https://github.com/doctrine/event-manager/issues", - "source": "https://github.com/doctrine/event-manager/tree/1.1.x" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager", - "type": "tidelift" - } - ], - "time": "2020-05-29T18:28:51+00:00" - }, - { - "name": "doctrine/inflector", - "version": "1.4.3", - "source": { - "type": "git", - "url": "https://github.com/doctrine/inflector.git", - "reference": "4650c8b30c753a76bf44fb2ed00117d6f367490c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/4650c8b30c753a76bf44fb2ed00117d6f367490c", - "reference": "4650c8b30c753a76bf44fb2ed00117d6f367490c", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^7.0", - "phpstan/phpstan": "^0.11", - "phpstan/phpstan-phpunit": "^0.11", - "phpstan/phpstan-strict-rules": "^0.11", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector", - "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", - "homepage": "https://www.doctrine-project.org/projects/inflector.html", - "keywords": [ - "inflection", - "inflector", - "lowercase", - "manipulation", - "php", - "plural", - "singular", - "strings", - "uppercase", - "words" - ], - "support": { - "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/1.4.x" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", - "type": "tidelift" - } - ], - "time": "2020-05-29T07:19:59+00:00" - }, - { - "name": "doctrine/instantiator", - "version": "1.4.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^8.0", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", - "keywords": [ - "constructor", - "instantiate" - ], - "support": { - "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.4.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" - } - ], - "time": "2020-11-10T18:47:58+00:00" - }, - { - "name": "doctrine/lexer", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/lexer.git", - "reference": "e864bbf5904cb8f5bb334f99209b48018522f042" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042", - "reference": "e864bbf5904cb8f5bb334f99209b48018522f042", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpstan/phpstan": "^0.11.8", - "phpunit/phpunit": "^8.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "https://www.doctrine-project.org/projects/lexer.html", - "keywords": [ - "annotations", - "docblock", - "lexer", - "parser", - "php" - ], - "support": { - "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/1.2.1" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", - "type": "tidelift" - } - ], - "time": "2020-05-25T17:44:05+00:00" - }, - { - "name": "doctrine/migrations", - "version": "3.0.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/migrations.git", - "reference": "69eaf2ca5bc48357b43ddbdc31ccdffc0e2a0882" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/migrations/zipball/69eaf2ca5bc48357b43ddbdc31ccdffc0e2a0882", - "reference": "69eaf2ca5bc48357b43ddbdc31ccdffc0e2a0882", - "shasum": "" - }, - "require": { - "doctrine/dbal": "^2.10", - "doctrine/event-manager": "^1.0", - "ocramius/package-versions": "^1.3", - "ocramius/proxy-manager": "^2.0.2", - "php": "^7.2", - "psr/log": "^1.1.3", - "symfony/console": "^3.4||^4.0||^5.0", - "symfony/stopwatch": "^3.4||^4.0||^5.0" - }, - "require-dev": { - "doctrine/coding-standard": "^7.0", - "doctrine/orm": "^2.6", - "doctrine/persistence": "^1.3||^2.0", - "doctrine/sql-formatter": "^1.0", - "ext-pdo_sqlite": "*", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-deprecation-rules": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpstan/phpstan-strict-rules": "^0.12", - "phpstan/phpstan-symfony": "^0.12", - "phpunit/phpunit": "^8.4", - "symfony/process": "^3.4||^4.0||^5.0", - "symfony/yaml": "^3.4||^4.0||^5.0" - }, - "suggest": { - "doctrine/sql-formatter": "Allows to generate formatted SQL with the diff command.", - "symfony/yaml": "Allows the use of yaml for migration configuration files." - }, - "bin": [ - "bin/doctrine-migrations" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Migrations\\": "lib/Doctrine/Migrations" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Michael Simonson", - "email": "contact@mikesimonson.com" - } - ], - "description": "PHP Doctrine Migrations project offer additional functionality on top of the database abstraction layer (DBAL) for versioning your database schema and easily deploying changes to it. It is a very easy to use and a powerful tool.", - "homepage": "https://www.doctrine-project.org/projects/migrations.html", - "keywords": [ - "database", - "dbal", - "migrations", - "php" - ], - "support": { - "issues": "https://github.com/doctrine/migrations/issues", - "source": "https://github.com/doctrine/migrations/tree/3.0.1" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fmigrations", - "type": "tidelift" - } - ], - "time": "2020-06-21T08:55:42+00:00" - }, - { - "name": "doctrine/orm", - "version": "2.7.4", - "source": { - "type": "git", - "url": "https://github.com/doctrine/orm.git", - "reference": "7d84a4998091ece4d645253ac65de9f879eeed2f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/7d84a4998091ece4d645253ac65de9f879eeed2f", - "reference": "7d84a4998091ece4d645253ac65de9f879eeed2f", - "shasum": "" - }, - "require": { - "composer/package-versions-deprecated": "^1.8", - "doctrine/annotations": "^1.8", - "doctrine/cache": "^1.9.1", - "doctrine/collections": "^1.5", - "doctrine/common": "^2.11 || ^3.0", - "doctrine/dbal": "^2.9.3", - "doctrine/event-manager": "^1.1", - "doctrine/inflector": "^1.0", - "doctrine/instantiator": "^1.3", - "doctrine/lexer": "^1.0", - "doctrine/persistence": "^1.3.3 || ^2.0", - "ext-pdo": "*", - "php": "^7.1", - "symfony/console": "^3.0|^4.0|^5.0" - }, - "require-dev": { - "doctrine/coding-standard": "^5.0", - "phpstan/phpstan": "^0.12.18", - "phpunit/phpunit": "^7.5", - "symfony/yaml": "^3.4|^4.0|^5.0", - "vimeo/psalm": "^3.11" - }, - "suggest": { - "symfony/yaml": "If you want to use YAML Metadata Mapping Driver" - }, - "bin": [ - "bin/doctrine" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.7.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\ORM\\": "lib/Doctrine/ORM" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "description": "Object-Relational-Mapper for PHP", - "homepage": "https://www.doctrine-project.org/projects/orm.html", - "keywords": [ - "database", - "orm" - ], - "support": { - "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/2.7.4" - }, - "time": "2020-10-10T17:11:26+00:00" - }, - { - "name": "doctrine/persistence", - "version": "2.1.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/persistence.git", - "reference": "9899c16934053880876b920a3b8b02ed2337ac1d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/persistence/zipball/9899c16934053880876b920a3b8b02ed2337ac1d", - "reference": "9899c16934053880876b920a3b8b02ed2337ac1d", - "shasum": "" - }, - "require": { - "doctrine/annotations": "^1.0", - "doctrine/cache": "^1.0", - "doctrine/collections": "^1.0", - "doctrine/event-manager": "^1.0", - "php": "^7.1 || ^8.0" - }, - "conflict": { - "doctrine/common": "<2.10@dev" - }, - "require-dev": { - "composer/package-versions-deprecated": "^1.11", - "doctrine/coding-standard": "^6.0 || ^8.0", - "doctrine/common": "^3.0", - "phpstan/phpstan": "^0.12", - "phpunit/phpunit": "^7.5.20 || ^8.0 || ^9.0", - "vimeo/psalm": "^3.11" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common", - "Doctrine\\Persistence\\": "lib/Doctrine/Persistence" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.", - "homepage": "https://doctrine-project.org/projects/persistence.html", - "keywords": [ - "mapper", - "object", - "odm", - "orm", - "persistence" - ], - "support": { - "issues": "https://github.com/doctrine/persistence/issues", - "source": "https://github.com/doctrine/persistence/tree/2.1.0" - }, - "time": "2020-10-24T22:13:54+00:00" - }, - { - "name": "doctrine/sql-formatter", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/sql-formatter.git", - "reference": "56070bebac6e77230ed7d306ad13528e60732871" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/56070bebac6e77230ed7d306ad13528e60732871", - "reference": "56070bebac6e77230ed7d306ad13528e60732871", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.4" - }, - "bin": [ - "bin/sql-formatter" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\SqlFormatter\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jeremy Dorn", - "email": "jeremy@jeremydorn.com", - "homepage": "http://jeremydorn.com/" - } - ], - "description": "a PHP SQL highlighting library", - "homepage": "https://github.com/doctrine/sql-formatter/", - "keywords": [ - "highlight", - "sql" - ], - "support": { - "issues": "https://github.com/doctrine/sql-formatter/issues", - "source": "https://github.com/doctrine/sql-formatter/tree/1.1.x" - }, - "time": "2020-07-30T16:57:33+00:00" - }, - { - "name": "egulias/email-validator", - "version": "2.1.24", - "source": { - "type": "git", - "url": "https://github.com/egulias/EmailValidator.git", - "reference": "ca90a3291eee1538cd48ff25163240695bd95448" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ca90a3291eee1538cd48ff25163240695bd95448", - "reference": "ca90a3291eee1538cd48ff25163240695bd95448", - "shasum": "" - }, - "require": { - "doctrine/lexer": "^1.0.1", - "php": ">=5.5", - "symfony/polyfill-intl-idn": "^1.10" - }, - "require-dev": { - "dominicsayers/isemail": "^3.0.7", - "phpunit/phpunit": "^4.8.36|^7.5.15", - "satooshi/php-coveralls": "^1.0.1" - }, - "suggest": { - "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Egulias\\EmailValidator\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Eduardo Gulias Davis" - } - ], - "description": "A library for validating emails against several RFCs", - "homepage": "https://github.com/egulias/EmailValidator", - "keywords": [ - "email", - "emailvalidation", - "emailvalidator", - "validation", - "validator" - ], - "support": { - "issues": "https://github.com/egulias/EmailValidator/issues", - "source": "https://github.com/egulias/EmailValidator/tree/2.1.24" - }, - "funding": [ - { - "url": "https://github.com/egulias", - "type": "github" - } - ], - "time": "2020-11-14T15:56:27+00:00" - }, - { - "name": "laminas/laminas-code", - "version": "3.5.0", - "source": { - "type": "git", - "url": "https://github.com/laminas/laminas-code.git", - "reference": "cb90ef428da9260c2deaa827b037c20695f968ae" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-code/zipball/cb90ef428da9260c2deaa827b037c20695f968ae", - "reference": "cb90ef428da9260c2deaa827b037c20695f968ae", - "shasum": "" - }, - "require": { - "laminas/laminas-eventmanager": "^3.3", - "laminas/laminas-zendframework-bridge": "^1.1", - "php": "^7.3 || ~8.0.0" - }, - "conflict": { - "phpspec/prophecy": "<1.9.0" - }, - "replace": { - "zendframework/zend-code": "^3.4.1" - }, - "require-dev": { - "doctrine/annotations": "^1.10.4", - "ext-phar": "*", - "laminas/laminas-coding-standard": "^1.0.0", - "laminas/laminas-stdlib": "^3.3.0", - "phpunit/phpunit": "^9.4.2" - }, - "suggest": { - "doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features", - "laminas/laminas-stdlib": "Laminas\\Stdlib component" - }, - "type": "library", - "autoload": { - "psr-4": { - "Laminas\\Code\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Extensions to the PHP Reflection API, static code scanning, and code generation", - "homepage": "https://laminas.dev", - "keywords": [ - "code", - "laminas" - ], - "support": { - "chat": "https://laminas.dev/chat", - "docs": "https://docs.laminas.dev/laminas-code/", - "forum": "https://discourse.laminas.dev", - "issues": "https://github.com/laminas/laminas-code/issues", - "rss": "https://github.com/laminas/laminas-code/releases.atom", - "source": "https://github.com/laminas/laminas-code" - }, - "funding": [ - { - "url": "https://funding.communitybridge.org/projects/laminas-project", - "type": "community_bridge" - } - ], - "time": "2020-11-11T22:11:27+00:00" - }, - { - "name": "laminas/laminas-eventmanager", - "version": "3.3.0", - "source": { - "type": "git", - "url": "https://github.com/laminas/laminas-eventmanager.git", - "reference": "1940ccf30e058b2fd66f5a9d696f1b5e0027b082" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-eventmanager/zipball/1940ccf30e058b2fd66f5a9d696f1b5e0027b082", - "reference": "1940ccf30e058b2fd66f5a9d696f1b5e0027b082", - "shasum": "" - }, - "require": { - "laminas/laminas-zendframework-bridge": "^1.0", - "php": "^7.3 || ^8.0" - }, - "replace": { - "zendframework/zend-eventmanager": "^3.2.1" - }, - "require-dev": { - "container-interop/container-interop": "^1.1", - "laminas/laminas-coding-standard": "~1.0.0", - "laminas/laminas-stdlib": "^2.7.3 || ^3.0", - "phpbench/phpbench": "^0.17.1", - "phpunit/phpunit": "^8.5.8" - }, - "suggest": { - "container-interop/container-interop": "^1.1, to use the lazy listeners feature", - "laminas/laminas-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.3.x-dev", - "dev-develop": "3.4.x-dev" - } - }, - "autoload": { - "psr-4": { - "Laminas\\EventManager\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Trigger and listen to events within a PHP application", - "homepage": "https://laminas.dev", - "keywords": [ - "event", - "eventmanager", - "events", - "laminas" - ], - "support": { - "chat": "https://laminas.dev/chat", - "docs": "https://docs.laminas.dev/laminas-eventmanager/", - "forum": "https://discourse.laminas.dev", - "issues": "https://github.com/laminas/laminas-eventmanager/issues", - "rss": "https://github.com/laminas/laminas-eventmanager/releases.atom", - "source": "https://github.com/laminas/laminas-eventmanager" - }, - "funding": [ - { - "url": "https://funding.communitybridge.org/projects/laminas-project", - "type": "community_bridge" - } - ], - "time": "2020-08-25T11:10:44+00:00" - }, - { - "name": "laminas/laminas-zendframework-bridge", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/laminas/laminas-zendframework-bridge.git", - "reference": "6ede70583e101030bcace4dcddd648f760ddf642" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/6ede70583e101030bcace4dcddd648f760ddf642", - "reference": "6ede70583e101030bcace4dcddd648f760ddf642", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.1 || ^9.3", - "squizlabs/php_codesniffer": "^3.5" - }, - "type": "library", - "extra": { - "laminas": { - "module": "Laminas\\ZendFrameworkBridge" - } - }, - "autoload": { - "files": [ - "src/autoload.php" - ], - "psr-4": { - "Laminas\\ZendFrameworkBridge\\": "src//" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Alias legacy ZF class names to Laminas Project equivalents.", - "keywords": [ - "ZendFramework", - "autoloading", - "laminas", - "zf" - ], - "support": { - "forum": "https://discourse.laminas.dev/", - "issues": "https://github.com/laminas/laminas-zendframework-bridge/issues", - "rss": "https://github.com/laminas/laminas-zendframework-bridge/releases.atom", - "source": "https://github.com/laminas/laminas-zendframework-bridge" - }, - "funding": [ - { - "url": "https://funding.communitybridge.org/projects/laminas-project", - "type": "community_bridge" - } - ], - "time": "2020-09-14T14:23:00+00:00" - }, - { - "name": "monolog/monolog", - "version": "2.1.1", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/monolog.git", - "reference": "f9eee5cec93dfb313a38b6b288741e84e53f02d5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f9eee5cec93dfb313a38b6b288741e84e53f02d5", - "reference": "f9eee5cec93dfb313a38b6b288741e84e53f02d5", - "shasum": "" - }, - "require": { - "php": ">=7.2", - "psr/log": "^1.0.1" - }, - "provide": { - "psr/log-implementation": "1.0.0" - }, - "require-dev": { - "aws/aws-sdk-php": "^2.4.9 || ^3.0", - "doctrine/couchdb": "~1.0@dev", - "elasticsearch/elasticsearch": "^6.0", - "graylog2/gelf-php": "^1.4.2", - "php-amqplib/php-amqplib": "~2.4", - "php-console/php-console": "^3.1.3", - "php-parallel-lint/php-parallel-lint": "^1.0", - "phpspec/prophecy": "^1.6.1", - "phpunit/phpunit": "^8.5", - "predis/predis": "^1.1", - "rollbar/rollbar": "^1.3", - "ruflin/elastica": ">=0.90 <3.0", - "swiftmailer/swiftmailer": "^5.3|^6.0" - }, - "suggest": { - "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", - "doctrine/couchdb": "Allow sending log messages to a CouchDB server", - "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", - "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", - "ext-mbstring": "Allow to work properly with unicode symbols", - "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", - "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", - "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", - "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", - "php-console/php-console": "Allow sending log messages to Google Chrome", - "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Monolog\\": "src/Monolog" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "homepage": "http://github.com/Seldaek/monolog", - "keywords": [ - "log", - "logging", - "psr-3" - ], - "support": { - "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/2.1.1" - }, - "funding": [ - { - "url": "https://github.com/Seldaek", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", - "type": "tidelift" - } - ], - "time": "2020-07-23T08:41:23+00:00" - }, - { - "name": "ocramius/proxy-manager", - "version": "2.10.0", - "source": { - "type": "git", - "url": "https://github.com/Ocramius/ProxyManager.git", - "reference": "f65ae0f9dcbdd9d6ad3abb721a9e09c3d7d868a4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Ocramius/ProxyManager/zipball/f65ae0f9dcbdd9d6ad3abb721a9e09c3d7d868a4", - "reference": "f65ae0f9dcbdd9d6ad3abb721a9e09c3d7d868a4", - "shasum": "" - }, - "require": { - "composer-runtime-api": "^2.0.0", - "laminas/laminas-code": "^3.4.1", - "php": "~7.4.1", - "webimpress/safe-writer": "^2.0.1" - }, - "conflict": { - "doctrine/annotations": "<1.6.1", - "laminas/laminas-stdlib": "<3.2.1", - "zendframework/zend-stdlib": "<3.2.1" - }, - "require-dev": { - "codelicia/xulieta": "^0.1.2", - "doctrine/coding-standard": "^8.1.0", - "ext-phar": "*", - "infection/infection": "^0.16.4", - "nikic/php-parser": "^4.6.0", - "phpbench/phpbench": "^0.17.1", - "phpunit/phpunit": "^9.2.5", - "slevomat/coding-standard": "^6.3.10", - "squizlabs/php_codesniffer": "^3.5.5", - "vimeo/psalm": "^3.12.2" - }, - "suggest": { - "laminas/laminas-json": "To have the JsonRpc adapter (Remote Object feature)", - "laminas/laminas-soap": "To have the Soap adapter (Remote Object feature)", - "laminas/laminas-xmlrpc": "To have the XmlRpc adapter (Remote Object feature)", - "ocramius/generated-hydrator": "To have very fast object to array to object conversion for ghost objects" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "ProxyManager\\": "src/ProxyManager" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.io/" - } - ], - "description": "A library providing utilities to generate, instantiate and generally operate with Object Proxies", - "homepage": "https://github.com/Ocramius/ProxyManager", - "keywords": [ - "aop", - "lazy loading", - "proxy", - "proxy pattern", - "service proxies" - ], - "support": { - "issues": "https://github.com/Ocramius/ProxyManager/issues", - "source": "https://github.com/Ocramius/ProxyManager/tree/2.10.0" - }, - "funding": [ - { - "url": "https://github.com/Ocramius", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/ocramius/proxy-manager", - "type": "tidelift" - } - ], - "time": "2020-11-12T17:04:46+00:00" - }, - { - "name": "psr/cache", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/cache.git", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Cache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for caching libraries", - "keywords": [ - "cache", - "psr", - "psr-6" - ], - "support": { - "source": "https://github.com/php-fig/cache/tree/master" - }, - "time": "2016-08-06T20:24:11+00:00" - }, - { - "name": "psr/container", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], - "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/master" - }, - "time": "2017-02-14T16:28:37+00:00" - }, - { - "name": "psr/event-dispatcher", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/event-dispatcher.git", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", - "shasum": "" - }, - "require": { - "php": ">=7.2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\EventDispatcher\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Standard interfaces for event handling.", - "keywords": [ - "events", - "psr", - "psr-14" - ], - "support": { - "issues": "https://github.com/php-fig/event-dispatcher/issues", - "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" - }, - "time": "2019-01-08T18:20:26+00:00" - }, - { - "name": "psr/log", - "version": "1.1.3", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", - "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "Psr/Log/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "support": { - "source": "https://github.com/php-fig/log/tree/1.1.3" - }, - "time": "2020-03-23T09:12:05+00:00" - }, - { - "name": "symfony/amqp-messenger", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/amqp-messenger.git", - "reference": "daa895ff04c3a692b8ca3568445a46b44796e254" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/amqp-messenger/zipball/daa895ff04c3a692b8ca3568445a46b44796e254", - "reference": "daa895ff04c3a692b8ca3568445a46b44796e254", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/messenger": "^5.1" - }, - "require-dev": { - "symfony/event-dispatcher": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", - "symfony/property-access": "^4.4|^5.0", - "symfony/serializer": "^4.4|^5.0" - }, - "type": "symfony-bridge", - "autoload": { - "psr-4": { - "Symfony\\Component\\Messenger\\Bridge\\Amqp\\": "" - }, - "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 AMQP extension Messenger Bridge", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/amqp-messenger/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-27T10:11:13+00:00" - }, - { - "name": "symfony/cache", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/cache.git", - "reference": "d7bc33e9f9028f49f87057e7944c076d9593f046" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/d7bc33e9f9028f49f87057e7944c076d9593f046", - "reference": "d7bc33e9f9028f49f87057e7944c076d9593f046", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "psr/cache": "~1.0", - "psr/log": "~1.0", - "symfony/cache-contracts": "^1.1.7|^2", - "symfony/polyfill-php80": "^1.15", - "symfony/service-contracts": "^1.1|^2", - "symfony/var-exporter": "^4.4|^5.0" - }, - "conflict": { - "doctrine/dbal": "<2.5", - "symfony/dependency-injection": "<4.4", - "symfony/http-kernel": "<4.4", - "symfony/var-dumper": "<4.4" - }, - "provide": { - "psr/cache-implementation": "1.0", - "psr/simple-cache-implementation": "1.0", - "symfony/cache-implementation": "1.0" - }, - "require-dev": { - "cache/integration-tests": "dev-master", - "doctrine/cache": "^1.6", - "doctrine/dbal": "^2.5|^3.0", - "predis/predis": "^1.1", - "psr/simple-cache": "^1.0", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/filesystem": "^4.4|^5.0", - "symfony/var-dumper": "^4.4|^5.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Cache\\": "" - }, - "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 Cache component with PSR-6, PSR-16, and tags", - "homepage": "https://symfony.com", - "keywords": [ - "caching", - "psr6" - ], - "support": { - "source": "https://github.com/symfony/cache/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-25T23:21:56+00:00" - }, - { - "name": "symfony/cache-contracts", - "version": "v2.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/cache-contracts.git", - "reference": "8034ca0b61d4dd967f3698aaa1da2507b631d0cb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/8034ca0b61d4dd967f3698aaa1da2507b631d0cb", - "reference": "8034ca0b61d4dd967f3698aaa1da2507b631d0cb", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "psr/cache": "^1.0" - }, - "suggest": { - "symfony/cache-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.2-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Cache\\": "" - } - }, - "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": "Generic abstractions related to caching", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/cache-contracts/tree/v2.2.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-09-07T11:33:47+00:00" - }, - { - "name": "symfony/config", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/config.git", - "reference": "11baeefa4c179d6908655a7b6be728f62367c193" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/11baeefa4c179d6908655a7b6be728f62367c193", - "reference": "11baeefa4c179d6908655a7b6be728f62367c193", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/filesystem": "^4.4|^5.0", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-php80": "^1.15" - }, - "conflict": { - "symfony/finder": "<4.4" - }, - "require-dev": { - "symfony/event-dispatcher": "^4.4|^5.0", - "symfony/finder": "^4.4|^5.0", - "symfony/messenger": "^4.4|^5.0", - "symfony/service-contracts": "^1.1|^2", - "symfony/yaml": "^4.4|^5.0" - }, - "suggest": { - "symfony/yaml": "To use the yaml reference dumper" - }, - "type": "library", - "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", - "support": { - "source": "https://github.com/symfony/config/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T12:01:57+00:00" - }, - { - "name": "symfony/console", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "e0b2c29c0fa6a69089209bbe8fcff4df2a313d0e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/e0b2c29c0fa6a69089209bbe8fcff4df2a313d0e", - "reference": "e0b2c29c0fa6a69089209bbe8fcff4df2a313d0e", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.8", - "symfony/polyfill-php80": "^1.15", - "symfony/service-contracts": "^1.1|^2", - "symfony/string": "^5.1" - }, - "conflict": { - "symfony/dependency-injection": "<4.4", - "symfony/dotenv": "<5.1", - "symfony/event-dispatcher": "<4.4", - "symfony/lock": "<4.4", - "symfony/process": "<4.4" - }, - "provide": { - "psr/log-implementation": "1.0" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/event-dispatcher": "^4.4|^5.0", - "symfony/lock": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", - "symfony/var-dumper": "^4.4|^5.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" - }, - "type": "library", - "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", - "support": { - "source": "https://github.com/symfony/console/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T12:01:57+00:00" - }, - { - "name": "symfony/dependency-injection", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/dependency-injection.git", - "reference": "829ca6bceaf68036a123a13a979f3c89289eae78" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/829ca6bceaf68036a123a13a979f3c89289eae78", - "reference": "829ca6bceaf68036a123a13a979f3c89289eae78", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "psr/container": "^1.0", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-php80": "^1.15", - "symfony/service-contracts": "^1.1.6|^2" - }, - "conflict": { - "symfony/config": "<5.1", - "symfony/finder": "<4.4", - "symfony/proxy-manager-bridge": "<4.4", - "symfony/yaml": "<4.4" - }, - "provide": { - "psr/container-implementation": "1.0", - "symfony/service-implementation": "1.0" - }, - "require-dev": { - "symfony/config": "^5.1", - "symfony/expression-language": "^4.4|^5.0", - "symfony/yaml": "^4.4|^5.0" - }, - "suggest": { - "symfony/config": "", - "symfony/expression-language": "For using expressions in service container configuration", - "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", - "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", - "symfony/yaml": "" - }, - "type": "library", - "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", - "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-27T10:11:13+00:00" - }, - { - "name": "symfony/deprecation-contracts", - "version": "v2.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665", - "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.2-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "files": [ - "function.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/master" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-09-07T11:33:47+00:00" - }, - { - "name": "symfony/doctrine-bridge", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "d01f0ec8b1225bd955d079f007c25191d93867d0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/d01f0ec8b1225bd955d079f007c25191d93867d0", - "reference": "d01f0ec8b1225bd955d079f007c25191d93867d0", - "shasum": "" - }, - "require": { - "doctrine/event-manager": "~1.0", - "doctrine/persistence": "^1.3|^2", - "php": ">=7.2.5", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.15", - "symfony/service-contracts": "^1.1|^2" - }, - "conflict": { - "phpunit/phpunit": "<5.4.3", - "symfony/dependency-injection": "<4.4", - "symfony/form": "<5.1", - "symfony/http-kernel": "<5", - "symfony/messenger": "<4.4", - "symfony/property-info": "<5", - "symfony/security-bundle": "<5", - "symfony/security-core": "<5", - "symfony/validator": "<5.0.2" - }, - "require-dev": { - "composer/package-versions-deprecated": "^1.8", - "doctrine/annotations": "~1.7", - "doctrine/cache": "~1.6", - "doctrine/collections": "~1.0", - "doctrine/data-fixtures": "^1.1", - "doctrine/dbal": "~2.4|^3.0", - "doctrine/orm": "^2.6.3", - "doctrine/reflection": "~1.0", - "symfony/cache": "^5.1", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/doctrine-messenger": "^5.1", - "symfony/expression-language": "^4.4|^5.0", - "symfony/form": "^5.1.3", - "symfony/http-kernel": "^5.0", - "symfony/messenger": "^4.4|^5.0", - "symfony/property-access": "^4.4|^5.0", - "symfony/property-info": "^5.0", - "symfony/proxy-manager-bridge": "^4.4|^5.0", - "symfony/security-core": "^5.0", - "symfony/stopwatch": "^4.4|^5.0", - "symfony/translation": "^4.4|^5.0", - "symfony/validator": "^5.0.2", - "symfony/var-dumper": "^4.4|^5.0" - }, - "suggest": { - "doctrine/data-fixtures": "", - "doctrine/dbal": "", - "doctrine/orm": "", - "symfony/form": "", - "symfony/property-info": "", - "symfony/validator": "" - }, - "type": "symfony-bridge", - "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", - "support": { - "source": "https://github.com/symfony/doctrine-bridge/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T12:01:57+00:00" - }, - { - "name": "symfony/doctrine-messenger", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/doctrine-messenger.git", - "reference": "dbff2dc94784923d91be06bf2296a9fdeb7d329d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-messenger/zipball/dbff2dc94784923d91be06bf2296a9fdeb7d329d", - "reference": "dbff2dc94784923d91be06bf2296a9fdeb7d329d", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/messenger": "^5.1", - "symfony/service-contracts": "^1.1|^2" - }, - "conflict": { - "doctrine/persistence": "<1.3" - }, - "require-dev": { - "doctrine/dbal": "^2.6|^3.0", - "doctrine/persistence": "^1.3|^2", - "symfony/property-access": "^4.4|^5.0", - "symfony/serializer": "^4.4|^5.0" - }, - "type": "symfony-bridge", - "autoload": { - "psr-4": { - "Symfony\\Component\\Messenger\\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 Messenger Bridge", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/doctrine-messenger/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T12:01:57+00:00" - }, - { - "name": "symfony/dotenv", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/dotenv.git", - "reference": "29ac2a3e538da61780a769827c716738ce7accbb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/29ac2a3e538da61780a769827c716738ce7accbb", - "reference": "29ac2a3e538da61780a769827c716738ce7accbb", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1" - }, - "require-dev": { - "symfony/process": "^4.4|^5.0" - }, - "type": "library", - "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" - ], - "support": { - "source": "https://github.com/symfony/dotenv/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T12:01:57+00:00" - }, - { - "name": "symfony/error-handler", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/error-handler.git", - "reference": "a154f2b12fd1ec708559ba73ed58bd1304e55718" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/a154f2b12fd1ec708559ba73ed58bd1304e55718", - "reference": "a154f2b12fd1ec708559ba73ed58bd1304e55718", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "psr/log": "^1.0", - "symfony/polyfill-php80": "^1.15", - "symfony/var-dumper": "^4.4|^5.0" - }, - "require-dev": { - "symfony/deprecation-contracts": "^2.1", - "symfony/http-kernel": "^4.4|^5.0", - "symfony/serializer": "^4.4|^5.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\ErrorHandler\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony ErrorHandler Component", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/error-handler/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T12:01:57+00:00" - }, - { - "name": "symfony/event-dispatcher", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "26f4edae48c913fc183a3da0553fe63bdfbd361a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/26f4edae48c913fc183a3da0553fe63bdfbd361a", - "reference": "26f4edae48c913fc183a3da0553fe63bdfbd361a", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/event-dispatcher-contracts": "^2", - "symfony/polyfill-php80": "^1.15" - }, - "conflict": { - "symfony/dependency-injection": "<4.4" - }, - "provide": { - "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "2.0" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/error-handler": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/http-foundation": "^4.4|^5.0", - "symfony/service-contracts": "^1.1|^2", - "symfony/stopwatch": "^4.4|^5.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" - }, - "type": "library", - "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", - "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T12:01:57+00:00" - }, - { - "name": "symfony/event-dispatcher-contracts", - "version": "v2.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "0ba7d54483095a198fa51781bc608d17e84dffa2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/0ba7d54483095a198fa51781bc608d17e84dffa2", - "reference": "0ba7d54483095a198fa51781bc608d17e84dffa2", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "psr/event-dispatcher": "^1" - }, - "suggest": { - "symfony/event-dispatcher-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.2-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\EventDispatcher\\": "" - } - }, - "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": "Generic abstractions related to dispatching event", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.2.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-09-07T11:33:47+00:00" - }, - { - "name": "symfony/filesystem", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "df08650ea7aee2d925380069c131a66124d79177" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/df08650ea7aee2d925380069c131a66124d79177", - "reference": "df08650ea7aee2d925380069c131a66124d79177", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-ctype": "~1.8" - }, - "type": "library", - "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", - "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T12:01:57+00:00" - }, - { - "name": "symfony/finder", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "e70eb5a69c2ff61ea135a13d2266e8914a67b3a0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/e70eb5a69c2ff61ea135a13d2266e8914a67b3a0", - "reference": "e70eb5a69c2ff61ea135a13d2266e8914a67b3a0", - "shasum": "" - }, - "require": { - "php": ">=7.2.5" - }, - "type": "library", - "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", - "support": { - "source": "https://github.com/symfony/finder/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T12:01:57+00:00" - }, - { - "name": "symfony/flex", - "version": "v1.10.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/flex.git", - "reference": "e38520236bdc911c2f219634b485bc328746e980" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/flex/zipball/e38520236bdc911c2f219634b485bc328746e980", - "reference": "e38520236bdc911c2f219634b485bc328746e980", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0|^2.0", - "php": ">=7.1" - }, - "require-dev": { - "composer/composer": "^1.0.2|^2.0", - "symfony/dotenv": "^4.4|^5.0", - "symfony/phpunit-bridge": "^4.4|^5.0", - "symfony/process": "^3.4|^4.4|^5.0" - }, - "type": "composer-plugin", - "extra": { - "branch-alias": { - "dev-main": "1.9-dev" - }, - "class": "Symfony\\Flex\\Flex" - }, - "autoload": { - "psr-4": { - "Symfony\\Flex\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien.potencier@gmail.com" - } - ], - "description": "Composer plugin for Symfony", - "support": { - "issues": "https://github.com/symfony/flex/issues", - "source": "https://github.com/symfony/flex/tree/v1.10.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-11-05T10:56:45+00:00" - }, - { - "name": "symfony/framework-bundle", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/framework-bundle.git", - "reference": "b5f961afc6cd1923c49cac0993c65bf5eee27d86" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/b5f961afc6cd1923c49cac0993c65bf5eee27d86", - "reference": "b5f961afc6cd1923c49cac0993c65bf5eee27d86", - "shasum": "" - }, - "require": { - "ext-xml": "*", - "php": ">=7.2.5", - "symfony/cache": "^4.4|^5.0", - "symfony/config": "^5.0", - "symfony/dependency-injection": "^5.1", - "symfony/error-handler": "^4.4.1|^5.0.1", - "symfony/event-dispatcher": "^5.1", - "symfony/filesystem": "^4.4|^5.0", - "symfony/finder": "^4.4|^5.0", - "symfony/http-foundation": "^4.4|^5.0", - "symfony/http-kernel": "^5.0", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.15", - "symfony/routing": "^5.1" - }, - "conflict": { - "doctrine/persistence": "<1.3", - "phpdocumentor/reflection-docblock": "<3.0", - "phpdocumentor/type-resolver": "<0.2.1", - "phpunit/phpunit": "<5.4.3", - "symfony/asset": "<5.1", - "symfony/browser-kit": "<4.4", - "symfony/console": "<4.4", - "symfony/dom-crawler": "<4.4", - "symfony/dotenv": "<5.1", - "symfony/form": "<4.4", - "symfony/http-client": "<4.4", - "symfony/lock": "<4.4", - "symfony/mailer": "<4.4", - "symfony/messenger": "<4.4", - "symfony/mime": "<4.4", - "symfony/property-info": "<4.4", - "symfony/serializer": "<4.4", - "symfony/stopwatch": "<4.4", - "symfony/translation": "<5.0", - "symfony/twig-bridge": "<4.4", - "symfony/twig-bundle": "<4.4", - "symfony/validator": "<4.4", - "symfony/web-profiler-bundle": "<4.4", - "symfony/workflow": "<4.4" - }, - "require-dev": { - "doctrine/annotations": "~1.7", - "doctrine/cache": "~1.0", - "paragonie/sodium_compat": "^1.8", - "phpdocumentor/reflection-docblock": "^3.0|^4.0", - "symfony/asset": "^5.1", - "symfony/browser-kit": "^4.4|^5.0", - "symfony/console": "^4.4|^5.0", - "symfony/css-selector": "^4.4|^5.0", - "symfony/dom-crawler": "^4.4|^5.0", - "symfony/dotenv": "^5.1", - "symfony/expression-language": "^4.4|^5.0", - "symfony/form": "^4.4|^5.0", - "symfony/http-client": "^4.4|^5.0", - "symfony/lock": "^4.4|^5.0", - "symfony/mailer": "^4.4|^5.0", - "symfony/messenger": "^4.4|^5.0", - "symfony/mime": "^4.4|^5.0", - "symfony/polyfill-intl-icu": "~1.0", - "symfony/process": "^4.4|^5.0", - "symfony/property-info": "^4.4|^5.0", - "symfony/security-bundle": "^5.1", - "symfony/security-csrf": "^4.4|^5.0", - "symfony/security-http": "^4.4|^5.0", - "symfony/serializer": "^4.4|^5.0", - "symfony/stopwatch": "^4.4|^5.0", - "symfony/string": "^5.0", - "symfony/translation": "^5.0", - "symfony/twig-bundle": "^4.4|^5.0", - "symfony/validator": "^4.4|^5.0", - "symfony/web-link": "^4.4|^5.0", - "symfony/workflow": "^4.4|^5.0", - "symfony/yaml": "^4.4|^5.0", - "twig/twig": "^2.10|^3.0" - }, - "suggest": { - "ext-apcu": "For best performance of the system caches", - "symfony/console": "For using the console commands", - "symfony/form": "For using forms", - "symfony/property-info": "For using the property_info service", - "symfony/serializer": "For using the serializer service", - "symfony/validator": "For using validation", - "symfony/web-link": "For using web links, features such as preloading, prefetching or prerendering", - "symfony/yaml": "For using the debug:config and lint:yaml commands" - }, - "type": "symfony-bundle", - "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", - "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T12:01:57+00:00" - }, - { - "name": "symfony/http-client-contracts", - "version": "v2.3.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-client-contracts.git", - "reference": "41db680a15018f9c1d4b23516059633ce280ca33" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/41db680a15018f9c1d4b23516059633ce280ca33", - "reference": "41db680a15018f9c1d4b23516059633ce280ca33", - "shasum": "" - }, - "require": { - "php": ">=7.2.5" - }, - "suggest": { - "symfony/http-client-implementation": "" - }, - "type": "library", - "extra": { - "branch-version": "2.3", - "branch-alias": { - "dev-main": "2.3-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\HttpClient\\": "" - } - }, - "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": "Generic abstractions related to HTTP clients", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/http-client-contracts/tree/v2.3.1" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-14T17:08:19+00:00" - }, - { - "name": "symfony/http-foundation", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-foundation.git", - "reference": "a2860ec970404b0233ab1e59e0568d3277d32b6f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/a2860ec970404b0233ab1e59e0568d3277d32b6f", - "reference": "a2860ec970404b0233ab1e59e0568d3277d32b6f", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php80": "^1.15" - }, - "require-dev": { - "predis/predis": "~1.0", - "symfony/cache": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/mime": "^4.4|^5.0" - }, - "suggest": { - "symfony/mime": "To use the file extension guesser" - }, - "type": "library", - "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", - "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T12:01:57+00:00" - }, - { - "name": "symfony/http-kernel", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-kernel.git", - "reference": "a13b3c4d994a4fd051f4c6800c5e33c9508091dd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/a13b3c4d994a4fd051f4c6800c5e33c9508091dd", - "reference": "a13b3c4d994a4fd051f4c6800c5e33c9508091dd", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "psr/log": "~1.0", - "symfony/deprecation-contracts": "^2.1", - "symfony/error-handler": "^4.4|^5.0", - "symfony/event-dispatcher": "^5.0", - "symfony/http-client-contracts": "^1.1|^2", - "symfony/http-foundation": "^4.4|^5.0", - "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-php73": "^1.9", - "symfony/polyfill-php80": "^1.15" - }, - "conflict": { - "symfony/browser-kit": "<4.4", - "symfony/cache": "<5.0", - "symfony/config": "<5.0", - "symfony/console": "<4.4", - "symfony/dependency-injection": "<4.4", - "symfony/doctrine-bridge": "<5.0", - "symfony/form": "<5.0", - "symfony/http-client": "<5.0", - "symfony/mailer": "<5.0", - "symfony/messenger": "<5.0", - "symfony/translation": "<5.0", - "symfony/twig-bridge": "<5.0", - "symfony/validator": "<5.0", - "twig/twig": "<2.4" - }, - "provide": { - "psr/log-implementation": "1.0" - }, - "require-dev": { - "psr/cache": "~1.0", - "symfony/browser-kit": "^4.4|^5.0", - "symfony/config": "^5.0", - "symfony/console": "^4.4|^5.0", - "symfony/css-selector": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/dom-crawler": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/finder": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", - "symfony/routing": "^4.4|^5.0", - "symfony/stopwatch": "^4.4|^5.0", - "symfony/translation": "^4.4|^5.0", - "symfony/translation-contracts": "^1.1|^2", - "twig/twig": "^2.4|^3.0" - }, - "suggest": { - "symfony/browser-kit": "", - "symfony/config": "", - "symfony/console": "", - "symfony/dependency-injection": "" - }, - "type": "library", - "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", - "support": { - "source": "https://github.com/symfony/http-kernel/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-28T05:55:23+00:00" - }, - { - "name": "symfony/mailer", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/mailer.git", - "reference": "fa5cc9f894a5d082e7e46bfdd44f5dd83529f0ba" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/fa5cc9f894a5d082e7e46bfdd44f5dd83529f0ba", - "reference": "fa5cc9f894a5d082e7e46bfdd44f5dd83529f0ba", - "shasum": "" - }, - "require": { - "egulias/email-validator": "^2.1.10", - "php": ">=7.2.5", - "psr/log": "~1.0", - "symfony/event-dispatcher": "^4.4|^5.0", - "symfony/mime": "^4.4|^5.0", - "symfony/polyfill-php80": "^1.15", - "symfony/service-contracts": "^1.1|^2" - }, - "conflict": { - "symfony/http-kernel": "<4.4" - }, - "require-dev": { - "symfony/amazon-mailer": "^4.4|^5.0", - "symfony/google-mailer": "^4.4|^5.0", - "symfony/http-client-contracts": "^1.1|^2", - "symfony/mailchimp-mailer": "^4.4|^5.0", - "symfony/mailgun-mailer": "^4.4|^5.0", - "symfony/messenger": "^4.4|^5.0", - "symfony/postmark-mailer": "^4.4|^5.0", - "symfony/sendgrid-mailer": "^4.4|^5.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Mailer\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Mailer Component", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/mailer/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T12:01:57+00:00" - }, - { - "name": "symfony/messenger", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/messenger.git", - "reference": "800acfc4dfc954aea6e6adc192e82b44c84520fe" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/messenger/zipball/800acfc4dfc954aea6e6adc192e82b44c84520fe", - "reference": "800acfc4dfc954aea6e6adc192e82b44c84520fe", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "psr/log": "~1.0", - "symfony/amqp-messenger": "^5.1", - "symfony/deprecation-contracts": "^2.1", - "symfony/doctrine-messenger": "^5.1", - "symfony/polyfill-php80": "^1.15", - "symfony/redis-messenger": "^5.1" - }, - "conflict": { - "symfony/event-dispatcher": "<4.4", - "symfony/framework-bundle": "<4.4", - "symfony/http-kernel": "<4.4" - }, - "require-dev": { - "psr/cache": "~1.0", - "symfony/console": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/event-dispatcher": "^4.4|^5.0", - "symfony/http-kernel": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", - "symfony/property-access": "^4.4|^5.0", - "symfony/serializer": "^4.4|^5.0", - "symfony/service-contracts": "^1.1|^2", - "symfony/stopwatch": "^4.4|^5.0", - "symfony/validator": "^4.4|^5.0" - }, - "suggest": { - "enqueue/messenger-adapter": "For using the php-enqueue library as a transport." - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Messenger\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Samuel Roze", - "email": "samuel.roze@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Messenger Component", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/messenger/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T12:01:57+00:00" - }, - { - "name": "symfony/mime", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/mime.git", - "reference": "f5485a92c24d4bcfc2f3fc648744fb398482ff1b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/f5485a92c24d4bcfc2f3fc648744fb398482ff1b", - "reference": "f5485a92c24d4bcfc2f3fc648744fb398482ff1b", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-intl-idn": "^1.10", - "symfony/polyfill-mbstring": "^1.0", - "symfony/polyfill-php80": "^1.15" - }, - "conflict": { - "symfony/mailer": "<4.4" - }, - "require-dev": { - "egulias/email-validator": "^2.1.10", - "symfony/dependency-injection": "^4.4|^5.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Mime\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "A library to manipulate MIME messages", - "homepage": "https://symfony.com", - "keywords": [ - "mime", - "mime-type" - ], - "support": { - "source": "https://github.com/symfony/mime/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T12:01:57+00:00" - }, - { - "name": "symfony/monolog-bridge", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/monolog-bridge.git", - "reference": "0c507eddb704a3154b53f066cc0b587c4586c868" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/0c507eddb704a3154b53f066cc0b587c4586c868", - "reference": "0c507eddb704a3154b53f066cc0b587c4586c868", - "shasum": "" - }, - "require": { - "monolog/monolog": "^1.25.1|^2", - "php": ">=7.2.5", - "symfony/http-kernel": "^4.4|^5.0", - "symfony/service-contracts": "^1.1|^2" - }, - "conflict": { - "symfony/console": "<4.4", - "symfony/http-foundation": "<4.4" - }, - "require-dev": { - "symfony/console": "^4.4|^5.0", - "symfony/http-client": "^4.4|^5.0", - "symfony/mailer": "^4.4|^5.0", - "symfony/mime": "^4.4|^5.0", - "symfony/security-core": "^4.4|^5.0", - "symfony/var-dumper": "^4.4|^5.0" - }, - "suggest": { - "symfony/console": "For the possibility to show log messages in console commands depending on verbosity settings.", - "symfony/http-kernel": "For using the debugging handlers together with the response life cycle of the HTTP kernel.", - "symfony/var-dumper": "For using the debugging handlers like the console handler or the log server handler." - }, - "type": "symfony-bridge", - "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", - "support": { - "source": "https://github.com/symfony/monolog-bridge/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T12:01:57+00:00" - }, - { - "name": "symfony/monolog-bundle", - "version": "v3.6.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/monolog-bundle.git", - "reference": "e495f5c7e4e672ffef4357d4a4d85f010802f940" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/e495f5c7e4e672ffef4357d4a4d85f010802f940", - "reference": "e495f5c7e4e672ffef4357d4a4d85f010802f940", - "shasum": "" - }, - "require": { - "monolog/monolog": "~1.22 || ~2.0", - "php": ">=5.6", - "symfony/config": "~3.4 || ~4.0 || ^5.0", - "symfony/dependency-injection": "~3.4.10 || ^4.0.10 || ^5.0", - "symfony/http-kernel": "~3.4 || ~4.0 || ^5.0", - "symfony/monolog-bridge": "~3.4 || ~4.0 || ^5.0" - }, - "require-dev": { - "symfony/console": "~3.4 || ~4.0 || ^5.0", - "symfony/phpunit-bridge": "^4.4 || ^5.0", - "symfony/yaml": "~3.4 || ~4.0 || ^5.0" - }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Bundle\\MonologBundle\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - } - ], - "description": "Symfony MonologBundle", - "homepage": "http://symfony.com", - "keywords": [ - "log", - "logging" - ], - "support": { - "issues": "https://github.com/symfony/monolog-bundle/issues", - "source": "https://github.com/symfony/monolog-bundle/tree/v3.6.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-06T15:12:11+00:00" - }, - { - "name": "symfony/polyfill-intl-grapheme", - "version": "v1.20.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c", - "reference": "c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.20-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's grapheme_* functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "grapheme", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.20.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-23T14:02:19+00:00" - }, - { - "name": "symfony/polyfill-intl-idn", - "version": "v1.20.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "3b75acd829741c768bc8b1f84eb33265e7cc5117" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/3b75acd829741c768bc8b1f84eb33265e7cc5117", - "reference": "3b75acd829741c768bc8b1f84eb33265e7cc5117", - "shasum": "" - }, - "require": { - "php": ">=7.1", - "symfony/polyfill-intl-normalizer": "^1.10", - "symfony/polyfill-php72": "^1.10" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.20-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Idn\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Laurent Bassin", - "email": "laurent@bassin.info" - }, - { - "name": "Trevor Rowbotham", - "email": "trevor.rowbotham@pm.me" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "idn", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.20.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-23T14:02:19+00:00" - }, - { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.20.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "727d1096295d807c309fb01a851577302394c897" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/727d1096295d807c309fb01a851577302394c897", - "reference": "727d1096295d807c309fb01a851577302394c897", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.20-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's Normalizer class and related functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.20.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-23T14:02:19+00:00" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.20.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "39d483bdf39be819deabf04ec872eb0b2410b531" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/39d483bdf39be819deabf04ec872eb0b2410b531", - "reference": "39d483bdf39be819deabf04ec872eb0b2410b531", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.20-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.20.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-23T14:02:19+00:00" - }, - { - "name": "symfony/polyfill-php73", - "version": "v1.20.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/8ff431c517be11c78c48a39a66d37431e26a6bed", - "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.20-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.20.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-23T14:02:19+00:00" - }, - { - "name": "symfony/polyfill-php80", - "version": "v1.20.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/e70aa8b064c5b72d3df2abd5ab1e90464ad009de", - "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.20-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.20.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-23T14:02:19+00:00" - }, - { - "name": "symfony/redis-messenger", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/redis-messenger.git", - "reference": "0c62cc7e04f391fa88fca55dc50d8e5c6b4d4909" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/redis-messenger/zipball/0c62cc7e04f391fa88fca55dc50d8e5c6b4d4909", - "reference": "0c62cc7e04f391fa88fca55dc50d8e5c6b4d4909", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/messenger": "^5.1" - }, - "require-dev": { - "symfony/property-access": "^4.4|^5.0", - "symfony/serializer": "^4.4|^5.0" - }, - "type": "symfony-bridge", - "autoload": { - "psr-4": { - "Symfony\\Component\\Messenger\\Bridge\\Redis\\": "" - }, - "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 Redis extension Messenger Bridge", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/redis-messenger/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T12:01:57+00:00" - }, - { - "name": "symfony/routing", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/routing.git", - "reference": "d6ceee2a37b61b41079005207bf37746d1bfe71f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/d6ceee2a37b61b41079005207bf37746d1bfe71f", - "reference": "d6ceee2a37b61b41079005207bf37746d1bfe71f", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-php80": "^1.15" - }, - "conflict": { - "symfony/config": "<5.0", - "symfony/dependency-injection": "<4.4", - "symfony/yaml": "<4.4" - }, - "require-dev": { - "doctrine/annotations": "~1.2", - "psr/log": "~1.0", - "symfony/config": "^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/http-foundation": "^4.4|^5.0", - "symfony/yaml": "^4.4|^5.0" - }, - "suggest": { - "doctrine/annotations": "For using the annotation loader", - "symfony/config": "For using the all-in-one router or any loader", - "symfony/expression-language": "For using expression matching", - "symfony/http-foundation": "For using a Symfony Request object", - "symfony/yaml": "For using the YAML loader" - }, - "type": "library", - "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" - ], - "support": { - "source": "https://github.com/symfony/routing/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T12:01:57+00:00" - }, - { - "name": "symfony/service-contracts", - "version": "v2.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1", - "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "psr/container": "^1.0" - }, - "suggest": { - "symfony/service-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.2-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Service\\": "" - } - }, - "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": "Generic abstractions related to writing services", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/service-contracts/tree/master" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-09-07T11:33:47+00:00" - }, - { - "name": "symfony/stopwatch", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/stopwatch.git", - "reference": "3d9f57c89011f0266e6b1d469e5c0110513859d5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/3d9f57c89011f0266e6b1d469e5c0110513859d5", - "reference": "3d9f57c89011f0266e6b1d469e5c0110513859d5", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/service-contracts": "^1.0|^2" - }, - "type": "library", - "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", - "support": { - "source": "https://github.com/symfony/stopwatch/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T12:01:57+00:00" - }, - { - "name": "symfony/string", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/string.git", - "reference": "a97573e960303db71be0dd8fda9be3bca5e0feea" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/a97573e960303db71be0dd8fda9be3bca5e0feea", - "reference": "a97573e960303db71be0dd8fda9be3bca5e0feea", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", - "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "~1.15" - }, - "require-dev": { - "symfony/error-handler": "^4.4|^5.0", - "symfony/http-client": "^4.4|^5.0", - "symfony/translation-contracts": "^1.1|^2", - "symfony/var-exporter": "^4.4|^5.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\String\\": "" - }, - "files": [ - "Resources/functions.php" - ], - "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 String component", - "homepage": "https://symfony.com", - "keywords": [ - "grapheme", - "i18n", - "string", - "unicode", - "utf-8", - "utf8" - ], - "support": { - "source": "https://github.com/symfony/string/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T12:01:57+00:00" - }, - { - "name": "symfony/translation-contracts", - "version": "v2.3.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/translation-contracts.git", - "reference": "e2eaa60b558f26a4b0354e1bbb25636efaaad105" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/e2eaa60b558f26a4b0354e1bbb25636efaaad105", - "reference": "e2eaa60b558f26a4b0354e1bbb25636efaaad105", - "shasum": "" - }, - "require": { - "php": ">=7.2.5" - }, - "suggest": { - "symfony/translation-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.3-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Translation\\": "" - } - }, - "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": "Generic abstractions related to translation", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v2.3.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-09-28T13:05:58+00:00" - }, - { - "name": "symfony/twig-bridge", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/twig-bridge.git", - "reference": "874735a8c97963af2009e0eaee55b17fc0846db2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/874735a8c97963af2009e0eaee55b17fc0846db2", - "reference": "874735a8c97963af2009e0eaee55b17fc0846db2", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.15", - "symfony/translation-contracts": "^1.1|^2", - "twig/twig": "^2.10|^3.0" - }, - "conflict": { - "symfony/console": "<4.4", - "symfony/form": "<5.1", - "symfony/http-foundation": "<4.4", - "symfony/http-kernel": "<4.4", - "symfony/translation": "<5.0", - "symfony/workflow": "<4.4" - }, - "require-dev": { - "egulias/email-validator": "^2.1.10", - "symfony/asset": "^4.4|^5.0", - "symfony/console": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/finder": "^4.4|^5.0", - "symfony/form": "^5.1", - "symfony/http-foundation": "^4.4|^5.0", - "symfony/http-kernel": "^4.4|^5.0", - "symfony/mime": "^4.4|^5.0", - "symfony/polyfill-intl-icu": "~1.0", - "symfony/routing": "^4.4|^5.0", - "symfony/security-acl": "^2.8|^3.0", - "symfony/security-core": "^4.4|^5.0", - "symfony/security-csrf": "^4.4|^5.0", - "symfony/security-http": "^4.4|^5.0", - "symfony/stopwatch": "^4.4|^5.0", - "symfony/translation": "^5.0", - "symfony/web-link": "^4.4|^5.0", - "symfony/workflow": "^4.4|^5.0", - "symfony/yaml": "^4.4|^5.0", - "twig/cssinliner-extra": "^2.12", - "twig/inky-extra": "^2.12", - "twig/markdown-extra": "^2.12" - }, - "suggest": { - "symfony/asset": "For using the AssetExtension", - "symfony/expression-language": "For using the ExpressionExtension", - "symfony/finder": "", - "symfony/form": "For using the FormExtension", - "symfony/http-kernel": "For using the HttpKernelExtension", - "symfony/routing": "For using the RoutingExtension", - "symfony/security-core": "For using the SecurityExtension", - "symfony/security-csrf": "For using the CsrfExtension", - "symfony/security-http": "For using the LogoutUrlExtension", - "symfony/stopwatch": "For using the StopwatchExtension", - "symfony/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", - "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", - "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T12:01:57+00:00" - }, - { - "name": "symfony/twig-bundle", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/twig-bundle.git", - "reference": "370bb30a9e8dc2b0c29791eec300b0b529bd783f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/370bb30a9e8dc2b0c29791eec300b0b529bd783f", - "reference": "370bb30a9e8dc2b0c29791eec300b0b529bd783f", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/config": "^4.4|^5.0", - "symfony/http-foundation": "^4.4|^5.0", - "symfony/http-kernel": "^5.0", - "symfony/polyfill-ctype": "~1.8", - "symfony/twig-bridge": "^5.0", - "twig/twig": "^2.10|^3.0" - }, - "conflict": { - "symfony/dependency-injection": "<4.4", - "symfony/framework-bundle": "<5.0", - "symfony/translation": "<5.0" - }, - "require-dev": { - "doctrine/annotations": "~1.7", - "doctrine/cache": "~1.0", - "symfony/asset": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/finder": "^4.4|^5.0", - "symfony/form": "^4.4|^5.0", - "symfony/framework-bundle": "^5.0", - "symfony/routing": "^4.4|^5.0", - "symfony/stopwatch": "^4.4|^5.0", - "symfony/translation": "^5.0", - "symfony/web-link": "^4.4|^5.0", - "symfony/yaml": "^4.4|^5.0" - }, - "type": "symfony-bundle", - "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", - "support": { - "source": "https://github.com/symfony/twig-bundle/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T12:01:57+00:00" - }, - { - "name": "symfony/var-dumper", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/var-dumper.git", - "reference": "4e13f3fcefb1fcaaa5efb5403581406f4e840b9a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/4e13f3fcefb1fcaaa5efb5403581406f4e840b9a", - "reference": "4e13f3fcefb1fcaaa5efb5403581406f4e840b9a", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.15" - }, - "conflict": { - "phpunit/phpunit": "<5.4.3", - "symfony/console": "<4.4" - }, - "require-dev": { - "ext-iconv": "*", - "symfony/console": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", - "twig/twig": "^2.4|^3.0" - }, - "suggest": { - "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", - "ext-intl": "To show region name in time zone dump", - "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" - }, - "bin": [ - "Resources/bin/var-dump-server" - ], - "type": "library", - "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" - ], - "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-27T10:11:13+00:00" - }, - { - "name": "symfony/var-exporter", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/var-exporter.git", - "reference": "b4048bfc6248413592462c029381bdb2f7b6525f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/b4048bfc6248413592462c029381bdb2f7b6525f", - "reference": "b4048bfc6248413592462c029381bdb2f7b6525f", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.15" - }, - "require-dev": { - "symfony/var-dumper": "^4.4.9|^5.0.9" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\VarExporter\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "A blend of var_export() + serialize() to turn any serializable data structure to plain PHP code", - "homepage": "https://symfony.com", - "keywords": [ - "clone", - "construct", - "export", - "hydrate", - "instantiate", - "serialize" - ], - "support": { - "source": "https://github.com/symfony/var-exporter/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T12:01:57+00:00" - }, - { - "name": "symfony/yaml", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "f284e032c3cefefb9943792132251b79a6127ca6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/f284e032c3cefefb9943792132251b79a6127ca6", - "reference": "f284e032c3cefefb9943792132251b79a6127ca6", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "symfony/console": "<4.4" - }, - "require-dev": { - "symfony/console": "^4.4|^5.0" - }, - "suggest": { - "symfony/console": "For validating YAML files using the lint command" - }, - "bin": [ - "Resources/bin/yaml-lint" - ], - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Yaml Component", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/yaml/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T12:03:25+00:00" - }, - { - "name": "twig/extra-bundle", - "version": "v3.1.1", - "source": { - "type": "git", - "url": "https://github.com/twigphp/twig-extra-bundle.git", - "reference": "a7c5799cf742ab0827f5d32df37528ee8bf5a233" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/a7c5799cf742ab0827f5d32df37528ee8bf5a233", - "reference": "a7c5799cf742ab0827f5d32df37528ee8bf5a233", - "shasum": "" - }, - "require": { - "php": "^7.1.3|^8.0", - "symfony/framework-bundle": "^4.3|^5.0", - "symfony/twig-bundle": "^4.3|^5.0", - "twig/twig": "^2.4|^3.0" - }, - "require-dev": { - "twig/cssinliner-extra": "^2.12|^3.0", - "twig/html-extra": "^2.12|^3.0", - "twig/inky-extra": "^2.12|^3.0", - "twig/intl-extra": "^2.12|^3.0", - "twig/markdown-extra": "^2.12|^3.0" - }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "psr-4": { - "Twig\\Extra\\TwigExtraBundle\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - } - ], - "description": "A Symfony bundle for extra Twig extensions", - "homepage": "https://twig.symfony.com", - "keywords": [ - "bundle", - "extra", - "twig" - ], - "support": { - "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.1.1" - }, - "funding": [ - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/twig/twig", - "type": "tidelift" - } - ], - "time": "2020-05-21T09:56:39+00:00" - }, - { - "name": "twig/twig", - "version": "v3.1.1", - "source": { - "type": "git", - "url": "https://github.com/twigphp/Twig.git", - "reference": "b02fa41f3783a2616eccef7b92fbc2343ffed737" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/b02fa41f3783a2616eccef7b92fbc2343ffed737", - "reference": "b02fa41f3783a2616eccef7b92fbc2343ffed737", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-mbstring": "^1.3" - }, - "require-dev": { - "psr/container": "^1.0", - "symfony/phpunit-bridge": "^4.4.9|^5.0.9" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1-dev" - } - }, - "autoload": { - "psr-4": { - "Twig\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, - { - "name": "Twig Team", - "role": "Contributors" - }, - { - "name": "Armin Ronacher", - "email": "armin.ronacher@active-4.com", - "role": "Project Founder" - } - ], - "description": "Twig, the flexible, fast, and secure template language for PHP", - "homepage": "https://twig.symfony.com", - "keywords": [ - "templating" - ], - "support": { - "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.1.1" - }, - "funding": [ - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/twig/twig", - "type": "tidelift" - } - ], - "time": "2020-10-27T19:28:23+00:00" - }, - { - "name": "webimpress/safe-writer", - "version": "2.1.0", - "source": { - "type": "git", - "url": "https://github.com/webimpress/safe-writer.git", - "reference": "5cfafdec5873c389036f14bf832a5efc9390dcdd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webimpress/safe-writer/zipball/5cfafdec5873c389036f14bf832a5efc9390dcdd", - "reference": "5cfafdec5873c389036f14bf832a5efc9390dcdd", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "phpunit/phpunit": "^8.5.8 || ^9.3.7", - "vimeo/psalm": "^3.14.2", - "webimpress/coding-standard": "^1.1.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.1.x-dev", - "dev-develop": "2.2.x-dev", - "dev-release-1.0": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Webimpress\\SafeWriter\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "description": "Tool to write files safely, to avoid race conditions", - "keywords": [ - "concurrent write", - "file writer", - "race condition", - "safe writer", - "webimpress" - ], - "support": { - "issues": "https://github.com/webimpress/safe-writer/issues", - "source": "https://github.com/webimpress/safe-writer/tree/master" - }, - "funding": [ - { - "url": "https://github.com/michalbundyra", - "type": "github" - } - ], - "time": "2020-08-25T07:21:11+00:00" - } - ], - "packages-dev": [ - { - "name": "symfony/debug-bundle", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/debug-bundle.git", - "reference": "183a36bdb251eeeeff640ffbceea3403ac5c8d40" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/183a36bdb251eeeeff640ffbceea3403ac5c8d40", - "reference": "183a36bdb251eeeeff640ffbceea3403ac5c8d40", - "shasum": "" - }, - "require": { - "ext-xml": "*", - "php": ">=7.2.5", - "symfony/http-kernel": "^4.4|^5.0", - "symfony/twig-bridge": "^4.4|^5.0", - "symfony/var-dumper": "^4.4|^5.0" - }, - "conflict": { - "symfony/config": "<4.4", - "symfony/dependency-injection": "<4.4" - }, - "require-dev": { - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/web-profiler-bundle": "^4.4|^5.0" - }, - "suggest": { - "symfony/config": "For service container configuration", - "symfony/dependency-injection": "For using as a service from the container" - }, - "type": "symfony-bundle", - "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", - "support": { - "source": "https://github.com/symfony/debug-bundle/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T12:01:57+00:00" - }, - { - "name": "symfony/web-profiler-bundle", - "version": "v5.1.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/web-profiler-bundle.git", - "reference": "d94865ad9365ee4ac0d9bd24d9e90410e7ec6185" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/d94865ad9365ee4ac0d9bd24d9e90410e7ec6185", - "reference": "d94865ad9365ee4ac0d9bd24d9e90410e7ec6185", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/config": "^4.4|^5.0", - "symfony/framework-bundle": "^5.1", - "symfony/http-kernel": "^4.4|^5.0", - "symfony/routing": "^4.4|^5.0", - "symfony/twig-bundle": "^4.4|^5.0", - "twig/twig": "^2.10|^3.0" - }, - "conflict": { - "symfony/form": "<4.4", - "symfony/messenger": "<4.4" - }, - "require-dev": { - "symfony/browser-kit": "^4.4|^5.0", - "symfony/console": "^4.4|^5.0", - "symfony/css-selector": "^4.4|^5.0", - "symfony/stopwatch": "^4.4|^5.0" - }, - "type": "symfony-bundle", - "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", - "support": { - "source": "https://github.com/symfony/web-profiler-bundle/tree/v5.1.8" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-24T12:01:57+00:00" - } - ], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": [], - "prefer-stable": false, - "prefer-lowest": false, - "platform": { - "php": ">=7.2.5", - "ext-ctype": "*", - "ext-iconv": "*" - }, - "platform-dev": [], - "plugin-api-version": "2.0.0" -} diff --git a/symfony/config/bundles.php b/symfony/config/bundles.php deleted file mode 100644 index 987cc80..0000000 --- a/symfony/config/bundles.php +++ /dev/null @@ -1,12 +0,0 @@ - ['all' => true], - Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true], - Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true], - Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true], - Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true], - Twig\Extra\TwigExtraBundle\TwigExtraBundle::class => ['all' => true], - Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true], - Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true, 'test' => true], -]; diff --git a/symfony/config/packages/cache.yaml b/symfony/config/packages/cache.yaml deleted file mode 100644 index 6899b72..0000000 --- a/symfony/config/packages/cache.yaml +++ /dev/null @@ -1,19 +0,0 @@ -framework: - cache: - # Unique name of your app: used to compute stable namespaces for cache keys. - #prefix_seed: your_vendor_name/app_name - - # The "app" cache stores to the filesystem by default. - # The data in this cache should persist between deploys. - # Other options include: - - # Redis - #app: cache.adapter.redis - #default_redis_provider: redis://localhost - - # APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues) - #app: cache.adapter.apcu - - # Namespaced pools use the above "app" backend by default - #pools: - #my.dedicated.cache: null diff --git a/symfony/config/packages/dev/debug.yaml b/symfony/config/packages/dev/debug.yaml deleted file mode 100644 index 26d4e53..0000000 --- a/symfony/config/packages/dev/debug.yaml +++ /dev/null @@ -1,4 +0,0 @@ -debug: - # Forwards VarDumper Data clones to a centralized server allowing to inspect dumps on CLI or in your browser. - # See the "server:dump" command to start a new server. - dump_destination: "tcp://%env(VAR_DUMPER_SERVER)%" diff --git a/symfony/config/packages/dev/monolog.yaml b/symfony/config/packages/dev/monolog.yaml deleted file mode 100755 index 7bfdabd..0000000 --- a/symfony/config/packages/dev/monolog.yaml +++ /dev/null @@ -1,20 +0,0 @@ -monolog: - handlers: - main: - type: stream - path: "%kernel.logs_dir%/%kernel.environment%.log" - level: debug - channels: ["!event"] - formatter: 'monolog.formatter.json' - # uncomment to get logging in your browser - # you may have to allow bigger header sizes in your Web server configuration - #firephp: - # type: firephp - # level: info - #chromephp: - # type: chromephp - # level: info - console: - type: console - process_psr_3_messages: false - channels: ["!event", "!doctrine", "!console"] diff --git a/symfony/config/packages/dev/web_profiler.yaml b/symfony/config/packages/dev/web_profiler.yaml deleted file mode 100644 index e92166a..0000000 --- a/symfony/config/packages/dev/web_profiler.yaml +++ /dev/null @@ -1,6 +0,0 @@ -web_profiler: - toolbar: true - intercept_redirects: false - -framework: - profiler: { only_exceptions: false } diff --git a/symfony/config/packages/doctrine.yaml b/symfony/config/packages/doctrine.yaml deleted file mode 100644 index c319176..0000000 --- a/symfony/config/packages/doctrine.yaml +++ /dev/null @@ -1,18 +0,0 @@ -doctrine: - dbal: - url: '%env(resolve:DATABASE_URL)%' - - # IMPORTANT: You MUST configure your server version, - # either here or in the DATABASE_URL env var (see .env file) - #server_version: '13' - orm: - auto_generate_proxy_classes: true - naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware - auto_mapping: true - mappings: - App: - is_bundle: false - type: annotation - dir: '%kernel.project_dir%/src/Entity' - prefix: 'App\Entity' - alias: App diff --git a/symfony/config/packages/doctrine_migrations.yaml b/symfony/config/packages/doctrine_migrations.yaml deleted file mode 100644 index 61e6612..0000000 --- a/symfony/config/packages/doctrine_migrations.yaml +++ /dev/null @@ -1,5 +0,0 @@ -doctrine_migrations: - migrations_paths: - # namespace is arbitrary but should be different from App\Migrations - # as migrations classes should NOT be autoloaded - 'DoctrineMigrations': '%kernel.project_dir%/migrations' diff --git a/symfony/config/packages/framework.yaml b/symfony/config/packages/framework.yaml deleted file mode 100644 index cad7f78..0000000 --- a/symfony/config/packages/framework.yaml +++ /dev/null @@ -1,17 +0,0 @@ -# see https://symfony.com/doc/current/reference/configuration/framework.html -framework: - secret: '%env(APP_SECRET)%' - #csrf_protection: true - #http_method_override: true - - # Enables session support. Note that the session will ONLY be started if you read or write from it. - # Remove or comment this section to explicitly disable session support. - session: - handler_id: null - cookie_secure: auto - cookie_samesite: lax - - #esi: true - #fragments: true - php_errors: - log: true diff --git a/symfony/config/packages/mailer.yaml b/symfony/config/packages/mailer.yaml deleted file mode 100644 index 56a650d..0000000 --- a/symfony/config/packages/mailer.yaml +++ /dev/null @@ -1,3 +0,0 @@ -framework: - mailer: - dsn: '%env(MAILER_DSN)%' diff --git a/symfony/config/packages/messenger.yaml b/symfony/config/packages/messenger.yaml deleted file mode 100755 index 13e40f2..0000000 --- a/symfony/config/packages/messenger.yaml +++ /dev/null @@ -1,14 +0,0 @@ -framework: - messenger: - # Uncomment this (and the failed transport below) to send failed messages to this transport for later handling. - # failure_transport: failed - - transports: - # https://symfony.com/doc/current/messenger.html#transport-configuration - async: '%env(MESSENGER_TRANSPORT_DSN)%' - # failed: 'doctrine://default?queue_name=failed' - # sync: 'sync://' - - routing: - # Route your messages to the transports - # 'App\Message\YourMessage': async diff --git a/symfony/config/packages/prod/deprecations.yaml b/symfony/config/packages/prod/deprecations.yaml deleted file mode 100644 index 920a061..0000000 --- a/symfony/config/packages/prod/deprecations.yaml +++ /dev/null @@ -1,8 +0,0 @@ -# As of Symfony 5.1, deprecations are logged in the dedicated "deprecation" channel when it exists -#monolog: -# channels: [deprecation] -# handlers: -# deprecation: -# type: stream -# channels: [deprecation] -# path: "%kernel.logs_dir%/%kernel.environment%.deprecations.log" diff --git a/symfony/config/packages/prod/doctrine.yaml b/symfony/config/packages/prod/doctrine.yaml deleted file mode 100644 index 084f59a..0000000 --- a/symfony/config/packages/prod/doctrine.yaml +++ /dev/null @@ -1,20 +0,0 @@ -doctrine: - orm: - auto_generate_proxy_classes: false - metadata_cache_driver: - type: pool - pool: doctrine.system_cache_pool - query_cache_driver: - type: pool - pool: doctrine.system_cache_pool - result_cache_driver: - type: pool - pool: doctrine.result_cache_pool - -framework: - cache: - pools: - doctrine.result_cache_pool: - adapter: cache.app - doctrine.system_cache_pool: - adapter: cache.system diff --git a/symfony/config/packages/prod/monolog.yaml b/symfony/config/packages/prod/monolog.yaml deleted file mode 100755 index 2ce8a16..0000000 --- a/symfony/config/packages/prod/monolog.yaml +++ /dev/null @@ -1,17 +0,0 @@ -monolog: - handlers: - main: - type: fingers_crossed - action_level: error - handler: nested - excluded_http_codes: [404, 405] - buffer_size: 50 # How many messages should be saved? Prevent memory leaks - nested: - type: stream - path: "%kernel.logs_dir%/%kernel.environment%.log" - level: debug - formatter: 'monolog.formatter.json' - console: - type: console - process_psr_3_messages: false - channels: ["!event", "!doctrine"] diff --git a/symfony/config/packages/prod/routing.yaml b/symfony/config/packages/prod/routing.yaml deleted file mode 100644 index b3e6a0a..0000000 --- a/symfony/config/packages/prod/routing.yaml +++ /dev/null @@ -1,3 +0,0 @@ -framework: - router: - strict_requirements: null diff --git a/symfony/config/packages/routing.yaml b/symfony/config/packages/routing.yaml deleted file mode 100644 index b45c1ce..0000000 --- a/symfony/config/packages/routing.yaml +++ /dev/null @@ -1,7 +0,0 @@ -framework: - router: - utf8: true - - # Configure how to generate URLs in non-HTTP contexts, such as CLI commands. - # See https://symfony.com/doc/current/routing.html#generating-urls-in-commands - #default_uri: http://localhost diff --git a/symfony/config/packages/test/framework.yaml b/symfony/config/packages/test/framework.yaml deleted file mode 100644 index d051c84..0000000 --- a/symfony/config/packages/test/framework.yaml +++ /dev/null @@ -1,4 +0,0 @@ -framework: - test: true - session: - storage_id: session.storage.mock_file diff --git a/symfony/config/packages/test/monolog.yaml b/symfony/config/packages/test/monolog.yaml deleted file mode 100644 index fc40641..0000000 --- a/symfony/config/packages/test/monolog.yaml +++ /dev/null @@ -1,12 +0,0 @@ -monolog: - handlers: - main: - type: fingers_crossed - action_level: error - handler: nested - excluded_http_codes: [404, 405] - channels: ["!event"] - nested: - type: stream - path: "%kernel.logs_dir%/%kernel.environment%.log" - level: debug diff --git a/symfony/config/packages/test/twig.yaml b/symfony/config/packages/test/twig.yaml deleted file mode 100644 index 8c6e0b4..0000000 --- a/symfony/config/packages/test/twig.yaml +++ /dev/null @@ -1,2 +0,0 @@ -twig: - strict_variables: true diff --git a/symfony/config/packages/test/web_profiler.yaml b/symfony/config/packages/test/web_profiler.yaml deleted file mode 100644 index 03752de..0000000 --- a/symfony/config/packages/test/web_profiler.yaml +++ /dev/null @@ -1,6 +0,0 @@ -web_profiler: - toolbar: false - intercept_redirects: false - -framework: - profiler: { collect: false } diff --git a/symfony/config/packages/twig.yaml b/symfony/config/packages/twig.yaml deleted file mode 100644 index b3cdf30..0000000 --- a/symfony/config/packages/twig.yaml +++ /dev/null @@ -1,2 +0,0 @@ -twig: - default_path: '%kernel.project_dir%/templates' diff --git a/symfony/config/preload.php b/symfony/config/preload.php deleted file mode 100644 index 5ebcdb2..0000000 --- a/symfony/config/preload.php +++ /dev/null @@ -1,5 +0,0 @@ -bootEnv(dirname(__DIR__).'/.env'); - -if ($_SERVER['APP_DEBUG']) { - umask(0000); - - Debug::enable(); -} - -if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? false) { - Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_FOR | Request::HEADER_X_FORWARDED_PORT | Request::HEADER_X_FORWARDED_PROTO); -} - -if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? false) { - Request::setTrustedHosts([$trustedHosts]); -} - -$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']); -$request = Request::createFromGlobals(); -$response = $kernel->handle($request); -$response->send(); -$kernel->terminate($request, $response); diff --git a/symfony/src/Controller/.gitignore b/symfony/src/Controller/.gitignore deleted file mode 100644 index e69de29..0000000 diff --git a/symfony/src/Entity/.gitignore b/symfony/src/Entity/.gitignore deleted file mode 100644 index e69de29..0000000 diff --git a/symfony/src/Kernel.php b/symfony/src/Kernel.php deleted file mode 100644 index 655e796..0000000 --- a/symfony/src/Kernel.php +++ /dev/null @@ -1,38 +0,0 @@ -import('../config/{packages}/*.yaml'); - $container->import('../config/{packages}/'.$this->environment.'/*.yaml'); - - if (is_file(\dirname(__DIR__).'/config/services.yaml')) { - $container->import('../config/services.yaml'); - $container->import('../config/{services}_'.$this->environment.'.yaml'); - } elseif (is_file($path = \dirname(__DIR__).'/config/services.php')) { - (require $path)($container->withPath($path), $this); - } - } - - protected function configureRoutes(RoutingConfigurator $routes): void - { - $routes->import('../config/{routes}/'.$this->environment.'/*.yaml'); - $routes->import('../config/{routes}/*.yaml'); - - if (is_file(\dirname(__DIR__).'/config/routes.yaml')) { - $routes->import('../config/routes.yaml'); - } elseif (is_file($path = \dirname(__DIR__).'/config/routes.php')) { - (require $path)($routes->withPath($path), $this); - } - } -} diff --git a/symfony/src/Repository/.gitignore b/symfony/src/Repository/.gitignore deleted file mode 100644 index e69de29..0000000 diff --git a/symfony/symfony.lock b/symfony/symfony.lock deleted file mode 100644 index 795463d..0000000 --- a/symfony/symfony.lock +++ /dev/null @@ -1,371 +0,0 @@ -{ - "composer/package-versions-deprecated": { - "version": "1.11.99.1" - }, - "doctrine/annotations": { - "version": "1.0", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "master", - "version": "1.0", - "ref": "a2759dd6123694c8d901d0ec80006e044c2e6457" - }, - "files": [ - "config/routes/annotations.yaml" - ] - }, - "doctrine/cache": { - "version": "1.10.2" - }, - "doctrine/collections": { - "version": "1.6.7" - }, - "doctrine/common": { - "version": "3.0.2" - }, - "doctrine/dbal": { - "version": "2.12.1" - }, - "doctrine/doctrine-bundle": { - "version": "2.0", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "master", - "version": "2.0", - "ref": "368794356c1fb634e58b38ad2addb36933f2e73e" - }, - "files": [ - "config/packages/doctrine.yaml", - "config/packages/prod/doctrine.yaml", - "src/Entity/.gitignore", - "src/Repository/.gitignore" - ] - }, - "doctrine/doctrine-migrations-bundle": { - "version": "2.2", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "master", - "version": "2.2", - "ref": "baaa439e3e3179e69e3da84b671f0a3e4a2f56ad" - }, - "files": [ - "config/packages/doctrine_migrations.yaml", - "migrations/.gitignore" - ] - }, - "doctrine/event-manager": { - "version": "1.1.1" - }, - "doctrine/inflector": { - "version": "1.4.3" - }, - "doctrine/instantiator": { - "version": "1.4.0" - }, - "doctrine/lexer": { - "version": "1.2.1" - }, - "doctrine/migrations": { - "version": "3.0.1" - }, - "doctrine/orm": { - "version": "2.7.4" - }, - "doctrine/persistence": { - "version": "2.1.0" - }, - "doctrine/sql-formatter": { - "version": "1.1.1" - }, - "egulias/email-validator": { - "version": "2.1.24" - }, - "laminas/laminas-code": { - "version": "3.5.0" - }, - "laminas/laminas-eventmanager": { - "version": "3.3.0" - }, - "laminas/laminas-zendframework-bridge": { - "version": "1.1.1" - }, - "monolog/monolog": { - "version": "2.1.1" - }, - "ocramius/proxy-manager": { - "version": "2.10.0" - }, - "psr/cache": { - "version": "1.0.1" - }, - "psr/container": { - "version": "1.0.0" - }, - "psr/event-dispatcher": { - "version": "1.0.0" - }, - "psr/log": { - "version": "1.1.3" - }, - "symfony/amqp-messenger": { - "version": "v5.1.8" - }, - "symfony/cache": { - "version": "v5.1.8" - }, - "symfony/cache-contracts": { - "version": "v2.2.0" - }, - "symfony/config": { - "version": "v5.1.8" - }, - "symfony/console": { - "version": "5.1", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "master", - "version": "5.1", - "ref": "c6d02bdfba9da13c22157520e32a602dbee8a75c" - }, - "files": [ - "bin/console" - ] - }, - "symfony/debug-bundle": { - "version": "4.1", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "master", - "version": "4.1", - "ref": "f8863cbad2f2e58c4b65fa1eac892ab189971bea" - }, - "files": [ - "config/packages/dev/debug.yaml" - ] - }, - "symfony/debug-pack": { - "version": "v1.0.9" - }, - "symfony/dependency-injection": { - "version": "v5.1.8" - }, - "symfony/deprecation-contracts": { - "version": "v2.2.0" - }, - "symfony/doctrine-bridge": { - "version": "v5.1.8" - }, - "symfony/doctrine-messenger": { - "version": "v5.1.8" - }, - "symfony/dotenv": { - "version": "v5.1.8" - }, - "symfony/error-handler": { - "version": "v5.1.8" - }, - "symfony/event-dispatcher": { - "version": "v5.1.8" - }, - "symfony/event-dispatcher-contracts": { - "version": "v2.2.0" - }, - "symfony/filesystem": { - "version": "v5.1.8" - }, - "symfony/finder": { - "version": "v5.1.8" - }, - "symfony/flex": { - "version": "1.0", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "master", - "version": "1.0", - "ref": "c0eeb50665f0f77226616b6038a9b06c03752d8e" - }, - "files": [ - ".env" - ] - }, - "symfony/framework-bundle": { - "version": "5.1", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "master", - "version": "5.1", - "ref": "5f0d0fd82ffa3580fe0ce8e3b2d18506ebf37a0e" - }, - "files": [ - "config/packages/cache.yaml", - "config/packages/framework.yaml", - "config/packages/test/framework.yaml", - "config/preload.php", - "config/routes/dev/framework.yaml", - "config/services.yaml", - "public/index.php", - "src/Controller/.gitignore", - "src/Kernel.php" - ] - }, - "symfony/http-client-contracts": { - "version": "v2.3.1" - }, - "symfony/http-foundation": { - "version": "v5.1.8" - }, - "symfony/http-kernel": { - "version": "v5.1.8" - }, - "symfony/mailer": { - "version": "4.3", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "master", - "version": "4.3", - "ref": "15658c2a0176cda2e7dba66276a2030b52bd81b2" - }, - "files": [ - "config/packages/mailer.yaml" - ] - }, - "symfony/messenger": { - "version": "4.3", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "master", - "version": "4.3", - "ref": "e9a414b113ceadbf4e52abe37bf8f1b443f06ccb" - }, - "files": [ - "config/packages/messenger.yaml" - ] - }, - "symfony/mime": { - "version": "v5.1.8" - }, - "symfony/monolog-bridge": { - "version": "v5.1.8" - }, - "symfony/monolog-bundle": { - "version": "3.3", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "master", - "version": "3.3", - "ref": "d7249f7d560f6736115eee1851d02a65826f0a56" - }, - "files": [ - "config/packages/dev/monolog.yaml", - "config/packages/prod/deprecations.yaml", - "config/packages/prod/monolog.yaml", - "config/packages/test/monolog.yaml" - ] - }, - "symfony/orm-pack": { - "version": "v2.0.0" - }, - "symfony/polyfill-intl-grapheme": { - "version": "v1.20.0" - }, - "symfony/polyfill-intl-idn": { - "version": "v1.20.0" - }, - "symfony/polyfill-intl-normalizer": { - "version": "v1.20.0" - }, - "symfony/polyfill-mbstring": { - "version": "v1.20.0" - }, - "symfony/polyfill-php73": { - "version": "v1.20.0" - }, - "symfony/polyfill-php80": { - "version": "v1.20.0" - }, - "symfony/profiler-pack": { - "version": "v1.0.5" - }, - "symfony/redis-messenger": { - "version": "v5.1.8" - }, - "symfony/routing": { - "version": "5.1", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "master", - "version": "5.1", - "ref": "b4f3e7c95e38b606eef467e8a42a8408fc460c43" - }, - "files": [ - "config/packages/prod/routing.yaml", - "config/packages/routing.yaml", - "config/routes.yaml" - ] - }, - "symfony/service-contracts": { - "version": "v2.2.0" - }, - "symfony/stopwatch": { - "version": "v5.1.8" - }, - "symfony/string": { - "version": "v5.1.8" - }, - "symfony/translation-contracts": { - "version": "v2.3.0" - }, - "symfony/twig-bridge": { - "version": "v5.1.8" - }, - "symfony/twig-bundle": { - "version": "5.0", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "master", - "version": "5.0", - "ref": "fab9149bbaa4d5eca054ed93f9e1b66cc500895d" - }, - "files": [ - "config/packages/test/twig.yaml", - "config/packages/twig.yaml", - "templates/base.html.twig" - ] - }, - "symfony/twig-pack": { - "version": "v1.0.1" - }, - "symfony/var-dumper": { - "version": "v5.1.8" - }, - "symfony/var-exporter": { - "version": "v5.1.8" - }, - "symfony/web-profiler-bundle": { - "version": "3.3", - "recipe": { - "repo": "github.com/symfony/recipes", - "branch": "master", - "version": "3.3", - "ref": "6bdfa1a95f6b2e677ab985cd1af2eae35d62e0f6" - }, - "files": [ - "config/packages/dev/web_profiler.yaml", - "config/packages/test/web_profiler.yaml", - "config/routes/dev/web_profiler.yaml" - ] - }, - "symfony/yaml": { - "version": "v5.1.8" - }, - "twig/extra-bundle": { - "version": "v3.1.1" - }, - "twig/twig": { - "version": "v3.1.1" - }, - "webimpress/safe-writer": { - "version": "2.1.0" - } -} diff --git a/symfony/templates/base.html.twig b/symfony/templates/base.html.twig deleted file mode 100644 index 043f42d..0000000 --- a/symfony/templates/base.html.twig +++ /dev/null @@ -1,12 +0,0 @@ - - - - - {% block title %}Welcome!{% endblock %} - {% block stylesheets %}{% endblock %} - - - {% block body %}{% endblock %} - {% block javascripts %}{% endblock %} - -