Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 579f9cdd

Přidáno uživatelem Tomáš Ballák před více než 4 roky(ů)

setup of dev environment

Zobrazit rozdíly:

.gitignore
1
logs
2
website/.gitignore
3
website/vendor/
4
/website/var
5
cache
README.md
1
# ZČU Heatmap
2

  
3
- [**Nginx**](https://www.nginx.com/) - Server
4
- [**Symfon**](https://symfony.com/) - PHP framework
5
- [**MongoDB**](https://www.mongodb.com/) - Database
6

  
7
### Setup of development environment
8

  
9
- Install and configure 🐳 **[docker](https://www.docker.com/)**
10

  
11
- Then run `./build.sh` in the root of the project
12

  
13
  - this will create containers and install composer with all Symfonys dependecies 
14

  
15
- When you run `docker ps` you should see containers now: **heatmap_nginx**, **heatmap_php-fpm** and **heatmap_mongodb**
16

  
17
- Installing only dependencies for Symfony
18

  
19
  - run in the root `./install.sh`
20

  
21
  
22

  
23
  **Note:** To make script executable run `chomd u+x name_of_the_script.sh`
build.sh
1
#!/bin/bash
2
#Build development environment
3
docker-compose down
4
export UID_COMPOSE=$UID
5
export GID_COMPOSE=$GID
6
export PHP_FPM_CONTAINER=heatmap_php_fpm
7
export NGINX_CONTAINER=heatmap_nginx
8
export MONGODB_CONTAINER=heatmap_mongodb
9
docker-compose up -d
10
echo "Installing composer"
11
docker exec --user root -it $PHP_FPM_CONTAINER /bin/sh -c "curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer"
12
docker exec --user $UID_COMPOSE:$GID_COMPOSE -it $PHP_FPM_CONTAINER /bin/sh -c "cd /var/www && composer install"
build/nginx/Dockerfile
1
FROM nginx:alpine
2
WORKDIR /var/www/
3
CMD ["nginx"]
build/nginx/conf.d/default.conf
1
upstream php-upstream {
2
    server php-fpm:9000;
3
}
build/nginx/nginx.conf
1
user  nginx;
2
worker_processes  4;
3
daemon off;
4

  
5
error_log  /var/log/nginx/error.log warn;
6
pid        /var/run/nginx.pid;
7

  
8
events {
9
    worker_connections  1024;
10
}
11

  
12

  
13
http {
14
    include       /etc/nginx/mime.types;
15
    default_type  application/octet-stream;
16
    access_log  /var/log/nginx/access.log;
17
    sendfile        on;
18
    keepalive_timeout  65;
19

  
20
    include /etc/nginx/conf.d/*.conf;
21
    include /etc/nginx/sites-available/*.conf;
22
}
build/nginx/sites/default.conf
1
server {
2
    listen 80 default_server;
3
    listen [::]:80 default_server ipv6only=on;
4

  
5
    server_name localhost;
6
    root /var/www/public;
7
    index index.php index.html index.htm;
8

  
9
    location / {
10
         try_files $uri $uri/ /index.php$is_args$args;
11
    }
12

  
13
    location ~ \.php$ {
14
        try_files $uri /index.php =404;
15
        fastcgi_pass php-upstream;
16
        fastcgi_index index.php;
17
        fastcgi_buffers 16 16k;
18
        fastcgi_buffer_size 32k;
19
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
20
        fastcgi_read_timeout 600;
21
        include fastcgi_params;
22
    }
23

  
24
    location ~ /\.ht {
25
        deny all;
26
    }
27
}
build/php-fm/Dockerfile
1
#DEV ONLY DOCKERFILE
2
FROM php:7.4-fpm-alpine
3
RUN apk update; \
4
	apk upgrade; \
5
	apk add autoconf openssl-dev g++ make && \
6
	pecl install mongodb && \
7
	docker-php-ext-enable mongodb; \
8
	apk del --purge autoconf openssl-dev g++ make
docker-compose.yml
1
version: "3.2"
2
services:
3
       php-fpm:
4
               build: './build/php-fm'
5
               depends_on: 
6
                       - database
7
               networks:
8
                   - backend
9
               ports: 
10
                       - "9000:9000"
11
               volumes:
12
                       - ./website/:/var/www/
13
               user: "${UID_COMPOSE}:${GID_COMPOSE}"
14
               container_name: "${PHP_FPM_CONTAINER}"
15
       nginx:
16
               build: './build/nginx'
17
               depends_on:
18
                       - php-fpm
19
                       - database
20
               networks:
21
                       - frontend
22
                       - backend
23
               ports:
24
                       - "127.0.0.1:80:80"
25
               volumes:
26
                       - ./website/:/var/www/
27
                       - ./build/nginx/nginx.conf:/etc/nginx/nginx.conf
28
                       - ./build/nginx/sites/:/etc/nginx/sites-available
29
                       - ./build/nginx/conf.d/:/etc/nginx/conf.d
30
                       - ./logs:/var/log
31
               container_name: "${NGINX_CONTAINER}"
32
       database:
33
               image: 'mongo'
34
               container_name: 'mongodb'
35
               restart: always
36
               networks:
37
                       - backend
38
               ports:
39
                       - '27017-27019:27017-27019'
40
               environment:
41
                       MONGO_INITDB_DATABASE: open-data-db
42
                       MONGO_INITDB_ROOT_USERNAME: root
43
                       MONGO_INITDB_ROOT_PASSWORD: root
44
               container_name: "${MONGODB_CONTAINER}"
45
networks:
46
       frontend:
47
       backend:
install.sh
1
#!/bin/bash
2
#Install all dependecies of Symfony project: composer install
3
export PHP_FPM_CONTAINER=heatmap_php_fpm
4
docker exec --user $UID_COMPOSE:$GID_COMPOSE -it aswi2020sebela_php-fpm_1 /bin/sh -c "cd /var/www && composer install"
website/.env
1
# In all environments, the following files are loaded if they exist,
2
# the latter taking precedence over the former:
3
#
4
#  * .env                contains default values for the environment variables needed by the app
5
#  * .env.local          uncommitted file with local overrides
6
#  * .env.$APP_ENV       committed environment-specific defaults
7
#  * .env.$APP_ENV.local uncommitted environment-specific overrides
8
#
9
# Real environment variables win over .env files.
10
#
11
# DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES.
12
#
13
# Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2).
14
# https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration
15

  
16
###> symfony/framework-bundle ###
17
APP_ENV=dev
18
APP_SECRET=ca5751564bbb9a0d75d412e020790283
19
#TRUSTED_PROXIES=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
20
#TRUSTED_HOSTS='^(localhost|example\.com)$'
21
###< symfony/framework-bundle ###
website/bin/console
1
#!/usr/bin/env php
2
<?php
3

  
4
use App\Kernel;
5
use Symfony\Bundle\FrameworkBundle\Console\Application;
6
use Symfony\Component\Console\Input\ArgvInput;
7
use Symfony\Component\ErrorHandler\Debug;
8

  
9
if (!in_array(PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) {
10
    echo 'Warning: The console should be invoked via the CLI version of PHP, not the '.PHP_SAPI.' SAPI'.PHP_EOL;
11
}
12

  
13
set_time_limit(0);
14

  
15
require dirname(__DIR__).'/vendor/autoload.php';
16

  
17
if (!class_exists(Application::class)) {
18
    throw new LogicException('You need to add "symfony/framework-bundle" as a Composer dependency.');
19
}
20

  
21
$input = new ArgvInput();
22
if (null !== $env = $input->getParameterOption(['--env', '-e'], null, true)) {
23
    putenv('APP_ENV='.$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = $env);
24
}
25

  
26
if ($input->hasParameterOption('--no-debug', true)) {
27
    putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0');
28
}
29

  
30
require dirname(__DIR__).'/config/bootstrap.php';
31

  
32
if ($_SERVER['APP_DEBUG']) {
33
    umask(0000);
34

  
35
    if (class_exists(Debug::class)) {
36
        Debug::enable();
37
    }
38
}
39

  
40
$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
41
$application = new Application($kernel);
42
$application->run($input);
website/composer.json
1
{
2
    "type": "project",
3
    "license": "proprietary",
4
    "require": {
5
        "php": "^7.2.5",
6
        "ext-ctype": "*",
7
        "ext-iconv": "*",
8
        "symfony/console": "5.0.*",
9
        "symfony/dotenv": "5.0.*",
10
        "symfony/flex": "^1.3.1",
11
        "symfony/framework-bundle": "5.0.*",
12
        "symfony/yaml": "5.0.*"
13
    },
14
    "require-dev": {
15
    },
16
    "config": {
17
        "preferred-install": {
18
            "*": "dist"
19
        },
20
        "sort-packages": true
21
    },
22
    "autoload": {
23
        "psr-4": {
24
            "App\\": "src/"
25
        }
26
    },
27
    "autoload-dev": {
28
        "psr-4": {
29
            "App\\Tests\\": "tests/"
30
        }
31
    },
32
    "replace": {
33
        "paragonie/random_compat": "2.*",
34
        "symfony/polyfill-ctype": "*",
35
        "symfony/polyfill-iconv": "*",
36
        "symfony/polyfill-php72": "*",
37
        "symfony/polyfill-php71": "*",
38
        "symfony/polyfill-php70": "*",
39
        "symfony/polyfill-php56": "*"
40
    },
41
    "scripts": {
42
        "auto-scripts": {
43
            "cache:clear": "symfony-cmd",
44
            "assets:install %PUBLIC_DIR%": "symfony-cmd"
45
        },
46
        "post-install-cmd": [
47
            "@auto-scripts"
48
        ],
49
        "post-update-cmd": [
50
            "@auto-scripts"
51
        ]
52
    },
53
    "conflict": {
54
        "symfony/symfony": "*"
55
    },
56
    "extra": {
57
        "symfony": {
58
            "allow-contrib": false,
59
            "require": "5.0.*"
60
        }
61
    }
62
}
website/composer.lock
1
{
2
    "_readme": [
3
        "This file locks the dependencies of your project to a known state",
4
        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
5
        "This file is @generated automatically"
6
    ],
7
    "content-hash": "7f769bc9dabc952a9e9210886c4900c8",
8
    "packages": [
9
        {
10
            "name": "psr/cache",
11
            "version": "1.0.1",
12
            "source": {
13
                "type": "git",
14
                "url": "https://github.com/php-fig/cache.git",
15
                "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
16
            },
17
            "dist": {
18
                "type": "zip",
19
                "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
20
                "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
21
                "shasum": ""
22
            },
23
            "require": {
24
                "php": ">=5.3.0"
25
            },
26
            "type": "library",
27
            "extra": {
28
                "branch-alias": {
29
                    "dev-master": "1.0.x-dev"
30
                }
31
            },
32
            "autoload": {
33
                "psr-4": {
34
                    "Psr\\Cache\\": "src/"
35
                }
36
            },
37
            "notification-url": "https://packagist.org/downloads/",
38
            "license": [
39
                "MIT"
40
            ],
41
            "authors": [
42
                {
43
                    "name": "PHP-FIG",
44
                    "homepage": "http://www.php-fig.org/"
45
                }
46
            ],
47
            "description": "Common interface for caching libraries",
48
            "keywords": [
49
                "cache",
50
                "psr",
51
                "psr-6"
52
            ],
53
            "time": "2016-08-06T20:24:11+00:00"
54
        },
55
        {
56
            "name": "psr/container",
57
            "version": "1.0.0",
58
            "source": {
59
                "type": "git",
60
                "url": "https://github.com/php-fig/container.git",
61
                "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
62
            },
63
            "dist": {
64
                "type": "zip",
65
                "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
66
                "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
67
                "shasum": ""
68
            },
69
            "require": {
70
                "php": ">=5.3.0"
71
            },
72
            "type": "library",
73
            "extra": {
74
                "branch-alias": {
75
                    "dev-master": "1.0.x-dev"
76
                }
77
            },
78
            "autoload": {
79
                "psr-4": {
80
                    "Psr\\Container\\": "src/"
81
                }
82
            },
83
            "notification-url": "https://packagist.org/downloads/",
84
            "license": [
85
                "MIT"
86
            ],
87
            "authors": [
88
                {
89
                    "name": "PHP-FIG",
90
                    "homepage": "http://www.php-fig.org/"
91
                }
92
            ],
93
            "description": "Common Container Interface (PHP FIG PSR-11)",
94
            "homepage": "https://github.com/php-fig/container",
95
            "keywords": [
96
                "PSR-11",
97
                "container",
98
                "container-interface",
99
                "container-interop",
100
                "psr"
101
            ],
102
            "time": "2017-02-14T16:28:37+00:00"
103
        },
104
        {
105
            "name": "psr/event-dispatcher",
106
            "version": "1.0.0",
107
            "source": {
108
                "type": "git",
109
                "url": "https://github.com/php-fig/event-dispatcher.git",
110
                "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0"
111
            },
112
            "dist": {
113
                "type": "zip",
114
                "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0",
115
                "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0",
116
                "shasum": ""
117
            },
118
            "require": {
119
                "php": ">=7.2.0"
120
            },
121
            "type": "library",
122
            "extra": {
123
                "branch-alias": {
124
                    "dev-master": "1.0.x-dev"
125
                }
126
            },
127
            "autoload": {
128
                "psr-4": {
129
                    "Psr\\EventDispatcher\\": "src/"
130
                }
131
            },
132
            "notification-url": "https://packagist.org/downloads/",
133
            "license": [
134
                "MIT"
135
            ],
136
            "authors": [
137
                {
138
                    "name": "PHP-FIG",
139
                    "homepage": "http://www.php-fig.org/"
140
                }
141
            ],
142
            "description": "Standard interfaces for event handling.",
143
            "keywords": [
144
                "events",
145
                "psr",
146
                "psr-14"
147
            ],
148
            "time": "2019-01-08T18:20:26+00:00"
149
        },
150
        {
151
            "name": "psr/log",
152
            "version": "1.1.3",
153
            "source": {
154
                "type": "git",
155
                "url": "https://github.com/php-fig/log.git",
156
                "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc"
157
            },
158
            "dist": {
159
                "type": "zip",
160
                "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc",
161
                "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc",
162
                "shasum": ""
163
            },
164
            "require": {
165
                "php": ">=5.3.0"
166
            },
167
            "type": "library",
168
            "extra": {
169
                "branch-alias": {
170
                    "dev-master": "1.1.x-dev"
171
                }
172
            },
173
            "autoload": {
174
                "psr-4": {
175
                    "Psr\\Log\\": "Psr/Log/"
176
                }
177
            },
178
            "notification-url": "https://packagist.org/downloads/",
179
            "license": [
180
                "MIT"
181
            ],
182
            "authors": [
183
                {
184
                    "name": "PHP-FIG",
185
                    "homepage": "http://www.php-fig.org/"
186
                }
187
            ],
188
            "description": "Common interface for logging libraries",
189
            "homepage": "https://github.com/php-fig/log",
190
            "keywords": [
191
                "log",
192
                "psr",
193
                "psr-3"
194
            ],
195
            "time": "2020-03-23T09:12:05+00:00"
196
        },
197
        {
198
            "name": "symfony/cache",
199
            "version": "v5.0.5",
200
            "source": {
201
                "type": "git",
202
                "url": "https://github.com/symfony/cache.git",
203
                "reference": "c6255e419e8592dab7de6e29b014ae9e8926989a"
204
            },
205
            "dist": {
206
                "type": "zip",
207
                "url": "https://api.github.com/repos/symfony/cache/zipball/c6255e419e8592dab7de6e29b014ae9e8926989a",
208
                "reference": "c6255e419e8592dab7de6e29b014ae9e8926989a",
209
                "shasum": ""
210
            },
211
            "require": {
212
                "php": "^7.2.5",
213
                "psr/cache": "~1.0",
214
                "psr/log": "~1.0",
215
                "symfony/cache-contracts": "^1.1.7|^2",
216
                "symfony/service-contracts": "^1.1|^2",
217
                "symfony/var-exporter": "^4.4|^5.0"
218
            },
219
            "conflict": {
220
                "doctrine/dbal": "<2.5",
221
                "symfony/dependency-injection": "<4.4",
222
                "symfony/http-kernel": "<4.4",
223
                "symfony/var-dumper": "<4.4"
224
            },
225
            "provide": {
226
                "psr/cache-implementation": "1.0",
227
                "psr/simple-cache-implementation": "1.0",
228
                "symfony/cache-implementation": "1.0"
229
            },
230
            "require-dev": {
231
                "cache/integration-tests": "dev-master",
232
                "doctrine/cache": "~1.6",
233
                "doctrine/dbal": "~2.5",
234
                "predis/predis": "~1.1",
235
                "psr/simple-cache": "^1.0",
236
                "symfony/config": "^4.4|^5.0",
237
                "symfony/dependency-injection": "^4.4|^5.0",
238
                "symfony/var-dumper": "^4.4|^5.0"
239
            },
240
            "type": "library",
241
            "extra": {
242
                "branch-alias": {
243
                    "dev-master": "5.0-dev"
244
                }
245
            },
246
            "autoload": {
247
                "psr-4": {
248
                    "Symfony\\Component\\Cache\\": ""
249
                },
250
                "exclude-from-classmap": [
251
                    "/Tests/"
252
                ]
253
            },
254
            "notification-url": "https://packagist.org/downloads/",
255
            "license": [
256
                "MIT"
257
            ],
258
            "authors": [
259
                {
260
                    "name": "Nicolas Grekas",
261
                    "email": "p@tchwork.com"
262
                },
263
                {
264
                    "name": "Symfony Community",
265
                    "homepage": "https://symfony.com/contributors"
266
                }
267
            ],
268
            "description": "Symfony Cache component with PSR-6, PSR-16, and tags",
269
            "homepage": "https://symfony.com",
270
            "keywords": [
271
                "caching",
272
                "psr6"
273
            ],
274
            "time": "2020-02-24T15:05:31+00:00"
275
        },
276
        {
277
            "name": "symfony/cache-contracts",
278
            "version": "v2.0.1",
279
            "source": {
280
                "type": "git",
281
                "url": "https://github.com/symfony/cache-contracts.git",
282
                "reference": "23ed8bfc1a4115feca942cb5f1aacdf3dcdf3c16"
283
            },
284
            "dist": {
285
                "type": "zip",
286
                "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/23ed8bfc1a4115feca942cb5f1aacdf3dcdf3c16",
287
                "reference": "23ed8bfc1a4115feca942cb5f1aacdf3dcdf3c16",
288
                "shasum": ""
289
            },
290
            "require": {
291
                "php": "^7.2.5",
292
                "psr/cache": "^1.0"
293
            },
294
            "suggest": {
295
                "symfony/cache-implementation": ""
296
            },
297
            "type": "library",
298
            "extra": {
299
                "branch-alias": {
300
                    "dev-master": "2.0-dev"
301
                }
302
            },
303
            "autoload": {
304
                "psr-4": {
305
                    "Symfony\\Contracts\\Cache\\": ""
306
                }
307
            },
308
            "notification-url": "https://packagist.org/downloads/",
309
            "license": [
310
                "MIT"
311
            ],
312
            "authors": [
313
                {
314
                    "name": "Nicolas Grekas",
315
                    "email": "p@tchwork.com"
316
                },
317
                {
318
                    "name": "Symfony Community",
319
                    "homepage": "https://symfony.com/contributors"
320
                }
321
            ],
322
            "description": "Generic abstractions related to caching",
323
            "homepage": "https://symfony.com",
324
            "keywords": [
325
                "abstractions",
326
                "contracts",
327
                "decoupling",
328
                "interfaces",
329
                "interoperability",
330
                "standards"
331
            ],
332
            "time": "2019-11-18T17:27:11+00:00"
333
        },
334
        {
335
            "name": "symfony/config",
336
            "version": "v5.0.5",
337
            "source": {
338
                "type": "git",
339
                "url": "https://github.com/symfony/config.git",
340
                "reference": "938905f46df484b2aeae9016fd658aed577cdceb"
341
            },
342
            "dist": {
343
                "type": "zip",
344
                "url": "https://api.github.com/repos/symfony/config/zipball/938905f46df484b2aeae9016fd658aed577cdceb",
345
                "reference": "938905f46df484b2aeae9016fd658aed577cdceb",
346
                "shasum": ""
347
            },
348
            "require": {
349
                "php": "^7.2.5",
350
                "symfony/filesystem": "^4.4|^5.0",
351
                "symfony/polyfill-ctype": "~1.8"
352
            },
353
            "conflict": {
354
                "symfony/finder": "<4.4"
355
            },
356
            "require-dev": {
357
                "symfony/event-dispatcher": "^4.4|^5.0",
358
                "symfony/finder": "^4.4|^5.0",
359
                "symfony/messenger": "^4.4|^5.0",
360
                "symfony/service-contracts": "^1.1|^2",
361
                "symfony/yaml": "^4.4|^5.0"
362
            },
363
            "suggest": {
364
                "symfony/yaml": "To use the yaml reference dumper"
365
            },
366
            "type": "library",
367
            "extra": {
368
                "branch-alias": {
369
                    "dev-master": "5.0-dev"
370
                }
371
            },
372
            "autoload": {
373
                "psr-4": {
374
                    "Symfony\\Component\\Config\\": ""
375
                },
376
                "exclude-from-classmap": [
377
                    "/Tests/"
378
                ]
379
            },
380
            "notification-url": "https://packagist.org/downloads/",
381
            "license": [
382
                "MIT"
383
            ],
384
            "authors": [
385
                {
386
                    "name": "Fabien Potencier",
387
                    "email": "fabien@symfony.com"
388
                },
389
                {
390
                    "name": "Symfony Community",
391
                    "homepage": "https://symfony.com/contributors"
392
                }
393
            ],
394
            "description": "Symfony Config Component",
395
            "homepage": "https://symfony.com",
396
            "funding": [
397
                {
398
                    "url": "https://symfony.com/sponsor",
399
                    "type": "custom"
400
                },
401
                {
402
                    "url": "https://github.com/fabpot",
403
                    "type": "github"
404
                },
405
                {
406
                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
407
                    "type": "tidelift"
408
                }
409
            ],
410
            "time": "2020-02-04T09:41:09+00:00"
411
        },
412
        {
413
            "name": "symfony/console",
414
            "version": "v5.0.5",
415
            "source": {
416
                "type": "git",
417
                "url": "https://github.com/symfony/console.git",
418
                "reference": "d29e2d36941de13600c399e393a60b8cfe59ac49"
419
            },
420
            "dist": {
421
                "type": "zip",
422
                "url": "https://api.github.com/repos/symfony/console/zipball/d29e2d36941de13600c399e393a60b8cfe59ac49",
423
                "reference": "d29e2d36941de13600c399e393a60b8cfe59ac49",
424
                "shasum": ""
425
            },
426
            "require": {
427
                "php": "^7.2.5",
428
                "symfony/polyfill-mbstring": "~1.0",
429
                "symfony/polyfill-php73": "^1.8",
430
                "symfony/service-contracts": "^1.1|^2"
431
            },
432
            "conflict": {
433
                "symfony/dependency-injection": "<4.4",
434
                "symfony/event-dispatcher": "<4.4",
435
                "symfony/lock": "<4.4",
436
                "symfony/process": "<4.4"
437
            },
438
            "provide": {
439
                "psr/log-implementation": "1.0"
440
            },
441
            "require-dev": {
442
                "psr/log": "~1.0",
443
                "symfony/config": "^4.4|^5.0",
444
                "symfony/dependency-injection": "^4.4|^5.0",
445
                "symfony/event-dispatcher": "^4.4|^5.0",
446
                "symfony/lock": "^4.4|^5.0",
447
                "symfony/process": "^4.4|^5.0",
448
                "symfony/var-dumper": "^4.4|^5.0"
449
            },
450
            "suggest": {
451
                "psr/log": "For using the console logger",
452
                "symfony/event-dispatcher": "",
453
                "symfony/lock": "",
454
                "symfony/process": ""
455
            },
456
            "type": "library",
457
            "extra": {
458
                "branch-alias": {
459
                    "dev-master": "5.0-dev"
460
                }
461
            },
462
            "autoload": {
463
                "psr-4": {
464
                    "Symfony\\Component\\Console\\": ""
465
                },
466
                "exclude-from-classmap": [
467
                    "/Tests/"
468
                ]
469
            },
470
            "notification-url": "https://packagist.org/downloads/",
471
            "license": [
472
                "MIT"
473
            ],
474
            "authors": [
475
                {
476
                    "name": "Fabien Potencier",
477
                    "email": "fabien@symfony.com"
478
                },
479
                {
480
                    "name": "Symfony Community",
481
                    "homepage": "https://symfony.com/contributors"
482
                }
483
            ],
484
            "description": "Symfony Console Component",
485
            "homepage": "https://symfony.com",
486
            "funding": [
487
                {
488
                    "url": "https://symfony.com/sponsor",
489
                    "type": "custom"
490
                },
491
                {
492
                    "url": "https://github.com/fabpot",
493
                    "type": "github"
494
                },
495
                {
496
                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
497
                    "type": "tidelift"
498
                }
499
            ],
500
            "time": "2020-02-24T15:05:31+00:00"
501
        },
502
        {
503
            "name": "symfony/dependency-injection",
504
            "version": "v5.0.5",
505
            "source": {
506
                "type": "git",
507
                "url": "https://github.com/symfony/dependency-injection.git",
508
                "reference": "3575004a9b0d51ead83473ec90121045b3a0b56f"
509
            },
510
            "dist": {
511
                "type": "zip",
512
                "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/3575004a9b0d51ead83473ec90121045b3a0b56f",
513
                "reference": "3575004a9b0d51ead83473ec90121045b3a0b56f",
514
                "shasum": ""
515
            },
516
            "require": {
517
                "php": "^7.2.5",
518
                "psr/container": "^1.0",
519
                "symfony/service-contracts": "^1.1.6|^2"
520
            },
521
            "conflict": {
522
                "symfony/config": "<5.0",
523
                "symfony/finder": "<4.4",
524
                "symfony/proxy-manager-bridge": "<4.4",
525
                "symfony/yaml": "<4.4"
526
            },
527
            "provide": {
528
                "psr/container-implementation": "1.0",
529
                "symfony/service-implementation": "1.0"
530
            },
531
            "require-dev": {
532
                "symfony/config": "^5.0",
533
                "symfony/expression-language": "^4.4|^5.0",
534
                "symfony/yaml": "^4.4|^5.0"
535
            },
536
            "suggest": {
537
                "symfony/config": "",
538
                "symfony/expression-language": "For using expressions in service container configuration",
539
                "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required",
540
                "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them",
541
                "symfony/yaml": ""
542
            },
543
            "type": "library",
544
            "extra": {
545
                "branch-alias": {
546
                    "dev-master": "5.0-dev"
547
                }
548
            },
549
            "autoload": {
550
                "psr-4": {
551
                    "Symfony\\Component\\DependencyInjection\\": ""
552
                },
553
                "exclude-from-classmap": [
554
                    "/Tests/"
555
                ]
556
            },
557
            "notification-url": "https://packagist.org/downloads/",
558
            "license": [
559
                "MIT"
560
            ],
561
            "authors": [
562
                {
563
                    "name": "Fabien Potencier",
564
                    "email": "fabien@symfony.com"
565
                },
566
                {
567
                    "name": "Symfony Community",
568
                    "homepage": "https://symfony.com/contributors"
569
                }
570
            ],
571
            "description": "Symfony DependencyInjection Component",
572
            "homepage": "https://symfony.com",
573
            "funding": [
574
                {
575
                    "url": "https://symfony.com/sponsor",
576
                    "type": "custom"
577
                },
578
                {
579
                    "url": "https://github.com/fabpot",
580
                    "type": "github"
581
                },
582
                {
583
                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
584
                    "type": "tidelift"
585
                }
586
            ],
587
            "time": "2020-02-24T15:05:31+00:00"
588
        },
589
        {
590
            "name": "symfony/dotenv",
591
            "version": "v5.0.5",
592
            "source": {
593
                "type": "git",
594
                "url": "https://github.com/symfony/dotenv.git",
595
                "reference": "48c8fdda51e5b24d031ce8ec221caa186337e36f"
596
            },
597
            "dist": {
598
                "type": "zip",
599
                "url": "https://api.github.com/repos/symfony/dotenv/zipball/48c8fdda51e5b24d031ce8ec221caa186337e36f",
600
                "reference": "48c8fdda51e5b24d031ce8ec221caa186337e36f",
601
                "shasum": ""
602
            },
603
            "require": {
604
                "php": "^7.2.5"
605
            },
606
            "require-dev": {
607
                "symfony/process": "^4.4|^5.0"
608
            },
609
            "type": "library",
610
            "extra": {
611
                "branch-alias": {
612
                    "dev-master": "5.0-dev"
613
                }
614
            },
615
            "autoload": {
616
                "psr-4": {
617
                    "Symfony\\Component\\Dotenv\\": ""
618
                },
619
                "exclude-from-classmap": [
620
                    "/Tests/"
621
                ]
622
            },
623
            "notification-url": "https://packagist.org/downloads/",
624
            "license": [
625
                "MIT"
626
            ],
627
            "authors": [
628
                {
629
                    "name": "Fabien Potencier",
630
                    "email": "fabien@symfony.com"
631
                },
632
                {
633
                    "name": "Symfony Community",
634
                    "homepage": "https://symfony.com/contributors"
635
                }
636
            ],
637
            "description": "Registers environment variables from a .env file",
638
            "homepage": "https://symfony.com",
639
            "keywords": [
640
                "dotenv",
641
                "env",
642
                "environment"
643
            ],
644
            "funding": [
645
                {
646
                    "url": "https://symfony.com/sponsor",
647
                    "type": "custom"
648
                },
649
                {
650
                    "url": "https://github.com/fabpot",
651
                    "type": "github"
652
                },
653
                {
654
                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
655
                    "type": "tidelift"
656
                }
657
            ],
658
            "time": "2020-02-29T10:07:09+00:00"
659
        },
660
        {
661
            "name": "symfony/error-handler",
662
            "version": "v5.0.5",
663
            "source": {
664
                "type": "git",
665
                "url": "https://github.com/symfony/error-handler.git",
666
                "reference": "24a938d9913f42d006ee1ca0164ea1f29c1067ec"
667
            },
668
            "dist": {
669
                "type": "zip",
670
                "url": "https://api.github.com/repos/symfony/error-handler/zipball/24a938d9913f42d006ee1ca0164ea1f29c1067ec",
671
                "reference": "24a938d9913f42d006ee1ca0164ea1f29c1067ec",
672
                "shasum": ""
673
            },
674
            "require": {
675
                "php": "^7.2.5",
676
                "psr/log": "^1.0",
677
                "symfony/var-dumper": "^4.4|^5.0"
678
            },
679
            "require-dev": {
680
                "symfony/http-kernel": "^4.4|^5.0",
681
                "symfony/serializer": "^4.4|^5.0"
682
            },
683
            "type": "library",
684
            "extra": {
685
                "branch-alias": {
686
                    "dev-master": "5.0-dev"
687
                }
688
            },
689
            "autoload": {
690
                "psr-4": {
691
                    "Symfony\\Component\\ErrorHandler\\": ""
692
                },
693
                "exclude-from-classmap": [
694
                    "/Tests/"
695
                ]
696
            },
697
            "notification-url": "https://packagist.org/downloads/",
698
            "license": [
699
                "MIT"
700
            ],
701
            "authors": [
702
                {
703
                    "name": "Fabien Potencier",
704
                    "email": "fabien@symfony.com"
705
                },
706
                {
707
                    "name": "Symfony Community",
708
                    "homepage": "https://symfony.com/contributors"
709
                }
710
            ],
711
            "description": "Symfony ErrorHandler Component",
712
            "homepage": "https://symfony.com",
713
            "funding": [
714
                {
715
                    "url": "https://symfony.com/sponsor",
716
                    "type": "custom"
717
                },
718
                {
719
                    "url": "https://github.com/fabpot",
720
                    "type": "github"
721
                },
722
                {
723
                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
724
                    "type": "tidelift"
725
                }
726
            ],
727
            "time": "2020-02-29T10:07:09+00:00"
728
        },
729
        {
730
            "name": "symfony/event-dispatcher",
731
            "version": "v5.0.5",
732
            "source": {
733
                "type": "git",
734
                "url": "https://github.com/symfony/event-dispatcher.git",
735
                "reference": "b45ad88b253c5a9702ce218e201d89c85d148cea"
736
            },
737
            "dist": {
738
                "type": "zip",
739
                "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b45ad88b253c5a9702ce218e201d89c85d148cea",
740
                "reference": "b45ad88b253c5a9702ce218e201d89c85d148cea",
741
                "shasum": ""
742
            },
743
            "require": {
744
                "php": "^7.2.5",
745
                "symfony/event-dispatcher-contracts": "^2"
746
            },
747
            "conflict": {
748
                "symfony/dependency-injection": "<4.4"
749
            },
750
            "provide": {
751
                "psr/event-dispatcher-implementation": "1.0",
752
                "symfony/event-dispatcher-implementation": "2.0"
753
            },
754
            "require-dev": {
755
                "psr/log": "~1.0",
756
                "symfony/config": "^4.4|^5.0",
757
                "symfony/dependency-injection": "^4.4|^5.0",
758
                "symfony/expression-language": "^4.4|^5.0",
759
                "symfony/http-foundation": "^4.4|^5.0",
760
                "symfony/service-contracts": "^1.1|^2",
761
                "symfony/stopwatch": "^4.4|^5.0"
762
            },
763
            "suggest": {
764
                "symfony/dependency-injection": "",
765
                "symfony/http-kernel": ""
766
            },
767
            "type": "library",
768
            "extra": {
769
                "branch-alias": {
770
                    "dev-master": "5.0-dev"
771
                }
772
            },
773
            "autoload": {
774
                "psr-4": {
775
                    "Symfony\\Component\\EventDispatcher\\": ""
776
                },
777
                "exclude-from-classmap": [
778
                    "/Tests/"
779
                ]
780
            },
781
            "notification-url": "https://packagist.org/downloads/",
782
            "license": [
783
                "MIT"
784
            ],
785
            "authors": [
786
                {
787
                    "name": "Fabien Potencier",
788
                    "email": "fabien@symfony.com"
789
                },
790
                {
791
                    "name": "Symfony Community",
792
                    "homepage": "https://symfony.com/contributors"
793
                }
794
            ],
795
            "description": "Symfony EventDispatcher Component",
796
            "homepage": "https://symfony.com",
797
            "funding": [
798
                {
799
                    "url": "https://symfony.com/sponsor",
800
                    "type": "custom"
801
                },
802
                {
803
                    "url": "https://github.com/fabpot",
804
                    "type": "github"
805
                },
806
                {
807
                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
808
                    "type": "tidelift"
809
                }
810
            ],
811
            "time": "2020-02-22T20:09:08+00:00"
812
        },
813
        {
814
            "name": "symfony/event-dispatcher-contracts",
815
            "version": "v2.0.1",
816
            "source": {
817
                "type": "git",
818
                "url": "https://github.com/symfony/event-dispatcher-contracts.git",
819
                "reference": "af23c2584d4577d54661c434446fb8fbed6025dd"
820
            },
821
            "dist": {
822
                "type": "zip",
823
                "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/af23c2584d4577d54661c434446fb8fbed6025dd",
824
                "reference": "af23c2584d4577d54661c434446fb8fbed6025dd",
825
                "shasum": ""
826
            },
827
            "require": {
828
                "php": "^7.2.5",
829
                "psr/event-dispatcher": "^1"
830
            },
831
            "suggest": {
832
                "symfony/event-dispatcher-implementation": ""
833
            },
834
            "type": "library",
835
            "extra": {
836
                "branch-alias": {
837
                    "dev-master": "2.0-dev"
838
                }
839
            },
840
            "autoload": {
841
                "psr-4": {
842
                    "Symfony\\Contracts\\EventDispatcher\\": ""
843
                }
844
            },
845
            "notification-url": "https://packagist.org/downloads/",
846
            "license": [
847
                "MIT"
848
            ],
849
            "authors": [
850
                {
851
                    "name": "Nicolas Grekas",
852
                    "email": "p@tchwork.com"
853
                },
854
                {
855
                    "name": "Symfony Community",
856
                    "homepage": "https://symfony.com/contributors"
857
                }
858
            ],
859
            "description": "Generic abstractions related to dispatching event",
860
            "homepage": "https://symfony.com",
861
            "keywords": [
862
                "abstractions",
863
                "contracts",
864
                "decoupling",
865
                "interfaces",
866
                "interoperability",
867
                "standards"
868
            ],
869
            "time": "2019-11-18T17:27:11+00:00"
870
        },
871
        {
872
            "name": "symfony/filesystem",
873
            "version": "v5.0.5",
874
            "source": {
875
                "type": "git",
876
                "url": "https://github.com/symfony/filesystem.git",
877
                "reference": "3afadc0f57cd74f86379d073e694b0f2cda2a88c"
878
            },
879
            "dist": {
880
                "type": "zip",
881
                "url": "https://api.github.com/repos/symfony/filesystem/zipball/3afadc0f57cd74f86379d073e694b0f2cda2a88c",
882
                "reference": "3afadc0f57cd74f86379d073e694b0f2cda2a88c",
883
                "shasum": ""
884
            },
885
            "require": {
886
                "php": "^7.2.5",
887
                "symfony/polyfill-ctype": "~1.8"
888
            },
889
            "type": "library",
890
            "extra": {
891
                "branch-alias": {
892
                    "dev-master": "5.0-dev"
893
                }
894
            },
895
            "autoload": {
896
                "psr-4": {
897
                    "Symfony\\Component\\Filesystem\\": ""
898
                },
899
                "exclude-from-classmap": [
900
                    "/Tests/"
901
                ]
902
            },
903
            "notification-url": "https://packagist.org/downloads/",
904
            "license": [
905
                "MIT"
906
            ],
907
            "authors": [
908
                {
909
                    "name": "Fabien Potencier",
910
                    "email": "fabien@symfony.com"
911
                },
912
                {
913
                    "name": "Symfony Community",
914
                    "homepage": "https://symfony.com/contributors"
915
                }
916
            ],
917
            "description": "Symfony Filesystem Component",
918
            "homepage": "https://symfony.com",
919
            "time": "2020-01-21T08:40:24+00:00"
920
        },
921
        {
922
            "name": "symfony/finder",
923
            "version": "v5.0.5",
924
            "source": {
925
                "type": "git",
926
                "url": "https://github.com/symfony/finder.git",
927
                "reference": "6251f201187ca9d66f6b099d3de65d279e971138"
928
            },
929
            "dist": {
930
                "type": "zip",
931
                "url": "https://api.github.com/repos/symfony/finder/zipball/6251f201187ca9d66f6b099d3de65d279e971138",
932
                "reference": "6251f201187ca9d66f6b099d3de65d279e971138",
933
                "shasum": ""
934
            },
935
            "require": {
936
                "php": "^7.2.5"
937
            },
938
            "type": "library",
939
            "extra": {
940
                "branch-alias": {
941
                    "dev-master": "5.0-dev"
942
                }
943
            },
944
            "autoload": {
945
                "psr-4": {
946
                    "Symfony\\Component\\Finder\\": ""
947
                },
948
                "exclude-from-classmap": [
949
                    "/Tests/"
950
                ]
951
            },
952
            "notification-url": "https://packagist.org/downloads/",
953
            "license": [
954
                "MIT"
955
            ],
956
            "authors": [
957
                {
958
                    "name": "Fabien Potencier",
959
                    "email": "fabien@symfony.com"
960
                },
961
                {
962
                    "name": "Symfony Community",
963
                    "homepage": "https://symfony.com/contributors"
964
                }
965
            ],
966
            "description": "Symfony Finder Component",
967
            "homepage": "https://symfony.com",
968
            "funding": [
969
                {
970
                    "url": "https://symfony.com/sponsor",
971
                    "type": "custom"
972
                },
973
                {
974
                    "url": "https://github.com/fabpot",
975
                    "type": "github"
976
                },
977
                {
978
                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
979
                    "type": "tidelift"
980
                }
981
            ],
982
            "time": "2020-02-14T07:43:07+00:00"
983
        },
984
        {
985
            "name": "symfony/flex",
986
            "version": "v1.6.2",
987
            "source": {
988
                "type": "git",
989
                "url": "https://github.com/symfony/flex.git",
990
                "reference": "e4f5a2653ca503782a31486198bd1dd1c9a47f83"
991
            },
992
            "dist": {
993
                "type": "zip",
994
                "url": "https://api.github.com/repos/symfony/flex/zipball/e4f5a2653ca503782a31486198bd1dd1c9a47f83",
995
                "reference": "e4f5a2653ca503782a31486198bd1dd1c9a47f83",
996
                "shasum": ""
997
            },
998
            "require": {
999
                "composer-plugin-api": "^1.0",
1000
                "php": "^7.0"
1001
            },
1002
            "require-dev": {
1003
                "composer/composer": "^1.0.2",
1004
                "symfony/dotenv": "^3.4|^4.0|^5.0",
1005
                "symfony/phpunit-bridge": "^3.4.19|^4.1.8|^5.0",
1006
                "symfony/process": "^2.7|^3.0|^4.0|^5.0"
1007
            },
1008
            "type": "composer-plugin",
1009
            "extra": {
1010
                "branch-alias": {
1011
                    "dev-master": "1.5-dev"
1012
                },
1013
                "class": "Symfony\\Flex\\Flex"
1014
            },
1015
            "autoload": {
1016
                "psr-4": {
1017
                    "Symfony\\Flex\\": "src"
1018
                }
1019
            },
1020
            "notification-url": "https://packagist.org/downloads/",
1021
            "license": [
1022
                "MIT"
1023
            ],
1024
            "authors": [
1025
                {
1026
                    "name": "Fabien Potencier",
1027
                    "email": "fabien.potencier@gmail.com"
1028
                }
1029
            ],
1030
            "description": "Composer plugin for Symfony",
1031
            "time": "2020-01-30T12:06:45+00:00"
1032
        },
1033
        {
1034
            "name": "symfony/framework-bundle",
1035
            "version": "v5.0.5",
1036
            "source": {
1037
                "type": "git",
1038
                "url": "https://github.com/symfony/framework-bundle.git",
1039
                "reference": "fc6a0059fedaaf15efc66b64b7a3cedaa4b1edf4"
1040
            },
1041
            "dist": {
1042
                "type": "zip",
1043
                "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/fc6a0059fedaaf15efc66b64b7a3cedaa4b1edf4",
1044
                "reference": "fc6a0059fedaaf15efc66b64b7a3cedaa4b1edf4",
1045
                "shasum": ""
1046
            },
1047
            "require": {
1048
                "ext-xml": "*",
1049
                "php": "^7.2.5",
1050
                "symfony/cache": "^4.4|^5.0",
1051
                "symfony/config": "^5.0",
1052
                "symfony/dependency-injection": "^5.0.1",
1053
                "symfony/error-handler": "^4.4.1|^5.0.1",
1054
                "symfony/filesystem": "^4.4|^5.0",
1055
                "symfony/finder": "^4.4|^5.0",
1056
                "symfony/http-foundation": "^4.4|^5.0",
1057
                "symfony/http-kernel": "^5.0",
1058
                "symfony/polyfill-mbstring": "~1.0",
1059
                "symfony/routing": "^5.0"
1060
            },
1061
            "conflict": {
1062
                "doctrine/persistence": "<1.3",
1063
                "phpdocumentor/reflection-docblock": "<3.0",
1064
                "phpdocumentor/type-resolver": "<0.2.1",
1065
                "phpunit/phpunit": "<5.4.3",
1066
                "symfony/asset": "<4.4",
1067
                "symfony/browser-kit": "<4.4",
1068
                "symfony/console": "<4.4",
1069
                "symfony/dom-crawler": "<4.4",
1070
                "symfony/dotenv": "<4.4",
1071
                "symfony/form": "<4.4",
1072
                "symfony/http-client": "<4.4",
1073
                "symfony/lock": "<4.4",
1074
                "symfony/mailer": "<4.4",
1075
                "symfony/messenger": "<4.4",
1076
                "symfony/mime": "<4.4",
1077
                "symfony/property-info": "<4.4",
1078
                "symfony/serializer": "<4.4",
1079
                "symfony/stopwatch": "<4.4",
1080
                "symfony/translation": "<5.0",
1081
                "symfony/twig-bridge": "<4.4",
1082
                "symfony/twig-bundle": "<4.4",
1083
                "symfony/validator": "<4.4",
1084
                "symfony/web-profiler-bundle": "<4.4",
1085
                "symfony/workflow": "<4.4"
1086
            },
1087
            "require-dev": {
1088
                "doctrine/annotations": "~1.7",
1089
                "doctrine/cache": "~1.0",
1090
                "paragonie/sodium_compat": "^1.8",
1091
                "phpdocumentor/reflection-docblock": "^3.0|^4.0",
1092
                "symfony/asset": "^4.4|^5.0",
1093
                "symfony/browser-kit": "^4.4|^5.0",
1094
                "symfony/console": "^4.4|^5.0",
1095
                "symfony/css-selector": "^4.4|^5.0",
1096
                "symfony/dom-crawler": "^4.4|^5.0",
1097
                "symfony/dotenv": "^4.4|^5.0",
1098
                "symfony/expression-language": "^4.4|^5.0",
1099
                "symfony/form": "^4.4|^5.0",
1100
                "symfony/http-client": "^4.4|^5.0",
1101
                "symfony/lock": "^4.4|^5.0",
1102
                "symfony/mailer": "^4.4|^5.0",
1103
                "symfony/messenger": "^4.4|^5.0",
1104
                "symfony/mime": "^4.4|^5.0",
1105
                "symfony/polyfill-intl-icu": "~1.0",
1106
                "symfony/process": "^4.4|^5.0",
1107
                "symfony/property-info": "^4.4|^5.0",
1108
                "symfony/security-csrf": "^4.4|^5.0",
1109
                "symfony/security-http": "^4.4|^5.0",
1110
                "symfony/serializer": "^4.4|^5.0",
1111
                "symfony/stopwatch": "^4.4|^5.0",
1112
                "symfony/string": "~5.0.0",
1113
                "symfony/translation": "^5.0",
1114
                "symfony/twig-bundle": "^4.4|^5.0",
1115
                "symfony/validator": "^4.4|^5.0",
1116
                "symfony/web-link": "^4.4|^5.0",
1117
                "symfony/workflow": "^4.4|^5.0",
1118
                "symfony/yaml": "^4.4|^5.0",
1119
                "twig/twig": "^2.10|^3.0"
1120
            },
1121
            "suggest": {
1122
                "ext-apcu": "For best performance of the system caches",
1123
                "symfony/console": "For using the console commands",
1124
                "symfony/form": "For using forms",
1125
                "symfony/property-info": "For using the property_info service",
1126
                "symfony/serializer": "For using the serializer service",
1127
                "symfony/validator": "For using validation",
... Rozdílový soubor je zkrácen, protože jeho délka přesahuje max. limit.

Také k dispozici: Unified diff