├── .env ├── .gitignore ├── Makefile ├── README.md ├── bin └── console ├── composer.json ├── composer.lock ├── config ├── bootstrap.php ├── bundles.php ├── packages │ ├── cache.yaml │ ├── dev │ │ └── routing.yaml │ ├── framework.yaml │ ├── routing.yaml │ ├── test │ │ ├── framework.yaml │ │ └── routing.yaml │ └── twig.yaml ├── routes.yaml ├── routes │ └── dev │ │ └── twig.yaml └── services.yaml ├── public └── index.php ├── src ├── Controller │ └── HomeController.php └── Kernel.php ├── symfony.lock ├── template.yaml └── templates ├── base.html.twig └── hello.html.twig /.env: -------------------------------------------------------------------------------- 1 | # In all environments, the following files are loaded if they exist, 2 | # the later taking precedence over the former: 3 | # 4 | # * .env contains default values for the environment variables needed by the app 5 | # * .env.local uncommitted file with local overrides 6 | # * .env.$APP_ENV committed environment-specific defaults 7 | # * .env.$APP_ENV.local uncommitted environment-specific overrides 8 | # 9 | # Real environment variables win over .env files. 10 | # 11 | # DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES. 12 | # 13 | # Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2). 14 | # https://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration 15 | 16 | ###> symfony/framework-bundle ### 17 | APP_ENV=dev 18 | APP_SECRET=64a065b825bf060726b41f4233eb9d6b 19 | #TRUSTED_PROXIES=127.0.0.1,127.0.0.2 20 | #TRUSTED_HOSTS='^localhost|example\.com$' 21 | ###< symfony/framework-bundle ### 22 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .cloudformation.yaml 2 | 3 | ###> symfony/framework-bundle ### 4 | /.env.local 5 | /.env.local.php 6 | /.env.*.local 7 | /public/bundles/ 8 | /var/ 9 | /vendor/ 10 | ###< symfony/framework-bundle ### 11 | 12 | ###> symfony/web-server-bundle ### 13 | /.web-server-pid 14 | ###< symfony/web-server-bundle ### 15 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | preview: 2 | sam local start-api --region us-east-1 3 | 4 | deploy: 5 | composer install --optimize-autoloader --no-dev --no-scripts 6 | rm -rf var/cache/* 7 | php bin/console cache:clear --no-debug --no-warmup --env=prod 8 | php bin/console cache:warmup --env=prod 9 | sam package \ 10 | --template-file template.yaml \ 11 | --output-template-file .cloudformation.yaml \ 12 | --s3-bucket bref-demo-symfony 13 | sam deploy \ 14 | --template-file .cloudformation.yaml \ 15 | --capabilities CAPABILITY_IAM \ 16 | --region us-east-1 \ 17 | --stack-name bref-demo-symfony 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | This is a demo of a Symfony application deployed as a serverless application on AWS Lambda using [Bref](https://github.com/mnapoli/bref). 2 | 3 | The application is deployed at the following URL: https://x3em6yt28b.execute-api.us-east-1.amazonaws.com/Prod/ 4 | 5 | If you want to learn more read the [Symfony guide in the Bref documentation](https://bref.sh/docs/frameworks/symfony.html). 6 | -------------------------------------------------------------------------------- /bin/console: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | getParameterOption(['--env', '-e'], null, true)) { 19 | putenv('APP_ENV='.$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = $env); 20 | } 21 | 22 | if ($input->hasParameterOption('--no-debug', true)) { 23 | putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0'); 24 | } 25 | 26 | require dirname(__DIR__).'/config/bootstrap.php'; 27 | 28 | if ($_SERVER['APP_DEBUG']) { 29 | umask(0000); 30 | 31 | if (class_exists(Debug::class)) { 32 | Debug::enable(); 33 | } 34 | } 35 | 36 | $kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']); 37 | $application = new Application($kernel); 38 | $application->run($input); 39 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": { 3 | "php": "^7.3.0", 4 | "ext-curl": "*", 5 | "ext-iconv": "*", 6 | "ext-json": "*", 7 | "bref/bref": "0.4.*", 8 | "symfony/console": "*", 9 | "symfony/dotenv": "*", 10 | "symfony/flex": "^1.1", 11 | "symfony/framework-bundle": "*", 12 | "symfony/twig-bundle": "4.2.*", 13 | "symfony/yaml": "*" 14 | }, 15 | "require-dev": { 16 | "symfony/dotenv": "^4.0", 17 | "symfony/web-server-bundle": "4.2.*" 18 | }, 19 | "config": { 20 | "preferred-install": { 21 | "*": "dist" 22 | }, 23 | "sort-packages": true 24 | }, 25 | "autoload": { 26 | "psr-4": { 27 | "App\\": "src/" 28 | } 29 | }, 30 | "replace": { 31 | "paragonie/random_compat": "2.*", 32 | "symfony/polyfill-ctype": "*", 33 | "symfony/polyfill-iconv": "*", 34 | "symfony/polyfill-php71": "*", 35 | "symfony/polyfill-php70": "*", 36 | "symfony/polyfill-php56": "*" 37 | }, 38 | "scripts": { 39 | "auto-scripts": { 40 | "cache:clear": "symfony-cmd", 41 | "assets:install %PUBLIC_DIR%": "symfony-cmd" 42 | }, 43 | "post-install-cmd": [ 44 | "@auto-scripts" 45 | ], 46 | "post-update-cmd": [ 47 | "@auto-scripts" 48 | ] 49 | }, 50 | "conflict": { 51 | "symfony/symfony": "*" 52 | }, 53 | "extra": { 54 | "symfony": { 55 | "allow-contrib": false, 56 | "require": "4.2.*" 57 | } 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /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": "c509c791555f73bc962ccdad0b29eec6", 8 | "packages": [ 9 | { 10 | "name": "aws/aws-sdk-php", 11 | "version": "3.103.2", 12 | "source": { 13 | "type": "git", 14 | "url": "https://github.com/aws/aws-sdk-php.git", 15 | "reference": "364192641e880dd0a5c9f1a5852c425709e7159f" 16 | }, 17 | "dist": { 18 | "type": "zip", 19 | "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/364192641e880dd0a5c9f1a5852c425709e7159f", 20 | "reference": "364192641e880dd0a5c9f1a5852c425709e7159f", 21 | "shasum": "" 22 | }, 23 | "require": { 24 | "ext-json": "*", 25 | "ext-pcre": "*", 26 | "ext-simplexml": "*", 27 | "guzzlehttp/guzzle": "^5.3.3|^6.2.1", 28 | "guzzlehttp/promises": "~1.0", 29 | "guzzlehttp/psr7": "^1.4.1", 30 | "mtdowling/jmespath.php": "~2.2", 31 | "php": ">=5.5" 32 | }, 33 | "require-dev": { 34 | "andrewsville/php-token-reflection": "^1.4", 35 | "aws/aws-php-sns-message-validator": "~1.0", 36 | "behat/behat": "~3.0", 37 | "doctrine/cache": "~1.4", 38 | "ext-dom": "*", 39 | "ext-openssl": "*", 40 | "ext-pcntl": "*", 41 | "ext-sockets": "*", 42 | "nette/neon": "^2.3", 43 | "phpunit/phpunit": "^4.8.35|^5.4.3", 44 | "psr/cache": "^1.0", 45 | "psr/simple-cache": "^1.0" 46 | }, 47 | "suggest": { 48 | "aws/aws-php-sns-message-validator": "To validate incoming SNS notifications", 49 | "doctrine/cache": "To use the DoctrineCacheAdapter", 50 | "ext-curl": "To send requests using cURL", 51 | "ext-openssl": "Allows working with CloudFront private distributions and verifying received SNS messages", 52 | "ext-sockets": "To use client-side monitoring" 53 | }, 54 | "type": "library", 55 | "extra": { 56 | "branch-alias": { 57 | "dev-master": "3.0-dev" 58 | } 59 | }, 60 | "autoload": { 61 | "psr-4": { 62 | "Aws\\": "src/" 63 | }, 64 | "files": [ 65 | "src/functions.php" 66 | ] 67 | }, 68 | "notification-url": "https://packagist.org/downloads/", 69 | "license": [ 70 | "Apache-2.0" 71 | ], 72 | "authors": [ 73 | { 74 | "name": "Amazon Web Services", 75 | "homepage": "http://aws.amazon.com" 76 | } 77 | ], 78 | "description": "AWS SDK for PHP - Use Amazon Web Services in your PHP project", 79 | "homepage": "http://aws.amazon.com/sdkforphp", 80 | "keywords": [ 81 | "amazon", 82 | "aws", 83 | "cloud", 84 | "dynamodb", 85 | "ec2", 86 | "glacier", 87 | "s3", 88 | "sdk" 89 | ], 90 | "time": "2019-07-01T18:26:54+00:00" 91 | }, 92 | { 93 | "name": "bref/bref", 94 | "version": "0.4.1", 95 | "source": { 96 | "type": "git", 97 | "url": "https://github.com/brefphp/bref.git", 98 | "reference": "0de7ded43431d1aa5fc041042b2a038e7030afa4" 99 | }, 100 | "dist": { 101 | "type": "zip", 102 | "url": "https://api.github.com/repos/brefphp/bref/zipball/0de7ded43431d1aa5fc041042b2a038e7030afa4", 103 | "reference": "0de7ded43431d1aa5fc041042b2a038e7030afa4", 104 | "shasum": "" 105 | }, 106 | "require": { 107 | "aws/aws-sdk-php": "^3.44", 108 | "ext-curl": "*", 109 | "ext-json": "*", 110 | "hollodotme/fast-cgi-client": "^2.7", 111 | "mnapoli/silly": "^1.7", 112 | "php": "^7.2.0", 113 | "psr/http-message": "^1.0", 114 | "symfony/filesystem": "^3.1|^4.0", 115 | "symfony/process": "^3.3|^4.0" 116 | }, 117 | "require-dev": { 118 | "doctrine/coding-standard": "^5.0", 119 | "guzzlehttp/guzzle": "^6.3", 120 | "phpstan/phpstan": "^0.11.5", 121 | "phpunit/phpunit": "^6.5", 122 | "zendframework/zend-diactoros": "^1.6|^2.0" 123 | }, 124 | "bin": [ 125 | "bref" 126 | ], 127 | "type": "project", 128 | "autoload": { 129 | "psr-4": { 130 | "Bref\\": "src" 131 | }, 132 | "files": [ 133 | "src/functions.php" 134 | ] 135 | }, 136 | "notification-url": "https://packagist.org/downloads/", 137 | "license": [ 138 | "MIT" 139 | ], 140 | "description": "Bref is a framework to write and deploy serverless PHP applications on AWS Lambda.", 141 | "homepage": "https://bref.sh", 142 | "keywords": [ 143 | "aws", 144 | "bref", 145 | "faas", 146 | "lambda", 147 | "serverless" 148 | ], 149 | "time": "2019-06-14T08:58:10+00:00" 150 | }, 151 | { 152 | "name": "guzzlehttp/guzzle", 153 | "version": "6.3.3", 154 | "source": { 155 | "type": "git", 156 | "url": "https://github.com/guzzle/guzzle.git", 157 | "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba" 158 | }, 159 | "dist": { 160 | "type": "zip", 161 | "url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba", 162 | "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba", 163 | "shasum": "" 164 | }, 165 | "require": { 166 | "guzzlehttp/promises": "^1.0", 167 | "guzzlehttp/psr7": "^1.4", 168 | "php": ">=5.5" 169 | }, 170 | "require-dev": { 171 | "ext-curl": "*", 172 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", 173 | "psr/log": "^1.0" 174 | }, 175 | "suggest": { 176 | "psr/log": "Required for using the Log middleware" 177 | }, 178 | "type": "library", 179 | "extra": { 180 | "branch-alias": { 181 | "dev-master": "6.3-dev" 182 | } 183 | }, 184 | "autoload": { 185 | "files": [ 186 | "src/functions_include.php" 187 | ], 188 | "psr-4": { 189 | "GuzzleHttp\\": "src/" 190 | } 191 | }, 192 | "notification-url": "https://packagist.org/downloads/", 193 | "license": [ 194 | "MIT" 195 | ], 196 | "authors": [ 197 | { 198 | "name": "Michael Dowling", 199 | "email": "mtdowling@gmail.com", 200 | "homepage": "https://github.com/mtdowling" 201 | } 202 | ], 203 | "description": "Guzzle is a PHP HTTP client library", 204 | "homepage": "http://guzzlephp.org/", 205 | "keywords": [ 206 | "client", 207 | "curl", 208 | "framework", 209 | "http", 210 | "http client", 211 | "rest", 212 | "web service" 213 | ], 214 | "time": "2018-04-22T15:46:56+00:00" 215 | }, 216 | { 217 | "name": "guzzlehttp/promises", 218 | "version": "v1.3.1", 219 | "source": { 220 | "type": "git", 221 | "url": "https://github.com/guzzle/promises.git", 222 | "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" 223 | }, 224 | "dist": { 225 | "type": "zip", 226 | "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", 227 | "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", 228 | "shasum": "" 229 | }, 230 | "require": { 231 | "php": ">=5.5.0" 232 | }, 233 | "require-dev": { 234 | "phpunit/phpunit": "^4.0" 235 | }, 236 | "type": "library", 237 | "extra": { 238 | "branch-alias": { 239 | "dev-master": "1.4-dev" 240 | } 241 | }, 242 | "autoload": { 243 | "psr-4": { 244 | "GuzzleHttp\\Promise\\": "src/" 245 | }, 246 | "files": [ 247 | "src/functions_include.php" 248 | ] 249 | }, 250 | "notification-url": "https://packagist.org/downloads/", 251 | "license": [ 252 | "MIT" 253 | ], 254 | "authors": [ 255 | { 256 | "name": "Michael Dowling", 257 | "email": "mtdowling@gmail.com", 258 | "homepage": "https://github.com/mtdowling" 259 | } 260 | ], 261 | "description": "Guzzle promises library", 262 | "keywords": [ 263 | "promise" 264 | ], 265 | "time": "2016-12-20T10:07:11+00:00" 266 | }, 267 | { 268 | "name": "guzzlehttp/psr7", 269 | "version": "1.6.1", 270 | "source": { 271 | "type": "git", 272 | "url": "https://github.com/guzzle/psr7.git", 273 | "reference": "239400de7a173fe9901b9ac7c06497751f00727a" 274 | }, 275 | "dist": { 276 | "type": "zip", 277 | "url": "https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a", 278 | "reference": "239400de7a173fe9901b9ac7c06497751f00727a", 279 | "shasum": "" 280 | }, 281 | "require": { 282 | "php": ">=5.4.0", 283 | "psr/http-message": "~1.0", 284 | "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" 285 | }, 286 | "provide": { 287 | "psr/http-message-implementation": "1.0" 288 | }, 289 | "require-dev": { 290 | "ext-zlib": "*", 291 | "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8" 292 | }, 293 | "suggest": { 294 | "zendframework/zend-httphandlerrunner": "Emit PSR-7 responses" 295 | }, 296 | "type": "library", 297 | "extra": { 298 | "branch-alias": { 299 | "dev-master": "1.6-dev" 300 | } 301 | }, 302 | "autoload": { 303 | "psr-4": { 304 | "GuzzleHttp\\Psr7\\": "src/" 305 | }, 306 | "files": [ 307 | "src/functions_include.php" 308 | ] 309 | }, 310 | "notification-url": "https://packagist.org/downloads/", 311 | "license": [ 312 | "MIT" 313 | ], 314 | "authors": [ 315 | { 316 | "name": "Michael Dowling", 317 | "email": "mtdowling@gmail.com", 318 | "homepage": "https://github.com/mtdowling" 319 | }, 320 | { 321 | "name": "Tobias Schultze", 322 | "homepage": "https://github.com/Tobion" 323 | } 324 | ], 325 | "description": "PSR-7 message implementation that also provides common utility methods", 326 | "keywords": [ 327 | "http", 328 | "message", 329 | "psr-7", 330 | "request", 331 | "response", 332 | "stream", 333 | "uri", 334 | "url" 335 | ], 336 | "time": "2019-07-01T23:21:34+00:00" 337 | }, 338 | { 339 | "name": "hollodotme/fast-cgi-client", 340 | "version": "v2.7.2", 341 | "source": { 342 | "type": "git", 343 | "url": "https://github.com/hollodotme/fast-cgi-client.git", 344 | "reference": "785608e89059f6fd490e6df626703a28f48c5adb" 345 | }, 346 | "dist": { 347 | "type": "zip", 348 | "url": "https://api.github.com/repos/hollodotme/fast-cgi-client/zipball/785608e89059f6fd490e6df626703a28f48c5adb", 349 | "reference": "785608e89059f6fd490e6df626703a28f48c5adb", 350 | "shasum": "" 351 | }, 352 | "require": { 353 | "php": ">=7.1" 354 | }, 355 | "require-dev": { 356 | "tm/tooly-composer-script": "^1.0" 357 | }, 358 | "bin": [ 359 | "bin/fcgiget" 360 | ], 361 | "type": "library", 362 | "extra": { 363 | "tools": { 364 | "phpunit7": { 365 | "url": "https://phar.phpunit.de/phpunit-7.phar", 366 | "replace": true, 367 | "only-dev": true 368 | }, 369 | "phpunit8": { 370 | "url": "https://phar.phpunit.de/phpunit-8.phar", 371 | "replace": true, 372 | "only-dev": true 373 | } 374 | } 375 | }, 376 | "autoload": { 377 | "psr-4": { 378 | "hollodotme\\FastCGI\\": "src/" 379 | } 380 | }, 381 | "notification-url": "https://packagist.org/downloads/", 382 | "license": [ 383 | "MIT" 384 | ], 385 | "authors": [ 386 | { 387 | "name": "Holger Woltersdorf", 388 | "email": "hw@hollo.me" 389 | } 390 | ], 391 | "description": "A PHP fast CGI client to send requests (a)synchronously to PHP-FPM.", 392 | "keywords": [ 393 | "Socket", 394 | "async", 395 | "fastcgi", 396 | "php-fpm" 397 | ], 398 | "time": "2019-05-30T22:57:49+00:00" 399 | }, 400 | { 401 | "name": "mnapoli/silly", 402 | "version": "1.7.1", 403 | "source": { 404 | "type": "git", 405 | "url": "https://github.com/mnapoli/silly.git", 406 | "reference": "5f7f34f4db75685e6fe7d652c12d9a7b6e8034d6" 407 | }, 408 | "dist": { 409 | "type": "zip", 410 | "url": "https://api.github.com/repos/mnapoli/silly/zipball/5f7f34f4db75685e6fe7d652c12d9a7b6e8034d6", 411 | "reference": "5f7f34f4db75685e6fe7d652c12d9a7b6e8034d6", 412 | "shasum": "" 413 | }, 414 | "require": { 415 | "php": ">=7.0", 416 | "php-di/invoker": "~2.0", 417 | "psr/container": "^1.0", 418 | "symfony/console": "~3.0|~4.0" 419 | }, 420 | "require-dev": { 421 | "friendsofphp/php-cs-fixer": "^2.12", 422 | "mnapoli/phpunit-easymock": "~1.0", 423 | "phpunit/phpunit": "~6.4" 424 | }, 425 | "type": "library", 426 | "autoload": { 427 | "psr-4": { 428 | "Silly\\": "src/" 429 | } 430 | }, 431 | "notification-url": "https://packagist.org/downloads/", 432 | "license": [ 433 | "MIT" 434 | ], 435 | "description": "Silly CLI micro-framework based on Symfony Console", 436 | "keywords": [ 437 | "PSR-11", 438 | "cli", 439 | "console", 440 | "framework", 441 | "micro-framework", 442 | "silly" 443 | ], 444 | "time": "2018-12-26T21:17:30+00:00" 445 | }, 446 | { 447 | "name": "mtdowling/jmespath.php", 448 | "version": "2.4.0", 449 | "source": { 450 | "type": "git", 451 | "url": "https://github.com/jmespath/jmespath.php.git", 452 | "reference": "adcc9531682cf87dfda21e1fd5d0e7a41d292fac" 453 | }, 454 | "dist": { 455 | "type": "zip", 456 | "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/adcc9531682cf87dfda21e1fd5d0e7a41d292fac", 457 | "reference": "adcc9531682cf87dfda21e1fd5d0e7a41d292fac", 458 | "shasum": "" 459 | }, 460 | "require": { 461 | "php": ">=5.4.0" 462 | }, 463 | "require-dev": { 464 | "phpunit/phpunit": "~4.0" 465 | }, 466 | "bin": [ 467 | "bin/jp.php" 468 | ], 469 | "type": "library", 470 | "extra": { 471 | "branch-alias": { 472 | "dev-master": "2.0-dev" 473 | } 474 | }, 475 | "autoload": { 476 | "psr-4": { 477 | "JmesPath\\": "src/" 478 | }, 479 | "files": [ 480 | "src/JmesPath.php" 481 | ] 482 | }, 483 | "notification-url": "https://packagist.org/downloads/", 484 | "license": [ 485 | "MIT" 486 | ], 487 | "authors": [ 488 | { 489 | "name": "Michael Dowling", 490 | "email": "mtdowling@gmail.com", 491 | "homepage": "https://github.com/mtdowling" 492 | } 493 | ], 494 | "description": "Declaratively specify how to extract elements from a JSON document", 495 | "keywords": [ 496 | "json", 497 | "jsonpath" 498 | ], 499 | "time": "2016-12-03T22:08:25+00:00" 500 | }, 501 | { 502 | "name": "php-di/invoker", 503 | "version": "2.0.0", 504 | "source": { 505 | "type": "git", 506 | "url": "https://github.com/PHP-DI/Invoker.git", 507 | "reference": "540c27c86f663e20fe39a24cd72fa76cdb21d41a" 508 | }, 509 | "dist": { 510 | "type": "zip", 511 | "url": "https://api.github.com/repos/PHP-DI/Invoker/zipball/540c27c86f663e20fe39a24cd72fa76cdb21d41a", 512 | "reference": "540c27c86f663e20fe39a24cd72fa76cdb21d41a", 513 | "shasum": "" 514 | }, 515 | "require": { 516 | "psr/container": "~1.0" 517 | }, 518 | "require-dev": { 519 | "athletic/athletic": "~0.1.8", 520 | "phpunit/phpunit": "~4.5" 521 | }, 522 | "type": "library", 523 | "autoload": { 524 | "psr-4": { 525 | "Invoker\\": "src/" 526 | } 527 | }, 528 | "notification-url": "https://packagist.org/downloads/", 529 | "license": [ 530 | "MIT" 531 | ], 532 | "description": "Generic and extensible callable invoker", 533 | "homepage": "https://github.com/PHP-DI/Invoker", 534 | "keywords": [ 535 | "callable", 536 | "dependency", 537 | "dependency-injection", 538 | "injection", 539 | "invoke", 540 | "invoker" 541 | ], 542 | "time": "2017-03-20T19:28:22+00:00" 543 | }, 544 | { 545 | "name": "psr/cache", 546 | "version": "1.0.1", 547 | "source": { 548 | "type": "git", 549 | "url": "https://github.com/php-fig/cache.git", 550 | "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" 551 | }, 552 | "dist": { 553 | "type": "zip", 554 | "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", 555 | "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", 556 | "shasum": "" 557 | }, 558 | "require": { 559 | "php": ">=5.3.0" 560 | }, 561 | "type": "library", 562 | "extra": { 563 | "branch-alias": { 564 | "dev-master": "1.0.x-dev" 565 | } 566 | }, 567 | "autoload": { 568 | "psr-4": { 569 | "Psr\\Cache\\": "src/" 570 | } 571 | }, 572 | "notification-url": "https://packagist.org/downloads/", 573 | "license": [ 574 | "MIT" 575 | ], 576 | "authors": [ 577 | { 578 | "name": "PHP-FIG", 579 | "homepage": "http://www.php-fig.org/" 580 | } 581 | ], 582 | "description": "Common interface for caching libraries", 583 | "keywords": [ 584 | "cache", 585 | "psr", 586 | "psr-6" 587 | ], 588 | "time": "2016-08-06T20:24:11+00:00" 589 | }, 590 | { 591 | "name": "psr/container", 592 | "version": "1.0.0", 593 | "source": { 594 | "type": "git", 595 | "url": "https://github.com/php-fig/container.git", 596 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" 597 | }, 598 | "dist": { 599 | "type": "zip", 600 | "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", 601 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", 602 | "shasum": "" 603 | }, 604 | "require": { 605 | "php": ">=5.3.0" 606 | }, 607 | "type": "library", 608 | "extra": { 609 | "branch-alias": { 610 | "dev-master": "1.0.x-dev" 611 | } 612 | }, 613 | "autoload": { 614 | "psr-4": { 615 | "Psr\\Container\\": "src/" 616 | } 617 | }, 618 | "notification-url": "https://packagist.org/downloads/", 619 | "license": [ 620 | "MIT" 621 | ], 622 | "authors": [ 623 | { 624 | "name": "PHP-FIG", 625 | "homepage": "http://www.php-fig.org/" 626 | } 627 | ], 628 | "description": "Common Container Interface (PHP FIG PSR-11)", 629 | "homepage": "https://github.com/php-fig/container", 630 | "keywords": [ 631 | "PSR-11", 632 | "container", 633 | "container-interface", 634 | "container-interop", 635 | "psr" 636 | ], 637 | "time": "2017-02-14T16:28:37+00:00" 638 | }, 639 | { 640 | "name": "psr/http-message", 641 | "version": "1.0.1", 642 | "source": { 643 | "type": "git", 644 | "url": "https://github.com/php-fig/http-message.git", 645 | "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" 646 | }, 647 | "dist": { 648 | "type": "zip", 649 | "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", 650 | "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", 651 | "shasum": "" 652 | }, 653 | "require": { 654 | "php": ">=5.3.0" 655 | }, 656 | "type": "library", 657 | "extra": { 658 | "branch-alias": { 659 | "dev-master": "1.0.x-dev" 660 | } 661 | }, 662 | "autoload": { 663 | "psr-4": { 664 | "Psr\\Http\\Message\\": "src/" 665 | } 666 | }, 667 | "notification-url": "https://packagist.org/downloads/", 668 | "license": [ 669 | "MIT" 670 | ], 671 | "authors": [ 672 | { 673 | "name": "PHP-FIG", 674 | "homepage": "http://www.php-fig.org/" 675 | } 676 | ], 677 | "description": "Common interface for HTTP messages", 678 | "homepage": "https://github.com/php-fig/http-message", 679 | "keywords": [ 680 | "http", 681 | "http-message", 682 | "psr", 683 | "psr-7", 684 | "request", 685 | "response" 686 | ], 687 | "time": "2016-08-06T14:39:51+00:00" 688 | }, 689 | { 690 | "name": "psr/log", 691 | "version": "1.1.0", 692 | "source": { 693 | "type": "git", 694 | "url": "https://github.com/php-fig/log.git", 695 | "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" 696 | }, 697 | "dist": { 698 | "type": "zip", 699 | "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", 700 | "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", 701 | "shasum": "" 702 | }, 703 | "require": { 704 | "php": ">=5.3.0" 705 | }, 706 | "type": "library", 707 | "extra": { 708 | "branch-alias": { 709 | "dev-master": "1.0.x-dev" 710 | } 711 | }, 712 | "autoload": { 713 | "psr-4": { 714 | "Psr\\Log\\": "Psr/Log/" 715 | } 716 | }, 717 | "notification-url": "https://packagist.org/downloads/", 718 | "license": [ 719 | "MIT" 720 | ], 721 | "authors": [ 722 | { 723 | "name": "PHP-FIG", 724 | "homepage": "http://www.php-fig.org/" 725 | } 726 | ], 727 | "description": "Common interface for logging libraries", 728 | "homepage": "https://github.com/php-fig/log", 729 | "keywords": [ 730 | "log", 731 | "psr", 732 | "psr-3" 733 | ], 734 | "time": "2018-11-20T15:27:04+00:00" 735 | }, 736 | { 737 | "name": "psr/simple-cache", 738 | "version": "1.0.1", 739 | "source": { 740 | "type": "git", 741 | "url": "https://github.com/php-fig/simple-cache.git", 742 | "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" 743 | }, 744 | "dist": { 745 | "type": "zip", 746 | "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", 747 | "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", 748 | "shasum": "" 749 | }, 750 | "require": { 751 | "php": ">=5.3.0" 752 | }, 753 | "type": "library", 754 | "extra": { 755 | "branch-alias": { 756 | "dev-master": "1.0.x-dev" 757 | } 758 | }, 759 | "autoload": { 760 | "psr-4": { 761 | "Psr\\SimpleCache\\": "src/" 762 | } 763 | }, 764 | "notification-url": "https://packagist.org/downloads/", 765 | "license": [ 766 | "MIT" 767 | ], 768 | "authors": [ 769 | { 770 | "name": "PHP-FIG", 771 | "homepage": "http://www.php-fig.org/" 772 | } 773 | ], 774 | "description": "Common interfaces for simple caching", 775 | "keywords": [ 776 | "cache", 777 | "caching", 778 | "psr", 779 | "psr-16", 780 | "simple-cache" 781 | ], 782 | "time": "2017-10-23T01:57:42+00:00" 783 | }, 784 | { 785 | "name": "ralouphie/getallheaders", 786 | "version": "3.0.3", 787 | "source": { 788 | "type": "git", 789 | "url": "https://github.com/ralouphie/getallheaders.git", 790 | "reference": "120b605dfeb996808c31b6477290a714d356e822" 791 | }, 792 | "dist": { 793 | "type": "zip", 794 | "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", 795 | "reference": "120b605dfeb996808c31b6477290a714d356e822", 796 | "shasum": "" 797 | }, 798 | "require": { 799 | "php": ">=5.6" 800 | }, 801 | "require-dev": { 802 | "php-coveralls/php-coveralls": "^2.1", 803 | "phpunit/phpunit": "^5 || ^6.5" 804 | }, 805 | "type": "library", 806 | "autoload": { 807 | "files": [ 808 | "src/getallheaders.php" 809 | ] 810 | }, 811 | "notification-url": "https://packagist.org/downloads/", 812 | "license": [ 813 | "MIT" 814 | ], 815 | "authors": [ 816 | { 817 | "name": "Ralph Khattar", 818 | "email": "ralph.khattar@gmail.com" 819 | } 820 | ], 821 | "description": "A polyfill for getallheaders.", 822 | "time": "2019-03-08T08:55:37+00:00" 823 | }, 824 | { 825 | "name": "symfony/cache", 826 | "version": "v4.2.10", 827 | "source": { 828 | "type": "git", 829 | "url": "https://github.com/symfony/cache.git", 830 | "reference": "02de00b5dfc1c00b8fd6838c5ace976b435d9d49" 831 | }, 832 | "dist": { 833 | "type": "zip", 834 | "url": "https://api.github.com/repos/symfony/cache/zipball/02de00b5dfc1c00b8fd6838c5ace976b435d9d49", 835 | "reference": "02de00b5dfc1c00b8fd6838c5ace976b435d9d49", 836 | "shasum": "" 837 | }, 838 | "require": { 839 | "php": "^7.1.3", 840 | "psr/cache": "~1.0", 841 | "psr/log": "~1.0", 842 | "psr/simple-cache": "^1.0", 843 | "symfony/contracts": "^1.0", 844 | "symfony/var-exporter": "^4.2" 845 | }, 846 | "conflict": { 847 | "doctrine/dbal": "<2.5", 848 | "symfony/dependency-injection": "<3.4", 849 | "symfony/var-dumper": "<3.4" 850 | }, 851 | "provide": { 852 | "psr/cache-implementation": "1.0", 853 | "psr/simple-cache-implementation": "1.0", 854 | "symfony/cache-implementation": "1.0" 855 | }, 856 | "require-dev": { 857 | "cache/integration-tests": "dev-master", 858 | "doctrine/cache": "~1.6", 859 | "doctrine/dbal": "~2.5", 860 | "predis/predis": "~1.1", 861 | "symfony/config": "~4.2", 862 | "symfony/dependency-injection": "~3.4|~4.1", 863 | "symfony/var-dumper": "^4.1.1" 864 | }, 865 | "type": "library", 866 | "extra": { 867 | "branch-alias": { 868 | "dev-master": "4.2-dev" 869 | } 870 | }, 871 | "autoload": { 872 | "psr-4": { 873 | "Symfony\\Component\\Cache\\": "" 874 | }, 875 | "exclude-from-classmap": [ 876 | "/Tests/" 877 | ] 878 | }, 879 | "notification-url": "https://packagist.org/downloads/", 880 | "license": [ 881 | "MIT" 882 | ], 883 | "authors": [ 884 | { 885 | "name": "Nicolas Grekas", 886 | "email": "p@tchwork.com" 887 | }, 888 | { 889 | "name": "Symfony Community", 890 | "homepage": "https://symfony.com/contributors" 891 | } 892 | ], 893 | "description": "Symfony Cache component with PSR-6, PSR-16, and tags", 894 | "homepage": "https://symfony.com", 895 | "keywords": [ 896 | "caching", 897 | "psr6" 898 | ], 899 | "time": "2019-06-17T17:31:01+00:00" 900 | }, 901 | { 902 | "name": "symfony/config", 903 | "version": "v4.2.10", 904 | "source": { 905 | "type": "git", 906 | "url": "https://github.com/symfony/config.git", 907 | "reference": "074a105281d281667c2dc23932b4aed7ef0f632a" 908 | }, 909 | "dist": { 910 | "type": "zip", 911 | "url": "https://api.github.com/repos/symfony/config/zipball/074a105281d281667c2dc23932b4aed7ef0f632a", 912 | "reference": "074a105281d281667c2dc23932b4aed7ef0f632a", 913 | "shasum": "" 914 | }, 915 | "require": { 916 | "php": "^7.1.3", 917 | "symfony/filesystem": "~3.4|~4.0", 918 | "symfony/polyfill-ctype": "~1.8" 919 | }, 920 | "conflict": { 921 | "symfony/finder": "<3.4" 922 | }, 923 | "require-dev": { 924 | "symfony/dependency-injection": "~3.4|~4.0", 925 | "symfony/event-dispatcher": "~3.4|~4.0", 926 | "symfony/finder": "~3.4|~4.0", 927 | "symfony/messenger": "~4.1", 928 | "symfony/yaml": "~3.4|~4.0" 929 | }, 930 | "suggest": { 931 | "symfony/yaml": "To use the yaml reference dumper" 932 | }, 933 | "type": "library", 934 | "extra": { 935 | "branch-alias": { 936 | "dev-master": "4.2-dev" 937 | } 938 | }, 939 | "autoload": { 940 | "psr-4": { 941 | "Symfony\\Component\\Config\\": "" 942 | }, 943 | "exclude-from-classmap": [ 944 | "/Tests/" 945 | ] 946 | }, 947 | "notification-url": "https://packagist.org/downloads/", 948 | "license": [ 949 | "MIT" 950 | ], 951 | "authors": [ 952 | { 953 | "name": "Fabien Potencier", 954 | "email": "fabien@symfony.com" 955 | }, 956 | { 957 | "name": "Symfony Community", 958 | "homepage": "https://symfony.com/contributors" 959 | } 960 | ], 961 | "description": "Symfony Config Component", 962 | "homepage": "https://symfony.com", 963 | "time": "2019-06-08T06:01:32+00:00" 964 | }, 965 | { 966 | "name": "symfony/console", 967 | "version": "v4.2.10", 968 | "source": { 969 | "type": "git", 970 | "url": "https://github.com/symfony/console.git", 971 | "reference": "79860cda331a2edb497c72ee487ed75c484ab75e" 972 | }, 973 | "dist": { 974 | "type": "zip", 975 | "url": "https://api.github.com/repos/symfony/console/zipball/79860cda331a2edb497c72ee487ed75c484ab75e", 976 | "reference": "79860cda331a2edb497c72ee487ed75c484ab75e", 977 | "shasum": "" 978 | }, 979 | "require": { 980 | "php": "^7.1.3", 981 | "symfony/contracts": "^1.0", 982 | "symfony/polyfill-mbstring": "~1.0" 983 | }, 984 | "conflict": { 985 | "symfony/dependency-injection": "<3.4", 986 | "symfony/process": "<3.3" 987 | }, 988 | "provide": { 989 | "psr/log-implementation": "1.0" 990 | }, 991 | "require-dev": { 992 | "psr/log": "~1.0", 993 | "symfony/config": "~3.4|~4.0", 994 | "symfony/dependency-injection": "~3.4|~4.0", 995 | "symfony/event-dispatcher": "~3.4|~4.0", 996 | "symfony/lock": "~3.4|~4.0", 997 | "symfony/process": "~3.4|~4.0" 998 | }, 999 | "suggest": { 1000 | "psr/log": "For using the console logger", 1001 | "symfony/event-dispatcher": "", 1002 | "symfony/lock": "", 1003 | "symfony/process": "" 1004 | }, 1005 | "type": "library", 1006 | "extra": { 1007 | "branch-alias": { 1008 | "dev-master": "4.2-dev" 1009 | } 1010 | }, 1011 | "autoload": { 1012 | "psr-4": { 1013 | "Symfony\\Component\\Console\\": "" 1014 | }, 1015 | "exclude-from-classmap": [ 1016 | "/Tests/" 1017 | ] 1018 | }, 1019 | "notification-url": "https://packagist.org/downloads/", 1020 | "license": [ 1021 | "MIT" 1022 | ], 1023 | "authors": [ 1024 | { 1025 | "name": "Fabien Potencier", 1026 | "email": "fabien@symfony.com" 1027 | }, 1028 | { 1029 | "name": "Symfony Community", 1030 | "homepage": "https://symfony.com/contributors" 1031 | } 1032 | ], 1033 | "description": "Symfony Console Component", 1034 | "homepage": "https://symfony.com", 1035 | "time": "2019-06-13T10:57:15+00:00" 1036 | }, 1037 | { 1038 | "name": "symfony/contracts", 1039 | "version": "v1.1.5", 1040 | "source": { 1041 | "type": "git", 1042 | "url": "https://github.com/symfony/contracts.git", 1043 | "reference": "3f3f796d5f24a098a9da62828b8daa1b11494c1b" 1044 | }, 1045 | "dist": { 1046 | "type": "zip", 1047 | "url": "https://api.github.com/repos/symfony/contracts/zipball/3f3f796d5f24a098a9da62828b8daa1b11494c1b", 1048 | "reference": "3f3f796d5f24a098a9da62828b8daa1b11494c1b", 1049 | "shasum": "" 1050 | }, 1051 | "require": { 1052 | "php": "^7.1.3", 1053 | "psr/cache": "^1.0", 1054 | "psr/container": "^1.0" 1055 | }, 1056 | "replace": { 1057 | "symfony/cache-contracts": "self.version", 1058 | "symfony/event-dispatcher-contracts": "self.version", 1059 | "symfony/http-client-contracts": "self.version", 1060 | "symfony/service-contracts": "self.version", 1061 | "symfony/translation-contracts": "self.version" 1062 | }, 1063 | "require-dev": { 1064 | "symfony/polyfill-intl-idn": "^1.10" 1065 | }, 1066 | "suggest": { 1067 | "psr/event-dispatcher": "When using the EventDispatcher contracts", 1068 | "symfony/cache-implementation": "", 1069 | "symfony/event-dispatcher-implementation": "", 1070 | "symfony/http-client-implementation": "", 1071 | "symfony/service-implementation": "", 1072 | "symfony/translation-implementation": "" 1073 | }, 1074 | "type": "library", 1075 | "extra": { 1076 | "branch-alias": { 1077 | "dev-master": "1.1-dev" 1078 | } 1079 | }, 1080 | "autoload": { 1081 | "psr-4": { 1082 | "Symfony\\Contracts\\": "" 1083 | }, 1084 | "exclude-from-classmap": [ 1085 | "**/Tests/" 1086 | ] 1087 | }, 1088 | "notification-url": "https://packagist.org/downloads/", 1089 | "license": [ 1090 | "MIT" 1091 | ], 1092 | "authors": [ 1093 | { 1094 | "name": "Nicolas Grekas", 1095 | "email": "p@tchwork.com" 1096 | }, 1097 | { 1098 | "name": "Symfony Community", 1099 | "homepage": "https://symfony.com/contributors" 1100 | } 1101 | ], 1102 | "description": "A set of abstractions extracted out of the Symfony components", 1103 | "homepage": "https://symfony.com", 1104 | "keywords": [ 1105 | "abstractions", 1106 | "contracts", 1107 | "decoupling", 1108 | "interfaces", 1109 | "interoperability", 1110 | "standards" 1111 | ], 1112 | "time": "2019-06-20T06:46:26+00:00" 1113 | }, 1114 | { 1115 | "name": "symfony/debug", 1116 | "version": "v4.2.10", 1117 | "source": { 1118 | "type": "git", 1119 | "url": "https://github.com/symfony/debug.git", 1120 | "reference": "bb91fa5ab91e5ef1b2dbd365eb32cfda7b96d61b" 1121 | }, 1122 | "dist": { 1123 | "type": "zip", 1124 | "url": "https://api.github.com/repos/symfony/debug/zipball/bb91fa5ab91e5ef1b2dbd365eb32cfda7b96d61b", 1125 | "reference": "bb91fa5ab91e5ef1b2dbd365eb32cfda7b96d61b", 1126 | "shasum": "" 1127 | }, 1128 | "require": { 1129 | "php": "^7.1.3", 1130 | "psr/log": "~1.0" 1131 | }, 1132 | "conflict": { 1133 | "symfony/http-kernel": "<3.4" 1134 | }, 1135 | "require-dev": { 1136 | "symfony/http-kernel": "~3.4|~4.0" 1137 | }, 1138 | "type": "library", 1139 | "extra": { 1140 | "branch-alias": { 1141 | "dev-master": "4.2-dev" 1142 | } 1143 | }, 1144 | "autoload": { 1145 | "psr-4": { 1146 | "Symfony\\Component\\Debug\\": "" 1147 | }, 1148 | "exclude-from-classmap": [ 1149 | "/Tests/" 1150 | ] 1151 | }, 1152 | "notification-url": "https://packagist.org/downloads/", 1153 | "license": [ 1154 | "MIT" 1155 | ], 1156 | "authors": [ 1157 | { 1158 | "name": "Fabien Potencier", 1159 | "email": "fabien@symfony.com" 1160 | }, 1161 | { 1162 | "name": "Symfony Community", 1163 | "homepage": "https://symfony.com/contributors" 1164 | } 1165 | ], 1166 | "description": "Symfony Debug Component", 1167 | "homepage": "https://symfony.com", 1168 | "time": "2019-06-19T15:26:44+00:00" 1169 | }, 1170 | { 1171 | "name": "symfony/dependency-injection", 1172 | "version": "v4.2.10", 1173 | "source": { 1174 | "type": "git", 1175 | "url": "https://github.com/symfony/dependency-injection.git", 1176 | "reference": "299fab314fd9c785783aa419ddb0e4b1d0ffaa21" 1177 | }, 1178 | "dist": { 1179 | "type": "zip", 1180 | "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/299fab314fd9c785783aa419ddb0e4b1d0ffaa21", 1181 | "reference": "299fab314fd9c785783aa419ddb0e4b1d0ffaa21", 1182 | "shasum": "" 1183 | }, 1184 | "require": { 1185 | "php": "^7.1.3", 1186 | "psr/container": "^1.0", 1187 | "symfony/contracts": "^1.1.1" 1188 | }, 1189 | "conflict": { 1190 | "symfony/config": "<4.2", 1191 | "symfony/finder": "<3.4", 1192 | "symfony/proxy-manager-bridge": "<3.4", 1193 | "symfony/yaml": "<3.4" 1194 | }, 1195 | "provide": { 1196 | "psr/container-implementation": "1.0", 1197 | "symfony/service-implementation": "1.0" 1198 | }, 1199 | "require-dev": { 1200 | "symfony/config": "~4.2", 1201 | "symfony/expression-language": "~3.4|~4.0", 1202 | "symfony/yaml": "~3.4|~4.0" 1203 | }, 1204 | "suggest": { 1205 | "symfony/config": "", 1206 | "symfony/expression-language": "For using expressions in service container configuration", 1207 | "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", 1208 | "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", 1209 | "symfony/yaml": "" 1210 | }, 1211 | "type": "library", 1212 | "extra": { 1213 | "branch-alias": { 1214 | "dev-master": "4.2-dev" 1215 | } 1216 | }, 1217 | "autoload": { 1218 | "psr-4": { 1219 | "Symfony\\Component\\DependencyInjection\\": "" 1220 | }, 1221 | "exclude-from-classmap": [ 1222 | "/Tests/" 1223 | ] 1224 | }, 1225 | "notification-url": "https://packagist.org/downloads/", 1226 | "license": [ 1227 | "MIT" 1228 | ], 1229 | "authors": [ 1230 | { 1231 | "name": "Fabien Potencier", 1232 | "email": "fabien@symfony.com" 1233 | }, 1234 | { 1235 | "name": "Symfony Community", 1236 | "homepage": "https://symfony.com/contributors" 1237 | } 1238 | ], 1239 | "description": "Symfony DependencyInjection Component", 1240 | "homepage": "https://symfony.com", 1241 | "time": "2019-06-13T10:57:15+00:00" 1242 | }, 1243 | { 1244 | "name": "symfony/dotenv", 1245 | "version": "v4.2.10", 1246 | "source": { 1247 | "type": "git", 1248 | "url": "https://github.com/symfony/dotenv.git", 1249 | "reference": "6163f061011009655da1bc615b38941bc460ef1b" 1250 | }, 1251 | "dist": { 1252 | "type": "zip", 1253 | "url": "https://api.github.com/repos/symfony/dotenv/zipball/6163f061011009655da1bc615b38941bc460ef1b", 1254 | "reference": "6163f061011009655da1bc615b38941bc460ef1b", 1255 | "shasum": "" 1256 | }, 1257 | "require": { 1258 | "php": "^7.1.3" 1259 | }, 1260 | "require-dev": { 1261 | "symfony/process": "~3.4|~4.0" 1262 | }, 1263 | "type": "library", 1264 | "extra": { 1265 | "branch-alias": { 1266 | "dev-master": "4.2-dev" 1267 | } 1268 | }, 1269 | "autoload": { 1270 | "psr-4": { 1271 | "Symfony\\Component\\Dotenv\\": "" 1272 | }, 1273 | "exclude-from-classmap": [ 1274 | "/Tests/" 1275 | ] 1276 | }, 1277 | "notification-url": "https://packagist.org/downloads/", 1278 | "license": [ 1279 | "MIT" 1280 | ], 1281 | "authors": [ 1282 | { 1283 | "name": "Fabien Potencier", 1284 | "email": "fabien@symfony.com" 1285 | }, 1286 | { 1287 | "name": "Symfony Community", 1288 | "homepage": "https://symfony.com/contributors" 1289 | } 1290 | ], 1291 | "description": "Registers environment variables from a .env file", 1292 | "homepage": "https://symfony.com", 1293 | "keywords": [ 1294 | "dotenv", 1295 | "env", 1296 | "environment" 1297 | ], 1298 | "time": "2019-06-26T06:46:55+00:00" 1299 | }, 1300 | { 1301 | "name": "symfony/event-dispatcher", 1302 | "version": "v4.2.10", 1303 | "source": { 1304 | "type": "git", 1305 | "url": "https://github.com/symfony/event-dispatcher.git", 1306 | "reference": "852548c7c704f14d2f6700c8d872a05bd2028732" 1307 | }, 1308 | "dist": { 1309 | "type": "zip", 1310 | "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/852548c7c704f14d2f6700c8d872a05bd2028732", 1311 | "reference": "852548c7c704f14d2f6700c8d872a05bd2028732", 1312 | "shasum": "" 1313 | }, 1314 | "require": { 1315 | "php": "^7.1.3", 1316 | "symfony/contracts": "^1.0" 1317 | }, 1318 | "conflict": { 1319 | "symfony/dependency-injection": "<3.4" 1320 | }, 1321 | "require-dev": { 1322 | "psr/log": "~1.0", 1323 | "symfony/config": "~3.4|~4.0", 1324 | "symfony/dependency-injection": "~3.4|~4.0", 1325 | "symfony/expression-language": "~3.4|~4.0", 1326 | "symfony/stopwatch": "~3.4|~4.0" 1327 | }, 1328 | "suggest": { 1329 | "symfony/dependency-injection": "", 1330 | "symfony/http-kernel": "" 1331 | }, 1332 | "type": "library", 1333 | "extra": { 1334 | "branch-alias": { 1335 | "dev-master": "4.2-dev" 1336 | } 1337 | }, 1338 | "autoload": { 1339 | "psr-4": { 1340 | "Symfony\\Component\\EventDispatcher\\": "" 1341 | }, 1342 | "exclude-from-classmap": [ 1343 | "/Tests/" 1344 | ] 1345 | }, 1346 | "notification-url": "https://packagist.org/downloads/", 1347 | "license": [ 1348 | "MIT" 1349 | ], 1350 | "authors": [ 1351 | { 1352 | "name": "Fabien Potencier", 1353 | "email": "fabien@symfony.com" 1354 | }, 1355 | { 1356 | "name": "Symfony Community", 1357 | "homepage": "https://symfony.com/contributors" 1358 | } 1359 | ], 1360 | "description": "Symfony EventDispatcher Component", 1361 | "homepage": "https://symfony.com", 1362 | "time": "2019-06-26T06:46:55+00:00" 1363 | }, 1364 | { 1365 | "name": "symfony/filesystem", 1366 | "version": "v4.2.10", 1367 | "source": { 1368 | "type": "git", 1369 | "url": "https://github.com/symfony/filesystem.git", 1370 | "reference": "1bd7aed2932cedd1c2c6cc925831dd8d57ea14bf" 1371 | }, 1372 | "dist": { 1373 | "type": "zip", 1374 | "url": "https://api.github.com/repos/symfony/filesystem/zipball/1bd7aed2932cedd1c2c6cc925831dd8d57ea14bf", 1375 | "reference": "1bd7aed2932cedd1c2c6cc925831dd8d57ea14bf", 1376 | "shasum": "" 1377 | }, 1378 | "require": { 1379 | "php": "^7.1.3", 1380 | "symfony/polyfill-ctype": "~1.8" 1381 | }, 1382 | "type": "library", 1383 | "extra": { 1384 | "branch-alias": { 1385 | "dev-master": "4.2-dev" 1386 | } 1387 | }, 1388 | "autoload": { 1389 | "psr-4": { 1390 | "Symfony\\Component\\Filesystem\\": "" 1391 | }, 1392 | "exclude-from-classmap": [ 1393 | "/Tests/" 1394 | ] 1395 | }, 1396 | "notification-url": "https://packagist.org/downloads/", 1397 | "license": [ 1398 | "MIT" 1399 | ], 1400 | "authors": [ 1401 | { 1402 | "name": "Fabien Potencier", 1403 | "email": "fabien@symfony.com" 1404 | }, 1405 | { 1406 | "name": "Symfony Community", 1407 | "homepage": "https://symfony.com/contributors" 1408 | } 1409 | ], 1410 | "description": "Symfony Filesystem Component", 1411 | "homepage": "https://symfony.com", 1412 | "time": "2019-06-26T06:46:55+00:00" 1413 | }, 1414 | { 1415 | "name": "symfony/finder", 1416 | "version": "v4.2.10", 1417 | "source": { 1418 | "type": "git", 1419 | "url": "https://github.com/symfony/finder.git", 1420 | "reference": "765109d3c9e20ae0f229bb7603ca5ed89f2cae84" 1421 | }, 1422 | "dist": { 1423 | "type": "zip", 1424 | "url": "https://api.github.com/repos/symfony/finder/zipball/765109d3c9e20ae0f229bb7603ca5ed89f2cae84", 1425 | "reference": "765109d3c9e20ae0f229bb7603ca5ed89f2cae84", 1426 | "shasum": "" 1427 | }, 1428 | "require": { 1429 | "php": "^7.1.3" 1430 | }, 1431 | "type": "library", 1432 | "extra": { 1433 | "branch-alias": { 1434 | "dev-master": "4.2-dev" 1435 | } 1436 | }, 1437 | "autoload": { 1438 | "psr-4": { 1439 | "Symfony\\Component\\Finder\\": "" 1440 | }, 1441 | "exclude-from-classmap": [ 1442 | "/Tests/" 1443 | ] 1444 | }, 1445 | "notification-url": "https://packagist.org/downloads/", 1446 | "license": [ 1447 | "MIT" 1448 | ], 1449 | "authors": [ 1450 | { 1451 | "name": "Fabien Potencier", 1452 | "email": "fabien@symfony.com" 1453 | }, 1454 | { 1455 | "name": "Symfony Community", 1456 | "homepage": "https://symfony.com/contributors" 1457 | } 1458 | ], 1459 | "description": "Symfony Finder Component", 1460 | "homepage": "https://symfony.com", 1461 | "time": "2019-06-13T10:57:15+00:00" 1462 | }, 1463 | { 1464 | "name": "symfony/flex", 1465 | "version": "v1.4.1", 1466 | "source": { 1467 | "type": "git", 1468 | "url": "https://github.com/symfony/flex.git", 1469 | "reference": "a388cacccf6e3c5e5a395e020c5aa05849ea4ccc" 1470 | }, 1471 | "dist": { 1472 | "type": "zip", 1473 | "url": "https://api.github.com/repos/symfony/flex/zipball/a388cacccf6e3c5e5a395e020c5aa05849ea4ccc", 1474 | "reference": "a388cacccf6e3c5e5a395e020c5aa05849ea4ccc", 1475 | "shasum": "" 1476 | }, 1477 | "require": { 1478 | "composer-plugin-api": "^1.0", 1479 | "php": "^7.0" 1480 | }, 1481 | "require-dev": { 1482 | "composer/composer": "^1.0.2", 1483 | "symfony/dotenv": "^3.4|^4.0", 1484 | "symfony/phpunit-bridge": "^3.4.19|^4.1.8", 1485 | "symfony/process": "^2.7|^3.0|^4.0" 1486 | }, 1487 | "type": "composer-plugin", 1488 | "extra": { 1489 | "branch-alias": { 1490 | "dev-master": "1.4-dev" 1491 | }, 1492 | "class": "Symfony\\Flex\\Flex" 1493 | }, 1494 | "autoload": { 1495 | "psr-4": { 1496 | "Symfony\\Flex\\": "src" 1497 | } 1498 | }, 1499 | "notification-url": "https://packagist.org/downloads/", 1500 | "license": [ 1501 | "MIT" 1502 | ], 1503 | "authors": [ 1504 | { 1505 | "name": "Fabien Potencier", 1506 | "email": "fabien.potencier@gmail.com" 1507 | } 1508 | ], 1509 | "description": "Composer plugin for Symfony", 1510 | "time": "2019-06-28T18:01:09+00:00" 1511 | }, 1512 | { 1513 | "name": "symfony/framework-bundle", 1514 | "version": "v4.2.10", 1515 | "source": { 1516 | "type": "git", 1517 | "url": "https://github.com/symfony/framework-bundle.git", 1518 | "reference": "043be519a7e90c577f32e57d77c5b4af627f254a" 1519 | }, 1520 | "dist": { 1521 | "type": "zip", 1522 | "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/043be519a7e90c577f32e57d77c5b4af627f254a", 1523 | "reference": "043be519a7e90c577f32e57d77c5b4af627f254a", 1524 | "shasum": "" 1525 | }, 1526 | "require": { 1527 | "ext-xml": "*", 1528 | "php": "^7.1.3", 1529 | "symfony/cache": "~4.2", 1530 | "symfony/config": "~4.2", 1531 | "symfony/contracts": "^1.0.2", 1532 | "symfony/dependency-injection": "^4.2.5", 1533 | "symfony/event-dispatcher": "^4.1", 1534 | "symfony/filesystem": "~3.4|~4.0", 1535 | "symfony/finder": "~3.4|~4.0", 1536 | "symfony/http-foundation": "^4.2.5", 1537 | "symfony/http-kernel": "^4.2", 1538 | "symfony/polyfill-mbstring": "~1.0", 1539 | "symfony/routing": "^4.2.8" 1540 | }, 1541 | "conflict": { 1542 | "phpdocumentor/reflection-docblock": "<3.0", 1543 | "phpdocumentor/type-resolver": "<0.2.1", 1544 | "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", 1545 | "symfony/asset": "<3.4", 1546 | "symfony/console": "<3.4", 1547 | "symfony/dotenv": "<4.2", 1548 | "symfony/form": "<4.2", 1549 | "symfony/messenger": "<4.2", 1550 | "symfony/property-info": "<3.4", 1551 | "symfony/serializer": "<4.2", 1552 | "symfony/stopwatch": "<3.4", 1553 | "symfony/translation": "<4.2", 1554 | "symfony/twig-bridge": "<4.1.1", 1555 | "symfony/validator": "<4.1", 1556 | "symfony/workflow": "<4.1" 1557 | }, 1558 | "require-dev": { 1559 | "doctrine/annotations": "~1.0", 1560 | "doctrine/cache": "~1.0", 1561 | "fig/link-util": "^1.0", 1562 | "phpdocumentor/reflection-docblock": "^3.0|^4.0", 1563 | "symfony/asset": "~3.4|~4.0", 1564 | "symfony/browser-kit": "~3.4|~4.0", 1565 | "symfony/console": "~3.4|~4.0", 1566 | "symfony/css-selector": "~3.4|~4.0", 1567 | "symfony/dom-crawler": "~3.4|~4.0", 1568 | "symfony/expression-language": "~3.4|~4.0", 1569 | "symfony/form": "^4.2.3", 1570 | "symfony/lock": "~3.4|~4.0", 1571 | "symfony/messenger": "^4.2", 1572 | "symfony/polyfill-intl-icu": "~1.0", 1573 | "symfony/process": "~3.4|~4.0", 1574 | "symfony/property-info": "~3.4|~4.0", 1575 | "symfony/security": "~3.4|~4.0", 1576 | "symfony/security-core": "~3.4|~4.0", 1577 | "symfony/security-csrf": "~3.4|~4.0", 1578 | "symfony/serializer": "^4.2", 1579 | "symfony/stopwatch": "~3.4|~4.0", 1580 | "symfony/templating": "~3.4|~4.0", 1581 | "symfony/translation": "~4.2", 1582 | "symfony/validator": "^4.1", 1583 | "symfony/var-dumper": "~3.4|~4.0", 1584 | "symfony/web-link": "~3.4|~4.0", 1585 | "symfony/workflow": "^4.1", 1586 | "symfony/yaml": "~3.4|~4.0", 1587 | "twig/twig": "~1.34|~2.4" 1588 | }, 1589 | "suggest": { 1590 | "ext-apcu": "For best performance of the system caches", 1591 | "symfony/console": "For using the console commands", 1592 | "symfony/form": "For using forms", 1593 | "symfony/property-info": "For using the property_info service", 1594 | "symfony/serializer": "For using the serializer service", 1595 | "symfony/validator": "For using validation", 1596 | "symfony/web-link": "For using web links, features such as preloading, prefetching or prerendering", 1597 | "symfony/yaml": "For using the debug:config and lint:yaml commands" 1598 | }, 1599 | "type": "symfony-bundle", 1600 | "extra": { 1601 | "branch-alias": { 1602 | "dev-master": "4.2-dev" 1603 | } 1604 | }, 1605 | "autoload": { 1606 | "psr-4": { 1607 | "Symfony\\Bundle\\FrameworkBundle\\": "" 1608 | }, 1609 | "exclude-from-classmap": [ 1610 | "/Tests/" 1611 | ] 1612 | }, 1613 | "notification-url": "https://packagist.org/downloads/", 1614 | "license": [ 1615 | "MIT" 1616 | ], 1617 | "authors": [ 1618 | { 1619 | "name": "Fabien Potencier", 1620 | "email": "fabien@symfony.com" 1621 | }, 1622 | { 1623 | "name": "Symfony Community", 1624 | "homepage": "https://symfony.com/contributors" 1625 | } 1626 | ], 1627 | "description": "Symfony FrameworkBundle", 1628 | "homepage": "https://symfony.com", 1629 | "time": "2019-06-26T06:46:55+00:00" 1630 | }, 1631 | { 1632 | "name": "symfony/http-foundation", 1633 | "version": "v4.2.10", 1634 | "source": { 1635 | "type": "git", 1636 | "url": "https://github.com/symfony/http-foundation.git", 1637 | "reference": "f7b5d04bea565a270db5d8158c1093cfa1ec10b2" 1638 | }, 1639 | "dist": { 1640 | "type": "zip", 1641 | "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f7b5d04bea565a270db5d8158c1093cfa1ec10b2", 1642 | "reference": "f7b5d04bea565a270db5d8158c1093cfa1ec10b2", 1643 | "shasum": "" 1644 | }, 1645 | "require": { 1646 | "php": "^7.1.3", 1647 | "symfony/polyfill-mbstring": "~1.1" 1648 | }, 1649 | "require-dev": { 1650 | "predis/predis": "~1.0", 1651 | "symfony/expression-language": "~3.4|~4.0" 1652 | }, 1653 | "type": "library", 1654 | "extra": { 1655 | "branch-alias": { 1656 | "dev-master": "4.2-dev" 1657 | } 1658 | }, 1659 | "autoload": { 1660 | "psr-4": { 1661 | "Symfony\\Component\\HttpFoundation\\": "" 1662 | }, 1663 | "exclude-from-classmap": [ 1664 | "/Tests/" 1665 | ] 1666 | }, 1667 | "notification-url": "https://packagist.org/downloads/", 1668 | "license": [ 1669 | "MIT" 1670 | ], 1671 | "authors": [ 1672 | { 1673 | "name": "Fabien Potencier", 1674 | "email": "fabien@symfony.com" 1675 | }, 1676 | { 1677 | "name": "Symfony Community", 1678 | "homepage": "https://symfony.com/contributors" 1679 | } 1680 | ], 1681 | "description": "Symfony HttpFoundation Component", 1682 | "homepage": "https://symfony.com", 1683 | "time": "2019-06-26T09:24:49+00:00" 1684 | }, 1685 | { 1686 | "name": "symfony/http-kernel", 1687 | "version": "v4.2.10", 1688 | "source": { 1689 | "type": "git", 1690 | "url": "https://github.com/symfony/http-kernel.git", 1691 | "reference": "fd6c193e8d613c53f6b05eb8e4009cc4c438fc46" 1692 | }, 1693 | "dist": { 1694 | "type": "zip", 1695 | "url": "https://api.github.com/repos/symfony/http-kernel/zipball/fd6c193e8d613c53f6b05eb8e4009cc4c438fc46", 1696 | "reference": "fd6c193e8d613c53f6b05eb8e4009cc4c438fc46", 1697 | "shasum": "" 1698 | }, 1699 | "require": { 1700 | "php": "^7.1.3", 1701 | "psr/log": "~1.0", 1702 | "symfony/contracts": "^1.0.2", 1703 | "symfony/debug": "~3.4|~4.0", 1704 | "symfony/event-dispatcher": "~4.1", 1705 | "symfony/http-foundation": "^4.1.1", 1706 | "symfony/polyfill-ctype": "~1.8" 1707 | }, 1708 | "conflict": { 1709 | "symfony/config": "<3.4", 1710 | "symfony/dependency-injection": "<4.2", 1711 | "symfony/translation": "<4.2", 1712 | "symfony/var-dumper": "<4.1.1", 1713 | "twig/twig": "<1.34|<2.4,>=2" 1714 | }, 1715 | "provide": { 1716 | "psr/log-implementation": "1.0" 1717 | }, 1718 | "require-dev": { 1719 | "psr/cache": "~1.0", 1720 | "symfony/browser-kit": "~3.4|~4.0", 1721 | "symfony/config": "~3.4|~4.0", 1722 | "symfony/console": "~3.4|~4.0", 1723 | "symfony/css-selector": "~3.4|~4.0", 1724 | "symfony/dependency-injection": "^4.2", 1725 | "symfony/dom-crawler": "~3.4|~4.0", 1726 | "symfony/expression-language": "~3.4|~4.0", 1727 | "symfony/finder": "~3.4|~4.0", 1728 | "symfony/process": "~3.4|~4.0", 1729 | "symfony/routing": "~3.4|~4.0", 1730 | "symfony/stopwatch": "~3.4|~4.0", 1731 | "symfony/templating": "~3.4|~4.0", 1732 | "symfony/translation": "~4.2", 1733 | "symfony/var-dumper": "^4.1.1" 1734 | }, 1735 | "suggest": { 1736 | "symfony/browser-kit": "", 1737 | "symfony/config": "", 1738 | "symfony/console": "", 1739 | "symfony/dependency-injection": "", 1740 | "symfony/var-dumper": "" 1741 | }, 1742 | "type": "library", 1743 | "extra": { 1744 | "branch-alias": { 1745 | "dev-master": "4.2-dev" 1746 | } 1747 | }, 1748 | "autoload": { 1749 | "psr-4": { 1750 | "Symfony\\Component\\HttpKernel\\": "" 1751 | }, 1752 | "exclude-from-classmap": [ 1753 | "/Tests/" 1754 | ] 1755 | }, 1756 | "notification-url": "https://packagist.org/downloads/", 1757 | "license": [ 1758 | "MIT" 1759 | ], 1760 | "authors": [ 1761 | { 1762 | "name": "Fabien Potencier", 1763 | "email": "fabien@symfony.com" 1764 | }, 1765 | { 1766 | "name": "Symfony Community", 1767 | "homepage": "https://symfony.com/contributors" 1768 | } 1769 | ], 1770 | "description": "Symfony HttpKernel Component", 1771 | "homepage": "https://symfony.com", 1772 | "time": "2019-06-26T14:19:57+00:00" 1773 | }, 1774 | { 1775 | "name": "symfony/polyfill-mbstring", 1776 | "version": "v1.11.0", 1777 | "source": { 1778 | "type": "git", 1779 | "url": "https://github.com/symfony/polyfill-mbstring.git", 1780 | "reference": "fe5e94c604826c35a32fa832f35bd036b6799609" 1781 | }, 1782 | "dist": { 1783 | "type": "zip", 1784 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fe5e94c604826c35a32fa832f35bd036b6799609", 1785 | "reference": "fe5e94c604826c35a32fa832f35bd036b6799609", 1786 | "shasum": "" 1787 | }, 1788 | "require": { 1789 | "php": ">=5.3.3" 1790 | }, 1791 | "suggest": { 1792 | "ext-mbstring": "For best performance" 1793 | }, 1794 | "type": "library", 1795 | "extra": { 1796 | "branch-alias": { 1797 | "dev-master": "1.11-dev" 1798 | } 1799 | }, 1800 | "autoload": { 1801 | "psr-4": { 1802 | "Symfony\\Polyfill\\Mbstring\\": "" 1803 | }, 1804 | "files": [ 1805 | "bootstrap.php" 1806 | ] 1807 | }, 1808 | "notification-url": "https://packagist.org/downloads/", 1809 | "license": [ 1810 | "MIT" 1811 | ], 1812 | "authors": [ 1813 | { 1814 | "name": "Nicolas Grekas", 1815 | "email": "p@tchwork.com" 1816 | }, 1817 | { 1818 | "name": "Symfony Community", 1819 | "homepage": "https://symfony.com/contributors" 1820 | } 1821 | ], 1822 | "description": "Symfony polyfill for the Mbstring extension", 1823 | "homepage": "https://symfony.com", 1824 | "keywords": [ 1825 | "compatibility", 1826 | "mbstring", 1827 | "polyfill", 1828 | "portable", 1829 | "shim" 1830 | ], 1831 | "time": "2019-02-06T07:57:58+00:00" 1832 | }, 1833 | { 1834 | "name": "symfony/process", 1835 | "version": "v4.2.10", 1836 | "source": { 1837 | "type": "git", 1838 | "url": "https://github.com/symfony/process.git", 1839 | "reference": "808a4be7e0dd7fcb6a2b1ed2ba22dd581402c5e2" 1840 | }, 1841 | "dist": { 1842 | "type": "zip", 1843 | "url": "https://api.github.com/repos/symfony/process/zipball/808a4be7e0dd7fcb6a2b1ed2ba22dd581402c5e2", 1844 | "reference": "808a4be7e0dd7fcb6a2b1ed2ba22dd581402c5e2", 1845 | "shasum": "" 1846 | }, 1847 | "require": { 1848 | "php": "^7.1.3" 1849 | }, 1850 | "type": "library", 1851 | "extra": { 1852 | "branch-alias": { 1853 | "dev-master": "4.2-dev" 1854 | } 1855 | }, 1856 | "autoload": { 1857 | "psr-4": { 1858 | "Symfony\\Component\\Process\\": "" 1859 | }, 1860 | "exclude-from-classmap": [ 1861 | "/Tests/" 1862 | ] 1863 | }, 1864 | "notification-url": "https://packagist.org/downloads/", 1865 | "license": [ 1866 | "MIT" 1867 | ], 1868 | "authors": [ 1869 | { 1870 | "name": "Fabien Potencier", 1871 | "email": "fabien@symfony.com" 1872 | }, 1873 | { 1874 | "name": "Symfony Community", 1875 | "homepage": "https://symfony.com/contributors" 1876 | } 1877 | ], 1878 | "description": "Symfony Process Component", 1879 | "homepage": "https://symfony.com", 1880 | "time": "2019-05-30T16:06:08+00:00" 1881 | }, 1882 | { 1883 | "name": "symfony/routing", 1884 | "version": "v4.2.10", 1885 | "source": { 1886 | "type": "git", 1887 | "url": "https://github.com/symfony/routing.git", 1888 | "reference": "1174ae15f862a0f2d481c29ba172a70b208c9561" 1889 | }, 1890 | "dist": { 1891 | "type": "zip", 1892 | "url": "https://api.github.com/repos/symfony/routing/zipball/1174ae15f862a0f2d481c29ba172a70b208c9561", 1893 | "reference": "1174ae15f862a0f2d481c29ba172a70b208c9561", 1894 | "shasum": "" 1895 | }, 1896 | "require": { 1897 | "php": "^7.1.3" 1898 | }, 1899 | "conflict": { 1900 | "symfony/config": "<4.2", 1901 | "symfony/dependency-injection": "<3.4", 1902 | "symfony/yaml": "<3.4" 1903 | }, 1904 | "require-dev": { 1905 | "doctrine/annotations": "~1.0", 1906 | "psr/log": "~1.0", 1907 | "symfony/config": "~4.2", 1908 | "symfony/dependency-injection": "~3.4|~4.0", 1909 | "symfony/expression-language": "~3.4|~4.0", 1910 | "symfony/http-foundation": "~3.4|~4.0", 1911 | "symfony/yaml": "~3.4|~4.0" 1912 | }, 1913 | "suggest": { 1914 | "doctrine/annotations": "For using the annotation loader", 1915 | "symfony/config": "For using the all-in-one router or any loader", 1916 | "symfony/expression-language": "For using expression matching", 1917 | "symfony/http-foundation": "For using a Symfony Request object", 1918 | "symfony/yaml": "For using the YAML loader" 1919 | }, 1920 | "type": "library", 1921 | "extra": { 1922 | "branch-alias": { 1923 | "dev-master": "4.2-dev" 1924 | } 1925 | }, 1926 | "autoload": { 1927 | "psr-4": { 1928 | "Symfony\\Component\\Routing\\": "" 1929 | }, 1930 | "exclude-from-classmap": [ 1931 | "/Tests/" 1932 | ] 1933 | }, 1934 | "notification-url": "https://packagist.org/downloads/", 1935 | "license": [ 1936 | "MIT" 1937 | ], 1938 | "authors": [ 1939 | { 1940 | "name": "Fabien Potencier", 1941 | "email": "fabien@symfony.com" 1942 | }, 1943 | { 1944 | "name": "Symfony Community", 1945 | "homepage": "https://symfony.com/contributors" 1946 | } 1947 | ], 1948 | "description": "Symfony Routing Component", 1949 | "homepage": "https://symfony.com", 1950 | "keywords": [ 1951 | "router", 1952 | "routing", 1953 | "uri", 1954 | "url" 1955 | ], 1956 | "time": "2019-06-26T13:53:23+00:00" 1957 | }, 1958 | { 1959 | "name": "symfony/twig-bridge", 1960 | "version": "v4.2.10", 1961 | "source": { 1962 | "type": "git", 1963 | "url": "https://github.com/symfony/twig-bridge.git", 1964 | "reference": "234bd51d116f28379d90fdbc22b25a7356b201eb" 1965 | }, 1966 | "dist": { 1967 | "type": "zip", 1968 | "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/234bd51d116f28379d90fdbc22b25a7356b201eb", 1969 | "reference": "234bd51d116f28379d90fdbc22b25a7356b201eb", 1970 | "shasum": "" 1971 | }, 1972 | "require": { 1973 | "php": "^7.1.3", 1974 | "symfony/contracts": "^1.0.2", 1975 | "twig/twig": "^1.41|^2.10" 1976 | }, 1977 | "conflict": { 1978 | "symfony/console": "<3.4", 1979 | "symfony/form": "<4.2.4", 1980 | "symfony/translation": "<4.2" 1981 | }, 1982 | "require-dev": { 1983 | "symfony/asset": "~3.4|~4.0", 1984 | "symfony/console": "~3.4|~4.0", 1985 | "symfony/dependency-injection": "~3.4|~4.0", 1986 | "symfony/expression-language": "~3.4|~4.0", 1987 | "symfony/finder": "~3.4|~4.0", 1988 | "symfony/form": "^4.2.4", 1989 | "symfony/http-foundation": "~3.4|~4.0", 1990 | "symfony/http-kernel": "~3.4|~4.0", 1991 | "symfony/polyfill-intl-icu": "~1.0", 1992 | "symfony/routing": "~3.4|~4.0", 1993 | "symfony/security": "~3.4|~4.0", 1994 | "symfony/security-acl": "~2.8|~3.0", 1995 | "symfony/stopwatch": "~3.4|~4.0", 1996 | "symfony/templating": "~3.4|~4.0", 1997 | "symfony/translation": "~4.2", 1998 | "symfony/var-dumper": "~3.4|~4.0", 1999 | "symfony/web-link": "~3.4|~4.0", 2000 | "symfony/workflow": "~3.4|~4.0", 2001 | "symfony/yaml": "~3.4|~4.0" 2002 | }, 2003 | "suggest": { 2004 | "symfony/asset": "For using the AssetExtension", 2005 | "symfony/expression-language": "For using the ExpressionExtension", 2006 | "symfony/finder": "", 2007 | "symfony/form": "For using the FormExtension", 2008 | "symfony/http-kernel": "For using the HttpKernelExtension", 2009 | "symfony/routing": "For using the RoutingExtension", 2010 | "symfony/security": "For using the SecurityExtension", 2011 | "symfony/stopwatch": "For using the StopwatchExtension", 2012 | "symfony/templating": "For using the TwigEngine", 2013 | "symfony/translation": "For using the TranslationExtension", 2014 | "symfony/var-dumper": "For using the DumpExtension", 2015 | "symfony/web-link": "For using the WebLinkExtension", 2016 | "symfony/yaml": "For using the YamlExtension" 2017 | }, 2018 | "type": "symfony-bridge", 2019 | "extra": { 2020 | "branch-alias": { 2021 | "dev-master": "4.2-dev" 2022 | } 2023 | }, 2024 | "autoload": { 2025 | "psr-4": { 2026 | "Symfony\\Bridge\\Twig\\": "" 2027 | }, 2028 | "exclude-from-classmap": [ 2029 | "/Tests/" 2030 | ] 2031 | }, 2032 | "notification-url": "https://packagist.org/downloads/", 2033 | "license": [ 2034 | "MIT" 2035 | ], 2036 | "authors": [ 2037 | { 2038 | "name": "Fabien Potencier", 2039 | "email": "fabien@symfony.com" 2040 | }, 2041 | { 2042 | "name": "Symfony Community", 2043 | "homepage": "https://symfony.com/contributors" 2044 | } 2045 | ], 2046 | "description": "Symfony Twig Bridge", 2047 | "homepage": "https://symfony.com", 2048 | "time": "2019-06-26T07:37:26+00:00" 2049 | }, 2050 | { 2051 | "name": "symfony/twig-bundle", 2052 | "version": "v4.2.10", 2053 | "source": { 2054 | "type": "git", 2055 | "url": "https://github.com/symfony/twig-bundle.git", 2056 | "reference": "648472323d703908dc8c7698b867c4970724b4cf" 2057 | }, 2058 | "dist": { 2059 | "type": "zip", 2060 | "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/648472323d703908dc8c7698b867c4970724b4cf", 2061 | "reference": "648472323d703908dc8c7698b867c4970724b4cf", 2062 | "shasum": "" 2063 | }, 2064 | "require": { 2065 | "php": "^7.1.3", 2066 | "symfony/config": "~4.2", 2067 | "symfony/http-foundation": "~4.1", 2068 | "symfony/http-kernel": "~4.1", 2069 | "symfony/polyfill-ctype": "~1.8", 2070 | "symfony/twig-bridge": "^4.2", 2071 | "twig/twig": "~1.41|~2.10" 2072 | }, 2073 | "conflict": { 2074 | "symfony/dependency-injection": "<4.1", 2075 | "symfony/framework-bundle": "<4.1", 2076 | "symfony/translation": "<4.2" 2077 | }, 2078 | "require-dev": { 2079 | "doctrine/annotations": "~1.0", 2080 | "doctrine/cache": "~1.0", 2081 | "symfony/asset": "~3.4|~4.0", 2082 | "symfony/dependency-injection": "^4.2.5", 2083 | "symfony/expression-language": "~3.4|~4.0", 2084 | "symfony/finder": "~3.4|~4.0", 2085 | "symfony/form": "~3.4|~4.0", 2086 | "symfony/framework-bundle": "~4.1", 2087 | "symfony/routing": "~3.4|~4.0", 2088 | "symfony/stopwatch": "~3.4|~4.0", 2089 | "symfony/templating": "~3.4|~4.0", 2090 | "symfony/translation": "^4.2", 2091 | "symfony/web-link": "~3.4|~4.0", 2092 | "symfony/yaml": "~3.4|~4.0" 2093 | }, 2094 | "type": "symfony-bundle", 2095 | "extra": { 2096 | "branch-alias": { 2097 | "dev-master": "4.2-dev" 2098 | } 2099 | }, 2100 | "autoload": { 2101 | "psr-4": { 2102 | "Symfony\\Bundle\\TwigBundle\\": "" 2103 | }, 2104 | "exclude-from-classmap": [ 2105 | "/Tests/" 2106 | ] 2107 | }, 2108 | "notification-url": "https://packagist.org/downloads/", 2109 | "license": [ 2110 | "MIT" 2111 | ], 2112 | "authors": [ 2113 | { 2114 | "name": "Fabien Potencier", 2115 | "email": "fabien@symfony.com" 2116 | }, 2117 | { 2118 | "name": "Symfony Community", 2119 | "homepage": "https://symfony.com/contributors" 2120 | } 2121 | ], 2122 | "description": "Symfony TwigBundle", 2123 | "homepage": "https://symfony.com", 2124 | "time": "2019-05-30T16:06:08+00:00" 2125 | }, 2126 | { 2127 | "name": "symfony/var-exporter", 2128 | "version": "v4.2.10", 2129 | "source": { 2130 | "type": "git", 2131 | "url": "https://github.com/symfony/var-exporter.git", 2132 | "reference": "8539c2cec7202d244058075351c61aa852ffa344" 2133 | }, 2134 | "dist": { 2135 | "type": "zip", 2136 | "url": "https://api.github.com/repos/symfony/var-exporter/zipball/8539c2cec7202d244058075351c61aa852ffa344", 2137 | "reference": "8539c2cec7202d244058075351c61aa852ffa344", 2138 | "shasum": "" 2139 | }, 2140 | "require": { 2141 | "php": "^7.1.3" 2142 | }, 2143 | "require-dev": { 2144 | "symfony/var-dumper": "^4.1.1" 2145 | }, 2146 | "type": "library", 2147 | "extra": { 2148 | "branch-alias": { 2149 | "dev-master": "4.2-dev" 2150 | } 2151 | }, 2152 | "autoload": { 2153 | "psr-4": { 2154 | "Symfony\\Component\\VarExporter\\": "" 2155 | }, 2156 | "exclude-from-classmap": [ 2157 | "/Tests/" 2158 | ] 2159 | }, 2160 | "notification-url": "https://packagist.org/downloads/", 2161 | "license": [ 2162 | "MIT" 2163 | ], 2164 | "authors": [ 2165 | { 2166 | "name": "Nicolas Grekas", 2167 | "email": "p@tchwork.com" 2168 | }, 2169 | { 2170 | "name": "Symfony Community", 2171 | "homepage": "https://symfony.com/contributors" 2172 | } 2173 | ], 2174 | "description": "A blend of var_export() + serialize() to turn any serializable data structure to plain PHP code", 2175 | "homepage": "https://symfony.com", 2176 | "keywords": [ 2177 | "clone", 2178 | "construct", 2179 | "export", 2180 | "hydrate", 2181 | "instantiate", 2182 | "serialize" 2183 | ], 2184 | "time": "2019-06-22T08:17:17+00:00" 2185 | }, 2186 | { 2187 | "name": "symfony/yaml", 2188 | "version": "v4.2.10", 2189 | "source": { 2190 | "type": "git", 2191 | "url": "https://github.com/symfony/yaml.git", 2192 | "reference": "6712daf03ee25b53abb14e7e8e0ede1a770efdb1" 2193 | }, 2194 | "dist": { 2195 | "type": "zip", 2196 | "url": "https://api.github.com/repos/symfony/yaml/zipball/6712daf03ee25b53abb14e7e8e0ede1a770efdb1", 2197 | "reference": "6712daf03ee25b53abb14e7e8e0ede1a770efdb1", 2198 | "shasum": "" 2199 | }, 2200 | "require": { 2201 | "php": "^7.1.3", 2202 | "symfony/polyfill-ctype": "~1.8" 2203 | }, 2204 | "conflict": { 2205 | "symfony/console": "<3.4" 2206 | }, 2207 | "require-dev": { 2208 | "symfony/console": "~3.4|~4.0" 2209 | }, 2210 | "suggest": { 2211 | "symfony/console": "For validating YAML files using the lint command" 2212 | }, 2213 | "type": "library", 2214 | "extra": { 2215 | "branch-alias": { 2216 | "dev-master": "4.2-dev" 2217 | } 2218 | }, 2219 | "autoload": { 2220 | "psr-4": { 2221 | "Symfony\\Component\\Yaml\\": "" 2222 | }, 2223 | "exclude-from-classmap": [ 2224 | "/Tests/" 2225 | ] 2226 | }, 2227 | "notification-url": "https://packagist.org/downloads/", 2228 | "license": [ 2229 | "MIT" 2230 | ], 2231 | "authors": [ 2232 | { 2233 | "name": "Fabien Potencier", 2234 | "email": "fabien@symfony.com" 2235 | }, 2236 | { 2237 | "name": "Symfony Community", 2238 | "homepage": "https://symfony.com/contributors" 2239 | } 2240 | ], 2241 | "description": "Symfony Yaml Component", 2242 | "homepage": "https://symfony.com", 2243 | "time": "2019-03-30T15:58:42+00:00" 2244 | }, 2245 | { 2246 | "name": "twig/twig", 2247 | "version": "v2.11.3", 2248 | "source": { 2249 | "type": "git", 2250 | "url": "https://github.com/twigphp/Twig.git", 2251 | "reference": "699ed2342557c88789a15402de5eb834dedd6792" 2252 | }, 2253 | "dist": { 2254 | "type": "zip", 2255 | "url": "https://api.github.com/repos/twigphp/Twig/zipball/699ed2342557c88789a15402de5eb834dedd6792", 2256 | "reference": "699ed2342557c88789a15402de5eb834dedd6792", 2257 | "shasum": "" 2258 | }, 2259 | "require": { 2260 | "php": "^7.0", 2261 | "symfony/polyfill-ctype": "^1.8", 2262 | "symfony/polyfill-mbstring": "^1.3" 2263 | }, 2264 | "require-dev": { 2265 | "psr/container": "^1.0", 2266 | "symfony/debug": "^2.7", 2267 | "symfony/phpunit-bridge": "^3.4.19|^4.1.8|^5.0" 2268 | }, 2269 | "type": "library", 2270 | "extra": { 2271 | "branch-alias": { 2272 | "dev-master": "2.11-dev" 2273 | } 2274 | }, 2275 | "autoload": { 2276 | "psr-0": { 2277 | "Twig_": "lib/" 2278 | }, 2279 | "psr-4": { 2280 | "Twig\\": "src/" 2281 | } 2282 | }, 2283 | "notification-url": "https://packagist.org/downloads/", 2284 | "license": [ 2285 | "BSD-3-Clause" 2286 | ], 2287 | "authors": [ 2288 | { 2289 | "name": "Fabien Potencier", 2290 | "email": "fabien@symfony.com", 2291 | "homepage": "http://fabien.potencier.org", 2292 | "role": "Lead Developer" 2293 | }, 2294 | { 2295 | "name": "Armin Ronacher", 2296 | "email": "armin.ronacher@active-4.com", 2297 | "role": "Project Founder" 2298 | }, 2299 | { 2300 | "name": "Twig Team", 2301 | "homepage": "https://twig.symfony.com/contributors", 2302 | "role": "Contributors" 2303 | } 2304 | ], 2305 | "description": "Twig, the flexible, fast, and secure template language for PHP", 2306 | "homepage": "https://twig.symfony.com", 2307 | "keywords": [ 2308 | "templating" 2309 | ], 2310 | "time": "2019-06-18T15:37:11+00:00" 2311 | } 2312 | ], 2313 | "packages-dev": [ 2314 | { 2315 | "name": "symfony/web-server-bundle", 2316 | "version": "v4.2.10", 2317 | "source": { 2318 | "type": "git", 2319 | "url": "https://github.com/symfony/web-server-bundle.git", 2320 | "reference": "91945ba7f59f2a4b4194f018da9d7aaedaf88418" 2321 | }, 2322 | "dist": { 2323 | "type": "zip", 2324 | "url": "https://api.github.com/repos/symfony/web-server-bundle/zipball/91945ba7f59f2a4b4194f018da9d7aaedaf88418", 2325 | "reference": "91945ba7f59f2a4b4194f018da9d7aaedaf88418", 2326 | "shasum": "" 2327 | }, 2328 | "require": { 2329 | "php": "^7.1.3", 2330 | "symfony/config": "~3.4|~4.0", 2331 | "symfony/console": "~3.4|~4.0", 2332 | "symfony/dependency-injection": "~3.4|~4.0", 2333 | "symfony/http-kernel": "~3.4|~4.0", 2334 | "symfony/polyfill-ctype": "~1.8", 2335 | "symfony/process": "^3.4.2|^4.0.2" 2336 | }, 2337 | "suggest": { 2338 | "symfony/expression-language": "For using the filter option of the log server.", 2339 | "symfony/monolog-bridge": "For using the log server." 2340 | }, 2341 | "type": "symfony-bundle", 2342 | "extra": { 2343 | "branch-alias": { 2344 | "dev-master": "4.2-dev" 2345 | } 2346 | }, 2347 | "autoload": { 2348 | "psr-4": { 2349 | "Symfony\\Bundle\\WebServerBundle\\": "" 2350 | }, 2351 | "exclude-from-classmap": [ 2352 | "/Tests/" 2353 | ] 2354 | }, 2355 | "notification-url": "https://packagist.org/downloads/", 2356 | "license": [ 2357 | "MIT" 2358 | ], 2359 | "authors": [ 2360 | { 2361 | "name": "Fabien Potencier", 2362 | "email": "fabien@symfony.com" 2363 | }, 2364 | { 2365 | "name": "Symfony Community", 2366 | "homepage": "https://symfony.com/contributors" 2367 | } 2368 | ], 2369 | "description": "Symfony WebServerBundle", 2370 | "homepage": "https://symfony.com", 2371 | "time": "2019-03-04T10:37:56+00:00" 2372 | } 2373 | ], 2374 | "aliases": [], 2375 | "minimum-stability": "stable", 2376 | "stability-flags": [], 2377 | "prefer-stable": false, 2378 | "prefer-lowest": false, 2379 | "platform": { 2380 | "php": "^7.3.0", 2381 | "ext-curl": "*", 2382 | "ext-iconv": "*", 2383 | "ext-json": "*" 2384 | }, 2385 | "platform-dev": [] 2386 | } 2387 | -------------------------------------------------------------------------------- /config/bootstrap.php: -------------------------------------------------------------------------------- 1 | =1.2) 9 | if (is_array($env = @include dirname(__DIR__).'/.env.local.php')) { 10 | $_SERVER += $env; 11 | $_ENV += $env; 12 | } elseif (!class_exists(Dotenv::class)) { 13 | throw new RuntimeException('Please run "composer require symfony/dotenv" to load the ".env" files configuring the application.'); 14 | } else { 15 | // load all the .env files 16 | (new Dotenv())->loadEnv(dirname(__DIR__).'/.env'); 17 | } 18 | 19 | $_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? null) ?: 'dev'; 20 | $_SERVER['APP_DEBUG'] = $_SERVER['APP_DEBUG'] ?? $_ENV['APP_DEBUG'] ?? 'prod' !== $_SERVER['APP_ENV']; 21 | $_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = (int) $_SERVER['APP_DEBUG'] || filter_var($_SERVER['APP_DEBUG'], FILTER_VALIDATE_BOOLEAN) ? '1' : '0'; 22 | -------------------------------------------------------------------------------- /config/bundles.php: -------------------------------------------------------------------------------- 1 | ['all' => true], 5 | Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true], 6 | Symfony\Bundle\WebServerBundle\WebServerBundle::class => ['dev' => true], 7 | ]; 8 | -------------------------------------------------------------------------------- /config/packages/cache.yaml: -------------------------------------------------------------------------------- 1 | framework: 2 | cache: 3 | # Put the unique name of your app here: the prefix seed 4 | # is used to compute stable namespaces for cache keys. 5 | #prefix_seed: your_vendor_name/app_name 6 | 7 | # The app cache caches to the filesystem by default. 8 | # Other options include: 9 | 10 | # Redis 11 | #app: cache.adapter.redis 12 | #default_redis_provider: redis://localhost 13 | 14 | # APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues) 15 | #app: cache.adapter.apcu 16 | 17 | # Namespaced pools use the above "app" backend by default 18 | #pools: 19 | #my.dedicated.cache: ~ 20 | -------------------------------------------------------------------------------- /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: true 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 | cookie_secure: auto 12 | cookie_samesite: lax 13 | 14 | #esi: true 15 | #fragments: true 16 | php_errors: 17 | log: true 18 | -------------------------------------------------------------------------------- /config/packages/routing.yaml: -------------------------------------------------------------------------------- 1 | framework: 2 | router: 3 | strict_requirements: ~ 4 | utf8: true 5 | -------------------------------------------------------------------------------- /config/packages/test/framework.yaml: -------------------------------------------------------------------------------- 1 | framework: 2 | test: true 3 | session: 4 | storage_id: session.storage.mock_file 5 | -------------------------------------------------------------------------------- /config/packages/test/routing.yaml: -------------------------------------------------------------------------------- 1 | framework: 2 | router: 3 | strict_requirements: true 4 | -------------------------------------------------------------------------------- /config/packages/twig.yaml: -------------------------------------------------------------------------------- 1 | twig: 2 | default_path: '%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\HomeController::index 4 | -------------------------------------------------------------------------------- /config/routes/dev/twig.yaml: -------------------------------------------------------------------------------- 1 | _errors: 2 | resource: '@TwigBundle/Resources/config/routing/errors.xml' 3 | prefix: /_error 4 | -------------------------------------------------------------------------------- /config/services.yaml: -------------------------------------------------------------------------------- 1 | # This file is the entry point to configure your own services. 2 | # Files in the packages/ subdirectory configure your dependencies. 3 | 4 | # Put parameters here that don't need to change on each machine where the app is deployed 5 | # https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration 6 | parameters: 7 | 8 | services: 9 | # default configuration for services in *this* file 10 | _defaults: 11 | autowire: true # Automatically injects dependencies in your services. 12 | autoconfigure: true # Automatically registers your services as commands, event subscribers, etc. 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/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}' 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 | handle($request); 26 | $response->send(); 27 | $kernel->terminate($request, $response); 28 | -------------------------------------------------------------------------------- /src/Controller/HomeController.php: -------------------------------------------------------------------------------- 1 | render('hello.html.twig'); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Kernel.php: -------------------------------------------------------------------------------- 1 | getProjectDir().'/config/bundles.php'; 21 | foreach ($contents as $class => $envs) { 22 | if ($envs[$this->environment] ?? $envs['all'] ?? false) { 23 | yield new $class(); 24 | } 25 | } 26 | } 27 | 28 | public function getLogDir() 29 | { 30 | // When on the lambda only /tmp is writeable 31 | if (getenv('LAMBDA_TASK_ROOT') !== false) { 32 | return '/tmp/log/'; 33 | } 34 | 35 | return $this->getProjectDir().'/var/log'; 36 | } 37 | 38 | public function getCacheDir() 39 | { 40 | // When on the lambda only /tmp is writeable 41 | if (getenv('LAMBDA_TASK_ROOT') !== false) { 42 | return '/tmp/cache/'.$this->environment; 43 | } 44 | 45 | return $this->getProjectDir().'/var/cache/'.$this->environment; 46 | } 47 | 48 | protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader) 49 | { 50 | $container->addResource(new FileResource($this->getProjectDir().'/config/bundles.php')); 51 | $container->setParameter('container.dumper.inline_class_loader', true); 52 | $confDir = $this->getProjectDir().'/config'; 53 | 54 | $loader->load($confDir.'/{packages}/*'.self::CONFIG_EXTS, 'glob'); 55 | $loader->load($confDir.'/{packages}/'.$this->environment.'/**/*'.self::CONFIG_EXTS, 'glob'); 56 | $loader->load($confDir.'/{services}'.self::CONFIG_EXTS, 'glob'); 57 | $loader->load($confDir.'/{services}_'.$this->environment.self::CONFIG_EXTS, 'glob'); 58 | } 59 | 60 | protected function configureRoutes(RouteCollectionBuilder $routes) 61 | { 62 | $confDir = $this->getProjectDir().'/config'; 63 | 64 | $routes->import($confDir.'/{routes}/*'.self::CONFIG_EXTS, '/', 'glob'); 65 | $routes->import($confDir.'/{routes}/'.$this->environment.'/**/*'.self::CONFIG_EXTS, '/', 'glob'); 66 | $routes->import($confDir.'/{routes}'.self::CONFIG_EXTS, '/', 'glob'); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /symfony.lock: -------------------------------------------------------------------------------- 1 | { 2 | "aws/aws-sdk-php": { 3 | "version": "3.87.2" 4 | }, 5 | "bref/bref": { 6 | "version": "0.4.1" 7 | }, 8 | "guzzlehttp/guzzle": { 9 | "version": "6.3.3" 10 | }, 11 | "guzzlehttp/promises": { 12 | "version": "v1.3.1" 13 | }, 14 | "guzzlehttp/psr7": { 15 | "version": "1.5.2" 16 | }, 17 | "hollodotme/fast-cgi-client": { 18 | "version": "v2.7.2" 19 | }, 20 | "mnapoli/silly": { 21 | "version": "1.7.1" 22 | }, 23 | "mtdowling/jmespath.php": { 24 | "version": "2.4.0" 25 | }, 26 | "php-di/invoker": { 27 | "version": "2.0.0" 28 | }, 29 | "psr/cache": { 30 | "version": "1.0.1" 31 | }, 32 | "psr/container": { 33 | "version": "1.0.0" 34 | }, 35 | "psr/http-message": { 36 | "version": "1.0.1" 37 | }, 38 | "psr/log": { 39 | "version": "1.1.0" 40 | }, 41 | "psr/simple-cache": { 42 | "version": "1.0.1" 43 | }, 44 | "ralouphie/getallheaders": { 45 | "version": "2.0.5" 46 | }, 47 | "symfony/cache": { 48 | "version": "v4.2.2" 49 | }, 50 | "symfony/config": { 51 | "version": "v4.2.2" 52 | }, 53 | "symfony/console": { 54 | "version": "3.3", 55 | "recipe": { 56 | "repo": "github.com/symfony/recipes", 57 | "branch": "master", 58 | "version": "3.3", 59 | "ref": "0fa049c19069a65f52c1c181d64be3de672c1504" 60 | } 61 | }, 62 | "symfony/contracts": { 63 | "version": "v1.0.2" 64 | }, 65 | "symfony/debug": { 66 | "version": "v4.2.2" 67 | }, 68 | "symfony/dependency-injection": { 69 | "version": "v4.2.2" 70 | }, 71 | "symfony/dotenv": { 72 | "version": "v4.2.2" 73 | }, 74 | "symfony/event-dispatcher": { 75 | "version": "v4.2.2" 76 | }, 77 | "symfony/filesystem": { 78 | "version": "v4.2.2" 79 | }, 80 | "symfony/finder": { 81 | "version": "v4.2.2" 82 | }, 83 | "symfony/flex": { 84 | "version": "1.0", 85 | "recipe": { 86 | "repo": "github.com/symfony/recipes", 87 | "branch": "master", 88 | "version": "1.0", 89 | "ref": "dc3fc2e0334a4137c47cfd5a3ececc601fa61a0b" 90 | } 91 | }, 92 | "symfony/framework-bundle": { 93 | "version": "4.2", 94 | "recipe": { 95 | "repo": "github.com/symfony/recipes", 96 | "branch": "master", 97 | "version": "4.2", 98 | "ref": "5bb3a8c27df824d195fa68bb635d074854f8498f" 99 | } 100 | }, 101 | "symfony/http-foundation": { 102 | "version": "v4.2.2" 103 | }, 104 | "symfony/http-kernel": { 105 | "version": "v4.2.2" 106 | }, 107 | "symfony/polyfill-mbstring": { 108 | "version": "v1.10.0" 109 | }, 110 | "symfony/process": { 111 | "version": "v4.2.2" 112 | }, 113 | "symfony/routing": { 114 | "version": "4.2", 115 | "recipe": { 116 | "repo": "github.com/symfony/recipes", 117 | "branch": "master", 118 | "version": "4.2", 119 | "ref": "5374e24d508ba8fd6ba9eb15170255fdb778316a" 120 | } 121 | }, 122 | "symfony/twig-bridge": { 123 | "version": "4.3-dev" 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": "369b5b29dc52b2c190002825ae7ec24ab6f962dd" 132 | } 133 | }, 134 | "symfony/var-exporter": { 135 | "version": "v4.2.2" 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": "dae9b39fd6717970be7601101ce5aa960bf53d9a" 144 | } 145 | }, 146 | "symfony/yaml": { 147 | "version": "v4.2.2" 148 | }, 149 | "twig/twig": { 150 | "version": "2.x-dev" 151 | } 152 | } 153 | -------------------------------------------------------------------------------- /template.yaml: -------------------------------------------------------------------------------- 1 | AWSTemplateFormatVersion: '2010-09-09' 2 | Transform: AWS::Serverless-2016-10-31 3 | Description: 'Bref Symfony demo' 4 | 5 | # More info about Globals: https://github.com/awslabs/serverless-application-model/blob/master/docs/globals.rst 6 | Globals: 7 | Function: 8 | Environment: 9 | Variables: 10 | APP_ENV: prod 11 | # Those tags are specific to Bref, you can remove them from your application 12 | Tags: 13 | Bref: Bref 14 | app: Bref Symfony demo 15 | 16 | Resources: 17 | Website: 18 | # See https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction 19 | Type: AWS::Serverless::Function 20 | Properties: 21 | FunctionName: 'bref-demo-symfony-website' 22 | Description: 'Bref Symfony demo website' 23 | CodeUri: . 24 | Handler: public/index.php 25 | Timeout: 30 # in seconds (API Gateway has a timeout of 30 seconds) 26 | MemorySize: 1024 27 | Runtime: provided 28 | Layers: 29 | - 'arn:aws:lambda:us-east-1:209497400698:layer:php-73-fpm:7' 30 | Events: 31 | HttpRoot: 32 | Type: Api 33 | Properties: 34 | Path: / 35 | Method: ANY 36 | HttpSubPaths: 37 | Type: Api 38 | Properties: 39 | Path: /{proxy+} 40 | Method: ANY 41 | 42 | Console: 43 | Type: AWS::Serverless::Function 44 | Properties: 45 | FunctionName: 'bref-demo-symfony-console' 46 | Description: 'Bref Symfony demo console' 47 | CodeUri: . 48 | Handler: bin/console 49 | Timeout: 120 # in seconds 50 | Runtime: provided 51 | Layers: 52 | - 'arn:aws:lambda:us-east-1:209497400698:layer:php-73:7' # PHP 53 | - 'arn:aws:lambda:us-east-1:209497400698:layer:console:7' # The "console" layer 54 | 55 | Outputs: 56 | DemoApi: 57 | Description: "API Gateway endpoint URL for Prod stage" 58 | Value: !Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/" 59 | -------------------------------------------------------------------------------- /templates/base.html.twig: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |42 | 43 | 44 | Your application is now ready. You can start working on it. 45 |
46 |51 | 66 | 67 | Read the documentation to learn 68 | 69 | How to create your first page in Symfony 70 | 71 |
72 |