├── .env.dist ├── .gitignore ├── README.md ├── bin └── console ├── composer.json ├── composer.lock ├── config ├── bundles.php ├── graphql │ └── types │ │ ├── .gitignore │ │ └── query.graphql ├── packages │ ├── dev │ │ └── routing.yaml │ ├── framework.yaml │ ├── graphql.yaml │ ├── routing.yaml │ ├── test │ │ └── framework.yaml │ └── twig.yaml ├── routes.yaml ├── routes │ ├── dev │ │ ├── graphiql.yaml │ │ └── twig.yaml │ └── graphql.yaml └── services.yaml ├── public └── index.php ├── src ├── Controller │ └── .gitignore ├── Kernel.php └── Resolver │ ├── Characters.php │ └── MyResolverMap.php ├── symfony.lock └── templates └── base.html.twig /.env.dist: -------------------------------------------------------------------------------- 1 | # This file is a "template" of which env vars need to be defined for your application 2 | # Copy this file to .env file for development, create environment variables when deploying to production 3 | # https://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration 4 | 5 | ###> symfony/framework-bundle ### 6 | APP_ENV=dev 7 | APP_SECRET=51a5ee57180552d77c9cc9ec91223c7f 8 | #TRUSTED_PROXIES=127.0.0.1,127.0.0.2 9 | #TRUSTED_HOSTS=localhost,example.com 10 | ###< symfony/framework-bundle ### 11 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | ###> symfony/framework-bundle ### 3 | .env 4 | /public/bundles/ 5 | /var/ 6 | /vendor/ 7 | ###< symfony/framework-bundle ### 8 | 9 | ###> symfony/web-server-bundle ### 10 | .web-server-pid 11 | ###< symfony/web-server-bundle ### 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GraphQLBundleDemo 2 | 3 | ## Install 4 | 5 | ``` 6 | composer install 7 | bin/console c:w 8 | ``` 9 | 10 | ## Start server 11 | 12 | ``` 13 | bin/console server:run 14 | ``` 15 | 16 | ## Important files 17 | 18 | ### quickstart 19 | 20 | * [Schema](config/graphql/types/query.graphql) 21 | * [ResolverMap](src/Resolver/MyResolverMap.php) 22 | 23 | ## Endpoints 24 | 25 | ### quickstart 26 | 27 | * [GraphQL](http://127.0.0.1:8000/graphql/quickstart) 28 | * [GraphiQL](http://127.0.0.1:8000/graphiql/quickstart) 29 | 30 | ## Example 31 | 32 | ```graphql 33 | { 34 | humans { 35 | name 36 | id 37 | status 38 | direwolf { 39 | name 40 | } 41 | dateOfBirth 42 | } 43 | } 44 | ``` 45 | -------------------------------------------------------------------------------- /bin/console: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | load(__DIR__.'/../.env'); 23 | } 24 | 25 | $input = new ArgvInput(); 26 | $env = $input->getParameterOption(['--env', '-e'], $_SERVER['APP_ENV'] ?? 'dev'); 27 | $debug = ($_SERVER['APP_DEBUG'] ?? ('prod' !== $env)) && !$input->hasParameterOption(['--no-debug', '']); 28 | 29 | if ($debug) { 30 | umask(0000); 31 | 32 | if (class_exists(Debug::class)) { 33 | Debug::enable(); 34 | } 35 | } 36 | 37 | $kernel = new Kernel($env, $debug); 38 | $application = new Application($kernel); 39 | $application->run($input); 40 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "project", 3 | "license": "MIT", 4 | "require": { 5 | "php": "^7.1.3", 6 | "ext-iconv": "*", 7 | "overblog/graphiql-bundle": "^0.2", 8 | "overblog/graphql-bundle": "0.11.*@beta", 9 | "symfony/console": "^4.0", 10 | "symfony/flex": "^1.0", 11 | "symfony/framework-bundle": "^4.0", 12 | "symfony/web-server-bundle": "^4.0", 13 | "symfony/yaml": "^4.0" 14 | }, 15 | "require-dev": { 16 | "symfony/dotenv": "^4.0" 17 | }, 18 | "config": { 19 | "preferred-install": { 20 | "*": "dist" 21 | }, 22 | "sort-packages": true 23 | }, 24 | "autoload": { 25 | "psr-4": { 26 | "App\\": "src/" 27 | } 28 | }, 29 | "autoload-dev": { 30 | "psr-4": { 31 | "App\\Tests\\": "tests/" 32 | } 33 | }, 34 | "replace": { 35 | "symfony/polyfill-iconv": "*", 36 | "symfony/polyfill-php71": "*", 37 | "symfony/polyfill-php70": "*", 38 | "symfony/polyfill-php56": "*" 39 | }, 40 | "scripts": { 41 | "auto-scripts": { 42 | "cache:clear": "symfony-cmd", 43 | "assets:install --symlink --relative %PUBLIC_DIR%": "symfony-cmd" 44 | }, 45 | "post-install-cmd": [ 46 | "@auto-scripts" 47 | ], 48 | "post-update-cmd": [ 49 | "@auto-scripts" 50 | ] 51 | }, 52 | "conflict": { 53 | "symfony/symfony": "*" 54 | }, 55 | "extra": { 56 | "symfony": { 57 | "id": "01C4P2A9NBPCVAF119RA98AYAG", 58 | "allow-contrib": false 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /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": "b268e58d4028442fa4c75cd83dc14c09", 8 | "packages": [ 9 | { 10 | "name": "overblog/graphiql-bundle", 11 | "version": "v0.2.0", 12 | "source": { 13 | "type": "git", 14 | "url": "https://github.com/overblog/GraphiQLBundle.git", 15 | "reference": "74c8d84f156b7219eaccf9b382bebf7edd06fc46" 16 | }, 17 | "dist": { 18 | "type": "zip", 19 | "url": "https://api.github.com/repos/overblog/GraphiQLBundle/zipball/74c8d84f156b7219eaccf9b382bebf7edd06fc46", 20 | "reference": "74c8d84f156b7219eaccf9b382bebf7edd06fc46", 21 | "shasum": "" 22 | }, 23 | "require": { 24 | "php": ">=5.6", 25 | "symfony/framework-bundle": "^3.4 || ^4.0 || ^5.0", 26 | "symfony/twig-bundle": "^3.4 || ^4.0 || ^5.0" 27 | }, 28 | "require-dev": { 29 | "overblog/graphql-bundle": ">=0.9", 30 | "phpunit/phpunit": "^5.7 || ^6.0", 31 | "sensio/framework-extra-bundle": "^3.0 || ^4.0 || ^5.0", 32 | "symfony/browser-kit": "^3.4 || ^4.0 || ^5.0", 33 | "symfony/templating": "^3.4 || ^4.0 || ^5.0", 34 | "symfony/yaml": "^3.4 || ^4.0 || ^5.0" 35 | }, 36 | "type": "symfony-bundle", 37 | "extra": { 38 | "branch-alias": { 39 | "dev-master": "0.1-dev" 40 | } 41 | }, 42 | "autoload": { 43 | "psr-4": { 44 | "Overblog\\GraphiQLBundle\\": "" 45 | }, 46 | "exclude-from-classmap": [ 47 | "/Tests/" 48 | ] 49 | }, 50 | "notification-url": "https://packagist.org/downloads/", 51 | "license": [ 52 | "MIT" 53 | ], 54 | "authors": [ 55 | { 56 | "name": "Renato Mefi", 57 | "email": "renato@mefi.in" 58 | }, 59 | { 60 | "name": "Overblog", 61 | "homepage": "http://www.over-blog.com" 62 | } 63 | ], 64 | "description": "Symfony GraphiQLBundle makes possible to render the UI into your symfony project", 65 | "keywords": [ 66 | "graphiql", 67 | "graphql" 68 | ], 69 | "time": "2019-11-29T10:58:08+00:00" 70 | }, 71 | { 72 | "name": "overblog/graphql-bundle", 73 | "version": "v0.11.17", 74 | "source": { 75 | "type": "git", 76 | "url": "https://github.com/overblog/GraphQLBundle.git", 77 | "reference": "869794a38a024203f4bb0e946eaf211793364443" 78 | }, 79 | "dist": { 80 | "type": "zip", 81 | "url": "https://api.github.com/repos/overblog/GraphQLBundle/zipball/869794a38a024203f4bb0e946eaf211793364443", 82 | "reference": "869794a38a024203f4bb0e946eaf211793364443", 83 | "shasum": "" 84 | }, 85 | "require": { 86 | "php": ">=5.6", 87 | "psr/log": "^1.0", 88 | "symfony/config": "^3.1 || ^4.0 || ^5.0", 89 | "symfony/dependency-injection": "^3.1 || ^4.0 || ^5.0", 90 | "symfony/event-dispatcher": "^3.1 || ^4.0 || ^5.0", 91 | "symfony/expression-language": "^3.1 || ^4.0 || ^5.0", 92 | "symfony/framework-bundle": "^3.1 || ^4.0 || ^5.0", 93 | "symfony/options-resolver": "^3.1 || ^4.0 || ^5.0", 94 | "symfony/property-access": "^3.1 || ^4.0 || ^5.0", 95 | "webonyx/graphql-php": "^0.11.2 || ^0.12.0 || ^0.13.0" 96 | }, 97 | "replace": { 98 | "overblog/graphql-php-generator": "self.version" 99 | }, 100 | "require-dev": { 101 | "phpunit/phpunit": "^5.7.26 || ^6.0 || ^7.2", 102 | "react/promise": "^2.5", 103 | "symfony/asset": "^3.1 || ^4.0 || ^5.0", 104 | "symfony/browser-kit": "^3.1 || ^4.0 || ^5.0", 105 | "symfony/console": "^3.1 || ^4.0 || ^5.0", 106 | "symfony/css-selector": "^3.1 || ^4.0 || ^5.0", 107 | "symfony/phpunit-bridge": "^3.1 || ^4.0 || ^5.0", 108 | "symfony/process": "^3.1 || ^4.0 || ^5.0", 109 | "symfony/security-bundle": "^3.1 || ^4.0 || ^5.0", 110 | "symfony/yaml": "^3.1 || ^4.0 || ^5.0" 111 | }, 112 | "suggest": { 113 | "nelmio/cors-bundle": "For more flexibility when using CORS prefight", 114 | "overblog/graphiql-bundle": "If you want to use graphiQL.", 115 | "react/promise": "To use ReactPHP promise adapter" 116 | }, 117 | "type": "symfony-bundle", 118 | "extra": { 119 | "branch-alias": { 120 | "dev-master": "0.11-dev" 121 | } 122 | }, 123 | "autoload": { 124 | "psr-4": { 125 | "Overblog\\GraphQLBundle\\": "src/", 126 | "Overblog\\GraphQLGenerator\\": "lib/generator/src/" 127 | } 128 | }, 129 | "notification-url": "https://packagist.org/downloads/", 130 | "license": [ 131 | "MIT" 132 | ], 133 | "authors": [ 134 | { 135 | "name": "Overblog", 136 | "homepage": "http://www.over-blog.com" 137 | } 138 | ], 139 | "description": "This bundle provides tools to build a GraphQL server in your Symfony App.", 140 | "keywords": [ 141 | "Relay", 142 | "graphql" 143 | ], 144 | "time": "2019-11-27T08:38:02+00:00" 145 | }, 146 | { 147 | "name": "psr/cache", 148 | "version": "1.0.1", 149 | "source": { 150 | "type": "git", 151 | "url": "https://github.com/php-fig/cache.git", 152 | "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" 153 | }, 154 | "dist": { 155 | "type": "zip", 156 | "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", 157 | "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", 158 | "shasum": "" 159 | }, 160 | "require": { 161 | "php": ">=5.3.0" 162 | }, 163 | "type": "library", 164 | "extra": { 165 | "branch-alias": { 166 | "dev-master": "1.0.x-dev" 167 | } 168 | }, 169 | "autoload": { 170 | "psr-4": { 171 | "Psr\\Cache\\": "src/" 172 | } 173 | }, 174 | "notification-url": "https://packagist.org/downloads/", 175 | "license": [ 176 | "MIT" 177 | ], 178 | "authors": [ 179 | { 180 | "name": "PHP-FIG", 181 | "homepage": "http://www.php-fig.org/" 182 | } 183 | ], 184 | "description": "Common interface for caching libraries", 185 | "keywords": [ 186 | "cache", 187 | "psr", 188 | "psr-6" 189 | ], 190 | "time": "2016-08-06T20:24:11+00:00" 191 | }, 192 | { 193 | "name": "psr/container", 194 | "version": "1.0.0", 195 | "source": { 196 | "type": "git", 197 | "url": "https://github.com/php-fig/container.git", 198 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" 199 | }, 200 | "dist": { 201 | "type": "zip", 202 | "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", 203 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", 204 | "shasum": "" 205 | }, 206 | "require": { 207 | "php": ">=5.3.0" 208 | }, 209 | "type": "library", 210 | "extra": { 211 | "branch-alias": { 212 | "dev-master": "1.0.x-dev" 213 | } 214 | }, 215 | "autoload": { 216 | "psr-4": { 217 | "Psr\\Container\\": "src/" 218 | } 219 | }, 220 | "notification-url": "https://packagist.org/downloads/", 221 | "license": [ 222 | "MIT" 223 | ], 224 | "authors": [ 225 | { 226 | "name": "PHP-FIG", 227 | "homepage": "http://www.php-fig.org/" 228 | } 229 | ], 230 | "description": "Common Container Interface (PHP FIG PSR-11)", 231 | "homepage": "https://github.com/php-fig/container", 232 | "keywords": [ 233 | "PSR-11", 234 | "container", 235 | "container-interface", 236 | "container-interop", 237 | "psr" 238 | ], 239 | "time": "2017-02-14T16:28:37+00:00" 240 | }, 241 | { 242 | "name": "psr/log", 243 | "version": "1.1.2", 244 | "source": { 245 | "type": "git", 246 | "url": "https://github.com/php-fig/log.git", 247 | "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" 248 | }, 249 | "dist": { 250 | "type": "zip", 251 | "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", 252 | "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", 253 | "shasum": "" 254 | }, 255 | "require": { 256 | "php": ">=5.3.0" 257 | }, 258 | "type": "library", 259 | "extra": { 260 | "branch-alias": { 261 | "dev-master": "1.1.x-dev" 262 | } 263 | }, 264 | "autoload": { 265 | "psr-4": { 266 | "Psr\\Log\\": "Psr/Log/" 267 | } 268 | }, 269 | "notification-url": "https://packagist.org/downloads/", 270 | "license": [ 271 | "MIT" 272 | ], 273 | "authors": [ 274 | { 275 | "name": "PHP-FIG", 276 | "homepage": "http://www.php-fig.org/" 277 | } 278 | ], 279 | "description": "Common interface for logging libraries", 280 | "homepage": "https://github.com/php-fig/log", 281 | "keywords": [ 282 | "log", 283 | "psr", 284 | "psr-3" 285 | ], 286 | "time": "2019-11-01T11:05:21+00:00" 287 | }, 288 | { 289 | "name": "symfony/cache", 290 | "version": "v5.0.0", 291 | "source": { 292 | "type": "git", 293 | "url": "https://github.com/symfony/cache.git", 294 | "reference": "32bd1f9be1684bba768a6834037706cf0950843c" 295 | }, 296 | "dist": { 297 | "type": "zip", 298 | "url": "https://api.github.com/repos/symfony/cache/zipball/32bd1f9be1684bba768a6834037706cf0950843c", 299 | "reference": "32bd1f9be1684bba768a6834037706cf0950843c", 300 | "shasum": "" 301 | }, 302 | "require": { 303 | "php": "^7.2.5", 304 | "psr/cache": "~1.0", 305 | "psr/log": "~1.0", 306 | "symfony/cache-contracts": "^1.1.7|^2", 307 | "symfony/service-contracts": "^1.1|^2", 308 | "symfony/var-exporter": "^4.4|^5.0" 309 | }, 310 | "conflict": { 311 | "doctrine/dbal": "<2.5", 312 | "symfony/dependency-injection": "<4.4", 313 | "symfony/http-kernel": "<4.4", 314 | "symfony/var-dumper": "<4.4" 315 | }, 316 | "provide": { 317 | "psr/cache-implementation": "1.0", 318 | "psr/simple-cache-implementation": "1.0", 319 | "symfony/cache-implementation": "1.0" 320 | }, 321 | "require-dev": { 322 | "cache/integration-tests": "dev-master", 323 | "doctrine/cache": "~1.6", 324 | "doctrine/dbal": "~2.5", 325 | "predis/predis": "~1.1", 326 | "psr/simple-cache": "^1.0", 327 | "symfony/config": "^4.4|^5.0", 328 | "symfony/dependency-injection": "^4.4|^5.0", 329 | "symfony/var-dumper": "^4.4|^5.0" 330 | }, 331 | "type": "library", 332 | "extra": { 333 | "branch-alias": { 334 | "dev-master": "5.0-dev" 335 | } 336 | }, 337 | "autoload": { 338 | "psr-4": { 339 | "Symfony\\Component\\Cache\\": "" 340 | }, 341 | "exclude-from-classmap": [ 342 | "/Tests/" 343 | ] 344 | }, 345 | "notification-url": "https://packagist.org/downloads/", 346 | "license": [ 347 | "MIT" 348 | ], 349 | "authors": [ 350 | { 351 | "name": "Nicolas Grekas", 352 | "email": "p@tchwork.com" 353 | }, 354 | { 355 | "name": "Symfony Community", 356 | "homepage": "https://symfony.com/contributors" 357 | } 358 | ], 359 | "description": "Symfony Cache component with PSR-6, PSR-16, and tags", 360 | "homepage": "https://symfony.com", 361 | "keywords": [ 362 | "caching", 363 | "psr6" 364 | ], 365 | "time": "2019-11-18T17:27:11+00:00" 366 | }, 367 | { 368 | "name": "symfony/cache-contracts", 369 | "version": "v2.0.0", 370 | "source": { 371 | "type": "git", 372 | "url": "https://github.com/symfony/cache-contracts.git", 373 | "reference": "a91281de82119a7a07481b892f709d88da592cd3" 374 | }, 375 | "dist": { 376 | "type": "zip", 377 | "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/a91281de82119a7a07481b892f709d88da592cd3", 378 | "reference": "a91281de82119a7a07481b892f709d88da592cd3", 379 | "shasum": "" 380 | }, 381 | "require": { 382 | "php": "^7.2.9", 383 | "psr/cache": "^1.0" 384 | }, 385 | "suggest": { 386 | "symfony/cache-implementation": "" 387 | }, 388 | "type": "library", 389 | "extra": { 390 | "branch-alias": { 391 | "dev-master": "2.0-dev" 392 | } 393 | }, 394 | "autoload": { 395 | "psr-4": { 396 | "Symfony\\Contracts\\Cache\\": "" 397 | } 398 | }, 399 | "notification-url": "https://packagist.org/downloads/", 400 | "license": [ 401 | "MIT" 402 | ], 403 | "authors": [ 404 | { 405 | "name": "Nicolas Grekas", 406 | "email": "p@tchwork.com" 407 | }, 408 | { 409 | "name": "Symfony Community", 410 | "homepage": "https://symfony.com/contributors" 411 | } 412 | ], 413 | "description": "Generic abstractions related to caching", 414 | "homepage": "https://symfony.com", 415 | "keywords": [ 416 | "abstractions", 417 | "contracts", 418 | "decoupling", 419 | "interfaces", 420 | "interoperability", 421 | "standards" 422 | ], 423 | "time": "2019-11-09T09:18:34+00:00" 424 | }, 425 | { 426 | "name": "symfony/config", 427 | "version": "v5.0.0", 428 | "source": { 429 | "type": "git", 430 | "url": "https://github.com/symfony/config.git", 431 | "reference": "10cb9692805d2152fe2ecb3af018c188c712bba8" 432 | }, 433 | "dist": { 434 | "type": "zip", 435 | "url": "https://api.github.com/repos/symfony/config/zipball/10cb9692805d2152fe2ecb3af018c188c712bba8", 436 | "reference": "10cb9692805d2152fe2ecb3af018c188c712bba8", 437 | "shasum": "" 438 | }, 439 | "require": { 440 | "php": "^7.2.5", 441 | "symfony/filesystem": "^4.4|^5.0", 442 | "symfony/polyfill-ctype": "~1.8" 443 | }, 444 | "conflict": { 445 | "symfony/finder": "<4.4" 446 | }, 447 | "require-dev": { 448 | "symfony/event-dispatcher": "^4.4|^5.0", 449 | "symfony/finder": "^4.4|^5.0", 450 | "symfony/messenger": "^4.4|^5.0", 451 | "symfony/service-contracts": "^1.1|^2", 452 | "symfony/yaml": "^4.4|^5.0" 453 | }, 454 | "suggest": { 455 | "symfony/yaml": "To use the yaml reference dumper" 456 | }, 457 | "type": "library", 458 | "extra": { 459 | "branch-alias": { 460 | "dev-master": "5.0-dev" 461 | } 462 | }, 463 | "autoload": { 464 | "psr-4": { 465 | "Symfony\\Component\\Config\\": "" 466 | }, 467 | "exclude-from-classmap": [ 468 | "/Tests/" 469 | ] 470 | }, 471 | "notification-url": "https://packagist.org/downloads/", 472 | "license": [ 473 | "MIT" 474 | ], 475 | "authors": [ 476 | { 477 | "name": "Fabien Potencier", 478 | "email": "fabien@symfony.com" 479 | }, 480 | { 481 | "name": "Symfony Community", 482 | "homepage": "https://symfony.com/contributors" 483 | } 484 | ], 485 | "description": "Symfony Config Component", 486 | "homepage": "https://symfony.com", 487 | "time": "2019-11-18T17:27:11+00:00" 488 | }, 489 | { 490 | "name": "symfony/console", 491 | "version": "v4.4.0", 492 | "source": { 493 | "type": "git", 494 | "url": "https://github.com/symfony/console.git", 495 | "reference": "35d9077f495c6d184d9930f7a7ecbd1ad13c7ab8" 496 | }, 497 | "dist": { 498 | "type": "zip", 499 | "url": "https://api.github.com/repos/symfony/console/zipball/35d9077f495c6d184d9930f7a7ecbd1ad13c7ab8", 500 | "reference": "35d9077f495c6d184d9930f7a7ecbd1ad13c7ab8", 501 | "shasum": "" 502 | }, 503 | "require": { 504 | "php": "^7.1.3", 505 | "symfony/polyfill-mbstring": "~1.0", 506 | "symfony/polyfill-php73": "^1.8", 507 | "symfony/service-contracts": "^1.1|^2" 508 | }, 509 | "conflict": { 510 | "symfony/dependency-injection": "<3.4", 511 | "symfony/event-dispatcher": "<4.3|>=5", 512 | "symfony/lock": "<4.4", 513 | "symfony/process": "<3.3" 514 | }, 515 | "provide": { 516 | "psr/log-implementation": "1.0" 517 | }, 518 | "require-dev": { 519 | "psr/log": "~1.0", 520 | "symfony/config": "^3.4|^4.0|^5.0", 521 | "symfony/dependency-injection": "^3.4|^4.0|^5.0", 522 | "symfony/event-dispatcher": "^4.3", 523 | "symfony/lock": "^4.4|^5.0", 524 | "symfony/process": "^3.4|^4.0|^5.0", 525 | "symfony/var-dumper": "^4.3|^5.0" 526 | }, 527 | "suggest": { 528 | "psr/log": "For using the console logger", 529 | "symfony/event-dispatcher": "", 530 | "symfony/lock": "", 531 | "symfony/process": "" 532 | }, 533 | "type": "library", 534 | "extra": { 535 | "branch-alias": { 536 | "dev-master": "4.4-dev" 537 | } 538 | }, 539 | "autoload": { 540 | "psr-4": { 541 | "Symfony\\Component\\Console\\": "" 542 | }, 543 | "exclude-from-classmap": [ 544 | "/Tests/" 545 | ] 546 | }, 547 | "notification-url": "https://packagist.org/downloads/", 548 | "license": [ 549 | "MIT" 550 | ], 551 | "authors": [ 552 | { 553 | "name": "Fabien Potencier", 554 | "email": "fabien@symfony.com" 555 | }, 556 | { 557 | "name": "Symfony Community", 558 | "homepage": "https://symfony.com/contributors" 559 | } 560 | ], 561 | "description": "Symfony Console Component", 562 | "homepage": "https://symfony.com", 563 | "time": "2019-11-13T07:39:40+00:00" 564 | }, 565 | { 566 | "name": "symfony/debug", 567 | "version": "v4.4.0", 568 | "source": { 569 | "type": "git", 570 | "url": "https://github.com/symfony/debug.git", 571 | "reference": "b24b791f817116b29e52a63e8544884cf9a40757" 572 | }, 573 | "dist": { 574 | "type": "zip", 575 | "url": "https://api.github.com/repos/symfony/debug/zipball/b24b791f817116b29e52a63e8544884cf9a40757", 576 | "reference": "b24b791f817116b29e52a63e8544884cf9a40757", 577 | "shasum": "" 578 | }, 579 | "require": { 580 | "php": "^7.1.3", 581 | "psr/log": "~1.0" 582 | }, 583 | "conflict": { 584 | "symfony/http-kernel": "<3.4" 585 | }, 586 | "require-dev": { 587 | "symfony/http-kernel": "^3.4|^4.0|^5.0" 588 | }, 589 | "type": "library", 590 | "extra": { 591 | "branch-alias": { 592 | "dev-master": "4.4-dev" 593 | } 594 | }, 595 | "autoload": { 596 | "psr-4": { 597 | "Symfony\\Component\\Debug\\": "" 598 | }, 599 | "exclude-from-classmap": [ 600 | "/Tests/" 601 | ] 602 | }, 603 | "notification-url": "https://packagist.org/downloads/", 604 | "license": [ 605 | "MIT" 606 | ], 607 | "authors": [ 608 | { 609 | "name": "Fabien Potencier", 610 | "email": "fabien@symfony.com" 611 | }, 612 | { 613 | "name": "Symfony Community", 614 | "homepage": "https://symfony.com/contributors" 615 | } 616 | ], 617 | "description": "Symfony Debug Component", 618 | "homepage": "https://symfony.com", 619 | "time": "2019-11-10T17:54:30+00:00" 620 | }, 621 | { 622 | "name": "symfony/dependency-injection", 623 | "version": "v5.0.0", 624 | "source": { 625 | "type": "git", 626 | "url": "https://github.com/symfony/dependency-injection.git", 627 | "reference": "cdaee34c7de6d25bd7dd9712661eedda728d5e62" 628 | }, 629 | "dist": { 630 | "type": "zip", 631 | "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/cdaee34c7de6d25bd7dd9712661eedda728d5e62", 632 | "reference": "cdaee34c7de6d25bd7dd9712661eedda728d5e62", 633 | "shasum": "" 634 | }, 635 | "require": { 636 | "php": "^7.2.5", 637 | "psr/container": "^1.0", 638 | "symfony/service-contracts": "^1.1.6|^2" 639 | }, 640 | "conflict": { 641 | "symfony/config": "<5.0", 642 | "symfony/finder": "<4.4", 643 | "symfony/proxy-manager-bridge": "<4.4", 644 | "symfony/yaml": "<4.4" 645 | }, 646 | "provide": { 647 | "psr/container-implementation": "1.0", 648 | "symfony/service-implementation": "1.0" 649 | }, 650 | "require-dev": { 651 | "symfony/config": "^5.0", 652 | "symfony/expression-language": "^4.4|^5.0", 653 | "symfony/yaml": "^4.4|^5.0" 654 | }, 655 | "suggest": { 656 | "symfony/config": "", 657 | "symfony/expression-language": "For using expressions in service container configuration", 658 | "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", 659 | "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", 660 | "symfony/yaml": "" 661 | }, 662 | "type": "library", 663 | "extra": { 664 | "branch-alias": { 665 | "dev-master": "5.0-dev" 666 | } 667 | }, 668 | "autoload": { 669 | "psr-4": { 670 | "Symfony\\Component\\DependencyInjection\\": "" 671 | }, 672 | "exclude-from-classmap": [ 673 | "/Tests/" 674 | ] 675 | }, 676 | "notification-url": "https://packagist.org/downloads/", 677 | "license": [ 678 | "MIT" 679 | ], 680 | "authors": [ 681 | { 682 | "name": "Fabien Potencier", 683 | "email": "fabien@symfony.com" 684 | }, 685 | { 686 | "name": "Symfony Community", 687 | "homepage": "https://symfony.com/contributors" 688 | } 689 | ], 690 | "description": "Symfony DependencyInjection Component", 691 | "homepage": "https://symfony.com", 692 | "time": "2019-11-21T07:02:40+00:00" 693 | }, 694 | { 695 | "name": "symfony/error-handler", 696 | "version": "v4.4.0", 697 | "source": { 698 | "type": "git", 699 | "url": "https://github.com/symfony/error-handler.git", 700 | "reference": "e1acb58dc6a8722617fe56565f742bcf7e8744bf" 701 | }, 702 | "dist": { 703 | "type": "zip", 704 | "url": "https://api.github.com/repos/symfony/error-handler/zipball/e1acb58dc6a8722617fe56565f742bcf7e8744bf", 705 | "reference": "e1acb58dc6a8722617fe56565f742bcf7e8744bf", 706 | "shasum": "" 707 | }, 708 | "require": { 709 | "php": "^7.1.3", 710 | "psr/log": "~1.0", 711 | "symfony/debug": "^4.4", 712 | "symfony/var-dumper": "^4.4|^5.0" 713 | }, 714 | "require-dev": { 715 | "symfony/http-kernel": "^4.4|^5.0", 716 | "symfony/serializer": "^4.4|^5.0" 717 | }, 718 | "type": "library", 719 | "extra": { 720 | "branch-alias": { 721 | "dev-master": "4.4-dev" 722 | } 723 | }, 724 | "autoload": { 725 | "psr-4": { 726 | "Symfony\\Component\\ErrorHandler\\": "" 727 | }, 728 | "exclude-from-classmap": [ 729 | "/Tests/" 730 | ] 731 | }, 732 | "notification-url": "https://packagist.org/downloads/", 733 | "license": [ 734 | "MIT" 735 | ], 736 | "authors": [ 737 | { 738 | "name": "Fabien Potencier", 739 | "email": "fabien@symfony.com" 740 | }, 741 | { 742 | "name": "Symfony Community", 743 | "homepage": "https://symfony.com/contributors" 744 | } 745 | ], 746 | "description": "Symfony ErrorHandler Component", 747 | "homepage": "https://symfony.com", 748 | "time": "2019-11-17T22:49:13+00:00" 749 | }, 750 | { 751 | "name": "symfony/event-dispatcher", 752 | "version": "v4.4.0", 753 | "source": { 754 | "type": "git", 755 | "url": "https://github.com/symfony/event-dispatcher.git", 756 | "reference": "ab1c43e17fff802bef0a898f3bc088ac33b8e0e1" 757 | }, 758 | "dist": { 759 | "type": "zip", 760 | "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/ab1c43e17fff802bef0a898f3bc088ac33b8e0e1", 761 | "reference": "ab1c43e17fff802bef0a898f3bc088ac33b8e0e1", 762 | "shasum": "" 763 | }, 764 | "require": { 765 | "php": "^7.1.3", 766 | "symfony/event-dispatcher-contracts": "^1.1" 767 | }, 768 | "conflict": { 769 | "symfony/dependency-injection": "<3.4" 770 | }, 771 | "provide": { 772 | "psr/event-dispatcher-implementation": "1.0", 773 | "symfony/event-dispatcher-implementation": "1.1" 774 | }, 775 | "require-dev": { 776 | "psr/log": "~1.0", 777 | "symfony/config": "^3.4|^4.0|^5.0", 778 | "symfony/dependency-injection": "^3.4|^4.0|^5.0", 779 | "symfony/expression-language": "^3.4|^4.0|^5.0", 780 | "symfony/http-foundation": "^3.4|^4.0|^5.0", 781 | "symfony/service-contracts": "^1.1|^2", 782 | "symfony/stopwatch": "^3.4|^4.0|^5.0" 783 | }, 784 | "suggest": { 785 | "symfony/dependency-injection": "", 786 | "symfony/http-kernel": "" 787 | }, 788 | "type": "library", 789 | "extra": { 790 | "branch-alias": { 791 | "dev-master": "4.4-dev" 792 | } 793 | }, 794 | "autoload": { 795 | "psr-4": { 796 | "Symfony\\Component\\EventDispatcher\\": "" 797 | }, 798 | "exclude-from-classmap": [ 799 | "/Tests/" 800 | ] 801 | }, 802 | "notification-url": "https://packagist.org/downloads/", 803 | "license": [ 804 | "MIT" 805 | ], 806 | "authors": [ 807 | { 808 | "name": "Fabien Potencier", 809 | "email": "fabien@symfony.com" 810 | }, 811 | { 812 | "name": "Symfony Community", 813 | "homepage": "https://symfony.com/contributors" 814 | } 815 | ], 816 | "description": "Symfony EventDispatcher Component", 817 | "homepage": "https://symfony.com", 818 | "time": "2019-11-08T22:40:51+00:00" 819 | }, 820 | { 821 | "name": "symfony/event-dispatcher-contracts", 822 | "version": "v1.1.7", 823 | "source": { 824 | "type": "git", 825 | "url": "https://github.com/symfony/event-dispatcher-contracts.git", 826 | "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18" 827 | }, 828 | "dist": { 829 | "type": "zip", 830 | "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c43ab685673fb6c8d84220c77897b1d6cdbe1d18", 831 | "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18", 832 | "shasum": "" 833 | }, 834 | "require": { 835 | "php": "^7.1.3" 836 | }, 837 | "suggest": { 838 | "psr/event-dispatcher": "", 839 | "symfony/event-dispatcher-implementation": "" 840 | }, 841 | "type": "library", 842 | "extra": { 843 | "branch-alias": { 844 | "dev-master": "1.1-dev" 845 | } 846 | }, 847 | "autoload": { 848 | "psr-4": { 849 | "Symfony\\Contracts\\EventDispatcher\\": "" 850 | } 851 | }, 852 | "notification-url": "https://packagist.org/downloads/", 853 | "license": [ 854 | "MIT" 855 | ], 856 | "authors": [ 857 | { 858 | "name": "Nicolas Grekas", 859 | "email": "p@tchwork.com" 860 | }, 861 | { 862 | "name": "Symfony Community", 863 | "homepage": "https://symfony.com/contributors" 864 | } 865 | ], 866 | "description": "Generic abstractions related to dispatching event", 867 | "homepage": "https://symfony.com", 868 | "keywords": [ 869 | "abstractions", 870 | "contracts", 871 | "decoupling", 872 | "interfaces", 873 | "interoperability", 874 | "standards" 875 | ], 876 | "time": "2019-09-17T09:54:03+00:00" 877 | }, 878 | { 879 | "name": "symfony/expression-language", 880 | "version": "v5.0.0", 881 | "source": { 882 | "type": "git", 883 | "url": "https://github.com/symfony/expression-language.git", 884 | "reference": "121ece2d8c52777db0809525526ba9875f5a483a" 885 | }, 886 | "dist": { 887 | "type": "zip", 888 | "url": "https://api.github.com/repos/symfony/expression-language/zipball/121ece2d8c52777db0809525526ba9875f5a483a", 889 | "reference": "121ece2d8c52777db0809525526ba9875f5a483a", 890 | "shasum": "" 891 | }, 892 | "require": { 893 | "php": "^7.2.5", 894 | "symfony/cache": "^4.4|^5.0", 895 | "symfony/service-contracts": "^1.1|^2" 896 | }, 897 | "type": "library", 898 | "extra": { 899 | "branch-alias": { 900 | "dev-master": "5.0-dev" 901 | } 902 | }, 903 | "autoload": { 904 | "psr-4": { 905 | "Symfony\\Component\\ExpressionLanguage\\": "" 906 | }, 907 | "exclude-from-classmap": [ 908 | "/Tests/" 909 | ] 910 | }, 911 | "notification-url": "https://packagist.org/downloads/", 912 | "license": [ 913 | "MIT" 914 | ], 915 | "authors": [ 916 | { 917 | "name": "Fabien Potencier", 918 | "email": "fabien@symfony.com" 919 | }, 920 | { 921 | "name": "Symfony Community", 922 | "homepage": "https://symfony.com/contributors" 923 | } 924 | ], 925 | "description": "Symfony ExpressionLanguage Component", 926 | "homepage": "https://symfony.com", 927 | "time": "2019-11-18T17:27:11+00:00" 928 | }, 929 | { 930 | "name": "symfony/filesystem", 931 | "version": "v5.0.0", 932 | "source": { 933 | "type": "git", 934 | "url": "https://github.com/symfony/filesystem.git", 935 | "reference": "0bf75c37a71ff41f718b14b9f5a0a7d6a7dd9b84" 936 | }, 937 | "dist": { 938 | "type": "zip", 939 | "url": "https://api.github.com/repos/symfony/filesystem/zipball/0bf75c37a71ff41f718b14b9f5a0a7d6a7dd9b84", 940 | "reference": "0bf75c37a71ff41f718b14b9f5a0a7d6a7dd9b84", 941 | "shasum": "" 942 | }, 943 | "require": { 944 | "php": "^7.2.5", 945 | "symfony/polyfill-ctype": "~1.8" 946 | }, 947 | "type": "library", 948 | "extra": { 949 | "branch-alias": { 950 | "dev-master": "5.0-dev" 951 | } 952 | }, 953 | "autoload": { 954 | "psr-4": { 955 | "Symfony\\Component\\Filesystem\\": "" 956 | }, 957 | "exclude-from-classmap": [ 958 | "/Tests/" 959 | ] 960 | }, 961 | "notification-url": "https://packagist.org/downloads/", 962 | "license": [ 963 | "MIT" 964 | ], 965 | "authors": [ 966 | { 967 | "name": "Fabien Potencier", 968 | "email": "fabien@symfony.com" 969 | }, 970 | { 971 | "name": "Symfony Community", 972 | "homepage": "https://symfony.com/contributors" 973 | } 974 | ], 975 | "description": "Symfony Filesystem Component", 976 | "homepage": "https://symfony.com", 977 | "time": "2019-11-18T17:27:11+00:00" 978 | }, 979 | { 980 | "name": "symfony/finder", 981 | "version": "v5.0.0", 982 | "source": { 983 | "type": "git", 984 | "url": "https://github.com/symfony/finder.git", 985 | "reference": "17874dd8ab9a19422028ad56172fb294287a701b" 986 | }, 987 | "dist": { 988 | "type": "zip", 989 | "url": "https://api.github.com/repos/symfony/finder/zipball/17874dd8ab9a19422028ad56172fb294287a701b", 990 | "reference": "17874dd8ab9a19422028ad56172fb294287a701b", 991 | "shasum": "" 992 | }, 993 | "require": { 994 | "php": "^7.2.5" 995 | }, 996 | "type": "library", 997 | "extra": { 998 | "branch-alias": { 999 | "dev-master": "5.0-dev" 1000 | } 1001 | }, 1002 | "autoload": { 1003 | "psr-4": { 1004 | "Symfony\\Component\\Finder\\": "" 1005 | }, 1006 | "exclude-from-classmap": [ 1007 | "/Tests/" 1008 | ] 1009 | }, 1010 | "notification-url": "https://packagist.org/downloads/", 1011 | "license": [ 1012 | "MIT" 1013 | ], 1014 | "authors": [ 1015 | { 1016 | "name": "Fabien Potencier", 1017 | "email": "fabien@symfony.com" 1018 | }, 1019 | { 1020 | "name": "Symfony Community", 1021 | "homepage": "https://symfony.com/contributors" 1022 | } 1023 | ], 1024 | "description": "Symfony Finder Component", 1025 | "homepage": "https://symfony.com", 1026 | "time": "2019-11-18T17:27:11+00:00" 1027 | }, 1028 | { 1029 | "name": "symfony/flex", 1030 | "version": "v1.4.8", 1031 | "source": { 1032 | "type": "git", 1033 | "url": "https://github.com/symfony/flex.git", 1034 | "reference": "f5bfc79c1f5bed6b2bb4ca9e49a736c2abc03e8f" 1035 | }, 1036 | "dist": { 1037 | "type": "zip", 1038 | "url": "https://api.github.com/repos/symfony/flex/zipball/f5bfc79c1f5bed6b2bb4ca9e49a736c2abc03e8f", 1039 | "reference": "f5bfc79c1f5bed6b2bb4ca9e49a736c2abc03e8f", 1040 | "shasum": "" 1041 | }, 1042 | "require": { 1043 | "composer-plugin-api": "^1.0", 1044 | "php": "^7.0" 1045 | }, 1046 | "require-dev": { 1047 | "composer/composer": "^1.0.2", 1048 | "symfony/dotenv": "^3.4|^4.0|^5.0", 1049 | "symfony/phpunit-bridge": "^3.4.19|^4.1.8|^5.0", 1050 | "symfony/process": "^2.7|^3.0|^4.0|^5.0" 1051 | }, 1052 | "type": "composer-plugin", 1053 | "extra": { 1054 | "branch-alias": { 1055 | "dev-master": "1.4-dev" 1056 | }, 1057 | "class": "Symfony\\Flex\\Flex" 1058 | }, 1059 | "autoload": { 1060 | "psr-4": { 1061 | "Symfony\\Flex\\": "src" 1062 | } 1063 | }, 1064 | "notification-url": "https://packagist.org/downloads/", 1065 | "license": [ 1066 | "MIT" 1067 | ], 1068 | "authors": [ 1069 | { 1070 | "name": "Fabien Potencier", 1071 | "email": "fabien.potencier@gmail.com" 1072 | } 1073 | ], 1074 | "description": "Composer plugin for Symfony", 1075 | "time": "2019-11-14T09:25:51+00:00" 1076 | }, 1077 | { 1078 | "name": "symfony/framework-bundle", 1079 | "version": "v4.4.0", 1080 | "source": { 1081 | "type": "git", 1082 | "url": "https://github.com/symfony/framework-bundle.git", 1083 | "reference": "dbb892fce45acb9c2191147db674ab8a78a3cc98" 1084 | }, 1085 | "dist": { 1086 | "type": "zip", 1087 | "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/dbb892fce45acb9c2191147db674ab8a78a3cc98", 1088 | "reference": "dbb892fce45acb9c2191147db674ab8a78a3cc98", 1089 | "shasum": "" 1090 | }, 1091 | "require": { 1092 | "ext-xml": "*", 1093 | "php": "^7.1.3", 1094 | "symfony/cache": "^4.4|^5.0", 1095 | "symfony/config": "^4.3.4|^5.0", 1096 | "symfony/dependency-injection": "^4.4|^5.0", 1097 | "symfony/filesystem": "^3.4|^4.0|^5.0", 1098 | "symfony/finder": "^3.4|^4.0|^5.0", 1099 | "symfony/http-foundation": "^4.4|^5.0", 1100 | "symfony/http-kernel": "^4.4", 1101 | "symfony/polyfill-mbstring": "~1.0", 1102 | "symfony/routing": "^4.4|^5.0" 1103 | }, 1104 | "conflict": { 1105 | "phpdocumentor/reflection-docblock": "<3.0", 1106 | "phpdocumentor/type-resolver": "<0.2.1", 1107 | "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", 1108 | "symfony/asset": "<3.4", 1109 | "symfony/browser-kit": "<4.3", 1110 | "symfony/console": "<4.3", 1111 | "symfony/dom-crawler": "<4.3", 1112 | "symfony/dotenv": "<4.3.6", 1113 | "symfony/form": "<4.3", 1114 | "symfony/http-client": "<4.4", 1115 | "symfony/lock": "<4.4", 1116 | "symfony/mailer": "<4.4", 1117 | "symfony/messenger": "<4.4", 1118 | "symfony/mime": "<4.4", 1119 | "symfony/property-info": "<3.4", 1120 | "symfony/security-bundle": "<4.4", 1121 | "symfony/serializer": "<4.4", 1122 | "symfony/stopwatch": "<3.4", 1123 | "symfony/translation": "<4.4", 1124 | "symfony/twig-bridge": "<4.1.1", 1125 | "symfony/twig-bundle": "<4.4", 1126 | "symfony/validator": "<4.4", 1127 | "symfony/web-profiler-bundle": "<4.4", 1128 | "symfony/workflow": "<4.3.6" 1129 | }, 1130 | "require-dev": { 1131 | "doctrine/annotations": "~1.7", 1132 | "doctrine/cache": "~1.0", 1133 | "paragonie/sodium_compat": "^1.8", 1134 | "phpdocumentor/reflection-docblock": "^3.0|^4.0", 1135 | "symfony/asset": "^3.4|^4.0|^5.0", 1136 | "symfony/browser-kit": "^4.3|^5.0", 1137 | "symfony/console": "^4.3.4|^5.0", 1138 | "symfony/css-selector": "^3.4|^4.0|^5.0", 1139 | "symfony/dom-crawler": "^4.3|^5.0", 1140 | "symfony/dotenv": "^4.3.6|^5.0", 1141 | "symfony/expression-language": "^3.4|^4.0|^5.0", 1142 | "symfony/form": "^4.3.4|^5.0", 1143 | "symfony/http-client": "^4.4|^5.0", 1144 | "symfony/lock": "^4.4|^5.0", 1145 | "symfony/mailer": "^4.4|^5.0", 1146 | "symfony/messenger": "^4.4|^5.0", 1147 | "symfony/mime": "^4.4|^5.0", 1148 | "symfony/polyfill-intl-icu": "~1.0", 1149 | "symfony/process": "^3.4|^4.0|^5.0", 1150 | "symfony/property-info": "^3.4|^4.0|^5.0", 1151 | "symfony/security-csrf": "^3.4|^4.0|^5.0", 1152 | "symfony/security-http": "^3.4|^4.0|^5.0", 1153 | "symfony/serializer": "^4.4|^5.0", 1154 | "symfony/stopwatch": "^3.4|^4.0|^5.0", 1155 | "symfony/templating": "^3.4|^4.0|^5.0", 1156 | "symfony/translation": "^4.4|^5.0", 1157 | "symfony/twig-bundle": "^4.4|^5.0", 1158 | "symfony/validator": "^4.4|^5.0", 1159 | "symfony/web-link": "^4.4|^5.0", 1160 | "symfony/workflow": "^4.3.6|^5.0", 1161 | "symfony/yaml": "^3.4|^4.0|^5.0", 1162 | "twig/twig": "^1.41|^2.10|^3.0" 1163 | }, 1164 | "suggest": { 1165 | "ext-apcu": "For best performance of the system caches", 1166 | "symfony/console": "For using the console commands", 1167 | "symfony/form": "For using forms", 1168 | "symfony/property-info": "For using the property_info service", 1169 | "symfony/serializer": "For using the serializer service", 1170 | "symfony/validator": "For using validation", 1171 | "symfony/web-link": "For using web links, features such as preloading, prefetching or prerendering", 1172 | "symfony/yaml": "For using the debug:config and lint:yaml commands" 1173 | }, 1174 | "type": "symfony-bundle", 1175 | "extra": { 1176 | "branch-alias": { 1177 | "dev-master": "4.4-dev" 1178 | } 1179 | }, 1180 | "autoload": { 1181 | "psr-4": { 1182 | "Symfony\\Bundle\\FrameworkBundle\\": "" 1183 | }, 1184 | "exclude-from-classmap": [ 1185 | "/Tests/" 1186 | ] 1187 | }, 1188 | "notification-url": "https://packagist.org/downloads/", 1189 | "license": [ 1190 | "MIT" 1191 | ], 1192 | "authors": [ 1193 | { 1194 | "name": "Fabien Potencier", 1195 | "email": "fabien@symfony.com" 1196 | }, 1197 | { 1198 | "name": "Symfony Community", 1199 | "homepage": "https://symfony.com/contributors" 1200 | } 1201 | ], 1202 | "description": "Symfony FrameworkBundle", 1203 | "homepage": "https://symfony.com", 1204 | "time": "2019-11-17T10:10:42+00:00" 1205 | }, 1206 | { 1207 | "name": "symfony/http-foundation", 1208 | "version": "v5.0.0", 1209 | "source": { 1210 | "type": "git", 1211 | "url": "https://github.com/symfony/http-foundation.git", 1212 | "reference": "c5c226b6f164ae4f95c4bffbe940c81050940eda" 1213 | }, 1214 | "dist": { 1215 | "type": "zip", 1216 | "url": "https://api.github.com/repos/symfony/http-foundation/zipball/c5c226b6f164ae4f95c4bffbe940c81050940eda", 1217 | "reference": "c5c226b6f164ae4f95c4bffbe940c81050940eda", 1218 | "shasum": "" 1219 | }, 1220 | "require": { 1221 | "php": "^7.2.5", 1222 | "symfony/mime": "^4.4|^5.0", 1223 | "symfony/polyfill-mbstring": "~1.1" 1224 | }, 1225 | "require-dev": { 1226 | "predis/predis": "~1.0", 1227 | "symfony/expression-language": "^4.4|^5.0" 1228 | }, 1229 | "type": "library", 1230 | "extra": { 1231 | "branch-alias": { 1232 | "dev-master": "5.0-dev" 1233 | } 1234 | }, 1235 | "autoload": { 1236 | "psr-4": { 1237 | "Symfony\\Component\\HttpFoundation\\": "" 1238 | }, 1239 | "exclude-from-classmap": [ 1240 | "/Tests/" 1241 | ] 1242 | }, 1243 | "notification-url": "https://packagist.org/downloads/", 1244 | "license": [ 1245 | "MIT" 1246 | ], 1247 | "authors": [ 1248 | { 1249 | "name": "Fabien Potencier", 1250 | "email": "fabien@symfony.com" 1251 | }, 1252 | { 1253 | "name": "Symfony Community", 1254 | "homepage": "https://symfony.com/contributors" 1255 | } 1256 | ], 1257 | "description": "Symfony HttpFoundation Component", 1258 | "homepage": "https://symfony.com", 1259 | "time": "2019-11-18T17:27:11+00:00" 1260 | }, 1261 | { 1262 | "name": "symfony/http-kernel", 1263 | "version": "v4.4.0", 1264 | "source": { 1265 | "type": "git", 1266 | "url": "https://github.com/symfony/http-kernel.git", 1267 | "reference": "5a5e7237d928aa98ff8952050cbbf0135899b6b0" 1268 | }, 1269 | "dist": { 1270 | "type": "zip", 1271 | "url": "https://api.github.com/repos/symfony/http-kernel/zipball/5a5e7237d928aa98ff8952050cbbf0135899b6b0", 1272 | "reference": "5a5e7237d928aa98ff8952050cbbf0135899b6b0", 1273 | "shasum": "" 1274 | }, 1275 | "require": { 1276 | "php": "^7.1.3", 1277 | "psr/log": "~1.0", 1278 | "symfony/error-handler": "^4.4", 1279 | "symfony/event-dispatcher": "^4.4", 1280 | "symfony/http-foundation": "^4.4|^5.0", 1281 | "symfony/polyfill-ctype": "^1.8", 1282 | "symfony/polyfill-php73": "^1.9" 1283 | }, 1284 | "conflict": { 1285 | "symfony/browser-kit": "<4.3", 1286 | "symfony/config": "<3.4", 1287 | "symfony/console": ">=5", 1288 | "symfony/dependency-injection": "<4.3", 1289 | "symfony/translation": "<4.2", 1290 | "twig/twig": "<1.34|<2.4,>=2" 1291 | }, 1292 | "provide": { 1293 | "psr/log-implementation": "1.0" 1294 | }, 1295 | "require-dev": { 1296 | "psr/cache": "~1.0", 1297 | "symfony/browser-kit": "^4.3|^5.0", 1298 | "symfony/config": "^3.4|^4.0|^5.0", 1299 | "symfony/console": "^3.4|^4.0", 1300 | "symfony/css-selector": "^3.4|^4.0|^5.0", 1301 | "symfony/dependency-injection": "^4.3|^5.0", 1302 | "symfony/dom-crawler": "^3.4|^4.0|^5.0", 1303 | "symfony/expression-language": "^3.4|^4.0|^5.0", 1304 | "symfony/finder": "^3.4|^4.0|^5.0", 1305 | "symfony/process": "^3.4|^4.0|^5.0", 1306 | "symfony/routing": "^3.4|^4.0|^5.0", 1307 | "symfony/stopwatch": "^3.4|^4.0|^5.0", 1308 | "symfony/templating": "^3.4|^4.0|^5.0", 1309 | "symfony/translation": "^4.2|^5.0", 1310 | "symfony/translation-contracts": "^1.1|^2", 1311 | "twig/twig": "^1.34|^2.4|^3.0" 1312 | }, 1313 | "suggest": { 1314 | "symfony/browser-kit": "", 1315 | "symfony/config": "", 1316 | "symfony/console": "", 1317 | "symfony/dependency-injection": "" 1318 | }, 1319 | "type": "library", 1320 | "extra": { 1321 | "branch-alias": { 1322 | "dev-master": "4.4-dev" 1323 | } 1324 | }, 1325 | "autoload": { 1326 | "psr-4": { 1327 | "Symfony\\Component\\HttpKernel\\": "" 1328 | }, 1329 | "exclude-from-classmap": [ 1330 | "/Tests/" 1331 | ] 1332 | }, 1333 | "notification-url": "https://packagist.org/downloads/", 1334 | "license": [ 1335 | "MIT" 1336 | ], 1337 | "authors": [ 1338 | { 1339 | "name": "Fabien Potencier", 1340 | "email": "fabien@symfony.com" 1341 | }, 1342 | { 1343 | "name": "Symfony Community", 1344 | "homepage": "https://symfony.com/contributors" 1345 | } 1346 | ], 1347 | "description": "Symfony HttpKernel Component", 1348 | "homepage": "https://symfony.com", 1349 | "time": "2019-11-21T07:08:15+00:00" 1350 | }, 1351 | { 1352 | "name": "symfony/inflector", 1353 | "version": "v5.0.0", 1354 | "source": { 1355 | "type": "git", 1356 | "url": "https://github.com/symfony/inflector.git", 1357 | "reference": "aaeb5e293294070d1b061fa3d7889bac69909320" 1358 | }, 1359 | "dist": { 1360 | "type": "zip", 1361 | "url": "https://api.github.com/repos/symfony/inflector/zipball/aaeb5e293294070d1b061fa3d7889bac69909320", 1362 | "reference": "aaeb5e293294070d1b061fa3d7889bac69909320", 1363 | "shasum": "" 1364 | }, 1365 | "require": { 1366 | "php": "^7.2.5", 1367 | "symfony/polyfill-ctype": "~1.8" 1368 | }, 1369 | "type": "library", 1370 | "extra": { 1371 | "branch-alias": { 1372 | "dev-master": "5.0-dev" 1373 | } 1374 | }, 1375 | "autoload": { 1376 | "psr-4": { 1377 | "Symfony\\Component\\Inflector\\": "" 1378 | }, 1379 | "exclude-from-classmap": [ 1380 | "/Tests/" 1381 | ] 1382 | }, 1383 | "notification-url": "https://packagist.org/downloads/", 1384 | "license": [ 1385 | "MIT" 1386 | ], 1387 | "authors": [ 1388 | { 1389 | "name": "Bernhard Schussek", 1390 | "email": "bschussek@gmail.com" 1391 | }, 1392 | { 1393 | "name": "Symfony Community", 1394 | "homepage": "https://symfony.com/contributors" 1395 | } 1396 | ], 1397 | "description": "Symfony Inflector Component", 1398 | "homepage": "https://symfony.com", 1399 | "keywords": [ 1400 | "inflection", 1401 | "pluralize", 1402 | "singularize", 1403 | "string", 1404 | "symfony", 1405 | "words" 1406 | ], 1407 | "time": "2019-11-18T17:27:11+00:00" 1408 | }, 1409 | { 1410 | "name": "symfony/mime", 1411 | "version": "v5.0.0", 1412 | "source": { 1413 | "type": "git", 1414 | "url": "https://github.com/symfony/mime.git", 1415 | "reference": "76f3c09b7382bf979af7bcd8e6f8033f1324285e" 1416 | }, 1417 | "dist": { 1418 | "type": "zip", 1419 | "url": "https://api.github.com/repos/symfony/mime/zipball/76f3c09b7382bf979af7bcd8e6f8033f1324285e", 1420 | "reference": "76f3c09b7382bf979af7bcd8e6f8033f1324285e", 1421 | "shasum": "" 1422 | }, 1423 | "require": { 1424 | "php": "^7.2.5", 1425 | "symfony/polyfill-intl-idn": "^1.10", 1426 | "symfony/polyfill-mbstring": "^1.0" 1427 | }, 1428 | "conflict": { 1429 | "symfony/mailer": "<4.4" 1430 | }, 1431 | "require-dev": { 1432 | "egulias/email-validator": "^2.1.10", 1433 | "symfony/dependency-injection": "^4.4|^5.0" 1434 | }, 1435 | "type": "library", 1436 | "extra": { 1437 | "branch-alias": { 1438 | "dev-master": "5.0-dev" 1439 | } 1440 | }, 1441 | "autoload": { 1442 | "psr-4": { 1443 | "Symfony\\Component\\Mime\\": "" 1444 | }, 1445 | "exclude-from-classmap": [ 1446 | "/Tests/" 1447 | ] 1448 | }, 1449 | "notification-url": "https://packagist.org/downloads/", 1450 | "license": [ 1451 | "MIT" 1452 | ], 1453 | "authors": [ 1454 | { 1455 | "name": "Fabien Potencier", 1456 | "email": "fabien@symfony.com" 1457 | }, 1458 | { 1459 | "name": "Symfony Community", 1460 | "homepage": "https://symfony.com/contributors" 1461 | } 1462 | ], 1463 | "description": "A library to manipulate MIME messages", 1464 | "homepage": "https://symfony.com", 1465 | "keywords": [ 1466 | "mime", 1467 | "mime-type" 1468 | ], 1469 | "time": "2019-11-18T17:27:11+00:00" 1470 | }, 1471 | { 1472 | "name": "symfony/options-resolver", 1473 | "version": "v5.0.0", 1474 | "source": { 1475 | "type": "git", 1476 | "url": "https://github.com/symfony/options-resolver.git", 1477 | "reference": "1ad3d0ffc00cc1990e5c9c7bb6b81578ec3f5f68" 1478 | }, 1479 | "dist": { 1480 | "type": "zip", 1481 | "url": "https://api.github.com/repos/symfony/options-resolver/zipball/1ad3d0ffc00cc1990e5c9c7bb6b81578ec3f5f68", 1482 | "reference": "1ad3d0ffc00cc1990e5c9c7bb6b81578ec3f5f68", 1483 | "shasum": "" 1484 | }, 1485 | "require": { 1486 | "php": "^7.2.5" 1487 | }, 1488 | "type": "library", 1489 | "extra": { 1490 | "branch-alias": { 1491 | "dev-master": "5.0-dev" 1492 | } 1493 | }, 1494 | "autoload": { 1495 | "psr-4": { 1496 | "Symfony\\Component\\OptionsResolver\\": "" 1497 | }, 1498 | "exclude-from-classmap": [ 1499 | "/Tests/" 1500 | ] 1501 | }, 1502 | "notification-url": "https://packagist.org/downloads/", 1503 | "license": [ 1504 | "MIT" 1505 | ], 1506 | "authors": [ 1507 | { 1508 | "name": "Fabien Potencier", 1509 | "email": "fabien@symfony.com" 1510 | }, 1511 | { 1512 | "name": "Symfony Community", 1513 | "homepage": "https://symfony.com/contributors" 1514 | } 1515 | ], 1516 | "description": "Symfony OptionsResolver Component", 1517 | "homepage": "https://symfony.com", 1518 | "keywords": [ 1519 | "config", 1520 | "configuration", 1521 | "options" 1522 | ], 1523 | "time": "2019-11-18T17:27:11+00:00" 1524 | }, 1525 | { 1526 | "name": "symfony/polyfill-ctype", 1527 | "version": "v1.13.0", 1528 | "source": { 1529 | "type": "git", 1530 | "url": "https://github.com/symfony/polyfill-ctype.git", 1531 | "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3" 1532 | }, 1533 | "dist": { 1534 | "type": "zip", 1535 | "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", 1536 | "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", 1537 | "shasum": "" 1538 | }, 1539 | "require": { 1540 | "php": ">=5.3.3" 1541 | }, 1542 | "suggest": { 1543 | "ext-ctype": "For best performance" 1544 | }, 1545 | "type": "library", 1546 | "extra": { 1547 | "branch-alias": { 1548 | "dev-master": "1.13-dev" 1549 | } 1550 | }, 1551 | "autoload": { 1552 | "psr-4": { 1553 | "Symfony\\Polyfill\\Ctype\\": "" 1554 | }, 1555 | "files": [ 1556 | "bootstrap.php" 1557 | ] 1558 | }, 1559 | "notification-url": "https://packagist.org/downloads/", 1560 | "license": [ 1561 | "MIT" 1562 | ], 1563 | "authors": [ 1564 | { 1565 | "name": "Gert de Pagter", 1566 | "email": "BackEndTea@gmail.com" 1567 | }, 1568 | { 1569 | "name": "Symfony Community", 1570 | "homepage": "https://symfony.com/contributors" 1571 | } 1572 | ], 1573 | "description": "Symfony polyfill for ctype functions", 1574 | "homepage": "https://symfony.com", 1575 | "keywords": [ 1576 | "compatibility", 1577 | "ctype", 1578 | "polyfill", 1579 | "portable" 1580 | ], 1581 | "time": "2019-11-27T13:56:44+00:00" 1582 | }, 1583 | { 1584 | "name": "symfony/polyfill-intl-idn", 1585 | "version": "v1.13.0", 1586 | "source": { 1587 | "type": "git", 1588 | "url": "https://github.com/symfony/polyfill-intl-idn.git", 1589 | "reference": "6f9c239e61e1b0c9229a28ff89a812dc449c3d46" 1590 | }, 1591 | "dist": { 1592 | "type": "zip", 1593 | "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/6f9c239e61e1b0c9229a28ff89a812dc449c3d46", 1594 | "reference": "6f9c239e61e1b0c9229a28ff89a812dc449c3d46", 1595 | "shasum": "" 1596 | }, 1597 | "require": { 1598 | "php": ">=5.3.3", 1599 | "symfony/polyfill-mbstring": "^1.3", 1600 | "symfony/polyfill-php72": "^1.9" 1601 | }, 1602 | "suggest": { 1603 | "ext-intl": "For best performance" 1604 | }, 1605 | "type": "library", 1606 | "extra": { 1607 | "branch-alias": { 1608 | "dev-master": "1.13-dev" 1609 | } 1610 | }, 1611 | "autoload": { 1612 | "psr-4": { 1613 | "Symfony\\Polyfill\\Intl\\Idn\\": "" 1614 | }, 1615 | "files": [ 1616 | "bootstrap.php" 1617 | ] 1618 | }, 1619 | "notification-url": "https://packagist.org/downloads/", 1620 | "license": [ 1621 | "MIT" 1622 | ], 1623 | "authors": [ 1624 | { 1625 | "name": "Laurent Bassin", 1626 | "email": "laurent@bassin.info" 1627 | }, 1628 | { 1629 | "name": "Symfony Community", 1630 | "homepage": "https://symfony.com/contributors" 1631 | } 1632 | ], 1633 | "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", 1634 | "homepage": "https://symfony.com", 1635 | "keywords": [ 1636 | "compatibility", 1637 | "idn", 1638 | "intl", 1639 | "polyfill", 1640 | "portable", 1641 | "shim" 1642 | ], 1643 | "time": "2019-11-27T13:56:44+00:00" 1644 | }, 1645 | { 1646 | "name": "symfony/polyfill-mbstring", 1647 | "version": "v1.13.0", 1648 | "source": { 1649 | "type": "git", 1650 | "url": "https://github.com/symfony/polyfill-mbstring.git", 1651 | "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f" 1652 | }, 1653 | "dist": { 1654 | "type": "zip", 1655 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7b4aab9743c30be783b73de055d24a39cf4b954f", 1656 | "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f", 1657 | "shasum": "" 1658 | }, 1659 | "require": { 1660 | "php": ">=5.3.3" 1661 | }, 1662 | "suggest": { 1663 | "ext-mbstring": "For best performance" 1664 | }, 1665 | "type": "library", 1666 | "extra": { 1667 | "branch-alias": { 1668 | "dev-master": "1.13-dev" 1669 | } 1670 | }, 1671 | "autoload": { 1672 | "psr-4": { 1673 | "Symfony\\Polyfill\\Mbstring\\": "" 1674 | }, 1675 | "files": [ 1676 | "bootstrap.php" 1677 | ] 1678 | }, 1679 | "notification-url": "https://packagist.org/downloads/", 1680 | "license": [ 1681 | "MIT" 1682 | ], 1683 | "authors": [ 1684 | { 1685 | "name": "Nicolas Grekas", 1686 | "email": "p@tchwork.com" 1687 | }, 1688 | { 1689 | "name": "Symfony Community", 1690 | "homepage": "https://symfony.com/contributors" 1691 | } 1692 | ], 1693 | "description": "Symfony polyfill for the Mbstring extension", 1694 | "homepage": "https://symfony.com", 1695 | "keywords": [ 1696 | "compatibility", 1697 | "mbstring", 1698 | "polyfill", 1699 | "portable", 1700 | "shim" 1701 | ], 1702 | "time": "2019-11-27T14:18:11+00:00" 1703 | }, 1704 | { 1705 | "name": "symfony/polyfill-php72", 1706 | "version": "v1.13.0", 1707 | "source": { 1708 | "type": "git", 1709 | "url": "https://github.com/symfony/polyfill-php72.git", 1710 | "reference": "66fea50f6cb37a35eea048d75a7d99a45b586038" 1711 | }, 1712 | "dist": { 1713 | "type": "zip", 1714 | "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/66fea50f6cb37a35eea048d75a7d99a45b586038", 1715 | "reference": "66fea50f6cb37a35eea048d75a7d99a45b586038", 1716 | "shasum": "" 1717 | }, 1718 | "require": { 1719 | "php": ">=5.3.3" 1720 | }, 1721 | "type": "library", 1722 | "extra": { 1723 | "branch-alias": { 1724 | "dev-master": "1.13-dev" 1725 | } 1726 | }, 1727 | "autoload": { 1728 | "psr-4": { 1729 | "Symfony\\Polyfill\\Php72\\": "" 1730 | }, 1731 | "files": [ 1732 | "bootstrap.php" 1733 | ] 1734 | }, 1735 | "notification-url": "https://packagist.org/downloads/", 1736 | "license": [ 1737 | "MIT" 1738 | ], 1739 | "authors": [ 1740 | { 1741 | "name": "Nicolas Grekas", 1742 | "email": "p@tchwork.com" 1743 | }, 1744 | { 1745 | "name": "Symfony Community", 1746 | "homepage": "https://symfony.com/contributors" 1747 | } 1748 | ], 1749 | "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", 1750 | "homepage": "https://symfony.com", 1751 | "keywords": [ 1752 | "compatibility", 1753 | "polyfill", 1754 | "portable", 1755 | "shim" 1756 | ], 1757 | "time": "2019-11-27T13:56:44+00:00" 1758 | }, 1759 | { 1760 | "name": "symfony/polyfill-php73", 1761 | "version": "v1.13.0", 1762 | "source": { 1763 | "type": "git", 1764 | "url": "https://github.com/symfony/polyfill-php73.git", 1765 | "reference": "4b0e2222c55a25b4541305a053013d5647d3a25f" 1766 | }, 1767 | "dist": { 1768 | "type": "zip", 1769 | "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/4b0e2222c55a25b4541305a053013d5647d3a25f", 1770 | "reference": "4b0e2222c55a25b4541305a053013d5647d3a25f", 1771 | "shasum": "" 1772 | }, 1773 | "require": { 1774 | "php": ">=5.3.3" 1775 | }, 1776 | "type": "library", 1777 | "extra": { 1778 | "branch-alias": { 1779 | "dev-master": "1.13-dev" 1780 | } 1781 | }, 1782 | "autoload": { 1783 | "psr-4": { 1784 | "Symfony\\Polyfill\\Php73\\": "" 1785 | }, 1786 | "files": [ 1787 | "bootstrap.php" 1788 | ], 1789 | "classmap": [ 1790 | "Resources/stubs" 1791 | ] 1792 | }, 1793 | "notification-url": "https://packagist.org/downloads/", 1794 | "license": [ 1795 | "MIT" 1796 | ], 1797 | "authors": [ 1798 | { 1799 | "name": "Nicolas Grekas", 1800 | "email": "p@tchwork.com" 1801 | }, 1802 | { 1803 | "name": "Symfony Community", 1804 | "homepage": "https://symfony.com/contributors" 1805 | } 1806 | ], 1807 | "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", 1808 | "homepage": "https://symfony.com", 1809 | "keywords": [ 1810 | "compatibility", 1811 | "polyfill", 1812 | "portable", 1813 | "shim" 1814 | ], 1815 | "time": "2019-11-27T16:25:15+00:00" 1816 | }, 1817 | { 1818 | "name": "symfony/process", 1819 | "version": "v5.0.0", 1820 | "source": { 1821 | "type": "git", 1822 | "url": "https://github.com/symfony/process.git", 1823 | "reference": "110f98bed214a007eb440c7bb14088fed96f847f" 1824 | }, 1825 | "dist": { 1826 | "type": "zip", 1827 | "url": "https://api.github.com/repos/symfony/process/zipball/110f98bed214a007eb440c7bb14088fed96f847f", 1828 | "reference": "110f98bed214a007eb440c7bb14088fed96f847f", 1829 | "shasum": "" 1830 | }, 1831 | "require": { 1832 | "php": "^7.2.5" 1833 | }, 1834 | "type": "library", 1835 | "extra": { 1836 | "branch-alias": { 1837 | "dev-master": "5.0-dev" 1838 | } 1839 | }, 1840 | "autoload": { 1841 | "psr-4": { 1842 | "Symfony\\Component\\Process\\": "" 1843 | }, 1844 | "exclude-from-classmap": [ 1845 | "/Tests/" 1846 | ] 1847 | }, 1848 | "notification-url": "https://packagist.org/downloads/", 1849 | "license": [ 1850 | "MIT" 1851 | ], 1852 | "authors": [ 1853 | { 1854 | "name": "Fabien Potencier", 1855 | "email": "fabien@symfony.com" 1856 | }, 1857 | { 1858 | "name": "Symfony Community", 1859 | "homepage": "https://symfony.com/contributors" 1860 | } 1861 | ], 1862 | "description": "Symfony Process Component", 1863 | "homepage": "https://symfony.com", 1864 | "time": "2019-11-18T17:27:11+00:00" 1865 | }, 1866 | { 1867 | "name": "symfony/property-access", 1868 | "version": "v5.0.0", 1869 | "source": { 1870 | "type": "git", 1871 | "url": "https://github.com/symfony/property-access.git", 1872 | "reference": "8203dcdeb544dd0fa36a127fd04eb8bb08ae44f1" 1873 | }, 1874 | "dist": { 1875 | "type": "zip", 1876 | "url": "https://api.github.com/repos/symfony/property-access/zipball/8203dcdeb544dd0fa36a127fd04eb8bb08ae44f1", 1877 | "reference": "8203dcdeb544dd0fa36a127fd04eb8bb08ae44f1", 1878 | "shasum": "" 1879 | }, 1880 | "require": { 1881 | "php": "^7.2.5", 1882 | "symfony/inflector": "^4.4|^5.0" 1883 | }, 1884 | "require-dev": { 1885 | "symfony/cache": "^4.4|^5.0" 1886 | }, 1887 | "suggest": { 1888 | "psr/cache-implementation": "To cache access methods." 1889 | }, 1890 | "type": "library", 1891 | "extra": { 1892 | "branch-alias": { 1893 | "dev-master": "5.0-dev" 1894 | } 1895 | }, 1896 | "autoload": { 1897 | "psr-4": { 1898 | "Symfony\\Component\\PropertyAccess\\": "" 1899 | }, 1900 | "exclude-from-classmap": [ 1901 | "/Tests/" 1902 | ] 1903 | }, 1904 | "notification-url": "https://packagist.org/downloads/", 1905 | "license": [ 1906 | "MIT" 1907 | ], 1908 | "authors": [ 1909 | { 1910 | "name": "Fabien Potencier", 1911 | "email": "fabien@symfony.com" 1912 | }, 1913 | { 1914 | "name": "Symfony Community", 1915 | "homepage": "https://symfony.com/contributors" 1916 | } 1917 | ], 1918 | "description": "Symfony PropertyAccess Component", 1919 | "homepage": "https://symfony.com", 1920 | "keywords": [ 1921 | "access", 1922 | "array", 1923 | "extraction", 1924 | "index", 1925 | "injection", 1926 | "object", 1927 | "property", 1928 | "property path", 1929 | "reflection" 1930 | ], 1931 | "time": "2019-11-18T17:27:11+00:00" 1932 | }, 1933 | { 1934 | "name": "symfony/routing", 1935 | "version": "v5.0.0", 1936 | "source": { 1937 | "type": "git", 1938 | "url": "https://github.com/symfony/routing.git", 1939 | "reference": "5d67bc113f3e565f8b3ecbea740f09d32af0a30b" 1940 | }, 1941 | "dist": { 1942 | "type": "zip", 1943 | "url": "https://api.github.com/repos/symfony/routing/zipball/5d67bc113f3e565f8b3ecbea740f09d32af0a30b", 1944 | "reference": "5d67bc113f3e565f8b3ecbea740f09d32af0a30b", 1945 | "shasum": "" 1946 | }, 1947 | "require": { 1948 | "php": "^7.2.5" 1949 | }, 1950 | "conflict": { 1951 | "symfony/config": "<5.0", 1952 | "symfony/dependency-injection": "<4.4", 1953 | "symfony/yaml": "<4.4" 1954 | }, 1955 | "require-dev": { 1956 | "doctrine/annotations": "~1.2", 1957 | "psr/log": "~1.0", 1958 | "symfony/config": "^5.0", 1959 | "symfony/dependency-injection": "^4.4|^5.0", 1960 | "symfony/expression-language": "^4.4|^5.0", 1961 | "symfony/http-foundation": "^4.4|^5.0", 1962 | "symfony/yaml": "^4.4|^5.0" 1963 | }, 1964 | "suggest": { 1965 | "doctrine/annotations": "For using the annotation loader", 1966 | "symfony/config": "For using the all-in-one router or any loader", 1967 | "symfony/expression-language": "For using expression matching", 1968 | "symfony/http-foundation": "For using a Symfony Request object", 1969 | "symfony/yaml": "For using the YAML loader" 1970 | }, 1971 | "type": "library", 1972 | "extra": { 1973 | "branch-alias": { 1974 | "dev-master": "5.0-dev" 1975 | } 1976 | }, 1977 | "autoload": { 1978 | "psr-4": { 1979 | "Symfony\\Component\\Routing\\": "" 1980 | }, 1981 | "exclude-from-classmap": [ 1982 | "/Tests/" 1983 | ] 1984 | }, 1985 | "notification-url": "https://packagist.org/downloads/", 1986 | "license": [ 1987 | "MIT" 1988 | ], 1989 | "authors": [ 1990 | { 1991 | "name": "Fabien Potencier", 1992 | "email": "fabien@symfony.com" 1993 | }, 1994 | { 1995 | "name": "Symfony Community", 1996 | "homepage": "https://symfony.com/contributors" 1997 | } 1998 | ], 1999 | "description": "Symfony Routing Component", 2000 | "homepage": "https://symfony.com", 2001 | "keywords": [ 2002 | "router", 2003 | "routing", 2004 | "uri", 2005 | "url" 2006 | ], 2007 | "time": "2019-11-20T11:12:35+00:00" 2008 | }, 2009 | { 2010 | "name": "symfony/service-contracts", 2011 | "version": "v2.0.0", 2012 | "source": { 2013 | "type": "git", 2014 | "url": "https://github.com/symfony/service-contracts.git", 2015 | "reference": "9d99e1556417bf227a62e14856d630672bf10eaf" 2016 | }, 2017 | "dist": { 2018 | "type": "zip", 2019 | "url": "https://api.github.com/repos/symfony/service-contracts/zipball/9d99e1556417bf227a62e14856d630672bf10eaf", 2020 | "reference": "9d99e1556417bf227a62e14856d630672bf10eaf", 2021 | "shasum": "" 2022 | }, 2023 | "require": { 2024 | "php": "^7.2.9", 2025 | "psr/container": "^1.0" 2026 | }, 2027 | "suggest": { 2028 | "symfony/service-implementation": "" 2029 | }, 2030 | "type": "library", 2031 | "extra": { 2032 | "branch-alias": { 2033 | "dev-master": "2.0-dev" 2034 | } 2035 | }, 2036 | "autoload": { 2037 | "psr-4": { 2038 | "Symfony\\Contracts\\Service\\": "" 2039 | } 2040 | }, 2041 | "notification-url": "https://packagist.org/downloads/", 2042 | "license": [ 2043 | "MIT" 2044 | ], 2045 | "authors": [ 2046 | { 2047 | "name": "Nicolas Grekas", 2048 | "email": "p@tchwork.com" 2049 | }, 2050 | { 2051 | "name": "Symfony Community", 2052 | "homepage": "https://symfony.com/contributors" 2053 | } 2054 | ], 2055 | "description": "Generic abstractions related to writing services", 2056 | "homepage": "https://symfony.com", 2057 | "keywords": [ 2058 | "abstractions", 2059 | "contracts", 2060 | "decoupling", 2061 | "interfaces", 2062 | "interoperability", 2063 | "standards" 2064 | ], 2065 | "time": "2019-11-09T09:18:34+00:00" 2066 | }, 2067 | { 2068 | "name": "symfony/translation-contracts", 2069 | "version": "v2.0.0", 2070 | "source": { 2071 | "type": "git", 2072 | "url": "https://github.com/symfony/translation-contracts.git", 2073 | "reference": "8feb81e6bb1a42d6a3b1429c751d291eb6d05297" 2074 | }, 2075 | "dist": { 2076 | "type": "zip", 2077 | "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/8feb81e6bb1a42d6a3b1429c751d291eb6d05297", 2078 | "reference": "8feb81e6bb1a42d6a3b1429c751d291eb6d05297", 2079 | "shasum": "" 2080 | }, 2081 | "require": { 2082 | "php": "^7.2.9" 2083 | }, 2084 | "suggest": { 2085 | "symfony/translation-implementation": "" 2086 | }, 2087 | "type": "library", 2088 | "extra": { 2089 | "branch-alias": { 2090 | "dev-master": "2.0-dev" 2091 | } 2092 | }, 2093 | "autoload": { 2094 | "psr-4": { 2095 | "Symfony\\Contracts\\Translation\\": "" 2096 | } 2097 | }, 2098 | "notification-url": "https://packagist.org/downloads/", 2099 | "license": [ 2100 | "MIT" 2101 | ], 2102 | "authors": [ 2103 | { 2104 | "name": "Nicolas Grekas", 2105 | "email": "p@tchwork.com" 2106 | }, 2107 | { 2108 | "name": "Symfony Community", 2109 | "homepage": "https://symfony.com/contributors" 2110 | } 2111 | ], 2112 | "description": "Generic abstractions related to translation", 2113 | "homepage": "https://symfony.com", 2114 | "keywords": [ 2115 | "abstractions", 2116 | "contracts", 2117 | "decoupling", 2118 | "interfaces", 2119 | "interoperability", 2120 | "standards" 2121 | ], 2122 | "time": "2019-11-09T09:18:34+00:00" 2123 | }, 2124 | { 2125 | "name": "symfony/twig-bridge", 2126 | "version": "v5.0.0", 2127 | "source": { 2128 | "type": "git", 2129 | "url": "https://github.com/symfony/twig-bridge.git", 2130 | "reference": "eaafb2d196adc1b66f7379769f166f26eddd3306" 2131 | }, 2132 | "dist": { 2133 | "type": "zip", 2134 | "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/eaafb2d196adc1b66f7379769f166f26eddd3306", 2135 | "reference": "eaafb2d196adc1b66f7379769f166f26eddd3306", 2136 | "shasum": "" 2137 | }, 2138 | "require": { 2139 | "php": "^7.2.5", 2140 | "symfony/translation-contracts": "^1.1|^2", 2141 | "twig/twig": "^2.10|^3.0" 2142 | }, 2143 | "conflict": { 2144 | "symfony/console": "<4.4", 2145 | "symfony/form": "<5.0", 2146 | "symfony/http-foundation": "<4.4", 2147 | "symfony/http-kernel": "<4.4", 2148 | "symfony/translation": "<5.0", 2149 | "symfony/workflow": "<4.4" 2150 | }, 2151 | "require-dev": { 2152 | "egulias/email-validator": "^2.1.10", 2153 | "symfony/asset": "^4.4|^5.0", 2154 | "symfony/console": "^4.4|^5.0", 2155 | "symfony/dependency-injection": "^4.4|^5.0", 2156 | "symfony/expression-language": "^4.4|^5.0", 2157 | "symfony/finder": "^4.4|^5.0", 2158 | "symfony/form": "^5.0", 2159 | "symfony/http-foundation": "^4.4|^5.0", 2160 | "symfony/http-kernel": "^4.4|^5.0", 2161 | "symfony/mime": "^4.4|^5.0", 2162 | "symfony/polyfill-intl-icu": "~1.0", 2163 | "symfony/routing": "^4.4|^5.0", 2164 | "symfony/security-acl": "^2.8|^3.0", 2165 | "symfony/security-core": "^4.4|^5.0", 2166 | "symfony/security-csrf": "^4.4|^5.0", 2167 | "symfony/security-http": "^4.4|^5.0", 2168 | "symfony/stopwatch": "^4.4|^5.0", 2169 | "symfony/translation": "^5.0", 2170 | "symfony/web-link": "^4.4|^5.0", 2171 | "symfony/workflow": "^4.4|^5.0", 2172 | "symfony/yaml": "^4.4|^5.0", 2173 | "twig/cssinliner-extra": "^2.12", 2174 | "twig/inky-extra": "^2.12", 2175 | "twig/markdown-extra": "^2.12" 2176 | }, 2177 | "suggest": { 2178 | "symfony/asset": "For using the AssetExtension", 2179 | "symfony/expression-language": "For using the ExpressionExtension", 2180 | "symfony/finder": "", 2181 | "symfony/form": "For using the FormExtension", 2182 | "symfony/http-kernel": "For using the HttpKernelExtension", 2183 | "symfony/routing": "For using the RoutingExtension", 2184 | "symfony/security-core": "For using the SecurityExtension", 2185 | "symfony/security-csrf": "For using the CsrfExtension", 2186 | "symfony/security-http": "For using the LogoutUrlExtension", 2187 | "symfony/stopwatch": "For using the StopwatchExtension", 2188 | "symfony/translation": "For using the TranslationExtension", 2189 | "symfony/var-dumper": "For using the DumpExtension", 2190 | "symfony/web-link": "For using the WebLinkExtension", 2191 | "symfony/yaml": "For using the YamlExtension" 2192 | }, 2193 | "type": "symfony-bridge", 2194 | "extra": { 2195 | "branch-alias": { 2196 | "dev-master": "5.0-dev" 2197 | } 2198 | }, 2199 | "autoload": { 2200 | "psr-4": { 2201 | "Symfony\\Bridge\\Twig\\": "" 2202 | }, 2203 | "exclude-from-classmap": [ 2204 | "/Tests/" 2205 | ] 2206 | }, 2207 | "notification-url": "https://packagist.org/downloads/", 2208 | "license": [ 2209 | "MIT" 2210 | ], 2211 | "authors": [ 2212 | { 2213 | "name": "Fabien Potencier", 2214 | "email": "fabien@symfony.com" 2215 | }, 2216 | { 2217 | "name": "Symfony Community", 2218 | "homepage": "https://symfony.com/contributors" 2219 | } 2220 | ], 2221 | "description": "Symfony Twig Bridge", 2222 | "homepage": "https://symfony.com", 2223 | "time": "2019-11-18T17:27:11+00:00" 2224 | }, 2225 | { 2226 | "name": "symfony/twig-bundle", 2227 | "version": "v4.4.0", 2228 | "source": { 2229 | "type": "git", 2230 | "url": "https://github.com/symfony/twig-bundle.git", 2231 | "reference": "9a4a8ddbb36598ed0b1f4cc80be867456409bc01" 2232 | }, 2233 | "dist": { 2234 | "type": "zip", 2235 | "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/9a4a8ddbb36598ed0b1f4cc80be867456409bc01", 2236 | "reference": "9a4a8ddbb36598ed0b1f4cc80be867456409bc01", 2237 | "shasum": "" 2238 | }, 2239 | "require": { 2240 | "php": "^7.1.3", 2241 | "symfony/http-foundation": "^4.3|^5.0", 2242 | "symfony/http-kernel": "^4.4", 2243 | "symfony/polyfill-ctype": "~1.8", 2244 | "symfony/twig-bridge": "^4.4|^5.0", 2245 | "twig/twig": "^1.41|^2.10|^3.0" 2246 | }, 2247 | "conflict": { 2248 | "symfony/dependency-injection": "<4.1", 2249 | "symfony/framework-bundle": "<4.4", 2250 | "symfony/translation": "<4.2" 2251 | }, 2252 | "require-dev": { 2253 | "doctrine/annotations": "~1.7", 2254 | "doctrine/cache": "~1.0", 2255 | "symfony/asset": "^3.4|^4.0|^5.0", 2256 | "symfony/dependency-injection": "^4.2.5|^5.0", 2257 | "symfony/expression-language": "^3.4|^4.0|^5.0", 2258 | "symfony/finder": "^3.4|^4.0|^5.0", 2259 | "symfony/form": "^3.4|^4.0|^5.0", 2260 | "symfony/framework-bundle": "^4.4|^5.0", 2261 | "symfony/routing": "^3.4|^4.0|^5.0", 2262 | "symfony/stopwatch": "^3.4|^4.0|^5.0", 2263 | "symfony/templating": "^3.4|^4.0|^5.0", 2264 | "symfony/translation": "^4.2|^5.0", 2265 | "symfony/web-link": "^3.4|^4.0|^5.0", 2266 | "symfony/yaml": "^3.4|^4.0|^5.0" 2267 | }, 2268 | "type": "symfony-bundle", 2269 | "extra": { 2270 | "branch-alias": { 2271 | "dev-master": "4.4-dev" 2272 | } 2273 | }, 2274 | "autoload": { 2275 | "psr-4": { 2276 | "Symfony\\Bundle\\TwigBundle\\": "" 2277 | }, 2278 | "exclude-from-classmap": [ 2279 | "/Tests/" 2280 | ] 2281 | }, 2282 | "notification-url": "https://packagist.org/downloads/", 2283 | "license": [ 2284 | "MIT" 2285 | ], 2286 | "authors": [ 2287 | { 2288 | "name": "Fabien Potencier", 2289 | "email": "fabien@symfony.com" 2290 | }, 2291 | { 2292 | "name": "Symfony Community", 2293 | "homepage": "https://symfony.com/contributors" 2294 | } 2295 | ], 2296 | "description": "Symfony TwigBundle", 2297 | "homepage": "https://symfony.com", 2298 | "time": "2019-11-12T13:42:17+00:00" 2299 | }, 2300 | { 2301 | "name": "symfony/var-dumper", 2302 | "version": "v5.0.0", 2303 | "source": { 2304 | "type": "git", 2305 | "url": "https://github.com/symfony/var-dumper.git", 2306 | "reference": "956b8b6e4c52186695f592286414601abfcec284" 2307 | }, 2308 | "dist": { 2309 | "type": "zip", 2310 | "url": "https://api.github.com/repos/symfony/var-dumper/zipball/956b8b6e4c52186695f592286414601abfcec284", 2311 | "reference": "956b8b6e4c52186695f592286414601abfcec284", 2312 | "shasum": "" 2313 | }, 2314 | "require": { 2315 | "php": "^7.2.5", 2316 | "symfony/polyfill-mbstring": "~1.0" 2317 | }, 2318 | "conflict": { 2319 | "phpunit/phpunit": "<5.4.3", 2320 | "symfony/console": "<4.4" 2321 | }, 2322 | "require-dev": { 2323 | "ext-iconv": "*", 2324 | "symfony/console": "^4.4|^5.0", 2325 | "symfony/process": "^4.4|^5.0", 2326 | "twig/twig": "^2.4|^3.0" 2327 | }, 2328 | "suggest": { 2329 | "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", 2330 | "ext-intl": "To show region name in time zone dump", 2331 | "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" 2332 | }, 2333 | "bin": [ 2334 | "Resources/bin/var-dump-server" 2335 | ], 2336 | "type": "library", 2337 | "extra": { 2338 | "branch-alias": { 2339 | "dev-master": "5.0-dev" 2340 | } 2341 | }, 2342 | "autoload": { 2343 | "files": [ 2344 | "Resources/functions/dump.php" 2345 | ], 2346 | "psr-4": { 2347 | "Symfony\\Component\\VarDumper\\": "" 2348 | }, 2349 | "exclude-from-classmap": [ 2350 | "/Tests/" 2351 | ] 2352 | }, 2353 | "notification-url": "https://packagist.org/downloads/", 2354 | "license": [ 2355 | "MIT" 2356 | ], 2357 | "authors": [ 2358 | { 2359 | "name": "Nicolas Grekas", 2360 | "email": "p@tchwork.com" 2361 | }, 2362 | { 2363 | "name": "Symfony Community", 2364 | "homepage": "https://symfony.com/contributors" 2365 | } 2366 | ], 2367 | "description": "Symfony mechanism for exploring and dumping PHP variables", 2368 | "homepage": "https://symfony.com", 2369 | "keywords": [ 2370 | "debug", 2371 | "dump" 2372 | ], 2373 | "time": "2019-11-18T17:27:11+00:00" 2374 | }, 2375 | { 2376 | "name": "symfony/var-exporter", 2377 | "version": "v5.0.0", 2378 | "source": { 2379 | "type": "git", 2380 | "url": "https://github.com/symfony/var-exporter.git", 2381 | "reference": "e2f1eeb12edacf744c4b359a859204578fdf8549" 2382 | }, 2383 | "dist": { 2384 | "type": "zip", 2385 | "url": "https://api.github.com/repos/symfony/var-exporter/zipball/e2f1eeb12edacf744c4b359a859204578fdf8549", 2386 | "reference": "e2f1eeb12edacf744c4b359a859204578fdf8549", 2387 | "shasum": "" 2388 | }, 2389 | "require": { 2390 | "php": "^7.2.5" 2391 | }, 2392 | "require-dev": { 2393 | "symfony/var-dumper": "^4.4|^5.0" 2394 | }, 2395 | "type": "library", 2396 | "extra": { 2397 | "branch-alias": { 2398 | "dev-master": "5.0-dev" 2399 | } 2400 | }, 2401 | "autoload": { 2402 | "psr-4": { 2403 | "Symfony\\Component\\VarExporter\\": "" 2404 | }, 2405 | "exclude-from-classmap": [ 2406 | "/Tests/" 2407 | ] 2408 | }, 2409 | "notification-url": "https://packagist.org/downloads/", 2410 | "license": [ 2411 | "MIT" 2412 | ], 2413 | "authors": [ 2414 | { 2415 | "name": "Nicolas Grekas", 2416 | "email": "p@tchwork.com" 2417 | }, 2418 | { 2419 | "name": "Symfony Community", 2420 | "homepage": "https://symfony.com/contributors" 2421 | } 2422 | ], 2423 | "description": "A blend of var_export() + serialize() to turn any serializable data structure to plain PHP code", 2424 | "homepage": "https://symfony.com", 2425 | "keywords": [ 2426 | "clone", 2427 | "construct", 2428 | "export", 2429 | "hydrate", 2430 | "instantiate", 2431 | "serialize" 2432 | ], 2433 | "time": "2019-11-18T17:27:11+00:00" 2434 | }, 2435 | { 2436 | "name": "symfony/web-server-bundle", 2437 | "version": "v4.4.0", 2438 | "source": { 2439 | "type": "git", 2440 | "url": "https://github.com/symfony/web-server-bundle.git", 2441 | "reference": "83202a9dae60b29eb55ae1a0c6696c586de3ce0b" 2442 | }, 2443 | "dist": { 2444 | "type": "zip", 2445 | "url": "https://api.github.com/repos/symfony/web-server-bundle/zipball/83202a9dae60b29eb55ae1a0c6696c586de3ce0b", 2446 | "reference": "83202a9dae60b29eb55ae1a0c6696c586de3ce0b", 2447 | "shasum": "" 2448 | }, 2449 | "require": { 2450 | "php": "^7.1.3", 2451 | "symfony/config": "^3.4|^4.0|^5.0", 2452 | "symfony/console": "^3.4|^4.0|^5.0", 2453 | "symfony/dependency-injection": "^3.4|^4.0|^5.0", 2454 | "symfony/http-kernel": "^3.4|^4.0|^5.0", 2455 | "symfony/polyfill-ctype": "~1.8", 2456 | "symfony/process": "^3.4.2|^4.0.2|^5.0" 2457 | }, 2458 | "suggest": { 2459 | "symfony/expression-language": "For using the filter option of the log server.", 2460 | "symfony/monolog-bridge": "For using the log server." 2461 | }, 2462 | "type": "symfony-bundle", 2463 | "extra": { 2464 | "branch-alias": { 2465 | "dev-master": "4.4-dev" 2466 | } 2467 | }, 2468 | "autoload": { 2469 | "psr-4": { 2470 | "Symfony\\Bundle\\WebServerBundle\\": "" 2471 | }, 2472 | "exclude-from-classmap": [ 2473 | "/Tests/" 2474 | ] 2475 | }, 2476 | "notification-url": "https://packagist.org/downloads/", 2477 | "license": [ 2478 | "MIT" 2479 | ], 2480 | "authors": [ 2481 | { 2482 | "name": "Fabien Potencier", 2483 | "email": "fabien@symfony.com" 2484 | }, 2485 | { 2486 | "name": "Symfony Community", 2487 | "homepage": "https://symfony.com/contributors" 2488 | } 2489 | ], 2490 | "description": "Symfony WebServerBundle", 2491 | "homepage": "https://symfony.com", 2492 | "time": "2019-10-12T00:35:04+00:00" 2493 | }, 2494 | { 2495 | "name": "symfony/yaml", 2496 | "version": "v4.4.0", 2497 | "source": { 2498 | "type": "git", 2499 | "url": "https://github.com/symfony/yaml.git", 2500 | "reference": "76de473358fe802578a415d5bb43c296cf09d211" 2501 | }, 2502 | "dist": { 2503 | "type": "zip", 2504 | "url": "https://api.github.com/repos/symfony/yaml/zipball/76de473358fe802578a415d5bb43c296cf09d211", 2505 | "reference": "76de473358fe802578a415d5bb43c296cf09d211", 2506 | "shasum": "" 2507 | }, 2508 | "require": { 2509 | "php": "^7.1.3", 2510 | "symfony/polyfill-ctype": "~1.8" 2511 | }, 2512 | "conflict": { 2513 | "symfony/console": "<3.4" 2514 | }, 2515 | "require-dev": { 2516 | "symfony/console": "^3.4|^4.0|^5.0" 2517 | }, 2518 | "suggest": { 2519 | "symfony/console": "For validating YAML files using the lint command" 2520 | }, 2521 | "type": "library", 2522 | "extra": { 2523 | "branch-alias": { 2524 | "dev-master": "4.4-dev" 2525 | } 2526 | }, 2527 | "autoload": { 2528 | "psr-4": { 2529 | "Symfony\\Component\\Yaml\\": "" 2530 | }, 2531 | "exclude-from-classmap": [ 2532 | "/Tests/" 2533 | ] 2534 | }, 2535 | "notification-url": "https://packagist.org/downloads/", 2536 | "license": [ 2537 | "MIT" 2538 | ], 2539 | "authors": [ 2540 | { 2541 | "name": "Fabien Potencier", 2542 | "email": "fabien@symfony.com" 2543 | }, 2544 | { 2545 | "name": "Symfony Community", 2546 | "homepage": "https://symfony.com/contributors" 2547 | } 2548 | ], 2549 | "description": "Symfony Yaml Component", 2550 | "homepage": "https://symfony.com", 2551 | "time": "2019-11-12T14:51:11+00:00" 2552 | }, 2553 | { 2554 | "name": "twig/twig", 2555 | "version": "v3.0.0", 2556 | "source": { 2557 | "type": "git", 2558 | "url": "https://github.com/twigphp/Twig.git", 2559 | "reference": "9b58bb8ac7a41d72fbb5a7dc643e07923e5ccc26" 2560 | }, 2561 | "dist": { 2562 | "type": "zip", 2563 | "url": "https://api.github.com/repos/twigphp/Twig/zipball/9b58bb8ac7a41d72fbb5a7dc643e07923e5ccc26", 2564 | "reference": "9b58bb8ac7a41d72fbb5a7dc643e07923e5ccc26", 2565 | "shasum": "" 2566 | }, 2567 | "require": { 2568 | "php": "^7.2.9", 2569 | "symfony/polyfill-ctype": "^1.8", 2570 | "symfony/polyfill-mbstring": "^1.3" 2571 | }, 2572 | "require-dev": { 2573 | "psr/container": "^1.0", 2574 | "symfony/debug": "^3.4|^4.2|^5.0", 2575 | "symfony/phpunit-bridge": "^4.4@dev|^5.0" 2576 | }, 2577 | "type": "library", 2578 | "extra": { 2579 | "branch-alias": { 2580 | "dev-master": "3.0-dev" 2581 | } 2582 | }, 2583 | "autoload": { 2584 | "psr-4": { 2585 | "Twig\\": "src/" 2586 | } 2587 | }, 2588 | "notification-url": "https://packagist.org/downloads/", 2589 | "license": [ 2590 | "BSD-3-Clause" 2591 | ], 2592 | "authors": [ 2593 | { 2594 | "name": "Fabien Potencier", 2595 | "email": "fabien@symfony.com", 2596 | "homepage": "http://fabien.potencier.org", 2597 | "role": "Lead Developer" 2598 | }, 2599 | { 2600 | "name": "Twig Team", 2601 | "homepage": "https://twig.symfony.com/contributors", 2602 | "role": "Contributors" 2603 | }, 2604 | { 2605 | "name": "Armin Ronacher", 2606 | "email": "armin.ronacher@active-4.com", 2607 | "role": "Project Founder" 2608 | } 2609 | ], 2610 | "description": "Twig, the flexible, fast, and secure template language for PHP", 2611 | "homepage": "https://twig.symfony.com", 2612 | "keywords": [ 2613 | "templating" 2614 | ], 2615 | "time": "2019-11-15T20:38:32+00:00" 2616 | }, 2617 | { 2618 | "name": "webonyx/graphql-php", 2619 | "version": "v0.13.8", 2620 | "source": { 2621 | "type": "git", 2622 | "url": "https://github.com/webonyx/graphql-php.git", 2623 | "reference": "6829ae58f4c59121df1f86915fb9917a2ec595e8" 2624 | }, 2625 | "dist": { 2626 | "type": "zip", 2627 | "url": "https://api.github.com/repos/webonyx/graphql-php/zipball/6829ae58f4c59121df1f86915fb9917a2ec595e8", 2628 | "reference": "6829ae58f4c59121df1f86915fb9917a2ec595e8", 2629 | "shasum": "" 2630 | }, 2631 | "require": { 2632 | "ext-json": "*", 2633 | "ext-mbstring": "*", 2634 | "php": "^7.1||^8.0" 2635 | }, 2636 | "require-dev": { 2637 | "doctrine/coding-standard": "^6.0", 2638 | "phpbench/phpbench": "^0.14.0", 2639 | "phpstan/phpstan": "^0.11.4", 2640 | "phpstan/phpstan-phpunit": "^0.11.0", 2641 | "phpstan/phpstan-strict-rules": "^0.11.0", 2642 | "phpunit/phpcov": "^5.0", 2643 | "phpunit/phpunit": "^7.2", 2644 | "psr/http-message": "^1.0", 2645 | "react/promise": "2.*" 2646 | }, 2647 | "suggest": { 2648 | "psr/http-message": "To use standard GraphQL server", 2649 | "react/promise": "To leverage async resolving on React PHP platform" 2650 | }, 2651 | "type": "library", 2652 | "autoload": { 2653 | "psr-4": { 2654 | "GraphQL\\": "src/" 2655 | } 2656 | }, 2657 | "notification-url": "https://packagist.org/downloads/", 2658 | "license": [ 2659 | "MIT" 2660 | ], 2661 | "description": "A PHP port of GraphQL reference implementation", 2662 | "homepage": "https://github.com/webonyx/graphql-php", 2663 | "keywords": [ 2664 | "api", 2665 | "graphql" 2666 | ], 2667 | "time": "2019-08-25T10:32:47+00:00" 2668 | } 2669 | ], 2670 | "packages-dev": [ 2671 | { 2672 | "name": "symfony/dotenv", 2673 | "version": "v4.4.0", 2674 | "source": { 2675 | "type": "git", 2676 | "url": "https://github.com/symfony/dotenv.git", 2677 | "reference": "1a9cad0daa3d0726124d7bec2419591ed0f03bc3" 2678 | }, 2679 | "dist": { 2680 | "type": "zip", 2681 | "url": "https://api.github.com/repos/symfony/dotenv/zipball/1a9cad0daa3d0726124d7bec2419591ed0f03bc3", 2682 | "reference": "1a9cad0daa3d0726124d7bec2419591ed0f03bc3", 2683 | "shasum": "" 2684 | }, 2685 | "require": { 2686 | "php": "^7.1.3" 2687 | }, 2688 | "require-dev": { 2689 | "symfony/process": "^3.4.2|^4.0|^5.0" 2690 | }, 2691 | "type": "library", 2692 | "extra": { 2693 | "branch-alias": { 2694 | "dev-master": "4.4-dev" 2695 | } 2696 | }, 2697 | "autoload": { 2698 | "psr-4": { 2699 | "Symfony\\Component\\Dotenv\\": "" 2700 | }, 2701 | "exclude-from-classmap": [ 2702 | "/Tests/" 2703 | ] 2704 | }, 2705 | "notification-url": "https://packagist.org/downloads/", 2706 | "license": [ 2707 | "MIT" 2708 | ], 2709 | "authors": [ 2710 | { 2711 | "name": "Fabien Potencier", 2712 | "email": "fabien@symfony.com" 2713 | }, 2714 | { 2715 | "name": "Symfony Community", 2716 | "homepage": "https://symfony.com/contributors" 2717 | } 2718 | ], 2719 | "description": "Registers environment variables from a .env file", 2720 | "homepage": "https://symfony.com", 2721 | "keywords": [ 2722 | "dotenv", 2723 | "env", 2724 | "environment" 2725 | ], 2726 | "time": "2019-11-12T14:51:11+00:00" 2727 | } 2728 | ], 2729 | "aliases": [], 2730 | "minimum-stability": "stable", 2731 | "stability-flags": { 2732 | "overblog/graphql-bundle": 10 2733 | }, 2734 | "prefer-stable": false, 2735 | "prefer-lowest": false, 2736 | "platform": { 2737 | "php": "^7.1.3", 2738 | "ext-iconv": "*" 2739 | }, 2740 | "platform-dev": [] 2741 | } 2742 | -------------------------------------------------------------------------------- /config/bundles.php: -------------------------------------------------------------------------------- 1 | ['all' => true], 5 | Overblog\GraphQLBundle\OverblogGraphQLBundle::class => ['all' => true], 6 | Symfony\Bundle\WebServerBundle\WebServerBundle::class => ['dev' => true], 7 | Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true], 8 | Overblog\GraphiQLBundle\OverblogGraphiQLBundle::class => ['dev' => true], 9 | ]; 10 | -------------------------------------------------------------------------------- /config/graphql/types/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overblog/GraphQLBundleDemo/97d092ae97dfffe3cbd161401033be304681a46a/config/graphql/types/.gitignore -------------------------------------------------------------------------------- /config/graphql/types/query.graphql: -------------------------------------------------------------------------------- 1 | type Query { 2 | character(id: ID!): Character 3 | findHumansByDateOfBirth(years: [Year!]!): [Human!]! 4 | humans: [Human!]! 5 | direwolves: [Direwolf!]! 6 | } 7 | 8 | scalar Year 9 | 10 | interface Character { 11 | id: ID! 12 | name: String! 13 | status: Status! 14 | } 15 | 16 | type Human implements Character { 17 | id: ID! 18 | name: String! 19 | direwolf: Direwolf! 20 | status: Status! 21 | dateOfBirth: Year! 22 | } 23 | 24 | type Direwolf implements Character { 25 | id: ID! 26 | name: String! 27 | status: Status! 28 | } 29 | 30 | enum Status { 31 | ALIVE 32 | DECEASED 33 | } 34 | -------------------------------------------------------------------------------- /config/packages/dev/routing.yaml: -------------------------------------------------------------------------------- 1 | framework: 2 | router: 3 | strict_requirements: true 4 | -------------------------------------------------------------------------------- /config/packages/framework.yaml: -------------------------------------------------------------------------------- 1 | framework: 2 | secret: '%env(APP_SECRET)%' 3 | #default_locale: en 4 | #csrf_protection: ~ 5 | #http_method_override: true 6 | 7 | # Enables session support. Note that the session will ONLY be started if you read or write from it. 8 | # Remove or comment this section to explicitly disable session support. 9 | session: 10 | handler_id: ~ 11 | 12 | #esi: ~ 13 | #fragments: ~ 14 | php_errors: 15 | log: true 16 | 17 | cache: 18 | # Put the unique name of your app here: the prefix seed 19 | # is used to compute stable namespaces for cache keys. 20 | #prefix_seed: your_vendor_name/app_name 21 | 22 | # The app cache caches to the filesystem by default. 23 | # Other options include: 24 | 25 | # Redis 26 | #app: cache.adapter.redis 27 | #default_redis_provider: redis://localhost 28 | 29 | # APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues) 30 | #app: cache.adapter.apcu 31 | -------------------------------------------------------------------------------- /config/packages/graphql.yaml: -------------------------------------------------------------------------------- 1 | overblog_graphql: 2 | definitions: 3 | schema: 4 | quickstart: 5 | query: Query 6 | resolver_maps: 7 | - App\Resolver\MyResolverMap 8 | 9 | mappings: 10 | auto_discover: false 11 | types: 12 | - 13 | type: graphql 14 | dir: "%kernel.project_dir%/config/graphql/types" 15 | suffix: ~ 16 | -------------------------------------------------------------------------------- /config/packages/routing.yaml: -------------------------------------------------------------------------------- 1 | framework: 2 | router: 3 | strict_requirements: ~ 4 | -------------------------------------------------------------------------------- /config/packages/test/framework.yaml: -------------------------------------------------------------------------------- 1 | framework: 2 | test: ~ 3 | session: 4 | storage_id: session.storage.mock_file 5 | -------------------------------------------------------------------------------- /config/packages/twig.yaml: -------------------------------------------------------------------------------- 1 | twig: 2 | paths: ['%kernel.project_dir%/templates'] 3 | debug: '%kernel.debug%' 4 | strict_variables: '%kernel.debug%' 5 | -------------------------------------------------------------------------------- /config/routes.yaml: -------------------------------------------------------------------------------- 1 | #index: 2 | # path: / 3 | # controller: App\Controller\DefaultController::index 4 | -------------------------------------------------------------------------------- /config/routes/dev/graphiql.yaml: -------------------------------------------------------------------------------- 1 | overblog_graphiql: 2 | resource: "@OverblogGraphiQLBundle/Resources/config/routing.xml" 3 | -------------------------------------------------------------------------------- /config/routes/dev/twig.yaml: -------------------------------------------------------------------------------- 1 | _errors: 2 | resource: '@TwigBundle/Resources/config/routing/errors.xml' 3 | prefix: /_error 4 | -------------------------------------------------------------------------------- /config/routes/graphql.yaml: -------------------------------------------------------------------------------- 1 | overblog_graphql_endpoint: 2 | resource: "@OverblogGraphQLBundle/Resources/config/routing/graphql.yml" 3 | -------------------------------------------------------------------------------- /config/services.yaml: -------------------------------------------------------------------------------- 1 | # Put parameters here that don't need to change on each machine where the app is deployed 2 | # https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration 3 | parameters: 4 | 5 | services: 6 | # default configuration for services in *this* file 7 | _defaults: 8 | autowire: true # Automatically injects dependencies in your services. 9 | autoconfigure: true # Automatically registers your services as commands, event subscribers, etc. 10 | public: false # Allows optimizing the container by removing unused services; this also means 11 | # fetching services directly from the container via $container->get() won't work. 12 | # The best practice is to be explicit about your dependencies anyway. 13 | 14 | # makes classes in src/ available to be used as services 15 | # this creates a service per class whose id is the fully-qualified class name 16 | App\: 17 | resource: '../src/*' 18 | exclude: '../src/{Entity,Migrations,Tests}' 19 | 20 | # controllers are imported separately to make sure services can be injected 21 | # as action arguments even if you don't extend any base controller class 22 | App\Controller\: 23 | resource: '../src/Controller' 24 | tags: ['controller.service_arguments'] 25 | 26 | # add more service definitions when explicit configuration is needed 27 | # please note that last definitions always *replace* previous ones 28 | -------------------------------------------------------------------------------- /public/index.php: -------------------------------------------------------------------------------- 1 | load(__DIR__.'/../.env'); 16 | } 17 | 18 | $env = $_SERVER['APP_ENV'] ?? 'dev'; 19 | $debug = $_SERVER['APP_DEBUG'] ?? ('prod' !== $env); 20 | 21 | if ($debug) { 22 | umask(0000); 23 | 24 | Debug::enable(); 25 | } 26 | 27 | if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? false) { 28 | Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST); 29 | } 30 | 31 | if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? false) { 32 | Request::setTrustedHosts(explode(',', $trustedHosts)); 33 | } 34 | 35 | $kernel = new Kernel($env, $debug); 36 | $request = Request::createFromGlobals(); 37 | $response = $kernel->handle($request); 38 | $response->send(); 39 | $kernel->terminate($request, $response); 40 | -------------------------------------------------------------------------------- /src/Controller/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/overblog/GraphQLBundleDemo/97d092ae97dfffe3cbd161401033be304681a46a/src/Controller/.gitignore -------------------------------------------------------------------------------- /src/Kernel.php: -------------------------------------------------------------------------------- 1 | getProjectDir().'/var/cache/'.$this->environment; 20 | } 21 | 22 | public function getLogDir() 23 | { 24 | return $this->getProjectDir().'/var/log'; 25 | } 26 | 27 | public function registerBundles() 28 | { 29 | $contents = require $this->getProjectDir().'/config/bundles.php'; 30 | foreach ($contents as $class => $envs) { 31 | if (isset($envs['all']) || isset($envs[$this->environment])) { 32 | yield new $class(); 33 | } 34 | } 35 | } 36 | 37 | protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader) 38 | { 39 | $container->setParameter('container.autowiring.strict_mode', true); 40 | $container->setParameter('container.dumper.inline_class_loader', true); 41 | $confDir = $this->getProjectDir().'/config'; 42 | $loader->load($confDir.'/packages/*'.self::CONFIG_EXTS, 'glob'); 43 | if (is_dir($confDir.'/packages/'.$this->environment)) { 44 | $loader->load($confDir.'/packages/'.$this->environment.'/**/*'.self::CONFIG_EXTS, 'glob'); 45 | } 46 | $loader->load($confDir.'/services'.self::CONFIG_EXTS, 'glob'); 47 | $loader->load($confDir.'/services_'.$this->environment.self::CONFIG_EXTS, 'glob'); 48 | } 49 | 50 | protected function configureRoutes(RouteCollectionBuilder $routes) 51 | { 52 | $confDir = $this->getProjectDir().'/config'; 53 | if (is_dir($confDir.'/routes/')) { 54 | $routes->import($confDir.'/routes/*'.self::CONFIG_EXTS, '/', 'glob'); 55 | } 56 | if (is_dir($confDir.'/routes/'.$this->environment)) { 57 | $routes->import($confDir.'/routes/'.$this->environment.'/**/*'.self::CONFIG_EXTS, '/', 'glob'); 58 | } 59 | $routes->import($confDir.'/routes'.self::CONFIG_EXTS, '/', 'glob'); 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /src/Resolver/Characters.php: -------------------------------------------------------------------------------- 1 | [ 12 | 'id' => 1, 13 | 'name' => 'Jon Snow', 14 | 'direwolf' => 7, 15 | 'status' => 1, 16 | 'type' => self::TYPE_HUMAN, 17 | 'dateOfBirth' => 281, 18 | ], 19 | 2 => [ 20 | 'id' => 2, 21 | 'name' => 'Arya', 22 | 'direwolf' => 8, 23 | 'status' => 1, 24 | 'type' => self::TYPE_HUMAN, 25 | 'dateOfBirth' => 287, 26 | ], 27 | 3 => [ 28 | 'id' => 3, 29 | 'name' => 'Bran', 30 | 'direwolf' => 9, 31 | 'status' => 1, 32 | 'type' => self::TYPE_HUMAN, 33 | 'dateOfBirth' => 288, 34 | ], 35 | 4 => [ 36 | 'id' => 4, 37 | 'name' => 'Rickon', 38 | 'direwolf' => 10, 39 | 'status' => 0, 40 | 'type' => self::TYPE_HUMAN, 41 | 'dateOfBirth' => 292, 42 | ], 43 | 5 => [ 44 | 'id' => 5, 45 | 'name' => 'Robb', 46 | 'direwolf' => 11, 47 | 'status' => 0, 48 | 'type' => self::TYPE_HUMAN, 49 | 'dateOfBirth' => 281, 50 | ], 51 | 6 => [ 52 | 'id' => 6, 53 | 'name' => 'Sansa', 54 | 'direwolf' => 12, 55 | 'status' => 1, 56 | 'type' => self::TYPE_HUMAN, 57 | 'dateOfBirth' => 285, 58 | ], 59 | 7 => [ 60 | 'id' => 7, 61 | 'name' => 'Ghost', 62 | 'status' => 1, 63 | 'type' => self::TYPE_DIREWOLF, 64 | ], 65 | 8 => [ 66 | 'id' => 8, 67 | 'name' => 'Nymeria', 68 | 'status' => 1, 69 | 'type' => self::TYPE_DIREWOLF, 70 | ], 71 | 9 => [ 72 | 'id' => 9, 73 | 'name' => 'Summer', 74 | 'status' => 0, 75 | 'type' => self::TYPE_DIREWOLF, 76 | ], 77 | 10 => [ 78 | 'id' => 10, 79 | 'name' => 'Shaggydog', 80 | 'status' => 0, 81 | 'type' => self::TYPE_DIREWOLF, 82 | ], 83 | 11 => [ 84 | 'id' => 11, 85 | 'name' => 'Grey Wind', 86 | 'status' => 0, 87 | 'type' => self::TYPE_DIREWOLF, 88 | ], 89 | 12 => [ 90 | 'id' => 12, 91 | 'name' => 'Lady', 92 | 'status' => 0, 93 | 'type' => self::TYPE_DIREWOLF, 94 | ], 95 | ]; 96 | 97 | public static function getCharacters() 98 | { 99 | return self::$characters; 100 | } 101 | 102 | public static function getHumans() 103 | { 104 | $humans = self::findByType(self::TYPE_HUMAN); 105 | 106 | return $humans; 107 | } 108 | 109 | public static function getDirewolves() 110 | { 111 | return self::findByType(self::TYPE_DIREWOLF); 112 | } 113 | 114 | public static function resurrectZigZag() 115 | { 116 | $zigZag = self::$characters[4]; 117 | $zigZag['status'] = 1; 118 | 119 | return $zigZag; 120 | } 121 | 122 | private static function findByType($type) 123 | { 124 | return array_filter(self::$characters, function ($character) use ($type) { 125 | return $type === $character['type']; 126 | }); 127 | } 128 | } 129 | 130 | -------------------------------------------------------------------------------- /src/Resolver/MyResolverMap.php: -------------------------------------------------------------------------------- 1 | [ 20 | self::RESOLVE_FIELD => function ($value, Argument $args, \ArrayObject $context, ResolveInfo $info) { 21 | if ('character' === $info->fieldName) { 22 | $characters = Characters::getCharacters(); 23 | $id = (int) $args['id']; 24 | if (isset($characters[$id])) { 25 | return $characters[$id]; 26 | } 27 | } 28 | 29 | return null; 30 | }, 31 | 'findHumansByDateOfBirth' => function ($value, Argument $args) { 32 | $years = $args['years']; 33 | 34 | return array_filter(Characters::getHumans(), function ($human) use ($years) { 35 | return in_array($human['dateOfBirth'], $years); 36 | }); 37 | }, 38 | 'humans' => [Characters::class, 'getHumans'], 39 | 'direwolves' => [Characters::class, 'getDirewolves'], 40 | ], 41 | 'Character' => [ 42 | self::RESOLVE_TYPE => function ($value) { 43 | return Characters::TYPE_HUMAN === $value['type'] ? 'Human' : 'Direwolf'; 44 | }, 45 | ], 46 | 'Human' => [ 47 | 'direwolf' => function ($value) { 48 | $direwolves = Characters::getDirewolves(); 49 | if (isset($direwolves[$value['direwolf']])) { 50 | return $direwolves[$value['direwolf']]; 51 | } else { 52 | return null; 53 | } 54 | }, 55 | ], 56 | // enum internal values 57 | 'Status' => [ 58 | 'ALIVE' => 1, 59 | 'DECEASED' => 0, 60 | ], 61 | // custom scalar 62 | 'Year' => [ 63 | self::SERIALIZE => function ($value) { 64 | return sprintf('%s AC', $value); 65 | }, 66 | self::PARSE_VALUE => function ($value) { 67 | if (!is_string($value)) { 68 | throw new Error(sprintf('Cannot represent following value as a valid year: %s.', Utils::printSafeJson($value))); 69 | } 70 | 71 | return (int) str_replace(' AC', '', $value); 72 | }, 73 | self::PARSE_LITERAL => function ($valueNode) { 74 | if (!$valueNode instanceof StringValueNode) { 75 | throw new Error('Query error: Can only parse strings got: '.$valueNode->kind, [$valueNode]); 76 | } 77 | 78 | return (int) str_replace(' AC', '', $valueNode->value); 79 | }, 80 | ], 81 | ]; 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /symfony.lock: -------------------------------------------------------------------------------- 1 | { 2 | "overblog/graphiql-bundle": { 3 | "version": "0.1", 4 | "recipe": { 5 | "repo": "github.com/symfony/recipes-contrib", 6 | "branch": "master", 7 | "version": "0.1", 8 | "ref": "fe8d172f2480efc598f5a8be0e732656d3594cec" 9 | } 10 | }, 11 | "overblog/graphql-bundle": { 12 | "version": "0.9", 13 | "recipe": { 14 | "repo": "github.com/symfony/recipes-contrib", 15 | "branch": "master", 16 | "version": "0.9", 17 | "ref": "31775bd62133c1ed66fac537694909c25fbfb879" 18 | } 19 | }, 20 | "overblog/graphql-php-generator": { 21 | "version": "v0.6.0" 22 | }, 23 | "psr/cache": { 24 | "version": "1.0.1" 25 | }, 26 | "psr/container": { 27 | "version": "1.0.0" 28 | }, 29 | "psr/log": { 30 | "version": "1.0.2" 31 | }, 32 | "psr/simple-cache": { 33 | "version": "1.0.0" 34 | }, 35 | "symfony/cache": { 36 | "version": "v4.0.3" 37 | }, 38 | "symfony/config": { 39 | "version": "v4.0.3" 40 | }, 41 | "symfony/console": { 42 | "version": "3.3", 43 | "recipe": { 44 | "repo": "github.com/symfony/recipes", 45 | "branch": "master", 46 | "version": "3.3", 47 | "ref": "9f94d3ea453cd8a3b95db7f82592d7344fe3a76a" 48 | } 49 | }, 50 | "symfony/debug": { 51 | "version": "v4.0.3" 52 | }, 53 | "symfony/dependency-injection": { 54 | "version": "v4.0.3" 55 | }, 56 | "symfony/dotenv": { 57 | "version": "v4.0.3" 58 | }, 59 | "symfony/error-handler": { 60 | "version": "v4.4.0" 61 | }, 62 | "symfony/event-dispatcher": { 63 | "version": "v4.0.3" 64 | }, 65 | "symfony/expression-language": { 66 | "version": "v4.0.3" 67 | }, 68 | "symfony/filesystem": { 69 | "version": "v4.0.3" 70 | }, 71 | "symfony/finder": { 72 | "version": "v4.0.3" 73 | }, 74 | "symfony/flex": { 75 | "version": "1.0", 76 | "recipe": { 77 | "repo": "github.com/symfony/recipes", 78 | "branch": "master", 79 | "version": "1.0", 80 | "ref": "cc1afd81841db36fbef982fe56b48ade6716fac4" 81 | } 82 | }, 83 | "symfony/framework-bundle": { 84 | "version": "3.3", 85 | "recipe": { 86 | "repo": "github.com/symfony/recipes", 87 | "branch": "master", 88 | "version": "3.3", 89 | "ref": "b897c5efc15756afb6125b1ecb591c57babb9e90" 90 | } 91 | }, 92 | "symfony/http-foundation": { 93 | "version": "v4.0.3" 94 | }, 95 | "symfony/http-kernel": { 96 | "version": "v4.0.3" 97 | }, 98 | "symfony/inflector": { 99 | "version": "v4.0.3" 100 | }, 101 | "symfony/options-resolver": { 102 | "version": "v4.0.3" 103 | }, 104 | "symfony/polyfill-mbstring": { 105 | "version": "v1.6.0" 106 | }, 107 | "symfony/process": { 108 | "version": "v4.0.3" 109 | }, 110 | "symfony/property-access": { 111 | "version": "v4.0.3" 112 | }, 113 | "symfony/routing": { 114 | "version": "4.0", 115 | "recipe": { 116 | "repo": "github.com/symfony/recipes", 117 | "branch": "master", 118 | "version": "4.0", 119 | "ref": "cda8b550123383d25827705d05a42acf6819fe4e" 120 | } 121 | }, 122 | "symfony/twig-bridge": { 123 | "version": "v4.0.6" 124 | }, 125 | "symfony/twig-bundle": { 126 | "version": "3.3", 127 | "recipe": { 128 | "repo": "github.com/symfony/recipes", 129 | "branch": "master", 130 | "version": "3.3", 131 | "ref": "f75ac166398e107796ca94cc57fa1edaa06ec47f" 132 | } 133 | }, 134 | "symfony/var-dumper": { 135 | "version": "v4.4.0" 136 | }, 137 | "symfony/web-server-bundle": { 138 | "version": "3.3", 139 | "recipe": { 140 | "repo": "github.com/symfony/recipes", 141 | "branch": "master", 142 | "version": "3.3", 143 | "ref": "c72d107d077f1654428edaed69415d0228c1aefe" 144 | } 145 | }, 146 | "symfony/yaml": { 147 | "version": "v4.0.3" 148 | }, 149 | "twig/twig": { 150 | "version": "v2.4.6" 151 | }, 152 | "webonyx/graphql-php": { 153 | "version": "v0.11.5" 154 | } 155 | } 156 | -------------------------------------------------------------------------------- /templates/base.html.twig: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {% block title %}Welcome!{% endblock %} 6 | {% block stylesheets %}{% endblock %} 7 | 8 | 9 | {% block body %}{% endblock %} 10 | {% block javascripts %}{% endblock %} 11 | 12 | 13 | --------------------------------------------------------------------------------