diff --git a/.env b/.env index f6dee7a..4428b88 100644 --- a/.env +++ b/.env @@ -1,8 +1,15 @@ COMPOSE_PROJECT_NAME=chess + APP_DOMAIN=chess.docker.localhost +APP_ENV=dev +APP_SECRET=7999e56579868c9867c8418da37e2160 + DATABASE_HOST=mysql DATABASE_PORT=3306 DATABASE_NAME=chess DATABASE_USER=chessguy +DATABASE_URL=mysql://chessguy:Awes0meP4A55W0rd@mysql:3306/chess DATABASE_PASSWORD=Awes0meP4A55W0rd -DATABASE_ROOT_PASSWORD=admin \ No newline at end of file +DATABASE_ROOT_PASSWORD=admin + +MAILER_URL=null://localhost \ No newline at end of file diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..112862f --- /dev/null +++ b/.env.example @@ -0,0 +1,15 @@ +COMPOSE_PROJECT_NAME=chess + +APP_DOMAIN=chess.docker.localhost +APP_ENV=dev +APP_SECRET=7999e56579868c9867c8418da37e2160 + +DATABASE_HOST=mysql +DATABASE_PORT=3306 +DATABASE_NAME=chess +DATABASE_USER=chessguy +DATABASE_URL=mysql://db_user:db_password@127.0.0.1:3306/db_name +DATABASE_PASSWORD=Awes0meP4A55W0rd +DATABASE_ROOT_PASSWORD=admin + +MAILER_URL=null://localhost diff --git a/.env.test b/.env.test new file mode 100644 index 0000000..d048686 --- /dev/null +++ b/.env.test @@ -0,0 +1,5 @@ +# define your env variables for the test env here +KERNEL_CLASS='App\Kernel' +APP_SECRET='$ecretf0rt3st' +SYMFONY_DEPRECATIONS_HELPER=999999 +PANTHER_APP_ENV=panther diff --git a/.gitignore b/.gitignore index 08362c3..7c4ee9d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,28 @@ # Created by .ignore support plugin (hsz.mobi) ### Example user template template ### Example user template - -# IntelliJ project files -.idea *.iml out gen -.infra/docker/nginx/default.conf \ No newline at end of file +.infra/docker/nginx/default.conf + +###> symfony/framework-bundle ### +/.env.local +/.env.local.php +/.env.*.local +/public/bundles/ +/var/ +/vendor/ +###< symfony/framework-bundle ### + +###> symfony/phpunit-bridge ### +.phpunit +.phpunit.result.cache +/phpunit.xml +###< symfony/phpunit-bridge ### +.idea/ +###> symfony/web-server-bundle ### +/.web-server-pid +###< symfony/web-server-bundle ### +*.log +composer.lock \ No newline at end of file diff --git a/.infra/docker/nginx/chess.template b/.infra/docker/nginx/chess.template index 2e47fc1..f5e7ace 100755 --- a/.infra/docker/nginx/chess.template +++ b/.infra/docker/nginx/chess.template @@ -1,6 +1,7 @@ + server { server_name ${NGINX_SERVERNAME}; - root ${NGINX_ROOTDIR}; + root ${NGINX_ROOTDIR}/public; index index.php; location ~ \.php$ { @@ -13,7 +14,11 @@ server { #internal; } + location / { + # try to serve file directly, fallback to index.php + try_files $uri /index.php$is_args$args; + } # return 404 for all other php files not matching the front controller # this prevents access to other php files you don't want to be accessible. -} +} \ No newline at end of file diff --git a/ChessBoard.php b/ChessBoard.php deleted file mode 100644 index 807962a..0000000 --- a/ChessBoard.php +++ /dev/null @@ -1,166 +0,0 @@ -$name; - } - - public function __set($name, $value) - { - $this->$name = $value; - } - - //constructor - public function __construct() - { - $this->correspondance["a"] = 0; - $this->correspondance["b"] = 1; - $this->correspondance["c"] = 2; - $this->correspondance["d"] = 3; - $this->correspondance["e"] = 4; - $this->correspondance["f"] = 5; - $this->correspondance["g"] = 6; - $this->correspondance["h"] = 7; - - for ($i = 0; $i < $this->height; $i++) - { - - for ($j = 0; $j < $this->length; $j++) - { - switch ($i) - { - case 0: - switch ($j) - { - case 0: - $this->board[$i][$j] = new Tower($i, $j, "White", TRUE); - break; - case 1: - $this->board[$i][$j] = new Knight($i, $j, "White", TRUE); - break; - case 2: - $this->board[$i][$j] = new Bishop($i, $j, "White", TRUE); - break; - case 3: - $this->board[$i][$j] = new Queen($i, $j, "White", TRUE); - break; - case 4: - $this->board[$i][$j] = new King($i, $j, "White", TRUE); - break; - case 5: - $this->board[$i][$j] = new Bishop($i, $j, "White", TRUE); - break; - case 6: - $this->board[$i][$j] = new Knight($i, $j, "White", TRUE); - break; - case 7: - $this->board[$i][$j] = new Tower($i, $j, "White", TRUE); - break; - } - break; - case 1: - $this->board[$i][$j] = new Pawn ($i, $j, "White", true); - break; - case 6: - $this->board[$i][$j] = new Pawn($i, $j, "Black", TRUE); - break; - case 7: - switch ($j) - { - case 0: - $this->board[$i][$j] = new Tower($i, $j, "Black", TRUE); - break; - case 1: - $this->board[$i][$j] = new Knight($i, $j, "Black", TRUE); - break; - case 2: - $this->board[$i][$j] = new Bishop($i, $j, "Black", TRUE); - break; - case 3: - $this->board[$i][$j] = new Queen($i, $j, "Black", TRUE); - break; - case 4: - $this->board[$i][$j] = new King($i, $j, "Black", TRUE); - break; - case 5: - $this->board[$i][$j] = new Bishop($i, $j, "Black", TRUE); - break; - case 6: - $this->board[$i][$j] = new Knight($i, $j, "Black", TRUE); - break; - case 7: - $this->board[$i][$j] = new Tower($i, $j, "Black", TRUE); - break; - } - break; - default : - $this->board[$i][$j] = new None($i, $j, "", FALSE); - break; - } - } - } - } - - public function is_valid ($from, $to) - { - if ($this->board[$this->correspondance[$from[0]]][$from[1]] != "-") - { - if ($this->board[$this->correspondance[$from[0]]][$from[1]]->check ($to) == true) - { - return true; - } - else - return false; - } - return false; - } - - - public function display () - { - for ($i = 0; $i < $this->height; $i++) - { - echo "|" ; - for ($j = 0; $j < $this->length; $j++) - { - echo $this->board[$i][$j]->display()."|"; - } - echo "
"; - } - } - - public static function get_instance () - { - if (isset (self::$instance)) - { - return (self::$instance); - } - return new ChessBoard (); - } -} -?> diff --git a/Knight.php b/Knight.php deleted file mode 100644 index 80ef805..0000000 --- a/Knight.php +++ /dev/null @@ -1,185 +0,0 @@ -pos_x = $y; - $this->pos_y = $x; - $this->color = $color; - $this->alive = $alive; - $this->type = "N"; - } - - //getter setter - - public function __get($name) - { - return $this->$name; - } - - public function __set($name, $value) - { - $this->$name = $value; - } - - - - public function eat () - { - - } - - public function display() - { - if ($this->color == "White") - echo "Nw"; - else - echo "Nb"; - } - - - - public function check($from, $to) - { - $board = $_SESSION["chessboard"]; - $cpt = 0; - $px = $from; - $py = $to; - $tabres = array(0); - - if (($px + 1 < 8) && ($py + 2 < 8) && (($board->board[$py + 2][$px + 1]->type == "-") || ($board->board[$py + 2][$px + 1]->color != $board->board[$to][$from]->color))) - { - $px++; - $py += 2; - $tabres[$cpt] = $px; - $cpt++; - $tabres[$cpt] = $py; - $cpt++; - } - - $px = $from; - $py = $to; - - if (($px - 1 >= 0) && ($py + 2 < 8) && (($board->board[$py + 2][$px - 1]->type == "-") || ($board->board[$py + 2][$px - 1]->color != $board->board[$to][$from]->color))) - { - $px--; - $py += 2; - $tabres[$cpt] = $px; - $cpt++; - $tabres[$cpt] = $py; - $cpt++; - - } - - $px = $from; - $py = $to; - - if (($px - 2 >= 0) && ($py + 1 < 8 ) && (($board->board[$py + 1][$px - 2]->type == "-") || ($board->board[$py + 1][$px - 2]->color != $board->board[$to][$from]->color))) - { - $px -= 2; - $py++; - $tabres[$cpt] = $px; - $cpt++; - $tabres[$cpt] = $py; - $cpt++; - } - - $px = $from; - $py = $to; - - if (($px - 2 >= 0) && ($py - 1 >= 0) && (($board->board[$py - 1][$px - 2]->type == "-") || ($board->board[$py - 1][$px - 2]->color != $board->board[$to][$from]->color))) - { - $px -= 2; - $py--; - $tabres[$cpt] = $px; - $cpt++; - $tabres[$cpt] = $py; - $cpt++; - } - - - - $px = $from; - $py = $to; - - if (($px + 1 < 8) && ($py - 2 >= 0) && (($board->board[$py - 2][$px + 1]->type == "-") || ($board->board[$py - 2][$px + 1]->color != $board->board[$to][$from]->color))) - { - $px++; - $py -= 2; - $tabres[$cpt] = $px; - $cpt++; - $tabres[$cpt] = $py; - $cpt++; - } - - $px = $from; - $py = $to; - - if (($px - 1 >= 0) && ($py - 2 >= 0) && (($board->board[$py - 2][$px - 1]->type == "-") || ($board->board[$py - 2][$px - 1]->color != $board->board[$to][$from]->color))) - { - $px--; - $py -= 2; - $tabres[$cpt] = $px; - $cpt++; - $tabres[$cpt] = $py; - $cpt++; - } - - $px = $from; - $py = $to; - - if (($px + 2 < 8) && ($py - 1 >= 0) && (($board->board[$py - 1][$px + 2]->type == "-") || ($board->board[$py - 1][$px + 2]->color != $board->board[$to][$from]->color))) - { - $px += 2; - $py--; - $tabres[$cpt] = $px; - $cpt++; - $tabres[$cpt] = $py; - $cpt++; - } - - $px = $from; - $py = $to; - - if (($px + 2 < 8) && ($py + 1 < 8) && (($board->board[$py + 1][$px + 2]->type == "-") ||($board->board[$py + 1][$px + 2]->color != $board->board[$to][$from]->color))) - { - $px += 2; - $py++; - $tabres[$cpt] = $px; - $cpt++; - $tabres[$cpt] = $py; - $cpt++; - } - - return $tabres; - } - - public function move($fromx, $fromy, $tox, $toy) - { - $chess = $_SESSION["chessboard"]; - $tab = array (0); - $board = $chess->board; - $board[$toy][$tox] = $chess->board[$fromy][$fromx]; - $board[$fromy][$fromx] = new None($fromy, $fromx, "", FALSE); - - $tab[0]=$tox; - $tab[1]=$toy; - $tab[2]=$board[$toy][$tox]->type; - $chess->board = $board; - $_SESSION["chessboard"] = $chess; - return $tab; - } -} - -?> diff --git a/Pawn.php b/Pawn.php deleted file mode 100644 index 1b091a8..0000000 --- a/Pawn.php +++ /dev/null @@ -1,210 +0,0 @@ -pos_x = $y; - $this->pos_y = $x; - $this->color = $color; - $this->alive = $alive; - $this->first = 0; - $this->type = "P"; - } - - //getter setter - - public function __get($name) - { - return $this->$name; - } - - public function __set($name, $value) - { - $this->$name = $value; - } - - - - public function eat () - { - - } - - public function display() - { - if ($this->color == "White") - echo "Pw"; - else - echo "Pb"; - } - - public function check($from,$to) - { - - $_SESSION["pawn"] = $this; - $chessboard = $_SESSION["chessboard"]; - $cpt = 0; - $array = array (0); - if ($_SESSION["player"] % 2 == 0) - { - if ($this->first == 0 ) - { - $this->first++; - if (((($to+1) < 8) && ($from - 1 >= 0)) && $chessboard->board[$to+1][$from-1]->type != "-" && ($chessboard->board[$to + 1][$from - 1]->color != $chessboard->board[$to][$from]->color)) - { - $array[$cpt] = $from - 1; - $cpt++; - $array[$cpt] = $to + 1; - $cpt++; - } - if (((($to+1) < 8) && ($from < 8)) &&$chessboard->board[$to+1][$from]->type == "-") - { - $array[$cpt] = $from; - $cpt++; - $array[$cpt] = $to + 1; - $cpt++; - } - if (((($to+1) < 8) && ($to+2 < 8) && ($from < 8)) &&$chessboard->board[$to+2][$from]->type == "-") - { - $array[$cpt] = $from; - $cpt++; - $array[$cpt] = $to + 2; - $cpt++; - } - if (((($to+1) < 8) && ($from + 1 < 8)) && $chessboard->board[$to+1][$from + 1]->type != "-" && ($chessboard->board[$to + 1][$from + 1]->color != $chessboard->board[$to][$from]->color)) - { - $array[$cpt] = $from + 1; - $cpt++; - $array[$cpt] = $to + 1; - $cpt++; - } - - } - else - { - if (((($to+1) < 8) && ($from - 1 >= 0)) && $chessboard->board[$to+1][$from-1]->type != "-" && ($chessboard->board[$to + 1][$from - 1]->color != $chessboard->board[$to][$from]->color)) - { - $array[$cpt] = $from - 1; - $cpt++; - $array[$cpt] = $to + 1; - $cpt++; - } - if (((($to+1) < 8) && ($from< 8)) &&$chessboard->board[$to+1][$from]->type == "-") - { - $array[$cpt] = $from; - $cpt++; - $array[$cpt] = $to + 1; - $cpt++; - } - if (((($to+1) < 8) && ($from + 1 < 8)) && $chessboard->board[$to+1][$from + 1]->type != "-" && ($chessboard->board[$to + 1][$from + 1]->color != $chessboard->board[$to][$from]->color)) - { - $array[$cpt] = $from + 1; - $cpt++; - $array[$cpt] = $to + 1; - $cpt++; - } - } - - return ($array); - } - else - { - if ($this->first == 0 ) - { - $this->first++; - if (((($to-1) >= 0) && ($from - 1 >= 0)) && $chessboard->board[$to-1][$from-1]->type != "-" && ($chessboard->board[$to - 1][$from - 1]->color != $chessboard->board[$to][$from]->color)) - { - $array[$cpt] = $from - 1; - $cpt++; - $array[$cpt] = $to - 1; - $cpt++; - } - if (((($to-1) >= 0) && ($from < 8)) &&$chessboard->board[$to-1][$from]->type == "-") - { - $array[$cpt] = $from; - $cpt++; - $array[$cpt] = $to - 1; - $cpt++; - } - if (((($to-1) >= 0) && ($to-2 >= 0) && ($from < 8)) &&$chessboard->board[$to-2][$from]->type == "-") - { - $array[$cpt] = $from; - $cpt++; - $array[$cpt] = $to - 2; - $cpt++; - } - if (((($to-1) >= 0) && ($from + 1 < 8)) && $chessboard->board[$to - 1][$from + 1]->type != "-" && ($chessboard->board[$to - 1][$from + 1]->color != $chessboard->board[$to][$from]->color)) - { - $array[$cpt] = $from + 1; - $cpt++; - $array[$cpt] = $to - 1; - $cpt++; - } - - } - else - { - if (((($to-1) >= 0) && ($from - 1 >= 0)) && $chessboard->board[$to-1][$from-1]->type != "-" && ($chessboard->board[$to - 1][$from - 1]->color != $chessboard->board[$to][$from]->color)) - { - $array[$cpt] = $from - 1; - $cpt++; - $array[$cpt] = $to - 1; - $cpt++; - } - if (((($to-1) >= 0) && ($from < 8)) &&$chessboard->board[$to-1][$from]->type == "-") - { - $array[$cpt] = $from; - $cpt++; - $array[$cpt] = $to - 1; - $cpt++; - } - if (((($to-1) >= 0) && ($from + 1 < 8)) && $chessboard->board[$to - 1][$from + 1]->type != "-" && ($chessboard->board[$to - 1][$from + 1]->color != $chessboard->board[$to][$from]->color)) - { - $array[$cpt] = $from + 1; - $cpt++; - $array[$cpt] = $to - 1; - $cpt++; - } - } - - return ($array); - } - } - - public function move($fromx, $fromy, $tox, $toy) - { - echo "dans move"; - $chess = $_SESSION["chessboard"]; - $tab = array (0); - $board = $chess->board; - $board[$toy][$tox] = $chess->board[$fromy][$fromx]; - $board[$fromy][$fromx] = new None($fromx, $fromy, "", FALSE); - - $tab[0]=$tox; - $tab[1]=$toy; - $tab[2]=$board[$toy][$tox]->type; - - - echo"pre". $tab[0]; - echo "deux".$tab[1]; - echo "piece".$tab[2]; - $chess->board = $board; - $_SESSION["chessboard"] = $chess; - return $tab; - } -} - -?> diff --git a/Piece.php b/Piece.php deleted file mode 100644 index 2d4566f..0000000 --- a/Piece.php +++ /dev/null @@ -1,29 +0,0 @@ - diff --git a/ajax.php b/ajax.php deleted file mode 100644 index ec5ff21..0000000 --- a/ajax.php +++ /dev/null @@ -1,81 +0,0 @@ -board[$y][$x]->type != "-") - { - $tab = $test->board[$y][$x]->check($x, $y); - } - elseif ($test->board[$y][$x]->type == "-" || $test->board[$y][$x]->color == "Black") - { - for ($i = 0; $i < sizeof($_SESSION["ancient"]); $i++) - { - if ($i % 2 == 0) - { - if ($_SESSION["ancient"][$i] == $x) - { - if ($_SESSION["ancient"][$i + 1] == $y) - { - $tab = $test->board[$y][$x]->move($_SESSION["ax"], $_SESSION["ay"], $x, $y); - $_SESSION["player"]++; - break; - } - } - } - - } - } - } - elseif (($_SESSION["player"] % 2 == 1)) - { - if ($test->board[$y][$x]->type != "-") - { - $tab = $test->board[$y][$x]->check($x, $y); - } - elseif ($test->board[$y][$x]->type == "-" || $test->board[$y][$x]->color == "White") - { - for ($i = 0; $i < sizeof($_SESSION["ancient"]); $i++) - { - if ($i % 2 == 0) - { - if ($_SESSION["ancient"][$i] == $x) - { - if ($_SESSION["ancient"][$i + 1] == $y) - { - $tab = $test->board[$y][$x]->move($_SESSION["ax"], $_SESSION["ay"], $x, $y); - $_SESSION["player"]++; - break; - } - } - } - - } - } - } - - $ancient = $tab; - $_SESSION["ancient"] = $ancient; - $_SESSION["ax"] = $x; - $_SESSION["ay"] = $y; - $my_encode_array = json_encode($tab); - - echo $my_encode_array; -?> diff --git a/bin/console b/bin/console new file mode 100755 index 0000000..19c2f6c --- /dev/null +++ b/bin/console @@ -0,0 +1,42 @@ +#!/usr/bin/env php +getParameterOption(['--env', '-e'], null, true)) { + putenv('APP_ENV='.$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = $env); +} + +if ($input->hasParameterOption('--no-debug', true)) { + putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0'); +} + +require dirname(__DIR__).'/config/bootstrap.php'; + +if ($_SERVER['APP_DEBUG']) { + umask(0000); + + if (class_exists(Debug::class)) { + Debug::enable(); + } +} + +$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']); +$application = new Application($kernel); +$application->run($input); diff --git a/bin/phpunit b/bin/phpunit new file mode 100755 index 0000000..4d1ed05 --- /dev/null +++ b/bin/phpunit @@ -0,0 +1,13 @@ +#!/usr/bin/env php +2.2,<2.4" + }, + "require-dev": { + "alcaeus/mongo-php-adapter": "^1.1", + "doctrine/coding-standard": "^4.0", + "mongodb/mongodb": "^1.1", + "phpunit/phpunit": "^7.0", + "predis/predis": "~1.0" + }, + "suggest": { + "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.8.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Caching library offering an object-oriented API for many cache backends", + "homepage": "https://www.doctrine-project.org", + "keywords": [ + "cache", + "caching" + ], + "time": "2018-08-21T18:01:43+00:00" + }, + { + "name": "doctrine/collections", + "version": "v1.6.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/collections.git", + "reference": "c5e0bc17b1620e97c968ac409acbff28b8b850be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/collections/zipball/c5e0bc17b1620e97c968ac409acbff28b8b850be", + "reference": "c5e0bc17b1620e97c968ac409acbff28b8b850be", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan-shim": "^0.9.2", + "phpunit/phpunit": "^7.0", + "vimeo/psalm": "^3.2.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.6.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.", + "homepage": "https://www.doctrine-project.org/projects/collections.html", + "keywords": [ + "array", + "collections", + "iterators", + "php" + ], + "time": "2019-06-09T13:48:14+00:00" + }, + { + "name": "doctrine/common", + "version": "v2.11.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/common.git", + "reference": "b8ca1dcf6b0dc8a2af7a09baac8d0c48345df4ff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/common/zipball/b8ca1dcf6b0dc8a2af7a09baac8d0c48345df4ff", + "reference": "b8ca1dcf6b0dc8a2af7a09baac8d0c48345df4ff", + "shasum": "" + }, + "require": { + "doctrine/annotations": "^1.0", + "doctrine/cache": "^1.0", + "doctrine/collections": "^1.0", + "doctrine/event-manager": "^1.0", + "doctrine/inflector": "^1.0", + "doctrine/lexer": "^1.0", + "doctrine/persistence": "^1.1", + "doctrine/reflection": "^1.0", + "php": "^7.1" + }, + "require-dev": { + "doctrine/coding-standard": "^1.0", + "phpstan/phpstan": "^0.11", + "phpstan/phpstan-phpunit": "^0.11", + "phpunit/phpunit": "^7.0", + "squizlabs/php_codesniffer": "^3.0", + "symfony/phpunit-bridge": "^4.0.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.11.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, persistence interfaces, proxies, event system and much more.", + "homepage": "https://www.doctrine-project.org/projects/common.html", + "keywords": [ + "common", + "doctrine", + "php" + ], + "time": "2019-09-10T10:10:14+00:00" + }, + { + "name": "doctrine/dbal", + "version": "v2.9.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/dbal.git", + "reference": "22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9", + "reference": "22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9", + "shasum": "" + }, + "require": { + "doctrine/cache": "^1.0", + "doctrine/event-manager": "^1.0", + "ext-pdo": "*", + "php": "^7.1" + }, + "require-dev": { + "doctrine/coding-standard": "^5.0", + "jetbrains/phpstorm-stubs": "^2018.1.2", + "phpstan/phpstan": "^0.10.1", + "phpunit/phpunit": "^7.4", + "symfony/console": "^2.0.5|^3.0|^4.0", + "symfony/phpunit-bridge": "^3.4.5|^4.0.5" + }, + "suggest": { + "symfony/console": "For helpful console commands such as SQL execution and import of files." + }, + "bin": [ + "bin/doctrine-dbal" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.9.x-dev", + "dev-develop": "3.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\DBAL\\": "lib/Doctrine/DBAL" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + } + ], + "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", + "homepage": "https://www.doctrine-project.org/projects/dbal.html", + "keywords": [ + "abstraction", + "database", + "dbal", + "mysql", + "persistence", + "pgsql", + "php", + "queryobject" + ], + "time": "2018-12-31T03:27:51+00:00" + }, + { + "name": "doctrine/doctrine-bundle", + "version": "1.11.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/DoctrineBundle.git", + "reference": "28101e20776d8fa20a00b54947fbae2db0d09103" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/28101e20776d8fa20a00b54947fbae2db0d09103", + "reference": "28101e20776d8fa20a00b54947fbae2db0d09103", + "shasum": "" + }, + "require": { + "doctrine/dbal": "^2.5.12", + "doctrine/doctrine-cache-bundle": "~1.2", + "jdorn/sql-formatter": "^1.2.16", + "php": "^7.1", + "symfony/config": "^3.4|^4.1", + "symfony/console": "^3.4|^4.1", + "symfony/dependency-injection": "^3.4|^4.1", + "symfony/doctrine-bridge": "^3.4|^4.1", + "symfony/framework-bundle": "^3.4|^4.1" + }, + "conflict": { + "doctrine/orm": "<2.6", + "twig/twig": "<1.34|>=2.0,<2.4" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "doctrine/orm": "^2.6", + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "7.0", + "symfony/cache": "^3.4|^4.1", + "symfony/phpunit-bridge": "^4.2", + "symfony/property-info": "^3.4|^4.1", + "symfony/validator": "^3.4|^4.1", + "symfony/web-profiler-bundle": "^3.4|^4.1", + "symfony/yaml": "^3.4|^4.1", + "twig/twig": "^1.34|^2.4" + }, + "suggest": { + "doctrine/orm": "The Doctrine ORM integration is optional in the bundle.", + "symfony/web-profiler-bundle": "To use the data collector." + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "1.11.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Bundle\\DoctrineBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Doctrine Project", + "homepage": "http://www.doctrine-project.org/" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Symfony DoctrineBundle", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "database", + "dbal", + "orm", + "persistence" + ], + "time": "2019-06-04T07:35:05+00:00" + }, + { + "name": "doctrine/doctrine-cache-bundle", + "version": "1.3.5", + "source": { + "type": "git", + "url": "https://github.com/doctrine/DoctrineCacheBundle.git", + "reference": "5514c90d9fb595e1095e6d66ebb98ce9ef049927" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/5514c90d9fb595e1095e6d66ebb98ce9ef049927", + "reference": "5514c90d9fb595e1095e6d66ebb98ce9ef049927", + "shasum": "" + }, + "require": { + "doctrine/cache": "^1.4.2", + "doctrine/inflector": "~1.0", + "php": ">=5.3.2", + "symfony/doctrine-bridge": "~2.7|~3.3|~4.0" + }, + "require-dev": { + "instaclick/coding-standard": "~1.1", + "instaclick/object-calisthenics-sniffs": "dev-master", + "instaclick/symfony2-coding-standard": "dev-remaster", + "phpunit/phpunit": "~4.8.36|~5.6|~6.5|~7.0", + "predis/predis": "~0.8", + "satooshi/php-coveralls": "^1.0", + "squizlabs/php_codesniffer": "~1.5", + "symfony/console": "~2.7|~3.3|~4.0", + "symfony/finder": "~2.7|~3.3|~4.0", + "symfony/framework-bundle": "~2.7|~3.3|~4.0", + "symfony/phpunit-bridge": "~2.7|~3.3|~4.0", + "symfony/security-acl": "~2.7|~3.3", + "symfony/validator": "~2.7|~3.3|~4.0", + "symfony/yaml": "~2.7|~3.3|~4.0" + }, + "suggest": { + "symfony/security-acl": "For using this bundle to cache ACLs" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Bundle\\DoctrineCacheBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Fabio B. Silva", + "email": "fabio.bat.silva@gmail.com" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@hotmail.com" + }, + { + "name": "Doctrine Project", + "homepage": "http://www.doctrine-project.org/" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Symfony Bundle for Doctrine Cache", + "homepage": "https://www.doctrine-project.org", + "keywords": [ + "cache", + "caching" + ], + "time": "2018-11-09T06:25:35+00:00" + }, + { + "name": "doctrine/doctrine-migrations-bundle", + "version": "v2.0.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/DoctrineMigrationsBundle.git", + "reference": "4c9579e0e43df1fb3f0ca29b9c20871c824fac71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/4c9579e0e43df1fb3f0ca29b9c20871c824fac71", + "reference": "4c9579e0e43df1fb3f0ca29b9c20871c824fac71", + "shasum": "" + }, + "require": { + "doctrine/doctrine-bundle": "~1.0", + "doctrine/migrations": "^2.0", + "php": "^7.1", + "symfony/framework-bundle": "~3.4|~4.0" + }, + "require-dev": { + "doctrine/coding-standard": "^5.0", + "mikey179/vfsstream": "^1.6", + "phpstan/phpstan": "^0.9.2", + "phpstan/phpstan-strict-rules": "^0.9", + "phpunit/phpunit": "^5.7|^6.4|^7.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Bundle\\MigrationsBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + }, + { + "name": "Doctrine Project", + "homepage": "http://www.doctrine-project.org" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Symfony DoctrineMigrationsBundle", + "homepage": "https://www.doctrine-project.org", + "keywords": [ + "dbal", + "migrations", + "schema" + ], + "time": "2019-01-09T18:49:50+00:00" + }, + { + "name": "doctrine/event-manager", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/event-manager.git", + "reference": "a520bc093a0170feeb6b14e9d83f3a14452e64b3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/a520bc093a0170feeb6b14e9d83f3a14452e64b3", + "reference": "a520bc093a0170feeb6b14e9d83f3a14452e64b3", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "conflict": { + "doctrine/common": "<2.9@dev" + }, + "require-dev": { + "doctrine/coding-standard": "^4.0", + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "Doctrine Event Manager component", + "homepage": "https://www.doctrine-project.org/projects/event-manager.html", + "keywords": [ + "event", + "eventdispatcher", + "eventmanager" + ], + "time": "2018-06-11T11:59:03+00:00" + }, + { + "name": "doctrine/inflector", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "5527a48b7313d15261292c149e55e26eae771b0a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/5527a48b7313d15261292c149e55e26eae771b0a", + "reference": "5527a48b7313d15261292c149e55e26eae771b0a", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^6.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Common String Manipulations with regard to casing and singular/plural rules.", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "inflection", + "pluralize", + "singularize", + "string" + ], + "time": "2018-01-09T20:05:19+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "a2c590166b2133a4633738648b6b064edae0814a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/a2c590166b2133a4633738648b6b064edae0814a", + "reference": "a2c590166b2133a4633738648b6b064edae0814a", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.13", + "phpstan/phpstan-phpunit": "^0.11", + "phpstan/phpstan-shim": "^0.11", + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.com/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "time": "2019-03-17T17:37:11+00:00" + }, + { + "name": "doctrine/lexer", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/1febd6c3ef84253d7c815bed85fc622ad207a9f8", + "reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "^4.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "keywords": [ + "annotations", + "docblock", + "lexer", + "parser", + "php" + ], + "time": "2019-06-08T11:03:04+00:00" + }, + { + "name": "doctrine/migrations", + "version": "2.1.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/migrations.git", + "reference": "a89fa87a192e90179163c1e863a145c13337f442" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/migrations/zipball/a89fa87a192e90179163c1e863a145c13337f442", + "reference": "a89fa87a192e90179163c1e863a145c13337f442", + "shasum": "" + }, + "require": { + "doctrine/dbal": "^2.9", + "ocramius/package-versions": "^1.3", + "ocramius/proxy-manager": "^2.0.2", + "php": "^7.1", + "symfony/console": "^3.4||^4.0", + "symfony/stopwatch": "^3.4||^4.0" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "doctrine/orm": "^2.6", + "ext-pdo_sqlite": "*", + "jdorn/sql-formatter": "^1.1", + "mikey179/vfsstream": "^1.6", + "phpstan/phpstan": "^0.10", + "phpstan/phpstan-deprecation-rules": "^0.10", + "phpstan/phpstan-phpunit": "^0.10", + "phpstan/phpstan-strict-rules": "^0.10", + "phpunit/phpunit": "^7.0", + "symfony/process": "^3.4||^4.0", + "symfony/yaml": "^3.4||^4.0" + }, + "suggest": { + "jdorn/sql-formatter": "Allows to generate formatted SQL with the diff command.", + "symfony/yaml": "Allows the use of yaml for migration configuration files." + }, + "bin": [ + "bin/doctrine-migrations" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Migrations\\": "lib/Doctrine/Migrations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Michael Simonson", + "email": "contact@mikesimonson.com" + } + ], + "description": "PHP Doctrine Migrations project offer additional functionality on top of the database abstraction layer (DBAL) for versioning your database schema and easily deploying changes to it. It is a very easy to use and a powerful tool.", + "homepage": "https://www.doctrine-project.org/projects/migrations.html", + "keywords": [ + "database", + "dbal", + "migrations", + "php" + ], + "time": "2019-07-30T18:51:47+00:00" + }, + { + "name": "doctrine/orm", + "version": "v2.6.4", + "source": { + "type": "git", + "url": "https://github.com/doctrine/orm.git", + "reference": "b52ef5a1002f99ab506a5a2d6dba5a2c236c5f43" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/orm/zipball/b52ef5a1002f99ab506a5a2d6dba5a2c236c5f43", + "reference": "b52ef5a1002f99ab506a5a2d6dba5a2c236c5f43", + "shasum": "" + }, + "require": { + "doctrine/annotations": "~1.5", + "doctrine/cache": "~1.6", + "doctrine/collections": "^1.4", + "doctrine/common": "^2.7.1", + "doctrine/dbal": "^2.6", + "doctrine/instantiator": "~1.1", + "ext-pdo": "*", + "php": "^7.1", + "symfony/console": "~3.0|~4.0" + }, + "require-dev": { + "doctrine/coding-standard": "^5.0", + "phpunit/phpunit": "^7.5", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "symfony/yaml": "If you want to use YAML Metadata Mapping Driver" + }, + "bin": [ + "bin/doctrine" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.6.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\ORM\\": "lib/Doctrine/ORM" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "Object-Relational-Mapper for PHP", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "database", + "orm" + ], + "time": "2019-09-20T14:30:26+00:00" + }, + { + "name": "doctrine/persistence", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/persistence.git", + "reference": "3da7c9d125591ca83944f477e65ed3d7b4617c48" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/3da7c9d125591ca83944f477e65ed3d7b4617c48", + "reference": "3da7c9d125591ca83944f477e65ed3d7b4617c48", + "shasum": "" + }, + "require": { + "doctrine/annotations": "^1.0", + "doctrine/cache": "^1.0", + "doctrine/collections": "^1.0", + "doctrine/event-manager": "^1.0", + "doctrine/reflection": "^1.0", + "php": "^7.1" + }, + "conflict": { + "doctrine/common": "<2.10@dev" + }, + "require-dev": { + "doctrine/coding-standard": "^5.0", + "phpstan/phpstan": "^0.8", + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.", + "homepage": "https://doctrine-project.org/projects/persistence.html", + "keywords": [ + "mapper", + "object", + "odm", + "orm", + "persistence" + ], + "time": "2019-04-23T08:28:24+00:00" + }, + { + "name": "doctrine/reflection", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/reflection.git", + "reference": "02538d3f95e88eb397a5f86274deb2c6175c2ab6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/reflection/zipball/02538d3f95e88eb397a5f86274deb2c6175c2ab6", + "reference": "02538d3f95e88eb397a5f86274deb2c6175c2ab6", + "shasum": "" + }, + "require": { + "doctrine/annotations": "^1.0", + "ext-tokenizer": "*", + "php": "^7.1" + }, + "require-dev": { + "doctrine/coding-standard": "^4.0", + "doctrine/common": "^2.8", + "phpstan/phpstan": "^0.9.2", + "phpstan/phpstan-phpunit": "^0.9.4", + "phpunit/phpunit": "^7.0", + "squizlabs/php_codesniffer": "^3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "Doctrine Reflection component", + "homepage": "https://www.doctrine-project.org/projects/reflection.html", + "keywords": [ + "reflection" + ], + "time": "2018-06-14T14:45:07+00:00" + }, + { + "name": "egulias/email-validator", + "version": "2.1.11", + "source": { + "type": "git", + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "92dd169c32f6f55ba570c309d83f5209cefb5e23" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/92dd169c32f6f55ba570c309d83f5209cefb5e23", + "reference": "92dd169c32f6f55ba570c309d83f5209cefb5e23", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^1.0.1", + "php": ">= 5.5" + }, + "require-dev": { + "dominicsayers/isemail": "dev-master", + "phpunit/phpunit": "^4.8.35||^5.7||^6.0", + "satooshi/php-coveralls": "^1.0.1", + "symfony/phpunit-bridge": "^4.4@dev" + }, + "suggest": { + "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Egulias\\EmailValidator\\": "EmailValidator" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eduardo Gulias Davis" + } + ], + "description": "A library for validating emails against several RFCs", + "homepage": "https://github.com/egulias/EmailValidator", + "keywords": [ + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" + ], + "time": "2019-08-13T17:33:27+00:00" + }, + { + "name": "fig/link-util", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/link-util.git", + "reference": "1a07821801a148be4add11ab0603e4af55a72fac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/link-util/zipball/1a07821801a148be4add11ab0603e4af55a72fac", + "reference": "1a07821801a148be4add11ab0603e4af55a72fac", + "shasum": "" + }, + "require": { + "php": ">=5.5.0", + "psr/link": "~1.0@dev" + }, + "require-dev": { + "phpunit/phpunit": "^5.1", + "squizlabs/php_codesniffer": "^2.3.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Fig\\Link\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common utility implementations for HTTP links", + "keywords": [ + "http", + "http-link", + "link", + "psr", + "psr-13", + "rest" + ], + "time": "2016-10-17T18:31:11+00:00" + }, + { + "name": "jdorn/sql-formatter", + "version": "v1.2.17", + "source": { + "type": "git", + "url": "https://github.com/jdorn/sql-formatter.git", + "reference": "64990d96e0959dff8e059dfcdc1af130728d92bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jdorn/sql-formatter/zipball/64990d96e0959dff8e059dfcdc1af130728d92bc", + "reference": "64990d96e0959dff8e059dfcdc1af130728d92bc", + "shasum": "" + }, + "require": { + "php": ">=5.2.4" + }, + "require-dev": { + "phpunit/phpunit": "3.7.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "autoload": { + "classmap": [ + "lib" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jeremy Dorn", + "email": "jeremy@jeremydorn.com", + "homepage": "http://jeremydorn.com/" + } + ], + "description": "a PHP SQL highlighting library", + "homepage": "https://github.com/jdorn/sql-formatter/", + "keywords": [ + "highlight", + "sql" + ], + "time": "2014-01-12T16:20:24+00:00" + }, + { + "name": "monolog/monolog", + "version": "1.25.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "70e65a5470a42cfec1a7da00d30edb6e617e8dcf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/70e65a5470a42cfec1a7da00d30edb6e617e8dcf", + "reference": "70e65a5470a42cfec1a7da00d30edb6e617e8dcf", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "psr/log": "~1.0" + }, + "provide": { + "psr/log-implementation": "1.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^2.4.9 || ^3.0", + "doctrine/couchdb": "~1.0@dev", + "graylog2/gelf-php": "~1.0", + "jakub-onderka/php-parallel-lint": "0.9", + "php-amqplib/php-amqplib": "~2.4", + "php-console/php-console": "^3.1.3", + "phpunit/phpunit": "~4.5", + "phpunit/phpunit-mock-objects": "2.3.0", + "ruflin/elastica": ">=0.90 <3.0", + "sentry/sentry": "^0.13", + "swiftmailer/swiftmailer": "^5.3|^6.0" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-mongo": "Allow sending log messages to a MongoDB server", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "php-console/php-console": "Allow sending log messages to Google Chrome", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server", + "sentry/sentry": "Allow sending log messages to a Sentry server" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "http://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "time": "2019-09-06T13:49:17+00:00" + }, + { + "name": "ocramius/package-versions", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://github.com/Ocramius/PackageVersions.git", + "reference": "a4d4b60d0e60da2487bd21a2c6ac089f85570dbb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/a4d4b60d0e60da2487bd21a2c6ac089f85570dbb", + "reference": "a4d4b60d0e60da2487bd21a2c6ac089f85570dbb", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0.0", + "php": "^7.1.0" + }, + "require-dev": { + "composer/composer": "^1.6.3", + "doctrine/coding-standard": "^5.0.1", + "ext-zip": "*", + "infection/infection": "^0.7.1", + "phpunit/phpunit": "^7.0.0" + }, + "type": "composer-plugin", + "extra": { + "class": "PackageVersions\\Installer", + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "PackageVersions\\": "src/PackageVersions" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "time": "2019-02-21T12:16:21+00:00" + }, + { + "name": "ocramius/proxy-manager", + "version": "2.1.1", + "source": { + "type": "git", + "url": "https://github.com/Ocramius/ProxyManager.git", + "reference": "e18ac876b2e4819c76349de8f78ccc8ef1554cd7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Ocramius/ProxyManager/zipball/e18ac876b2e4819c76349de8f78ccc8ef1554cd7", + "reference": "e18ac876b2e4819c76349de8f78ccc8ef1554cd7", + "shasum": "" + }, + "require": { + "ocramius/package-versions": "^1.1.1", + "php": "^7.1.0", + "zendframework/zend-code": "^3.1.0" + }, + "require-dev": { + "couscous/couscous": "^1.5.2", + "ext-phar": "*", + "humbug/humbug": "dev-master@DEV", + "nikic/php-parser": "^3.0.4", + "phpbench/phpbench": "^0.12.2", + "phpstan/phpstan": "^0.6.4", + "phpunit/phpunit": "^5.6.4", + "phpunit/phpunit-mock-objects": "^3.4.1", + "squizlabs/php_codesniffer": "^2.7.0" + }, + "suggest": { + "ocramius/generated-hydrator": "To have very fast object to array to object conversion for ghost objects", + "zendframework/zend-json": "To have the JsonRpc adapter (Remote Object feature)", + "zendframework/zend-soap": "To have the Soap adapter (Remote Object feature)", + "zendframework/zend-xmlrpc": "To have the XmlRpc adapter (Remote Object feature)" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "ProxyManager\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.io/" + } + ], + "description": "A library providing utilities to generate, instantiate and generally operate with Object Proxies", + "homepage": "https://github.com/Ocramius/ProxyManager", + "keywords": [ + "aop", + "lazy loading", + "proxy", + "proxy pattern", + "service proxies" + ], + "time": "2017-05-04T11:12:50+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/63a995caa1ca9e5590304cd845c15ad6d482a62a", + "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "~6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "time": "2018-08-07T13:53:10+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "4.3.2", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "b83ff7cfcfee7827e1e78b637a5904fe6a96698e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/b83ff7cfcfee7827e1e78b637a5904fe6a96698e", + "reference": "b83ff7cfcfee7827e1e78b637a5904fe6a96698e", + "shasum": "" + }, + "require": { + "php": "^7.0", + "phpdocumentor/reflection-common": "^1.0.0 || ^2.0.0", + "phpdocumentor/type-resolver": "~0.4 || ^1.0.0", + "webmozart/assert": "^1.0" + }, + "require-dev": { + "doctrine/instantiator": "^1.0.5", + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "time": "2019-09-12T14:27:41+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", + "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", + "shasum": "" + }, + "require": { + "php": "^7.1", + "phpdocumentor/reflection-common": "^2.0" + }, + "require-dev": { + "ext-tokenizer": "^7.1", + "mockery/mockery": "~1", + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "time": "2019-08-22T18:11:29+00:00" + }, + { + "name": "psr/cache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "time": "2016-08-06T20:24:11+00:00" + }, + { + "name": "psr/container", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "time": "2017-02-14T16:28:37+00:00" + }, + { + "name": "psr/link", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/link.git", + "reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/link/zipball/eea8e8662d5cd3ae4517c9b864493f59fca95562", + "reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Link\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for HTTP links", + "keywords": [ + "http", + "http-link", + "link", + "psr", + "psr-13", + "rest" + ], + "time": "2016-10-28T16:06:13+00:00" + }, + { + "name": "psr/log", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2018-11-20T15:27:04+00:00" + }, + { + "name": "sensio/framework-extra-bundle", + "version": "v5.4.1", + "source": { + "type": "git", + "url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git", + "reference": "585f4b3a1c54f24d1a8431c729fc8f5acca20c8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/585f4b3a1c54f24d1a8431c729fc8f5acca20c8a", + "reference": "585f4b3a1c54f24d1a8431c729fc8f5acca20c8a", + "shasum": "" + }, + "require": { + "doctrine/annotations": "^1.0", + "doctrine/persistence": "^1.0", + "php": ">=7.1.3", + "symfony/config": "^3.4|^4.3", + "symfony/dependency-injection": "^3.4|^4.3", + "symfony/framework-bundle": "^3.4|^4.3", + "symfony/http-kernel": "^3.4|^4.3" + }, + "require-dev": { + "doctrine/doctrine-bundle": "^1.6", + "doctrine/orm": "^2.5", + "nyholm/psr7": "^1.1", + "symfony/browser-kit": "^3.4|^4.3", + "symfony/dom-crawler": "^3.4|^4.3", + "symfony/expression-language": "^3.4|^4.3", + "symfony/finder": "^3.4|^4.3", + "symfony/monolog-bridge": "^3.0|^4.0", + "symfony/monolog-bundle": "^3.2", + "symfony/phpunit-bridge": "^3.4.19|^4.1.8", + "symfony/psr-http-message-bridge": "^1.1", + "symfony/security-bundle": "^3.4|^4.3", + "symfony/twig-bundle": "^3.4|^4.3", + "symfony/yaml": "^3.4|^4.3", + "twig/twig": "~1.12|~2.0" + }, + "suggest": { + "symfony/expression-language": "", + "symfony/psr-http-message-bridge": "To use the PSR-7 converters", + "symfony/security-bundle": "" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "5.4.x-dev" + } + }, + "autoload": { + "psr-4": { + "Sensio\\Bundle\\FrameworkExtraBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "This bundle provides a way to configure your controllers with annotations", + "keywords": [ + "annotations", + "controllers" + ], + "time": "2019-07-08T08:31:25+00:00" + }, + { + "name": "swiftmailer/swiftmailer", + "version": "v6.2.1", + "source": { + "type": "git", + "url": "https://github.com/swiftmailer/swiftmailer.git", + "reference": "5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a", + "reference": "5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a", + "shasum": "" + }, + "require": { + "egulias/email-validator": "~2.0", + "php": ">=7.0.0", + "symfony/polyfill-iconv": "^1.0", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" + }, + "require-dev": { + "mockery/mockery": "~0.9.1", + "symfony/phpunit-bridge": "^3.4.19|^4.1.8" + }, + "suggest": { + "ext-intl": "Needed to support internationalized email addresses", + "true/punycode": "Needed to support internationalized email addresses, if ext-intl is not installed" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.2-dev" + } + }, + "autoload": { + "files": [ + "lib/swift_required.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Corbyn" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Swiftmailer, free feature-rich PHP mailer", + "homepage": "https://swiftmailer.symfony.com", + "keywords": [ + "email", + "mail", + "mailer" + ], + "time": "2019-04-21T09:21:45+00:00" + }, + { + "name": "symfony/asset", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/asset.git", + "reference": "3f97e57596884f7b9158d564a533112a0d19dbdd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/asset/zipball/3f97e57596884f7b9158d564a533112a0d19dbdd", + "reference": "3f97e57596884f7b9158d564a533112a0d19dbdd", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "require-dev": { + "symfony/http-foundation": "~3.4|~4.0", + "symfony/http-kernel": "~3.4|~4.0" + }, + "suggest": { + "symfony/http-foundation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Asset\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Asset Component", + "homepage": "https://symfony.com", + "time": "2019-08-03T21:50:52+00:00" + }, + { + "name": "symfony/cache", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache.git", + "reference": "40c62600ebad1ed2defbf7d35523d918a73ab330" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache/zipball/40c62600ebad1ed2defbf7d35523d918a73ab330", + "reference": "40c62600ebad1ed2defbf7d35523d918a73ab330", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "psr/cache": "~1.0", + "psr/log": "~1.0", + "symfony/cache-contracts": "^1.1", + "symfony/service-contracts": "^1.1", + "symfony/var-exporter": "^4.2" + }, + "conflict": { + "doctrine/dbal": "<2.5", + "symfony/dependency-injection": "<3.4", + "symfony/var-dumper": "<3.4" + }, + "provide": { + "psr/cache-implementation": "1.0", + "psr/simple-cache-implementation": "1.0", + "symfony/cache-implementation": "1.0" + }, + "require-dev": { + "cache/integration-tests": "dev-master", + "doctrine/cache": "~1.6", + "doctrine/dbal": "~2.5", + "predis/predis": "~1.1", + "psr/simple-cache": "^1.0", + "symfony/config": "~4.2", + "symfony/dependency-injection": "~3.4|~4.1", + "symfony/var-dumper": "^4.1.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Cache\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Cache component with PSR-6, PSR-16, and tags", + "homepage": "https://symfony.com", + "keywords": [ + "caching", + "psr6" + ], + "time": "2019-10-04T10:57:53+00:00" + }, + { + "name": "symfony/cache-contracts", + "version": "v1.1.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache-contracts.git", + "reference": "af50d14ada9e4e82cfabfabdc502d144f89be0a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/af50d14ada9e4e82cfabfabdc502d144f89be0a1", + "reference": "af50d14ada9e4e82cfabfabdc502d144f89be0a1", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "psr/cache": "^1.0" + }, + "suggest": { + "symfony/cache-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Cache\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to caching", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-10-04T21:43:27+00:00" + }, + { + "name": "symfony/config", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "0acb26407a9e1a64a275142f0ae5e36436342720" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/0acb26407a9e1a64a275142f0ae5e36436342720", + "reference": "0acb26407a9e1a64a275142f0ae5e36436342720", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/filesystem": "~3.4|~4.0", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/finder": "<3.4" + }, + "require-dev": { + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/event-dispatcher": "~3.4|~4.0", + "symfony/finder": "~3.4|~4.0", + "symfony/messenger": "~4.1", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Config Component", + "homepage": "https://symfony.com", + "time": "2019-09-19T15:51:53+00:00" + }, + { + "name": "symfony/console", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "929ddf360d401b958f611d44e726094ab46a7369" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/929ddf360d401b958f611d44e726094ab46a7369", + "reference": "929ddf360d401b958f611d44e726094ab46a7369", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/service-contracts": "^1.1" + }, + "conflict": { + "symfony/dependency-injection": "<3.4", + "symfony/event-dispatcher": "<4.3", + "symfony/process": "<3.3" + }, + "provide": { + "psr/log-implementation": "1.0" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/event-dispatcher": "^4.3", + "symfony/lock": "~3.4|~4.0", + "symfony/process": "~3.4|~4.0", + "symfony/var-dumper": "^4.3" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Console Component", + "homepage": "https://symfony.com", + "time": "2019-10-07T12:36:49+00:00" + }, + { + "name": "symfony/debug", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug.git", + "reference": "cc5c1efd0edfcfd10b354750594a46b3dd2afbbe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug/zipball/cc5c1efd0edfcfd10b354750594a46b3dd2afbbe", + "reference": "cc5c1efd0edfcfd10b354750594a46b3dd2afbbe", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "psr/log": "~1.0" + }, + "conflict": { + "symfony/http-kernel": "<3.4" + }, + "require-dev": { + "symfony/http-kernel": "~3.4|~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Debug\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Debug Component", + "homepage": "https://symfony.com", + "time": "2019-09-19T15:51:53+00:00" + }, + { + "name": "symfony/dependency-injection", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "e1e0762a814b957a1092bff75a550db49724d05b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/e1e0762a814b957a1092bff75a550db49724d05b", + "reference": "e1e0762a814b957a1092bff75a550db49724d05b", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "psr/container": "^1.0", + "symfony/service-contracts": "^1.1.6" + }, + "conflict": { + "symfony/config": "<4.3", + "symfony/finder": "<3.4", + "symfony/proxy-manager-bridge": "<3.4", + "symfony/yaml": "<3.4" + }, + "provide": { + "psr/container-implementation": "1.0", + "symfony/service-implementation": "1.0" + }, + "require-dev": { + "symfony/config": "^4.3", + "symfony/expression-language": "~3.4|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony DependencyInjection Component", + "homepage": "https://symfony.com", + "time": "2019-10-02T12:58:58+00:00" + }, + { + "name": "symfony/doctrine-bridge", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/doctrine-bridge.git", + "reference": "486fa65a74692d84f250087c79d0b89d30d655a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/486fa65a74692d84f250087c79d0b89d30d655a8", + "reference": "486fa65a74692d84f250087c79d0b89d30d655a8", + "shasum": "" + }, + "require": { + "doctrine/event-manager": "~1.0", + "doctrine/persistence": "~1.0", + "php": "^7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^1.1" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/dependency-injection": "<3.4", + "symfony/form": "<4.3", + "symfony/messenger": "<4.3" + }, + "require-dev": { + "doctrine/annotations": "~1.7", + "doctrine/cache": "~1.6", + "doctrine/collections": "~1.0", + "doctrine/data-fixtures": "1.0.*", + "doctrine/dbal": "~2.4", + "doctrine/orm": "^2.6.3", + "doctrine/reflection": "~1.0", + "symfony/config": "^4.2", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/expression-language": "~3.4|~4.0", + "symfony/form": "~4.3", + "symfony/http-kernel": "~3.4|~4.0", + "symfony/messenger": "~4.3", + "symfony/property-access": "~3.4|~4.0", + "symfony/property-info": "~3.4|~4.0", + "symfony/proxy-manager-bridge": "~3.4|~4.0", + "symfony/security-core": "~3.4|~4.0", + "symfony/stopwatch": "~3.4|~4.0", + "symfony/translation": "~3.4|~4.0", + "symfony/validator": "^3.4.31|^4.3.4" + }, + "suggest": { + "doctrine/data-fixtures": "", + "doctrine/dbal": "", + "doctrine/orm": "", + "symfony/form": "", + "symfony/property-info": "", + "symfony/validator": "" + }, + "type": "symfony-bridge", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bridge\\Doctrine\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Doctrine Bridge", + "homepage": "https://symfony.com", + "time": "2019-09-08T20:39:53+00:00" + }, + { + "name": "symfony/dotenv", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/dotenv.git", + "reference": "1785b18148a016b8f4e6a612291188d568e1f9cd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/1785b18148a016b8f4e6a612291188d568e1f9cd", + "reference": "1785b18148a016b8f4e6a612291188d568e1f9cd", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "require-dev": { + "symfony/process": "~3.4|~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Dotenv\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Registers environment variables from a .env file", + "homepage": "https://symfony.com", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "time": "2019-08-03T21:50:52+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "6229f58993e5a157f6096fc7145c0717d0be8807" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/6229f58993e5a157f6096fc7145c0717d0be8807", + "reference": "6229f58993e5a157f6096fc7145c0717d0be8807", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/event-dispatcher-contracts": "^1.1" + }, + "conflict": { + "symfony/dependency-injection": "<3.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "1.1" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/expression-language": "~3.4|~4.0", + "symfony/http-foundation": "^3.4|^4.0", + "symfony/service-contracts": "^1.1", + "symfony/stopwatch": "~3.4|~4.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony EventDispatcher Component", + "homepage": "https://symfony.com", + "time": "2019-10-01T16:40:32+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v1.1.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c43ab685673fb6c8d84220c77897b1d6cdbe1d18", + "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "suggest": { + "psr/event-dispatcher": "", + "symfony/event-dispatcher-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-09-17T09:54:03+00:00" + }, + { + "name": "symfony/expression-language", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/expression-language.git", + "reference": "c8b47d8820d3bf75f757eec8a2647584c14cf0c6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/expression-language/zipball/c8b47d8820d3bf75f757eec8a2647584c14cf0c6", + "reference": "c8b47d8820d3bf75f757eec8a2647584c14cf0c6", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/cache": "~3.4|~4.0", + "symfony/service-contracts": "^1.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\ExpressionLanguage\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony ExpressionLanguage Component", + "homepage": "https://symfony.com", + "time": "2019-08-08T09:29:19+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "9abbb7ef96a51f4d7e69627bc6f63307994e4263" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/9abbb7ef96a51f4d7e69627bc6f63307994e4263", + "reference": "9abbb7ef96a51f4d7e69627bc6f63307994e4263", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Filesystem Component", + "homepage": "https://symfony.com", + "time": "2019-08-20T14:07:54+00:00" + }, + { + "name": "symfony/finder", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "5e575faa95548d0586f6bedaeabec259714e44d1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/5e575faa95548d0586f6bedaeabec259714e44d1", + "reference": "5e575faa95548d0586f6bedaeabec259714e44d1", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Finder Component", + "homepage": "https://symfony.com", + "time": "2019-09-16T11:29:48+00:00" + }, + { + "name": "symfony/flex", + "version": "v1.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/flex.git", + "reference": "133e649fdf08aeb8741be1ba955ccbe5cd17c696" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/flex/zipball/133e649fdf08aeb8741be1ba955ccbe5cd17c696", + "reference": "133e649fdf08aeb8741be1ba955ccbe5cd17c696", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0", + "php": "^7.0" + }, + "require-dev": { + "composer/composer": "^1.0.2", + "symfony/dotenv": "^3.4|^4.0", + "symfony/phpunit-bridge": "^3.4.19|^4.1.8", + "symfony/process": "^2.7|^3.0|^4.0" + }, + "type": "composer-plugin", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + }, + "class": "Symfony\\Flex\\Flex" + }, + "autoload": { + "psr-4": { + "Symfony\\Flex\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien.potencier@gmail.com" + } + ], + "description": "Composer plugin for Symfony", + "time": "2019-09-19T14:55:57+00:00" + }, + { + "name": "symfony/form", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/form.git", + "reference": "4a799fb998c325ac77fc5513f35be033cc0edf3c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/form/zipball/4a799fb998c325ac77fc5513f35be033cc0edf3c", + "reference": "4a799fb998c325ac77fc5513f35be033cc0edf3c", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/event-dispatcher": "^4.3", + "symfony/intl": "^4.3", + "symfony/options-resolver": "~4.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/property-access": "~3.4|~4.0", + "symfony/service-contracts": "~1.1" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/console": "<4.3", + "symfony/dependency-injection": "<3.4", + "symfony/doctrine-bridge": "<3.4", + "symfony/framework-bundle": "<3.4", + "symfony/http-kernel": "<4.3", + "symfony/intl": "<4.3", + "symfony/translation": "<4.2", + "symfony/twig-bridge": "<3.4.5|<4.0.5,>=4.0" + }, + "require-dev": { + "doctrine/collections": "~1.0", + "symfony/config": "~3.4|~4.0", + "symfony/console": "^4.3", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/http-foundation": "~3.4|~4.0", + "symfony/http-kernel": "~4.3", + "symfony/security-csrf": "~3.4|~4.0", + "symfony/translation": "~4.2", + "symfony/validator": "^3.4.31|^4.3.4", + "symfony/var-dumper": "^4.3" + }, + "suggest": { + "symfony/security-csrf": "For protecting forms against CSRF attacks.", + "symfony/twig-bridge": "For templating with Twig.", + "symfony/validator": "For form validation." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Form\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Form Component", + "homepage": "https://symfony.com", + "time": "2019-09-27T14:21:32+00:00" + }, + { + "name": "symfony/framework-bundle", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/framework-bundle.git", + "reference": "fca765488ecea04bf6c1c502d7b0214fa29460d8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/fca765488ecea04bf6c1c502d7b0214fa29460d8", + "reference": "fca765488ecea04bf6c1c502d7b0214fa29460d8", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": "^7.1.3", + "symfony/cache": "^4.3.4", + "symfony/config": "^4.3.4", + "symfony/debug": "~4.0", + "symfony/dependency-injection": "^4.3", + "symfony/filesystem": "~3.4|~4.0", + "symfony/finder": "~3.4|~4.0", + "symfony/http-foundation": "^4.3", + "symfony/http-kernel": "^4.3.4", + "symfony/polyfill-mbstring": "~1.0", + "symfony/routing": "^4.3" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "<3.0", + "phpdocumentor/type-resolver": "<0.2.1", + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/asset": "<3.4", + "symfony/browser-kit": "<4.3", + "symfony/console": "<4.3", + "symfony/dom-crawler": "<4.3", + "symfony/dotenv": "<4.2", + "symfony/form": "<4.3", + "symfony/messenger": "<4.3", + "symfony/property-info": "<3.4", + "symfony/serializer": "<4.2", + "symfony/stopwatch": "<3.4", + "symfony/translation": "<4.3", + "symfony/twig-bridge": "<4.1.1", + "symfony/validator": "<4.1", + "symfony/workflow": "<4.3" + }, + "require-dev": { + "doctrine/annotations": "~1.7", + "doctrine/cache": "~1.0", + "fig/link-util": "^1.0", + "phpdocumentor/reflection-docblock": "^3.0|^4.0", + "symfony/asset": "~3.4|~4.0", + "symfony/browser-kit": "^4.3", + "symfony/console": "^4.3.4", + "symfony/css-selector": "~3.4|~4.0", + "symfony/dom-crawler": "^4.3", + "symfony/expression-language": "~3.4|~4.0", + "symfony/form": "^4.3.4", + "symfony/http-client": "^4.3", + "symfony/lock": "~3.4|~4.0", + "symfony/mailer": "^4.3", + "symfony/messenger": "^4.3", + "symfony/mime": "^4.3", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/process": "~3.4|~4.0", + "symfony/property-info": "~3.4|~4.0", + "symfony/security-csrf": "~3.4|~4.0", + "symfony/security-http": "~3.4|~4.0", + "symfony/serializer": "^4.3", + "symfony/stopwatch": "~3.4|~4.0", + "symfony/templating": "~3.4|~4.0", + "symfony/translation": "~4.3", + "symfony/twig-bundle": "~2.8|~3.2|~4.0", + "symfony/validator": "^4.1", + "symfony/var-dumper": "^4.3", + "symfony/web-link": "~3.4|~4.0", + "symfony/workflow": "^4.3", + "symfony/yaml": "~3.4|~4.0", + "twig/twig": "~1.41|~2.10" + }, + "suggest": { + "ext-apcu": "For best performance of the system caches", + "symfony/console": "For using the console commands", + "symfony/form": "For using forms", + "symfony/property-info": "For using the property_info service", + "symfony/serializer": "For using the serializer service", + "symfony/validator": "For using validation", + "symfony/web-link": "For using web links, features such as preloading, prefetching or prerendering", + "symfony/yaml": "For using the debug:config and lint:yaml commands" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\FrameworkBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony FrameworkBundle", + "homepage": "https://symfony.com", + "time": "2019-10-04T17:45:43+00:00" + }, + { + "name": "symfony/http-client", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client.git", + "reference": "69d438274718121e1166e7f65c290f891a4c8ddb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client/zipball/69d438274718121e1166e7f65c290f891a4c8ddb", + "reference": "69d438274718121e1166e7f65c290f891a4c8ddb", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "psr/log": "^1.0", + "symfony/http-client-contracts": "^1.1.7", + "symfony/polyfill-php73": "^1.11" + }, + "provide": { + "psr/http-client-implementation": "1.0", + "symfony/http-client-implementation": "1.1" + }, + "require-dev": { + "nyholm/psr7": "^1.0", + "psr/http-client": "^1.0", + "symfony/http-kernel": "^4.3", + "symfony/process": "^4.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpClient\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony HttpClient component", + "homepage": "https://symfony.com", + "time": "2019-10-07T10:52:41+00:00" + }, + { + "name": "symfony/http-client-contracts", + "version": "v1.1.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client-contracts.git", + "reference": "353b2a3e907e5c34cf8f74827a4b21eb745aab1d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/353b2a3e907e5c34cf8f74827a4b21eb745aab1d", + "reference": "353b2a3e907e5c34cf8f74827a4b21eb745aab1d", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "suggest": { + "symfony/http-client-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\HttpClient\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to HTTP clients", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-09-26T22:09:58+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "76590ced16d4674780863471bae10452b79210a5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/76590ced16d4674780863471bae10452b79210a5", + "reference": "76590ced16d4674780863471bae10452b79210a5", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/mime": "^4.3", + "symfony/polyfill-mbstring": "~1.1" + }, + "require-dev": { + "predis/predis": "~1.0", + "symfony/expression-language": "~3.4|~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony HttpFoundation Component", + "homepage": "https://symfony.com", + "time": "2019-10-04T19:48:13+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "5f08141850932e8019c01d8988bf3ed6367d2991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/5f08141850932e8019c01d8988bf3ed6367d2991", + "reference": "5f08141850932e8019c01d8988bf3ed6367d2991", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "psr/log": "~1.0", + "symfony/debug": "~3.4|~4.0", + "symfony/event-dispatcher": "^4.3", + "symfony/http-foundation": "^4.1.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php73": "^1.9" + }, + "conflict": { + "symfony/browser-kit": "<4.3", + "symfony/config": "<3.4", + "symfony/dependency-injection": "<4.3", + "symfony/translation": "<4.2", + "symfony/var-dumper": "<4.1.1", + "twig/twig": "<1.34|<2.4,>=2" + }, + "provide": { + "psr/log-implementation": "1.0" + }, + "require-dev": { + "psr/cache": "~1.0", + "symfony/browser-kit": "^4.3", + "symfony/config": "~3.4|~4.0", + "symfony/console": "~3.4|~4.0", + "symfony/css-selector": "~3.4|~4.0", + "symfony/dependency-injection": "^4.3", + "symfony/dom-crawler": "~3.4|~4.0", + "symfony/expression-language": "~3.4|~4.0", + "symfony/finder": "~3.4|~4.0", + "symfony/process": "~3.4|~4.0", + "symfony/routing": "~3.4|~4.0", + "symfony/stopwatch": "~3.4|~4.0", + "symfony/templating": "~3.4|~4.0", + "symfony/translation": "~4.2", + "symfony/translation-contracts": "^1.1", + "symfony/var-dumper": "^4.1.1", + "twig/twig": "^1.34|^2.4" + }, + "suggest": { + "symfony/browser-kit": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "", + "symfony/var-dumper": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony HttpKernel Component", + "homepage": "https://symfony.com", + "time": "2019-10-07T15:06:41+00:00" + }, + { + "name": "symfony/inflector", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/inflector.git", + "reference": "fc488a52c79b2bbe848fa9def35f2cccb47c4798" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/inflector/zipball/fc488a52c79b2bbe848fa9def35f2cccb47c4798", + "reference": "fc488a52c79b2bbe848fa9def35f2cccb47c4798", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Inflector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Inflector Component", + "homepage": "https://symfony.com", + "keywords": [ + "inflection", + "pluralize", + "singularize", + "string", + "symfony", + "words" + ], + "time": "2019-09-17T11:12:06+00:00" + }, + { + "name": "symfony/intl", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/intl.git", + "reference": "818771ff6acef04cdce05023ddfc39b7078014bf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/intl/zipball/818771ff6acef04cdce05023ddfc39b7078014bf", + "reference": "818771ff6acef04cdce05023ddfc39b7078014bf", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-intl-icu": "~1.0" + }, + "require-dev": { + "symfony/filesystem": "~3.4|~4.0" + }, + "suggest": { + "ext-intl": "to use the component with locales other than \"en\"" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Intl\\": "" + }, + "classmap": [ + "Resources/stubs" + ], + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + }, + { + "name": "Eriksen Costa", + "email": "eriksen.costa@infranology.com.br" + }, + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A PHP replacement layer for the C intl extension that includes additional data from the ICU library.", + "homepage": "https://symfony.com", + "keywords": [ + "i18n", + "icu", + "internationalization", + "intl", + "l10n", + "localization" + ], + "time": "2019-10-04T21:18:34+00:00" + }, + { + "name": "symfony/mime", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "32f71570547b91879fdbd9cf50317d556ae86916" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/32f71570547b91879fdbd9cf50317d556ae86916", + "reference": "32f71570547b91879fdbd9cf50317d556ae86916", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10", + "symfony/dependency-injection": "~3.4|^4.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A library to manipulate MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "time": "2019-09-19T17:00:15+00:00" + }, + { + "name": "symfony/monolog-bridge", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bridge.git", + "reference": "6b9d84b34e0c2c5d9d4f4dbd5f36b0c9e4e5ef93" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/6b9d84b34e0c2c5d9d4f4dbd5f36b0c9e4e5ef93", + "reference": "6b9d84b34e0c2c5d9d4f4dbd5f36b0c9e4e5ef93", + "shasum": "" + }, + "require": { + "monolog/monolog": "~1.19", + "php": "^7.1.3", + "symfony/http-kernel": "^4.3", + "symfony/service-contracts": "^1.1" + }, + "conflict": { + "symfony/console": "<3.4", + "symfony/http-foundation": "<3.4" + }, + "require-dev": { + "symfony/console": "~3.4|~4.0", + "symfony/security-core": "~3.4|~4.0", + "symfony/var-dumper": "~3.4|~4.0" + }, + "suggest": { + "symfony/console": "For the possibility to show log messages in console commands depending on verbosity settings.", + "symfony/http-kernel": "For using the debugging handlers together with the response life cycle of the HTTP kernel.", + "symfony/var-dumper": "For using the debugging handlers like the console handler or the log server handler." + }, + "type": "symfony-bridge", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bridge\\Monolog\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Monolog Bridge", + "homepage": "https://symfony.com", + "time": "2019-09-06T09:34:03+00:00" + }, + { + "name": "symfony/monolog-bundle", + "version": "v3.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bundle.git", + "reference": "7fbecb371c1c614642c93c6b2cbcdf723ae8809d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/7fbecb371c1c614642c93c6b2cbcdf723ae8809d", + "reference": "7fbecb371c1c614642c93c6b2cbcdf723ae8809d", + "shasum": "" + }, + "require": { + "monolog/monolog": "~1.22", + "php": ">=5.6", + "symfony/config": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4.10|^4.0.10", + "symfony/http-kernel": "~3.4|~4.0", + "symfony/monolog-bridge": "~3.4|~4.0" + }, + "require-dev": { + "symfony/console": "~3.4|~4.0", + "symfony/phpunit-bridge": "^3.4.19|^4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\MonologBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Symfony MonologBundle", + "homepage": "http://symfony.com", + "keywords": [ + "log", + "logging" + ], + "time": "2019-06-20T12:18:19+00:00" + }, + { + "name": "symfony/options-resolver", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/options-resolver.git", + "reference": "81c2e120522a42f623233968244baebd6b36cb6a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/81c2e120522a42f623233968244baebd6b36cb6a", + "reference": "81c2e120522a42f623233968244baebd6b36cb6a", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\OptionsResolver\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony OptionsResolver Component", + "homepage": "https://symfony.com", + "keywords": [ + "config", + "configuration", + "options" + ], + "time": "2019-08-08T09:29:19+00:00" + }, + { + "name": "symfony/orm-pack", + "version": "v1.0.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/orm-pack.git", + "reference": "36c2a928482dc5f05c5c1c1b947242ae03ff1335" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/orm-pack/zipball/36c2a928482dc5f05c5c1c1b947242ae03ff1335", + "reference": "36c2a928482dc5f05c5c1c1b947242ae03ff1335", + "shasum": "" + }, + "require": { + "doctrine/doctrine-bundle": "^1.6.10", + "doctrine/doctrine-migrations-bundle": "^1.3|^2.0", + "doctrine/orm": "^2.5.11", + "php": "^7.0" + }, + "type": "symfony-pack", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A pack for the Doctrine ORM", + "time": "2019-01-16T09:49:15+00:00" + }, + { + "name": "symfony/polyfill-intl-icu", + "version": "v1.12.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-icu.git", + "reference": "66810b9d6eb4af54d543867909d65ab9af654d7e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/66810b9d6eb4af54d543867909d65ab9af654d7e", + "reference": "66810b9d6eb4af54d543867909d65ab9af654d7e", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "symfony/intl": "~2.3|~3.0|~4.0|~5.0" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.12-dev" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's ICU-related data and classes", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "icu", + "intl", + "polyfill", + "portable", + "shim" + ], + "time": "2019-08-06T08:03:45+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.12.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "6af626ae6fa37d396dc90a399c0ff08e5cfc45b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/6af626ae6fa37d396dc90a399c0ff08e5cfc45b2", + "reference": "6af626ae6fa37d396dc90a399c0ff08e5cfc45b2", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "symfony/polyfill-mbstring": "^1.3", + "symfony/polyfill-php72": "^1.9" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.12-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "time": "2019-08-06T08:03:45+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.12.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b42a2f66e8f1b15ccf25652c3424265923eb4f17", + "reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.12-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "time": "2019-08-06T08:03:45+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.12.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "04ce3335667451138df4307d6a9b61565560199e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/04ce3335667451138df4307d6a9b61565560199e", + "reference": "04ce3335667451138df4307d6a9b61565560199e", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.12-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2019-08-06T08:03:45+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.12.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "2ceb49eaccb9352bff54d22570276bb75ba4a188" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/2ceb49eaccb9352bff54d22570276bb75ba4a188", + "reference": "2ceb49eaccb9352bff54d22570276bb75ba4a188", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.12-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2019-08-06T08:03:45+00:00" + }, + { + "name": "symfony/process", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "50556892f3cc47d4200bfd1075314139c4c9ff4b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/50556892f3cc47d4200bfd1075314139c4c9ff4b", + "reference": "50556892f3cc47d4200bfd1075314139c4c9ff4b", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Process Component", + "homepage": "https://symfony.com", + "time": "2019-09-26T21:17:10+00:00" + }, + { + "name": "symfony/property-access", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/property-access.git", + "reference": "bb0c302375ffeef60c31e72a4539611b7f787565" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/property-access/zipball/bb0c302375ffeef60c31e72a4539611b7f787565", + "reference": "bb0c302375ffeef60c31e72a4539611b7f787565", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/inflector": "~3.4|~4.0" + }, + "require-dev": { + "symfony/cache": "~3.4|~4.0" + }, + "suggest": { + "psr/cache-implementation": "To cache access methods." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\PropertyAccess\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony PropertyAccess Component", + "homepage": "https://symfony.com", + "keywords": [ + "access", + "array", + "extraction", + "index", + "injection", + "object", + "property", + "property path", + "reflection" + ], + "time": "2019-08-26T08:26:39+00:00" + }, + { + "name": "symfony/property-info", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/property-info.git", + "reference": "6e4bf437295ef11eb3665ec8f800fb14a74cb976" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/property-info/zipball/6e4bf437295ef11eb3665ec8f800fb14a74cb976", + "reference": "6e4bf437295ef11eb3665ec8f800fb14a74cb976", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/inflector": "~3.4|~4.0" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "<3.0||>=3.2.0,<3.2.2", + "phpdocumentor/type-resolver": "<0.3.0", + "symfony/dependency-injection": "<3.4" + }, + "require-dev": { + "doctrine/annotations": "~1.7", + "phpdocumentor/reflection-docblock": "^3.0|^4.0", + "symfony/cache": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/serializer": "~3.4|~4.0" + }, + "suggest": { + "phpdocumentor/reflection-docblock": "To use the PHPDoc", + "psr/cache-implementation": "To cache results", + "symfony/doctrine-bridge": "To use Doctrine metadata", + "symfony/serializer": "To use Serializer metadata" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\PropertyInfo\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kévin Dunglas", + "email": "dunglas@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Property Info Component", + "homepage": "https://symfony.com", + "keywords": [ + "doctrine", + "phpdoc", + "property", + "symfony", + "type", + "validator" + ], + "time": "2019-09-17T11:12:06+00:00" + }, + { + "name": "symfony/routing", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "3b174ef04fe66696524efad1e5f7a6c663d822ea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/3b174ef04fe66696524efad1e5f7a6c663d822ea", + "reference": "3b174ef04fe66696524efad1e5f7a6c663d822ea", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "conflict": { + "symfony/config": "<4.2", + "symfony/dependency-injection": "<3.4", + "symfony/yaml": "<3.4" + }, + "require-dev": { + "doctrine/annotations": "~1.2", + "psr/log": "~1.0", + "symfony/config": "~4.2", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/expression-language": "~3.4|~4.0", + "symfony/http-foundation": "~3.4|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "doctrine/annotations": "For using the annotation loader", + "symfony/config": "For using the all-in-one router or any loader", + "symfony/expression-language": "For using expression matching", + "symfony/http-foundation": "For using a Symfony Request object", + "symfony/yaml": "For using the YAML loader" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Routing Component", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "time": "2019-10-04T20:57:10+00:00" + }, + { + "name": "symfony/security-bundle", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-bundle.git", + "reference": "aa3cd52168c2e5c99effe560907f22fcffe8a788" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/aa3cd52168c2e5c99effe560907f22fcffe8a788", + "reference": "aa3cd52168c2e5c99effe560907f22fcffe8a788", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": "^7.1.3", + "symfony/config": "^4.2", + "symfony/dependency-injection": "^4.2", + "symfony/http-kernel": "^4.3", + "symfony/security-core": "~4.3", + "symfony/security-csrf": "~4.2", + "symfony/security-guard": "~4.2", + "symfony/security-http": "^4.3" + }, + "conflict": { + "symfony/browser-kit": "<4.2", + "symfony/console": "<3.4", + "symfony/framework-bundle": "<4.3.4", + "symfony/twig-bundle": "<4.2", + "symfony/var-dumper": "<3.4" + }, + "require-dev": { + "doctrine/doctrine-bundle": "~1.5", + "symfony/asset": "~3.4|~4.0", + "symfony/browser-kit": "~4.2", + "symfony/console": "~3.4|~4.0", + "symfony/css-selector": "~3.4|~4.0", + "symfony/dom-crawler": "~3.4|~4.0", + "symfony/expression-language": "~3.4|~4.0", + "symfony/form": "~3.4|~4.0", + "symfony/framework-bundle": "^4.3.4", + "symfony/http-foundation": "~3.4|~4.0", + "symfony/process": "~3.4|~4.0", + "symfony/translation": "~3.4|~4.0", + "symfony/twig-bridge": "~3.4|~4.0", + "symfony/twig-bundle": "~4.2", + "symfony/validator": "~3.4|~4.0", + "symfony/var-dumper": "~3.4|~4.0", + "symfony/yaml": "~3.4|~4.0", + "twig/twig": "~1.41|~2.10" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\SecurityBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony SecurityBundle", + "homepage": "https://symfony.com", + "time": "2019-09-05T18:00:30+00:00" + }, + { + "name": "symfony/security-core", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-core.git", + "reference": "a6f763c1f093b833d371f813519a1a8c07b75fb9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-core/zipball/a6f763c1f093b833d371f813519a1a8c07b75fb9", + "reference": "a6f763c1f093b833d371f813519a1a8c07b75fb9", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/event-dispatcher-contracts": "^1.1", + "symfony/service-contracts": "^1.1" + }, + "conflict": { + "symfony/event-dispatcher": "<4.3", + "symfony/security-guard": "<4.3" + }, + "require-dev": { + "psr/container": "^1.0", + "psr/log": "~1.0", + "symfony/event-dispatcher": "^4.3", + "symfony/expression-language": "~3.4|~4.0", + "symfony/http-foundation": "~3.4|~4.0", + "symfony/ldap": "~3.4|~4.0", + "symfony/validator": "^3.4.31|^4.3.4" + }, + "suggest": { + "psr/container-implementation": "To instantiate the Security class", + "symfony/event-dispatcher": "", + "symfony/expression-language": "For using the expression voter", + "symfony/http-foundation": "", + "symfony/ldap": "For using LDAP integration", + "symfony/validator": "For using the user password constraint" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Core\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - Core Library", + "homepage": "https://symfony.com", + "time": "2019-09-10T11:22:25+00:00" + }, + { + "name": "symfony/security-csrf", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-csrf.git", + "reference": "0760ec651ea8ff81e22097780337e43f3a795769" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/0760ec651ea8ff81e22097780337e43f3a795769", + "reference": "0760ec651ea8ff81e22097780337e43f3a795769", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/security-core": "~3.4|~4.0" + }, + "conflict": { + "symfony/http-foundation": "<3.4" + }, + "require-dev": { + "symfony/http-foundation": "~3.4|~4.0" + }, + "suggest": { + "symfony/http-foundation": "For using the class SessionTokenStorage." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Csrf\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - CSRF Library", + "homepage": "https://symfony.com", + "time": "2019-09-24T15:54:14+00:00" + }, + { + "name": "symfony/security-guard", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-guard.git", + "reference": "4beec980b6a0122afc1ca166ca50ce3b84398507" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-guard/zipball/4beec980b6a0122afc1ca166ca50ce3b84398507", + "reference": "4beec980b6a0122afc1ca166ca50ce3b84398507", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/security-core": "~3.4.22|^4.2.3", + "symfony/security-http": "^4.3" + }, + "require-dev": { + "psr/log": "~1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Guard\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - Guard", + "homepage": "https://symfony.com", + "time": "2019-09-17T11:12:06+00:00" + }, + { + "name": "symfony/security-http", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-http.git", + "reference": "b91b6d4d1bded8365f23f6bd4290d28bc6af0832" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-http/zipball/b91b6d4d1bded8365f23f6bd4290d28bc6af0832", + "reference": "b91b6d4d1bded8365f23f6bd4290d28bc6af0832", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/http-foundation": "~3.4|~4.0", + "symfony/http-kernel": "^4.3", + "symfony/property-access": "~3.4|~4.0", + "symfony/security-core": "^4.3" + }, + "conflict": { + "symfony/security-csrf": "<3.4.11|~4.0,<4.0.11" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/routing": "~3.4|~4.0", + "symfony/security-csrf": "^3.4.11|^4.0.11" + }, + "suggest": { + "symfony/routing": "For using the HttpUtils class to create sub-requests, redirect the user, and match URLs", + "symfony/security-csrf": "For using tokens to protect authentication/logout attempts" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Http\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - HTTP Integration", + "homepage": "https://symfony.com", + "time": "2019-10-04T21:11:33+00:00" + }, + { + "name": "symfony/serializer", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/serializer.git", + "reference": "805eacc72d28e237ef31659344a4d72acef335ec" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/serializer/zipball/805eacc72d28e237ef31659344a4d72acef335ec", + "reference": "805eacc72d28e237ef31659344a4d72acef335ec", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "phpdocumentor/type-resolver": "<0.2.1", + "symfony/dependency-injection": "<3.4", + "symfony/property-access": "<3.4", + "symfony/property-info": "<3.4", + "symfony/yaml": "<3.4" + }, + "require-dev": { + "doctrine/annotations": "~1.0", + "doctrine/cache": "~1.0", + "phpdocumentor/reflection-docblock": "^3.0|^4.0", + "symfony/cache": "~3.4|~4.0", + "symfony/config": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/http-foundation": "~3.4|~4.0", + "symfony/property-access": "~3.4|~4.0", + "symfony/property-info": "^3.4.13|~4.0", + "symfony/validator": "~3.4|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", + "doctrine/cache": "For using the default cached annotation reader and metadata cache.", + "psr/cache-implementation": "For using the metadata cache.", + "symfony/config": "For using the XML mapping loader.", + "symfony/http-foundation": "For using a MIME type guesser within the DataUriNormalizer.", + "symfony/property-access": "For using the ObjectNormalizer.", + "symfony/property-info": "To deserialize relations.", + "symfony/yaml": "For using the default YAML mapping loader." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Serializer\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Serializer Component", + "homepage": "https://symfony.com", + "time": "2019-10-02T15:03:35+00:00" + }, + { + "name": "symfony/serializer-pack", + "version": "v1.0.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/serializer-pack.git", + "reference": "c5f18ba4ff989a42d7d140b7f85406e77cd8c4b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/serializer-pack/zipball/c5f18ba4ff989a42d7d140b7f85406e77cd8c4b2", + "reference": "c5f18ba4ff989a42d7d140b7f85406e77cd8c4b2", + "shasum": "" + }, + "require": { + "doctrine/annotations": "^1.0", + "php": "^7.0", + "phpdocumentor/reflection-docblock": "^3.0|^4.0", + "symfony/property-access": "*", + "symfony/property-info": "*", + "symfony/serializer": "*" + }, + "type": "symfony-pack", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A pack for the Symfony serializer", + "time": "2018-12-10T12:14:14+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v1.1.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "ffcde9615dc5bb4825b9f6aed07716f1f57faae0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/ffcde9615dc5bb4825b9f6aed07716f1f57faae0", + "reference": "ffcde9615dc5bb4825b9f6aed07716f1f57faae0", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "psr/container": "^1.0" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-09-17T11:12:18+00:00" + }, + { + "name": "symfony/stopwatch", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/stopwatch.git", + "reference": "1e4ff456bd625be5032fac9be4294e60442e9b71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/1e4ff456bd625be5032fac9be4294e60442e9b71", + "reference": "1e4ff456bd625be5032fac9be4294e60442e9b71", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/service-contracts": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Stopwatch\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Stopwatch Component", + "homepage": "https://symfony.com", + "time": "2019-08-07T11:52:19+00:00" + }, + { + "name": "symfony/swiftmailer-bundle", + "version": "v3.2.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/swiftmailer-bundle.git", + "reference": "cb125b3648f132fb8070b55393f20cb310907d3b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/cb125b3648f132fb8070b55393f20cb310907d3b", + "reference": "cb125b3648f132fb8070b55393f20cb310907d3b", + "shasum": "" + }, + "require": { + "php": ">=7.0.0", + "swiftmailer/swiftmailer": "^6.1.3", + "symfony/config": "~2.8|~3.3|~4.0", + "symfony/dependency-injection": "~2.7|~3.3|~4.0", + "symfony/http-kernel": "~2.7|~3.3|~4.0" + }, + "conflict": { + "twig/twig": "<1.41|<2.10" + }, + "require-dev": { + "symfony/console": "~2.7|~3.3|~4.0", + "symfony/framework-bundle": "~2.7|~3.3|~4.0", + "symfony/phpunit-bridge": "~3.3|~4.0", + "symfony/yaml": "~2.7|~3.3|~4.0" + }, + "suggest": { + "psr/log": "Allows logging" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\SwiftmailerBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Symfony SwiftmailerBundle", + "homepage": "http://symfony.com", + "time": "2019-06-18T15:27:04+00:00" + }, + { + "name": "symfony/translation", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "fe6193b066c457c144333c06aaa869a2d42a167f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/fe6193b066c457c144333c06aaa869a2d42a167f", + "reference": "fe6193b066c457c144333c06aaa869a2d42a167f", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/translation-contracts": "^1.1.6" + }, + "conflict": { + "symfony/config": "<3.4", + "symfony/dependency-injection": "<3.4", + "symfony/yaml": "<3.4" + }, + "provide": { + "symfony/translation-implementation": "1.0" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~3.4|~4.0", + "symfony/console": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/finder": "~2.8|~3.0|~4.0", + "symfony/http-kernel": "~3.4|~4.0", + "symfony/intl": "~3.4|~4.0", + "symfony/service-contracts": "^1.1.2", + "symfony/var-dumper": "~3.4|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "psr/log-implementation": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Translation Component", + "homepage": "https://symfony.com", + "time": "2019-09-27T14:37:39+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v1.1.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "364518c132c95642e530d9b2d217acbc2ccac3e6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/364518c132c95642e530d9b2d217acbc2ccac3e6", + "reference": "364518c132c95642e530d9b2d217acbc2ccac3e6", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "suggest": { + "symfony/translation-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-09-17T11:12:18+00:00" + }, + { + "name": "symfony/twig-bridge", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/twig-bridge.git", + "reference": "499b3f3aedffa44e4e30b476bbd433854afc9bc3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/499b3f3aedffa44e4e30b476bbd433854afc9bc3", + "reference": "499b3f3aedffa44e4e30b476bbd433854afc9bc3", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/translation-contracts": "^1.1", + "twig/twig": "^1.41|^2.10" + }, + "conflict": { + "symfony/console": "<3.4", + "symfony/form": "<4.3.4", + "symfony/http-foundation": "<4.3", + "symfony/translation": "<4.2", + "symfony/workflow": "<4.3" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10", + "fig/link-util": "^1.0", + "symfony/asset": "~3.4|~4.0", + "symfony/console": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/expression-language": "~3.4|~4.0", + "symfony/finder": "~3.4|~4.0", + "symfony/form": "^4.3.4", + "symfony/http-foundation": "~4.3", + "symfony/http-kernel": "~3.4|~4.0", + "symfony/mime": "~4.3", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/routing": "~3.4|~4.0", + "symfony/security-acl": "~2.8|~3.0", + "symfony/security-core": "~3.0|~4.0", + "symfony/security-csrf": "~3.4|~4.0", + "symfony/security-http": "~3.4|~4.0", + "symfony/stopwatch": "~3.4|~4.0", + "symfony/templating": "~3.4|~4.0", + "symfony/translation": "^4.2.1", + "symfony/var-dumper": "~3.4|~4.0", + "symfony/web-link": "~3.4|~4.0", + "symfony/workflow": "~4.3", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "symfony/asset": "For using the AssetExtension", + "symfony/expression-language": "For using the ExpressionExtension", + "symfony/finder": "", + "symfony/form": "For using the FormExtension", + "symfony/http-kernel": "For using the HttpKernelExtension", + "symfony/routing": "For using the RoutingExtension", + "symfony/security-core": "For using the SecurityExtension", + "symfony/security-csrf": "For using the CsrfExtension", + "symfony/security-http": "For using the LogoutUrlExtension", + "symfony/stopwatch": "For using the StopwatchExtension", + "symfony/templating": "For using the TwigEngine", + "symfony/translation": "For using the TranslationExtension", + "symfony/var-dumper": "For using the DumpExtension", + "symfony/web-link": "For using the WebLinkExtension", + "symfony/yaml": "For using the YamlExtension" + }, + "type": "symfony-bridge", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bridge\\Twig\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Twig Bridge", + "homepage": "https://symfony.com", + "time": "2019-10-02T08:36:26+00:00" + }, + { + "name": "symfony/twig-bundle", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/twig-bundle.git", + "reference": "c27738bb0d9b314b96a323aebc5f40a20e2a644b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/c27738bb0d9b314b96a323aebc5f40a20e2a644b", + "reference": "c27738bb0d9b314b96a323aebc5f40a20e2a644b", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/config": "~4.2", + "symfony/debug": "~4.0", + "symfony/http-foundation": "~4.3", + "symfony/http-kernel": "~4.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/twig-bridge": "^4.3", + "twig/twig": "~1.41|~2.10" + }, + "conflict": { + "symfony/dependency-injection": "<4.1", + "symfony/framework-bundle": "<4.3", + "symfony/translation": "<4.2" + }, + "require-dev": { + "doctrine/annotations": "~1.7", + "doctrine/cache": "~1.0", + "symfony/asset": "~3.4|~4.0", + "symfony/dependency-injection": "^4.2.5", + "symfony/expression-language": "~3.4|~4.0", + "symfony/finder": "~3.4|~4.0", + "symfony/form": "~3.4|~4.0", + "symfony/framework-bundle": "~4.3", + "symfony/routing": "~3.4|~4.0", + "symfony/stopwatch": "~3.4|~4.0", + "symfony/templating": "~3.4|~4.0", + "symfony/translation": "^4.2", + "symfony/web-link": "~3.4|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\TwigBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony TwigBundle", + "homepage": "https://symfony.com", + "time": "2019-10-02T08:36:26+00:00" + }, + { + "name": "symfony/validator", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/validator.git", + "reference": "dd344bae7894ce8d6c399d854d894eb6e52ee178" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/validator/zipball/dd344bae7894ce8d6c399d854d894eb6e52ee178", + "reference": "dd344bae7894ce8d6c399d854d894eb6e52ee178", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/translation-contracts": "^1.1" + }, + "conflict": { + "doctrine/lexer": "<1.0.2", + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/dependency-injection": "<3.4", + "symfony/http-kernel": "<3.4", + "symfony/intl": "<4.3", + "symfony/translation": "<4.2", + "symfony/yaml": "<3.4" + }, + "require-dev": { + "doctrine/annotations": "~1.7", + "doctrine/cache": "~1.0", + "egulias/email-validator": "^2.1.10", + "symfony/cache": "~3.4|~4.0", + "symfony/config": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/expression-language": "~3.4|~4.0", + "symfony/http-client": "^4.3", + "symfony/http-foundation": "~4.1", + "symfony/http-kernel": "~3.4|~4.0", + "symfony/intl": "^4.3", + "symfony/property-access": "~3.4|~4.0", + "symfony/property-info": "~3.4|~4.0", + "symfony/translation": "~4.2", + "symfony/var-dumper": "~3.4|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", + "doctrine/cache": "For using the default cached annotation reader and metadata cache.", + "egulias/email-validator": "Strict (RFC compliant) email validation", + "psr/cache-implementation": "For using the metadata cache.", + "symfony/config": "", + "symfony/expression-language": "For using the Expression validator", + "symfony/http-foundation": "", + "symfony/intl": "", + "symfony/property-access": "For accessing properties within comparison constraints", + "symfony/property-info": "To automatically add NotNull and Type constraints", + "symfony/translation": "For translating validation errors.", + "symfony/yaml": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Validator\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Validator Component", + "homepage": "https://symfony.com", + "time": "2019-10-07T12:36:49+00:00" + }, + { + "name": "symfony/var-exporter", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-exporter.git", + "reference": "d5b4e2d334c1d80e42876c7d489896cfd37562f2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/d5b4e2d334c1d80e42876c7d489896cfd37562f2", + "reference": "d5b4e2d334c1d80e42876c7d489896cfd37562f2", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "require-dev": { + "symfony/var-dumper": "^4.1.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\VarExporter\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A blend of var_export() + serialize() to turn any serializable data structure to plain PHP code", + "homepage": "https://symfony.com", + "keywords": [ + "clone", + "construct", + "export", + "hydrate", + "instantiate", + "serialize" + ], + "time": "2019-08-22T07:33:08+00:00" + }, + { + "name": "symfony/web-link", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/web-link.git", + "reference": "4bd0ce7c54d604300deee8eb1b1beda856fbba20" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/web-link/zipball/4bd0ce7c54d604300deee8eb1b1beda856fbba20", + "reference": "4bd0ce7c54d604300deee8eb1b1beda856fbba20", + "shasum": "" + }, + "require": { + "fig/link-util": "^1.0", + "php": "^7.1.3", + "psr/link": "^1.0" + }, + "conflict": { + "symfony/http-kernel": "<4.3" + }, + "require-dev": { + "symfony/http-foundation": "~3.4|~4.0", + "symfony/http-kernel": "^4.3" + }, + "suggest": { + "symfony/http-kernel": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\WebLink\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kévin Dunglas", + "email": "dunglas@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony WebLink Component", + "homepage": "https://symfony.com", + "keywords": [ + "dns-prefetch", + "http", + "http2", + "link", + "performance", + "prefetch", + "preload", + "prerender", + "psr13", + "push" + ], + "time": "2019-08-08T09:29:19+00:00" + }, + { + "name": "symfony/yaml", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "41e16350a2a1c7383c4735aa2f9fce74cf3d1178" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/41e16350a2a1c7383c4735aa2f9fce74cf3d1178", + "reference": "41e16350a2a1c7383c4735aa2f9fce74cf3d1178", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/console": "<3.4" + }, + "require-dev": { + "symfony/console": "~3.4|~4.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Yaml Component", + "homepage": "https://symfony.com", + "time": "2019-09-11T15:41:19+00:00" + }, + { + "name": "twig/twig", + "version": "v2.12.0", + "source": { + "type": "git", + "url": "https://github.com/twigphp/Twig.git", + "reference": "c7a85fd08348ca04b4d8f234f49583d9910906aa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/c7a85fd08348ca04b4d8f234f49583d9910906aa", + "reference": "c7a85fd08348ca04b4d8f234f49583d9910906aa", + "shasum": "" + }, + "require": { + "php": "^7.0", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-mbstring": "^1.3" + }, + "require-dev": { + "psr/container": "^1.0", + "symfony/debug": "^3.4|^4.2", + "symfony/phpunit-bridge": "^4.4@dev|^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.12-dev" + } + }, + "autoload": { + "psr-0": { + "Twig_": "lib/" + }, + "psr-4": { + "Twig\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Twig Team", + "homepage": "https://twig.symfony.com/contributors", + "role": "Contributors" + }, + { + "name": "Armin Ronacher", + "email": "armin.ronacher@active-4.com", + "role": "Project Founder" + } + ], + "description": "Twig, the flexible, fast, and secure template language for PHP", + "homepage": "https://twig.symfony.com", + "keywords": [ + "templating" + ], + "time": "2019-10-05T16:42:38+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.5.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/assert.git", + "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/assert/zipball/88e6d84706d09a236046d686bbea96f07b3a34f4", + "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0", + "symfony/polyfill-ctype": "^1.8" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.36 || ^7.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "time": "2019-08-24T08:43:50+00:00" + }, + { + "name": "zendframework/zend-code", + "version": "3.4.0", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-code.git", + "reference": "46feaeecea14161734b56c1ace74f28cb329f194" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-code/zipball/46feaeecea14161734b56c1ace74f28cb329f194", + "reference": "46feaeecea14161734b56c1ace74f28cb329f194", + "shasum": "" + }, + "require": { + "php": "^7.1", + "zendframework/zend-eventmanager": "^2.6 || ^3.0" + }, + "require-dev": { + "doctrine/annotations": "^1.0", + "ext-phar": "*", + "phpunit/phpunit": "^7.5.16 || ^8.4", + "zendframework/zend-coding-standard": "^1.0", + "zendframework/zend-stdlib": "^2.7 || ^3.0" + }, + "suggest": { + "doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features", + "zendframework/zend-stdlib": "Zend\\Stdlib component" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4.x-dev", + "dev-develop": "3.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\Code\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Extensions to the PHP Reflection API, static code scanning, and code generation", + "keywords": [ + "ZendFramework", + "code", + "zf" + ], + "time": "2019-10-05T23:18:22+00:00" + }, + { + "name": "zendframework/zend-eventmanager", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-eventmanager.git", + "reference": "a5e2583a211f73604691586b8406ff7296a946dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-eventmanager/zipball/a5e2583a211f73604691586b8406ff7296a946dd", + "reference": "a5e2583a211f73604691586b8406ff7296a946dd", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "athletic/athletic": "^0.1", + "container-interop/container-interop": "^1.1.0", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2", + "zendframework/zend-coding-standard": "~1.0.0", + "zendframework/zend-stdlib": "^2.7.3 || ^3.0" + }, + "suggest": { + "container-interop/container-interop": "^1.1.0, to use the lazy listeners feature", + "zendframework/zend-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev", + "dev-develop": "3.3-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\EventManager\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Trigger and listen to events within a PHP application", + "homepage": "https://github.com/zendframework/zend-eventmanager", + "keywords": [ + "event", + "eventmanager", + "events", + "zf2" + ], + "time": "2018-04-25T15:33:34+00:00" + } + ], + "packages-dev": [ + { + "name": "easycorp/easy-log-handler", + "version": "v1.0.7", + "source": { + "type": "git", + "url": "https://github.com/EasyCorp/easy-log-handler.git", + "reference": "5f95717248d20684f88cfb878d8bf3d78aadcbba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/EasyCorp/easy-log-handler/zipball/5f95717248d20684f88cfb878d8bf3d78aadcbba", + "reference": "5f95717248d20684f88cfb878d8bf3d78aadcbba", + "shasum": "" + }, + "require": { + "monolog/monolog": "~1.6", + "php": ">=5.3.0", + "symfony/yaml": "~2.3|~3.0|~4.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "EasyCorp\\EasyLog\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Javier Eguiluz", + "email": "javiereguiluz@gmail.com" + }, + { + "name": "Project Contributors", + "homepage": "https://github.com/EasyCorp/easy-log-handler" + } + ], + "description": "A handler for Monolog that optimizes log messages to be processed by humans instead of software. Improve your productivity with logs that are easy to understand.", + "homepage": "https://github.com/EasyCorp/easy-log-handler", + "keywords": [ + "easy", + "log", + "logging", + "monolog", + "productivity" + ], + "time": "2018-07-27T15:41:37+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.2.4", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "97e59c7a16464196a8b9c77c47df68e4a39a45c4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/97e59c7a16464196a8b9c77c47df68e4a39a45c4", + "reference": "97e59c7a16464196a8b9c77c47df68e4a39a45c4", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.2-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "time": "2019-09-01T07:51:21+00:00" + }, + { + "name": "symfony/browser-kit", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/browser-kit.git", + "reference": "78b7611c45039e8ce81698be319851529bf040b1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/78b7611c45039e8ce81698be319851529bf040b1", + "reference": "78b7611c45039e8ce81698be319851529bf040b1", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/dom-crawler": "~3.4|~4.0" + }, + "require-dev": { + "symfony/css-selector": "~3.4|~4.0", + "symfony/http-client": "^4.3", + "symfony/mime": "^4.3", + "symfony/process": "~3.4|~4.0" + }, + "suggest": { + "symfony/process": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\BrowserKit\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony BrowserKit Component", + "homepage": "https://symfony.com", + "time": "2019-09-10T11:25:17+00:00" + }, + { + "name": "symfony/css-selector", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "f4b3ff6a549d9ed28b2b0ecd1781bf67cf220ee9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/f4b3ff6a549d9ed28b2b0ecd1781bf67cf220ee9", + "reference": "f4b3ff6a549d9ed28b2b0ecd1781bf67cf220ee9", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony CssSelector Component", + "homepage": "https://symfony.com", + "time": "2019-10-02T08:36:26+00:00" + }, + { + "name": "symfony/debug-bundle", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug-bundle.git", + "reference": "bb83f93785dae1f9c227a408ced3eb3f86399bf8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/bb83f93785dae1f9c227a408ced3eb3f86399bf8", + "reference": "bb83f93785dae1f9c227a408ced3eb3f86399bf8", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": "^7.1.3", + "symfony/http-kernel": "~3.4|~4.0", + "symfony/twig-bridge": "~3.4|~4.0", + "symfony/var-dumper": "^4.1.1" + }, + "conflict": { + "symfony/config": "<4.2", + "symfony/dependency-injection": "<3.4" + }, + "require-dev": { + "symfony/config": "~4.2", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/web-profiler-bundle": "~3.4|~4.0" + }, + "suggest": { + "symfony/config": "For service container configuration", + "symfony/dependency-injection": "For using as a service from the container" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\DebugBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony DebugBundle", + "homepage": "https://symfony.com", + "time": "2019-07-19T08:33:28+00:00" + }, + { + "name": "symfony/debug-pack", + "version": "v1.0.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug-pack.git", + "reference": "09a4a1e9bf2465987d4f79db0ad6c11cc632bc79" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug-pack/zipball/09a4a1e9bf2465987d4f79db0ad6c11cc632bc79", + "reference": "09a4a1e9bf2465987d4f79db0ad6c11cc632bc79", + "shasum": "" + }, + "require": { + "easycorp/easy-log-handler": "^1.0.7", + "php": "^7.0", + "symfony/debug-bundle": "*", + "symfony/monolog-bundle": "^3.0", + "symfony/profiler-pack": "*", + "symfony/var-dumper": "*" + }, + "type": "symfony-pack", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A debug pack for Symfony projects", + "time": "2018-12-10T12:11:11+00:00" + }, + { + "name": "symfony/dom-crawler", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "e9f7b4d19d69b133bd638eeddcdc757723b4211f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/e9f7b4d19d69b133bd638eeddcdc757723b4211f", + "reference": "e9f7b4d19d69b133bd638eeddcdc757723b4211f", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "masterminds/html5": "<2.6" + }, + "require-dev": { + "masterminds/html5": "^2.6", + "symfony/css-selector": "~3.4|~4.0" + }, + "suggest": { + "symfony/css-selector": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\DomCrawler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony DomCrawler Component", + "homepage": "https://symfony.com", + "time": "2019-09-28T21:25:05+00:00" + }, + { + "name": "symfony/maker-bundle", + "version": "v1.13.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/maker-bundle.git", + "reference": "c4388410e2fb6321e77c5dd6e3cb2dba821f9fe6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/c4388410e2fb6321e77c5dd6e3cb2dba821f9fe6", + "reference": "c4388410e2fb6321e77c5dd6e3cb2dba821f9fe6", + "shasum": "" + }, + "require": { + "doctrine/inflector": "^1.2", + "nikic/php-parser": "^4.0", + "php": "^7.0.8", + "symfony/config": "^3.4|^4.0", + "symfony/console": "^3.4|^4.0", + "symfony/dependency-injection": "^3.4|^4.0", + "symfony/filesystem": "^3.4|^4.0", + "symfony/finder": "^3.4|^4.0", + "symfony/framework-bundle": "^3.4|^4.0", + "symfony/http-kernel": "^3.4|^4.0" + }, + "require-dev": { + "doctrine/doctrine-bundle": "^1.8", + "doctrine/orm": "^2.3", + "friendsofphp/php-cs-fixer": "^2.8", + "friendsoftwig/twigcs": "^3.1.2", + "symfony/http-client": "^4.3", + "symfony/phpunit-bridge": "^3.4.19|^4.0", + "symfony/process": "^3.4|^4.0", + "symfony/security-core": "^3.4|^4.0", + "symfony/yaml": "^3.4|^4.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\MakerBundle\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Maker helps you create empty commands, controllers, form classes, tests and more so you can forget about writing boilerplate code.", + "homepage": "https://symfony.com/doc/current/bundles/SymfonyMakerBundle/index.html", + "keywords": [ + "code generator", + "generator", + "scaffold", + "scaffolding" + ], + "time": "2019-08-18T17:34:03+00:00" + }, + { + "name": "symfony/phpunit-bridge", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/phpunit-bridge.git", + "reference": "a7fd9e742c31ac2b607b166c9016bab51a36c574" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/a7fd9e742c31ac2b607b166c9016bab51a36c574", + "reference": "a7fd9e742c31ac2b607b166c9016bab51a36c574", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" + }, + "suggest": { + "symfony/debug": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" + }, + "bin": [ + "bin/simple-phpunit" + ], + "type": "symfony-bridge", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + }, + "thanks": { + "name": "phpunit/phpunit", + "url": "https://github.com/sebastianbergmann/phpunit" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Bridge\\PhpUnit\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony PHPUnit Bridge", + "homepage": "https://symfony.com", + "time": "2019-10-02T08:36:26+00:00" + }, + { + "name": "symfony/profiler-pack", + "version": "v1.0.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/profiler-pack.git", + "reference": "99c4370632c2a59bb0444852f92140074ef02209" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/profiler-pack/zipball/99c4370632c2a59bb0444852f92140074ef02209", + "reference": "99c4370632c2a59bb0444852f92140074ef02209", + "shasum": "" + }, + "require": { + "php": "^7.0", + "symfony/stopwatch": "*", + "symfony/twig-bundle": "*", + "symfony/web-profiler-bundle": "*" + }, + "type": "symfony-pack", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A pack for the Symfony web profiler", + "time": "2018-12-10T12:11:44+00:00" + }, + { + "name": "symfony/test-pack", + "version": "v1.0.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/test-pack.git", + "reference": "ff87e800a67d06c423389f77b8209bc9dc469def" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/test-pack/zipball/ff87e800a67d06c423389f77b8209bc9dc469def", + "reference": "ff87e800a67d06c423389f77b8209bc9dc469def", + "shasum": "" + }, + "require": { + "php": "^7.0", + "symfony/browser-kit": "*", + "symfony/css-selector": "*", + "symfony/phpunit-bridge": "*" + }, + "type": "symfony-pack", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A pack for functional and end-to-end testing within a Symfony app", + "time": "2019-06-21T06:27:32+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "bde8957fc415fdc6964f33916a3755737744ff05" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/bde8957fc415fdc6964f33916a3755737744ff05", + "reference": "bde8957fc415fdc6964f33916a3755737744ff05", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php72": "~1.5" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/console": "<3.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "~3.4|~4.0", + "symfony/process": "~3.4|~4.0", + "twig/twig": "~1.34|~2.4" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony mechanism for exploring and dumping PHP variables", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "time": "2019-10-04T19:48:13+00:00" + }, + { + "name": "symfony/web-profiler-bundle", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/web-profiler-bundle.git", + "reference": "b52bb32e6182d924303dbeb9c584396819fef118" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/b52bb32e6182d924303dbeb9c584396819fef118", + "reference": "b52bb32e6182d924303dbeb9c584396819fef118", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/config": "^4.2", + "symfony/http-kernel": "^4.3", + "symfony/routing": "~3.4|~4.0", + "symfony/twig-bundle": "~4.2", + "symfony/var-dumper": "~3.4|~4.0", + "twig/twig": "^1.41|^2.10" + }, + "conflict": { + "symfony/dependency-injection": "<3.4", + "symfony/form": "<4.3", + "symfony/messenger": "<4.2", + "symfony/var-dumper": "<3.4" + }, + "require-dev": { + "symfony/console": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/stopwatch": "~3.4|~4.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\WebProfilerBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony WebProfilerBundle", + "homepage": "https://symfony.com", + "time": "2019-10-02T08:36:26+00:00" + }, + { + "name": "symfony/web-server-bundle", + "version": "v4.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/web-server-bundle.git", + "reference": "dc26b980900ddf3e9feade14e5b21c029e8ca92f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/web-server-bundle/zipball/dc26b980900ddf3e9feade14e5b21c029e8ca92f", + "reference": "dc26b980900ddf3e9feade14e5b21c029e8ca92f", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/config": "~3.4|~4.0", + "symfony/console": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/http-kernel": "~3.4|~4.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/process": "^3.4.2|^4.0.2" + }, + "suggest": { + "symfony/expression-language": "For using the filter option of the log server.", + "symfony/monolog-bridge": "For using the log server." + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\WebServerBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony WebServerBundle", + "homepage": "https://symfony.com", + "time": "2019-08-20T14:27:59+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": "^7.1.2", + "ext-ctype": "*", + "ext-iconv": "*", + "ext-json": "*" + }, + "platform-dev": [] +} diff --git a/config/bootstrap.php b/config/bootstrap.php new file mode 100644 index 0000000..9c5a99c --- /dev/null +++ b/config/bootstrap.php @@ -0,0 +1,23 @@ +=1.2) +if (is_array($env = @include dirname(__DIR__).'/.env.local.php')) { + foreach ($env as $k => $v) { + $_ENV[$k] = $_ENV[$k] ?? (isset($_SERVER[$k]) && 0 !== strpos($k, 'HTTP_') ? $_SERVER[$k] : $v); + } +} elseif (!class_exists(Dotenv::class)) { + throw new RuntimeException('Please run "composer require symfony/dotenv" to load the ".env" files configuring the application.'); +} else { + // load all the .env files + (new Dotenv(false))->loadEnv(dirname(__DIR__).'/.env'); +} + +$_SERVER += $_ENV; +$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? null) ?: 'dev'; +$_SERVER['APP_DEBUG'] = $_SERVER['APP_DEBUG'] ?? $_ENV['APP_DEBUG'] ?? 'prod' !== $_SERVER['APP_ENV']; +$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = (int) $_SERVER['APP_DEBUG'] || filter_var($_SERVER['APP_DEBUG'], FILTER_VALIDATE_BOOLEAN) ? '1' : '0'; diff --git a/config/bundles.php b/config/bundles.php new file mode 100644 index 0000000..e1237f0 --- /dev/null +++ b/config/bundles.php @@ -0,0 +1,17 @@ + ['all' => true], + Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class => ['all' => true], + Doctrine\Bundle\DoctrineCacheBundle\DoctrineCacheBundle::class => ['all' => true], + Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true], + Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true], + Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true], + Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle::class => ['all' => true], + Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true], + Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true], + Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true], + Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true, 'test' => true], + Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true], + Symfony\Bundle\WebServerBundle\WebServerBundle::class => ['dev' => true], +]; diff --git a/config/packages/cache.yaml b/config/packages/cache.yaml new file mode 100644 index 0000000..4028c9b --- /dev/null +++ b/config/packages/cache.yaml @@ -0,0 +1,19 @@ +framework: + cache: + # Put the unique name of your app here: the prefix seed + # is used to compute stable namespaces for cache keys. + #prefix_seed: your_vendor_name/app_name + + # The app cache caches to the filesystem by default. + # Other options include: + + # Redis + #app: cache.adapter.redis + #default_redis_provider: redis://localhost + + # APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues) + #app: cache.adapter.apcu + + # Namespaced pools use the above "app" backend by default + #pools: + #my.dedicated.cache: null diff --git a/config/packages/dev/debug.yaml b/config/packages/dev/debug.yaml new file mode 100644 index 0000000..26d4e53 --- /dev/null +++ b/config/packages/dev/debug.yaml @@ -0,0 +1,4 @@ +debug: + # Forwards VarDumper Data clones to a centralized server allowing to inspect dumps on CLI or in your browser. + # See the "server:dump" command to start a new server. + dump_destination: "tcp://%env(VAR_DUMPER_SERVER)%" diff --git a/config/packages/dev/easy_log_handler.yaml b/config/packages/dev/easy_log_handler.yaml new file mode 100644 index 0000000..27bfc60 --- /dev/null +++ b/config/packages/dev/easy_log_handler.yaml @@ -0,0 +1,16 @@ +services: + EasyCorp\EasyLog\EasyLogHandler: + public: false + arguments: ['%kernel.logs_dir%/%kernel.environment%.log'] + +#// FIXME: How to add this configuration automatically without messing up with the monolog configuration? +#monolog: +# handlers: +# buffered: +# type: buffer +# handler: easylog +# channels: ['!event'] +# level: debug +# easylog: +# type: service +# id: EasyCorp\EasyLog\EasyLogHandler diff --git a/config/packages/dev/monolog.yaml b/config/packages/dev/monolog.yaml new file mode 100644 index 0000000..b1998da --- /dev/null +++ b/config/packages/dev/monolog.yaml @@ -0,0 +1,19 @@ +monolog: + handlers: + main: + type: stream + path: "%kernel.logs_dir%/%kernel.environment%.log" + level: debug + channels: ["!event"] + # uncomment to get logging in your browser + # you may have to allow bigger header sizes in your Web server configuration + #firephp: + # type: firephp + # level: info + #chromephp: + # type: chromephp + # level: info + console: + type: console + process_psr_3_messages: false + channels: ["!event", "!doctrine", "!console"] diff --git a/config/packages/dev/routing.yaml b/config/packages/dev/routing.yaml new file mode 100644 index 0000000..4116679 --- /dev/null +++ b/config/packages/dev/routing.yaml @@ -0,0 +1,3 @@ +framework: + router: + strict_requirements: true diff --git a/config/packages/dev/swiftmailer.yaml b/config/packages/dev/swiftmailer.yaml new file mode 100644 index 0000000..b98158e --- /dev/null +++ b/config/packages/dev/swiftmailer.yaml @@ -0,0 +1,4 @@ +# See https://symfony.com/doc/current/email/dev_environment.html +swiftmailer: + # send all emails to a specific address + #delivery_addresses: ['me@example.com'] diff --git a/config/packages/dev/web_profiler.yaml b/config/packages/dev/web_profiler.yaml new file mode 100644 index 0000000..e92166a --- /dev/null +++ b/config/packages/dev/web_profiler.yaml @@ -0,0 +1,6 @@ +web_profiler: + toolbar: true + intercept_redirects: false + +framework: + profiler: { only_exceptions: false } diff --git a/config/packages/doctrine.yaml b/config/packages/doctrine.yaml new file mode 100644 index 0000000..849e3f4 --- /dev/null +++ b/config/packages/doctrine.yaml @@ -0,0 +1,22 @@ +doctrine: + dbal: + # configure these for your database server + driver: 'pdo_mysql' + server_version: '5.7' + charset: utf8mb4 + default_table_options: + charset: utf8mb4 + collate: utf8mb4_unicode_ci + + url: '%env(resolve:DATABASE_URL)%' + orm: + auto_generate_proxy_classes: true + naming_strategy: doctrine.orm.naming_strategy.underscore + auto_mapping: true + mappings: + App: + is_bundle: false + type: annotation + dir: '%kernel.project_dir%/src/Entity' + prefix: 'App\Entity' + alias: App diff --git a/config/packages/doctrine_migrations.yaml b/config/packages/doctrine_migrations.yaml new file mode 100644 index 0000000..3bf0fbc --- /dev/null +++ b/config/packages/doctrine_migrations.yaml @@ -0,0 +1,5 @@ +doctrine_migrations: + dir_name: '%kernel.project_dir%/src/Migrations' + # namespace is arbitrary but should be different from App\Migrations + # as migrations classes should NOT be autoloaded + namespace: DoctrineMigrations diff --git a/config/packages/framework.yaml b/config/packages/framework.yaml new file mode 100644 index 0000000..6089f4b --- /dev/null +++ b/config/packages/framework.yaml @@ -0,0 +1,16 @@ +framework: + secret: '%env(APP_SECRET)%' + #csrf_protection: true + #http_method_override: true + + # Enables session support. Note that the session will ONLY be started if you read or write from it. + # Remove or comment this section to explicitly disable session support. + session: + handler_id: null + cookie_secure: auto + cookie_samesite: lax + + #esi: true + #fragments: true + php_errors: + log: true diff --git a/config/packages/prod/doctrine.yaml b/config/packages/prod/doctrine.yaml new file mode 100644 index 0000000..0a7c53b --- /dev/null +++ b/config/packages/prod/doctrine.yaml @@ -0,0 +1,32 @@ +doctrine: + orm: + auto_generate_proxy_classes: false + metadata_cache_driver: + type: service + id: doctrine.system_cache_provider + query_cache_driver: + type: service + id: doctrine.system_cache_provider + result_cache_driver: + type: service + id: doctrine.result_cache_provider + +services: + doctrine.result_cache_provider: + class: Symfony\Component\Cache\DoctrineProvider + public: false + arguments: + - '@doctrine.result_cache_pool' + doctrine.system_cache_provider: + class: Symfony\Component\Cache\DoctrineProvider + public: false + arguments: + - '@doctrine.system_cache_pool' + +framework: + cache: + pools: + doctrine.result_cache_pool: + adapter: cache.app + doctrine.system_cache_pool: + adapter: cache.system diff --git a/config/packages/prod/monolog.yaml b/config/packages/prod/monolog.yaml new file mode 100644 index 0000000..5bcdf06 --- /dev/null +++ b/config/packages/prod/monolog.yaml @@ -0,0 +1,23 @@ +monolog: + handlers: + main: + type: fingers_crossed + action_level: error + handler: nested + excluded_http_codes: [404, 405] + nested: + type: stream + path: "%kernel.logs_dir%/%kernel.environment%.log" + level: debug + console: + type: console + process_psr_3_messages: false + channels: ["!event", "!doctrine"] + deprecation: + type: stream + path: "%kernel.logs_dir%/%kernel.environment%.deprecations.log" + deprecation_filter: + type: filter + handler: deprecation + max_level: info + channels: ["php"] diff --git a/config/packages/routing.yaml b/config/packages/routing.yaml new file mode 100644 index 0000000..3d69e1e --- /dev/null +++ b/config/packages/routing.yaml @@ -0,0 +1,4 @@ +framework: + router: + strict_requirements: null + utf8: true diff --git a/config/packages/security.yaml b/config/packages/security.yaml new file mode 100644 index 0000000..855f921 --- /dev/null +++ b/config/packages/security.yaml @@ -0,0 +1,22 @@ +security: + # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers + providers: + in_memory: { memory: null } + firewalls: + dev: + pattern: ^/(_(profiler|wdt)|css|images|js)/ + security: false + main: + anonymous: true + + # activate different ways to authenticate + # https://symfony.com/doc/current/security.html#firewalls-authentication + + # https://symfony.com/doc/current/security/impersonating_user.html + # switch_user: true + + # Easy way to control access for large sections of your site + # Note: Only the *first* access control that matches will be used + access_control: + # - { path: ^/admin, roles: ROLE_ADMIN } + # - { path: ^/profile, roles: ROLE_USER } diff --git a/config/packages/sensio_framework_extra.yaml b/config/packages/sensio_framework_extra.yaml new file mode 100644 index 0000000..1821ccc --- /dev/null +++ b/config/packages/sensio_framework_extra.yaml @@ -0,0 +1,3 @@ +sensio_framework_extra: + router: + annotations: false diff --git a/config/packages/swiftmailer.yaml b/config/packages/swiftmailer.yaml new file mode 100644 index 0000000..cae6508 --- /dev/null +++ b/config/packages/swiftmailer.yaml @@ -0,0 +1,3 @@ +swiftmailer: + url: '%env(MAILER_URL)%' + spool: { type: 'memory' } diff --git a/config/packages/test/framework.yaml b/config/packages/test/framework.yaml new file mode 100644 index 0000000..d051c84 --- /dev/null +++ b/config/packages/test/framework.yaml @@ -0,0 +1,4 @@ +framework: + test: true + session: + storage_id: session.storage.mock_file diff --git a/config/packages/test/monolog.yaml b/config/packages/test/monolog.yaml new file mode 100644 index 0000000..2762653 --- /dev/null +++ b/config/packages/test/monolog.yaml @@ -0,0 +1,7 @@ +monolog: + handlers: + main: + type: stream + path: "%kernel.logs_dir%/%kernel.environment%.log" + level: debug + channels: ["!event"] diff --git a/config/packages/test/routing.yaml b/config/packages/test/routing.yaml new file mode 100644 index 0000000..4116679 --- /dev/null +++ b/config/packages/test/routing.yaml @@ -0,0 +1,3 @@ +framework: + router: + strict_requirements: true diff --git a/config/packages/test/swiftmailer.yaml b/config/packages/test/swiftmailer.yaml new file mode 100644 index 0000000..f438078 --- /dev/null +++ b/config/packages/test/swiftmailer.yaml @@ -0,0 +1,2 @@ +swiftmailer: + disable_delivery: true diff --git a/config/packages/test/validator.yaml b/config/packages/test/validator.yaml new file mode 100644 index 0000000..1e5ab78 --- /dev/null +++ b/config/packages/test/validator.yaml @@ -0,0 +1,3 @@ +framework: + validation: + not_compromised_password: false diff --git a/config/packages/test/web_profiler.yaml b/config/packages/test/web_profiler.yaml new file mode 100644 index 0000000..03752de --- /dev/null +++ b/config/packages/test/web_profiler.yaml @@ -0,0 +1,6 @@ +web_profiler: + toolbar: false + intercept_redirects: false + +framework: + profiler: { collect: false } diff --git a/config/packages/translation.yaml b/config/packages/translation.yaml new file mode 100644 index 0000000..05a2b3d --- /dev/null +++ b/config/packages/translation.yaml @@ -0,0 +1,6 @@ +framework: + default_locale: en + translator: + default_path: '%kernel.project_dir%/translations' + fallbacks: + - en diff --git a/config/packages/twig.yaml b/config/packages/twig.yaml new file mode 100644 index 0000000..d1582a2 --- /dev/null +++ b/config/packages/twig.yaml @@ -0,0 +1,4 @@ +twig: + default_path: '%kernel.project_dir%/templates' + debug: '%kernel.debug%' + strict_variables: '%kernel.debug%' diff --git a/config/packages/validator.yaml b/config/packages/validator.yaml new file mode 100644 index 0000000..350786a --- /dev/null +++ b/config/packages/validator.yaml @@ -0,0 +1,8 @@ +framework: + validation: + email_validation_mode: html5 + + # Enables validator auto-mapping support. + # For instance, basic validation constraints will be inferred from Doctrine's metadata. + #auto_mapping: + # App\Entity\: [] diff --git a/config/routes.yaml b/config/routes.yaml new file mode 100644 index 0000000..54641b0 --- /dev/null +++ b/config/routes.yaml @@ -0,0 +1,16 @@ +home: + path: / + defaults: { _controller: 'App\Controller\HomeController:index' } + +game: + path: /game + controller: App\Controller\HomeController:play + +## AJAX +chess_enabled_moves: + path: /game/enabled_moves + controller: App\Controller\ChessController:enabledMoves + +chess_move: + path: /game/move + controller: App\Controller\ChessController:move \ No newline at end of file diff --git a/config/routes/annotations.yaml b/config/routes/annotations.yaml new file mode 100644 index 0000000..d49a502 --- /dev/null +++ b/config/routes/annotations.yaml @@ -0,0 +1,3 @@ +controllers: + resource: ../../src/Controller/ + type: annotation diff --git a/config/routes/dev/twig.yaml b/config/routes/dev/twig.yaml new file mode 100644 index 0000000..f4ee839 --- /dev/null +++ b/config/routes/dev/twig.yaml @@ -0,0 +1,3 @@ +_errors: + resource: '@TwigBundle/Resources/config/routing/errors.xml' + prefix: /_error diff --git a/config/routes/dev/web_profiler.yaml b/config/routes/dev/web_profiler.yaml new file mode 100644 index 0000000..c82beff --- /dev/null +++ b/config/routes/dev/web_profiler.yaml @@ -0,0 +1,7 @@ +web_profiler_wdt: + resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml' + prefix: /_wdt + +web_profiler_profiler: + resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml' + prefix: /_profiler diff --git a/config/services.yaml b/config/services.yaml new file mode 100644 index 0000000..98bfe8f --- /dev/null +++ b/config/services.yaml @@ -0,0 +1,33 @@ +# This file is the entry point to configure your own services. +# Files in the packages/ subdirectory configure your dependencies. + +# Put parameters here that don't need to change on each machine where the app is deployed +# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration +parameters: + +services: + # default configuration for services in *this* file + _defaults: + autowire: true # Automatically injects dependencies in your services. + autoconfigure: true # Automatically registers your services as commands, event subscribers, etc. + + # makes classes in src/ available to be used as services + # this creates a service per class whose id is the fully-qualified class name + App\: + resource: '../src/*' + exclude: '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}' + + # controllers are imported separately to make sure services can be injected + # as action arguments even if you don't extend any base controller class + App\Controller\: + resource: '../src/Controller' + tags: ['controller.service_arguments'] + + # add more service definitions when explicit configuration is needed + # please note that last definitions always *replace* previous ones + + App\Service\Chess\Updater\ChessGameUpdater: + public: true + arguments: + $movePossibility: '@App\Service\Chess\Updater\MovePossibility' + $responseBuilder: '@App\Service\Chess\Updater\ResponseBuilder' \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index a4c434c..a3d1b74 100755 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -55,5 +55,5 @@ services: DATABASE_NAME: ${DATABASE_NAME} DATABASE_USER: ${DATABASE_USER} DATABASE_PASSWORD: ${DATABASE_PASSWORD} - DATABASE_ROOT_PASSWORD: ${DATABASE_PASSWORD} + DATABASE_ROOT_PASSWORD: ${DATABASE_ROOT_PASSWORD} APP_DOMAIN: ${APP_DOMAIN} \ No newline at end of file diff --git a/index.php b/index.php deleted file mode 100644 index 77a4cbe..0000000 --- a/index.php +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - Chess - - -

Chess

- Jouer aux echecs" - ?> - - \ No newline at end of file diff --git a/jeu.php b/jeu.php deleted file mode 100644 index 86e972d..0000000 --- a/jeu.php +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - The Game - - - -
- - looser tu supporte pas canvas - -
-
- - - diff --git a/phpunit.xml.dist b/phpunit.xml.dist new file mode 100644 index 0000000..cc44e06 --- /dev/null +++ b/phpunit.xml.dist @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + tests + + + + + + src + + + + + + + diff --git a/image/style.css b/public/assets/css/style.css similarity index 100% rename from image/style.css rename to public/assets/css/style.css diff --git a/image/bB.png b/public/assets/image/bB.png similarity index 100% rename from image/bB.png rename to public/assets/image/bB.png diff --git a/image/bN.png b/public/assets/image/bN.png similarity index 100% rename from image/bN.png rename to public/assets/image/bN.png diff --git a/image/bQ.png b/public/assets/image/bQ.png similarity index 100% rename from image/bQ.png rename to public/assets/image/bQ.png diff --git a/image/bT.png b/public/assets/image/bT.png similarity index 100% rename from image/bT.png rename to public/assets/image/bT.png diff --git a/image/nK.png b/public/assets/image/nK.png similarity index 100% rename from image/nK.png rename to public/assets/image/nK.png diff --git a/image/nP.png b/public/assets/image/nP.png similarity index 100% rename from image/nP.png rename to public/assets/image/nP.png diff --git a/image/wB.png b/public/assets/image/wB.png similarity index 100% rename from image/wB.png rename to public/assets/image/wB.png diff --git a/image/wK.png b/public/assets/image/wK.png similarity index 100% rename from image/wK.png rename to public/assets/image/wK.png diff --git a/image/wN.png b/public/assets/image/wN.png similarity index 100% rename from image/wN.png rename to public/assets/image/wN.png diff --git a/image/wP.png b/public/assets/image/wP.png similarity index 100% rename from image/wP.png rename to public/assets/image/wP.png diff --git a/image/wQ.png b/public/assets/image/wQ.png similarity index 100% rename from image/wQ.png rename to public/assets/image/wQ.png diff --git a/image/wT.png b/public/assets/image/wT.png similarity index 100% rename from image/wT.png rename to public/assets/image/wT.png diff --git a/js/draw_board.js b/public/assets/js/draw_board.js similarity index 90% rename from js/draw_board.js rename to public/assets/js/draw_board.js index fe2e91c..ac2ba8b 100644 --- a/js/draw_board.js +++ b/public/assets/js/draw_board.js @@ -2,16 +2,22 @@ window.onload = function () { var canvas = document.getElementById('mon_canvas'); if (!canvas) { - alert("impossible de recuperer le canvas"); + alert("impossible to load canvas"); return; } var context = canvas.getContext('2d'); if (!context) { - alert("impossible de recupere le context canvas"); + alert("impossible to get canvas context"); return; } + var urlDictionary = [ + 'enabled_moves', + 'move' + ]; + var urlIndex = 0; + var i = 0; var j = 0; var mouseX = 0; @@ -119,7 +125,7 @@ window.onload = function () { context.drawImage(qw, 300, 0, 100, 100); } - qw.src = '../image/wQ.png'; + qw.src = 'assets/image/wQ.png'; var tw1 = new Image(); @@ -127,27 +133,27 @@ window.onload = function () { context.drawImage(tw1, 0, 0, 100, 100); context.drawImage(tw1, 700, 0, 100, 100); } - tw1.src = '../image/wT.png'; + tw1.src = 'assets/image/wT.png'; var nw = new Image(); nw.onload = function () { context.drawImage(nw, 100, 0, 100, 100); context.drawImage(nw, 600, 0, 100, 100); } - nw.src = '../image/wN.png'; + nw.src = 'assets/image/wN.png'; var bw = new Image(); bw.onload = function () { context.drawImage(bw, 200, 0, 100, 100); context.drawImage(bw, 500, 0, 100, 100); } - bw.src = '../image/wB.png'; + bw.src = 'assets/image/wB.png'; var roi = new Image(); roi.onload = function () { context.drawImage(roi, 400, 0, 100, 100); } - roi.src = '../image/wK.png'; + roi.src = 'assets/image/wK.png'; var pw = new Image(); pw.onload = function () { @@ -156,14 +162,14 @@ window.onload = function () { context.drawImage(pw, i * 100, 100, 100, 100); } } - pw.src = '../image/wP.png'; + pw.src = 'assets/image/wP.png'; var qb = new Image(); qb.onload = function () { context.drawImage(qb, 300, 700, 100, 100); } - qb.src = '../image/bQ.png'; + qb.src = 'assets/image/bQ.png'; var tb = new Image(); @@ -172,7 +178,7 @@ window.onload = function () { context.drawImage(tb, 0, 700, 100, 100); context.drawImage(tb, 700, 700, 100, 100); } - tb.src = '../image/bT.png'; + tb.src = 'assets/image/bT.png'; var nb = new Image(); @@ -180,20 +186,20 @@ window.onload = function () { context.drawImage(nb, 100, 700, 100, 100); context.drawImage(nb, 600, 700, 100, 100); } - nb.src = '../image/bN.png'; + nb.src = 'assets/image/bN.png'; var bb = new Image(); bb.onload = function () { context.drawImage(bb, 200, 700, 100, 100); context.drawImage(bb, 500, 700, 100, 100); } - bb.src = '../image/bB.png'; + bb.src = 'assets/image/bB.png'; var kb = new Image(); kb.onload = function () { context.drawImage(kb, 400, 700, 100, 100); } - kb.src = '../image/nK.png'; + kb.src = 'assets/image/nK.png'; var pb = new Image(); pb.onload = function () { @@ -202,7 +208,7 @@ window.onload = function () { context.drawImage(pb, i2 * 100, 600, 100, 100); } } - pb.src = '../image/nP.png'; + pb.src = 'assets/image/nP.png'; ///Code AJAX pour interagir avec PHP @@ -210,17 +216,22 @@ window.onload = function () { var xhr = new XMLHttpRequest(); var mx = (mouseX / 100); var my = (mouseY / 100); - // alert ('avant state'); - xhr.onreadystatechange = function () { // On gère ici une requête asynchrone - if (xhr.readyState == 4 && xhr.status == 200) { + if (mx > 7 || my > 7) { + return; + } + xhr.onreadystatechange = function () { + if (xhr.readyState === 4 && xhr.status === 200) { var json = eval('(' + xhr.responseText + ')'); - //alert ('appel colorcase'); - colorcase(json); + if (json != null) { + colorcase(json); + } + // bitwise operator used as lever + urlIndex ^= 1; } - }; - xhr.open("GET", "/ajax.php?mx=" + mx + "&my=" + my, true); + + xhr.open("GET", "/game/" + urlDictionary[urlIndex] + "?mx=" + mx + "&my=" + my, true); xhr.send(null); } @@ -228,7 +239,6 @@ window.onload = function () { var carre = []; function colorcase(tablo) { - // alert ('colorcase'); var i = 0; if (tablo[tablo.length - 1] >= "A" && tablo[tablo.length - 1] <= "Z") { @@ -310,9 +320,6 @@ window.onload = function () { break; } break; - break; - - } } else { carre = tablo; diff --git a/public/index.php b/public/index.php new file mode 100644 index 0000000..e30f90c --- /dev/null +++ b/public/index.php @@ -0,0 +1,27 @@ +handle($request); +$response->send(); +$kernel->terminate($request, $response); diff --git a/src/Controller/.gitignore b/src/Controller/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/src/Controller/ChessController.php b/src/Controller/ChessController.php new file mode 100644 index 0000000..b6b6a5e --- /dev/null +++ b/src/Controller/ChessController.php @@ -0,0 +1,26 @@ +buildMovePossibility($request, $this->get('session')); + + return $chessGameUpdater->getEncodedResponse(); + } + + function move(Request $request, ChessGameUpdater $chessGameUpdater): Response + { + $chessGameUpdater->requestForMove($request, $this->get('session')); + + return $chessGameUpdater->getEncodedResponse(); + } +} \ No newline at end of file diff --git a/src/Controller/HomeController.php b/src/Controller/HomeController.php new file mode 100644 index 0000000..1f44a96 --- /dev/null +++ b/src/Controller/HomeController.php @@ -0,0 +1,28 @@ +render('/index.html.twig', ['']); + } + + public function play(): Response + { + $chessBoard = new ChessBoard(); + $player = 0; + + $this->get('session')->set('player', $player); + $this->get('session')->set('chessboard', $chessBoard); + $this->get('session')->set('ancient', array()); + + return $this->render('/game/index.html.twig', []); + } +} \ No newline at end of file diff --git a/src/Entity/.gitignore b/src/Entity/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/src/Entity/Chess/ChessBoard.php b/src/Entity/Chess/ChessBoard.php new file mode 100644 index 0000000..0c6f89e --- /dev/null +++ b/src/Entity/Chess/ChessBoard.php @@ -0,0 +1,233 @@ +$name; + } + + public function __set($name, $value) + { + $this->$name = $value; + } + + //constructor + public function __construct() + { + $this->correspondence["a"] = 0; + $this->correspondence["b"] = 1; + $this->correspondence["c"] = 2; + $this->correspondence["d"] = 3; + $this->correspondence["e"] = 4; + $this->correspondence["f"] = 5; + $this->correspondence["g"] = 6; + $this->correspondence["h"] = 7; + + for ($i = 0; $i < $this->height; $i++) { + for ($j = 0; $j < $this->length; $j++) { + switch ($i) { + case 0: + switch ($j) { + case 0: + $this->board[$i][$j] = new Tower( + $i, + $j, + "White", + true + ); + break; + case 1: + $this->board[$i][$j] = new Knight( + $i, + $j, + "White", + true + ); + break; + case 2: + $this->board[$i][$j] = new Bishop( + $i, + $j, + "White", + true + ); + break; + case 3: + $this->board[$i][$j] = new Queen( + $i, + $j, + "White", + true + ); + break; + case 4: + $this->board[$i][$j] = new King( + $i, + $j, + "White", + true + ); + break; + case 5: + $this->board[$i][$j] = new Bishop( + $i, + $j, + "White", + true + ); + break; + case 6: + $this->board[$i][$j] = new Knight( + $i, + $j, + "White", + true + ); + break; + case 7: + $this->board[$i][$j] = new Tower( + $i, + $j, + "White", + true + ); + break; + default: + break; + } + break; + case 1: + $this->board[$i][$j] = new Pawn ( + $i, + $j, + "White", + true + ); + break; + case 6: + $this->board[$i][$j] = new Pawn( + $i, + $j, + "Black", + true + ); + break; + case 7: + switch ($j) { + case 0: + $this->board[$i][$j] = new Tower( + $i, + $j, + "Black", + true + ); + break; + case 1: + $this->board[$i][$j] = new Knight( + $i, + $j, + "Black", + true + ); + break; + case 2: + $this->board[$i][$j] = new Bishop( + $i, + $j, + "Black", + true + ); + break; + case 3: + $this->board[$i][$j] = new Queen( + $i, + $j, + "Black", + true + ); + break; + case 4: + $this->board[$i][$j] = new King( + $i, + $j, + "Black", + true + ); + break; + case 5: + $this->board[$i][$j] = new Bishop( + $i, + $j, + "Black", + true + ); + break; + case 6: + $this->board[$i][$j] = new Knight( + $i, + $j, + "Black", + true + ); + break; + case 7: + $this->board[$i][$j] = new Tower( + $i, + $j, + "Black", + true + ); + break; + } + break; + default : + $this->board[$i][$j] = new None($i, $j, "", false); + break; + } + } + } + } + + public function isValid ($from, $to) + { + if ($this->board[$this->correspondence[$from[0]]][$from[1]] != "-") { + if ($this->board[$this->correspondence[$from[0]]][$from[1]] + ->check ($to) == true) { + return true; + } else { + return false; + } + } + return false; + } + + public function getBoard(): array + { + return $this->board; + } + +} \ No newline at end of file diff --git a/Bishop.php b/src/Entity/Chess/Pieces/Bishop.php similarity index 57% rename from Bishop.php rename to src/Entity/Chess/Pieces/Bishop.php index 518754a..99b53bd 100644 --- a/Bishop.php +++ b/src/Entity/Chess/Pieces/Bishop.php @@ -1,21 +1,16 @@ pos_x = $y; - $this->pos_y = $x; + $this->posX = $y; + $this->posY = $x; $this->color = $color; $this->alive = $alive; $this->type = "B"; @@ -33,36 +28,26 @@ public function __set($name, $value) $this->$name = $value; } - - - public function eat () - { - - } - public function display() { - if ($this->color == "White") + if ($this->color == "White") { echo "Bw"; - else + } else { echo "Bb"; + } } - public function check($from,$to) + public function check(int $from, int $to, ChessBoard $chess, $player = null) { - $chess= $_SESSION["chessboard"]; - $px = $from; $py = $to; $cpt = 0; $tabres = array(0); - if (($py + 1 < 8) ) - { - if ($px + 1 < 8) - { - while (($px + 1 < 8)&&($py + 1 < 8) && ($chess->board[$py + 1][$px + 1]->type == "-")) - { + if (($py + 1 < 8) ) { + if ($px + 1 < 8) { + while (($px + 1 < 8)&&($py + 1 < 8) && + ($chess->board[$py + 1][$px + 1]->type == "-")) { $px++; $py++; $tabres[$cpt] = $px; @@ -75,12 +60,10 @@ public function check($from,$to) $px = $from; $py = $to; - if (($py + 1 > 8)) - { - if ($px - 1 >= 0) - { - while (($px - 1 >= 0)&&($py + 1 < 8) && ($chess->board[$py + 1][$px - 1]->type == "-")) - { + if (($py + 1 > 8)) { + if ($px - 1 >= 0) { + while (($px - 1 >= 0)&&($py + 1 < 8) && + ($chess->board[$py + 1][$px - 1]->type == "-")) { $px--; $py++; $tabres[$cpt] = $px; @@ -94,12 +77,10 @@ public function check($from,$to) $px = $from; $py = $to; - if (($px - 1 >= 0)) - { - if ($py - 1 >= 0) - - { - while (($px - 1 >= 0)&&($py - 1 >= 0) && ($chess->board[$py - 1][$px - 1]->type == "-")) + if (($px - 1 >= 0)) { + if ($py - 1 >= 0) { + while (($px - 1 >= 0)&&($py - 1 >= 0) && + ($chess->board[$py - 1][$px - 1]->type == "-")) { $px--; $py--; @@ -113,12 +94,10 @@ public function check($from,$to) $px = $from; $py = $to; - if ($px + 1 < 8) - { - if ($py - 1 >= 0) - { - while (($px + 1 < 8)&&($py - 1 >= 0) && ($chess->board[$py - 1][$px + 1]->type == "-")) - { + if ($px + 1 < 8) { + if ($py - 1 >= 0) { + while (($px + 1 < 8)&&($py - 1 >= 0) && + ($chess->board[$py - 1][$px + 1]->type == "-")) { $px++; $py--; $tabres[$cpt] = $px; @@ -130,23 +109,31 @@ public function check($from,$to) } return $tabres; - } - public function move($fromx, $fromy, $tox, $toy) { - $chess = $_SESSION["chessboard"]; + public function move( + int $fromx, + int $fromy, + int $tox, + int $toy, + ChessBoard $chess + ): array + { $tab = array (0); $board = $chess->board; $board[$toy][$tox] = $chess->board[$fromy][$fromx]; - $board[$fromy][$fromx] = new None($fromy, $fromx, "", FALSE); + $board[$fromy][$fromx] = new None($fromy, $fromx, "", false); $tab[0]=$tox; $tab[1]=$toy; $tab[2]=$board[$toy][$tox]->type; $chess->board = $board; - $_SESSION["chessboard"] = $chess; - return $tab; - } -} -?> + $response = [ + 'tab' => $tab, + 'chess' => $board + ]; + + return $response; + } +} \ No newline at end of file diff --git a/King.php b/src/Entity/Chess/Pieces/King.php similarity index 65% rename from King.php rename to src/Entity/Chess/Pieces/King.php index 0bf567a..710a1cc 100644 --- a/King.php +++ b/src/Entity/Chess/Pieces/King.php @@ -1,27 +1,22 @@ pos_x = $y; - $this->pos_y = $x; + $this->posX = $y; + $this->posY = $x; $this->color = $color; $this->alive = $alive; $this->type = "K"; - $this->has_moved = false; + $this->hasMoved = false; } //getter setter @@ -35,14 +30,7 @@ public function __set($name, $value) { $this->$name = $value; } - - - - public function eat () - { - - } - + public function display() { if ($this->color == "White") @@ -51,81 +39,73 @@ public function display() echo "Kb"; } - public function check($from, $to) + public function check(int $from, int $to, ChessBoard $chess, $player = null) { - $board = $_SESSION["chessboard"]; $cpt = 0; $px = $from; $py = $to; $tabres = array(0); - if ($px + 1 < 8) - { + if ($px + 1 < 8) { $tabres[$cpt] = $px + 1; $cpt++; $tabres[$cpt] = $py; $cpt++; } - if ($px - 1 >= 0) - { + if ($px - 1 >= 0) { $tabres[$cpt] = $px - 1; $cpt++; $tabres[$cpt] = $py; $cpt++; } - - if ($py + 1 < 8) - { + if ($py + 1 < 8) { $tabres[$cpt] = $px; $cpt++; $tabres[$cpt] = $py + 1; $cpt++; } - if ($px - 1 >= 0) - { + if ($px - 1 >= 0) { $tabres[$cpt] = $px; $cpt++; $tabres[$cpt] = $py - 1; $cpt++; } - - if ($px + 1 < 8 && $py + 1 < 8) - { + if ($px + 1 < 8 && $py + 1 < 8) { $tabres[$cpt] = $px + 1; $cpt++; $tabres[$cpt] = $py + 1; $cpt++; } - - if ($px - 1 < 8 && $py + 1 < 8) - { + if ($px - 1 < 8 && $py + 1 < 8) { $tabres[$cpt] = $px - 1; $cpt++; $tabres[$cpt] = $py + 1; $cpt++; } - - if ($px - 1 < 8 && $py - 1 < 8) - { + if ($px - 1 < 8 && $py - 1 < 8) { $tabres[$cpt] = $px - 1; $cpt++; $tabres[$cpt] = $py - 1; $cpt++; } - - if ($px + 1 < 8 && $py - 1 < 8) - { + if ($px + 1 < 8 && $py - 1 < 8) { $tabres[$cpt] = $px + 1; $cpt++; $tabres[$cpt] = $py - 1; $cpt++; } + return $tabres; } - public function move($fromx, $fromy, $tox, $toy) { - + public function move( + int $fromx, + int $fromy, + int $tox, + int $toy, + ChessBoard $chess + ): array + { + return []; } -} - -?> +} \ No newline at end of file diff --git a/src/Entity/Chess/Pieces/Knight.php b/src/Entity/Chess/Pieces/Knight.php new file mode 100644 index 0000000..b08de9c --- /dev/null +++ b/src/Entity/Chess/Pieces/Knight.php @@ -0,0 +1,211 @@ +posX = $y; + $this->posY = $x; + $this->color = $color; + $this->alive = $alive; + $this->type = "N"; + } + + //getter setter + + public function __get($name) + { + return $this->$name; + } + + public function __set($name, $value) + { + $this->$name = $value; + } + + + + public function eat () + { + + } + + public function display() + { + if ($this->color == "White") { + echo "Nw"; + } else { + echo "Nb"; + } + } + + public function check(int $from, int $to, ChessBoard $chess, $player = null) + { + $board = $chess; + $cpt = 0; + $px = $from; + $py = $to; + $tabres = array(0); + + if (($px + 1 < 8) && ($py + 2 < 8) && + (($board->board[$py + 2][$px + 1]->type == "-") || + ($board->board[$py + 2][$px + 1]->color + != + $board->board[$to][$from]->color))) { + $px++; + $py += 2; + $tabres[$cpt] = $px; + $cpt++; + $tabres[$cpt] = $py; + $cpt++; + } + + $px = $from; + $py = $to; + + if (($px - 1 >= 0) && ($py + 2 < 8) && + (($board->board[$py + 2][$px - 1]->type == "-") || + ($board->board[$py + 2][$px - 1]->color + != + $board->board[$to][$from]->color))) { + $px--; + $py += 2; + $tabres[$cpt] = $px; + $cpt++; + $tabres[$cpt] = $py; + $cpt++; + + } + + $px = $from; + $py = $to; + + if (($px - 2 >= 0) && ($py + 1 < 8 ) && + (($board->board[$py + 1][$px - 2]->type == "-") || + ($board->board[$py + 1][$px - 2]->color + != + $board->board[$to][$from]->color))) { + $px -= 2; + $py++; + $tabres[$cpt] = $px; + $cpt++; + $tabres[$cpt] = $py; + $cpt++; + } + + $px = $from; + $py = $to; + + if (($px - 2 >= 0) && ($py - 1 >= 0) && + (($board->board[$py - 1][$px - 2]->type == "-") || + ($board->board[$py - 1][$px - 2]->color + != + $board->board[$to][$from]->color))) { + $px -= 2; + $py--; + $tabres[$cpt] = $px; + $cpt++; + $tabres[$cpt] = $py; + $cpt++; + } + + + + $px = $from; + $py = $to; + + if (($px + 1 < 8) && ($py - 2 >= 0) && + (($board->board[$py - 2][$px + 1]->type == "-") || + ($board->board[$py - 2][$px + 1]->color + != + $board->board[$to][$from]->color))) { + $px++; + $py -= 2; + $tabres[$cpt] = $px; + $cpt++; + $tabres[$cpt] = $py; + $cpt++; + } + + $px = $from; + $py = $to; + + if (($px - 1 >= 0) && ($py - 2 >= 0) && + (($board->board[$py - 2][$px - 1]->type == "-") || + ($board->board[$py - 2][$px - 1]->color + != + $board->board[$to][$from]->color))) { + $px--; + $py -= 2; + $tabres[$cpt] = $px; + $cpt++; + $tabres[$cpt] = $py; + $cpt++; + } + + $px = $from; + $py = $to; + + if (($px + 2 < 8) && ($py - 1 >= 0) && + (($board->board[$py - 1][$px + 2]->type == "-") + || ($board->board[$py - 1][$px + 2]->color + != + $board->board[$to][$from]->color))) { + $px += 2; + $py--; + $tabres[$cpt] = $px; + $cpt++; + $tabres[$cpt] = $py; + $cpt++; + } + + $px = $from; + $py = $to; + + if (($px + 2 < 8) && ($py + 1 < 8) && + (($board->board[$py + 1][$px + 2]->type == "-") || + ($board->board[$py + 1][$px + 2]->color + != + $board->board[$to][$from]->color))) { + $px += 2; + $py++; + $tabres[$cpt] = $px; + $cpt++; + $tabres[$cpt] = $py; + $cpt++; + } + + return $tabres; + } + + public function move( + int $fromx, + int $fromy, + int $tox, + int $toy, + ChessBoard $chess + ): array +{ + $tab = array (0); + $board = $chess->board; + $board[$toy][$tox] = $chess->board[$fromy][$fromx]; + $board[$fromy][$fromx] = new None($fromy, $fromx, "", false); + + $tab[0]=$tox; + $tab[1]=$toy; + $tab[2]=$board[$toy][$tox]->type; + $chess->board = $board; + + $response = [ + 'tab' => $tab, + 'chess' => $board + ]; + + return $response; + } +} \ No newline at end of file diff --git a/None.php b/src/Entity/Chess/Pieces/None.php similarity index 55% rename from None.php rename to src/Entity/Chess/Pieces/None.php index 9c612ec..4b32072 100644 --- a/None.php +++ b/src/Entity/Chess/Pieces/None.php @@ -1,21 +1,16 @@ pos_x = $y; - $this->pos_y = $x; + $this->posX = $y; + $this->posY = $x; $this->color = $color; $this->alive = $alive; $this->type = "-"; @@ -32,9 +27,7 @@ public function __set($name, $value) { $this->$name = $value; } - - - + public function eat () { @@ -45,18 +38,22 @@ public function display() echo "--"; } - public function check($from, $to) { + public function check(int $from, int $to, ChessBoard $chess, $player = null) { } - public function move($fromx, $fromy, $tox, $toy) + public function move( + int $fromx, + int $fromy, + int $tox, + int $toy, + ChessBoard $chess + ): array { - //echo "dans move"; - $chess = $_SESSION["chessboard"]; $tab = array (0); $board = $chess->board; $board[$toy][$tox] = $chess->board[$fromy][$fromx]; - $board[$fromy][$fromx] = new None($fromx, $fromy, "", FALSE); + $board[$fromy][$fromx] = new None($fromx, $fromy, "", false); $tab[0]=$tox; $tab[1]=$toy; @@ -65,9 +62,12 @@ public function move($fromx, $fromy, $tox, $toy) $chess->board = $board; - $_SESSION["chessboard"] = $chess; - return $tab; - } -} -?> + $response = [ + 'tab' => $tab, + 'chess' => $chess + ]; + + return $response; + } +} \ No newline at end of file diff --git a/src/Entity/Chess/Pieces/Pawn.php b/src/Entity/Chess/Pieces/Pawn.php new file mode 100644 index 0000000..d8d6aa1 --- /dev/null +++ b/src/Entity/Chess/Pieces/Pawn.php @@ -0,0 +1,213 @@ +posX = $y; + $this->posY = $x; + $this->color = $color; + $this->alive = $alive; + $this->first = 0; + $this->type = "P"; + } + + //getter setter + + public function __get($name) + { + return $this->$name; + } + + public function __set($name, $value) + { + $this->$name = $value; + } + + public function display() + { + if ($this->color == "White") + echo "Pw"; + else + echo "Pb"; + } + + public function check(int $from, int $to, ChessBoard $chess, $player = null) + { + $chessboard = $chess; + $cpt = 0; + $array = array (0); + if ($player % 2 == 0) { + if ($this->first == 0 ) { + $this->first++; + if (((($to+1) < 8) && ($from - 1 >= 0)) && + $chessboard->board[$to+1][$from-1]->type != "-" && + ($chessboard->board[$to + 1][$from - 1]->color + != + $chessboard->board[$to][$from]->color)) { + $array[$cpt] = $from - 1; + $cpt++; + $array[$cpt] = $to + 1; + $cpt++; + } + if (((($to+1) < 8) && ($from < 8)) && + $chessboard->board[$to+1][$from]->type == "-") { + $array[$cpt] = $from; + $cpt++; + $array[$cpt] = $to + 1; + $cpt++; + } + if (((($to+1) < 8) && ($to+2 < 8) && ($from < 8)) && + $chessboard->board[$to+2][$from]->type == "-") { + $array[$cpt] = $from; + $cpt++; + $array[$cpt] = $to + 2; + $cpt++; + } + if (((($to+1) < 8) && ($from + 1 < 8)) && + $chessboard->board[$to+1][$from + 1]->type + != "-" && + ($chessboard->board[$to + 1][$from + 1]->color + != + $chessboard->board[$to][$from]->color)) { + $array[$cpt] = $from + 1; + $cpt++; + $array[$cpt] = $to + 1; + $cpt++; + } + + } else { + if (((($to+1) < 8) && ($from - 1 >= 0)) && + $chessboard->board[$to+1][$from-1]->type != "-" && + ($chessboard->board[$to + 1][$from - 1]->color + != + $chessboard->board[$to][$from]->color)) { + $array[$cpt] = $from - 1; + $cpt++; + $array[$cpt] = $to + 1; + $cpt++; + } + if (((($to+1) < 8) && ($from< 8)) && + $chessboard->board[$to+1][$from]->type == "-") { + $array[$cpt] = $from; + $cpt++; + $array[$cpt] = $to + 1; + $cpt++; + } + if (((($to+1) < 8) && ($from + 1 < 8)) && + $chessboard->board[$to+1][$from + 1]->type != "-" && + ($chessboard->board[$to + 1][$from + 1]->color + != + $chessboard->board[$to][$from]->color)) { + $array[$cpt] = $from + 1; + $cpt++; + $array[$cpt] = $to + 1; + $cpt++; + } + } + return $array; + } else { + if ($this->first == 0 ) { + $this->first++; + if (((($to-1) >= 0) && ($from - 1 >= 0)) && + $chessboard->board[$to-1][$from-1]->type!= "-" && + ($chessboard->board[$to - 1][$from - 1]->color + != + $chessboard->board[$to][$from]->color)) { + $array[$cpt] = $from - 1; + $cpt++; + $array[$cpt] = $to - 1; + $cpt++; + } + if (((($to-1) >= 0) && ($from < 8)) && + $chessboard->board[$to-1][$from]->type == "-") { + $array[$cpt] = $from; + $cpt++; + $array[$cpt] = $to - 1; + $cpt++; + } + if (((($to-1) >= 0) && ($to-2 >= 0) && ($from < 8)) && + $chessboard->board[$to-2][$from]->type == "-") { + $array[$cpt] = $from; + $cpt++; + $array[$cpt] = $to - 2; + $cpt++; + } + if (((($to-1) >= 0) && ($from + 1 < 8)) && + $chessboard->board[$to - 1][$from + 1]->type != "-" && + ($chessboard->board[$to - 1][$from + 1]->color + != + $chessboard->board[$to][$from]->color)) { + $array[$cpt] = $from + 1; + $cpt++; + $array[$cpt] = $to - 1; + $cpt++; + } + } else { + if (((($to-1) >= 0) && ($from - 1 >= 0)) && + $chessboard->board[$to-1][$from-1]->type != "-" && + ($chessboard->board[$to - 1][$from - 1]->color + != + $chessboard->board[$to][$from]->color)) { + $array[$cpt] = $from - 1; + $cpt++; + $array[$cpt] = $to - 1; + $cpt++; + } + if (((($to-1) >= 0) && ($from < 8)) && + $chessboard->board[$to-1][$from]->type == "-") { + $array[$cpt] = $from; + $cpt++; + $array[$cpt] = $to - 1; + $cpt++; + } + if (((($to-1) >= 0) && ($from + 1 < 8)) && + $chessboard->board[$to - 1][$from + 1]->type != "-" && + ($chessboard->board[$to - 1][$from + 1]->color + != + $chessboard->board[$to][$from]->color)) { + $array[$cpt] = $from + 1; + $cpt++; + $array[$cpt] = $to - 1; + $cpt++; + } + } + + return ($array); + } + } + + public function move( + int $fromx, + int $fromy, + int $tox, + int $toy, + ChessBoard $chess + ): array + { + $tab = array (0); + $board = $chess->board; + $board[$toy][$tox] = $chess->board[$fromy][$fromx]; + $board[$fromy][$fromx] = new None($fromx, $fromy, "", false); + + $tab[0]=$tox; + $tab[1]=$toy; + $tab[2]=$board[$toy][$tox]->type; + + $chess->board = $board; + + $response = [ + 'tab' => $tab, + 'chess' => $chess + ]; + + return $response; + } +} \ No newline at end of file diff --git a/src/Entity/Chess/Pieces/Piece.php b/src/Entity/Chess/Pieces/Piece.php new file mode 100644 index 0000000..fe9d15b --- /dev/null +++ b/src/Entity/Chess/Pieces/Piece.php @@ -0,0 +1,32 @@ +pos_x = $y; - $this->pos_y = $x; + $this->posX = $y; + $this->posY = $x; $this->color = $color; $this->alive = $alive; $this->type = "Q"; @@ -29,13 +28,6 @@ public function __set($name, $value) $this->$name = $value; } - - - public function eat () - { - - } - public function display() { if ($this->color == "White") @@ -44,18 +36,16 @@ public function display() echo "Qb"; } - public function check($from, $to) + public function check(int $from, int $to, ChessBoard $chess, $player = null) { - $board = $_SESSION["chessboard"]; + $board = $chess; $cpt = 0; $px = $from; $py = $to; $tabres = array(0); - if ($py + 1 < 8) - { - while (($py < 8) && ($board->board[$py + 1][$from]->type == "-")) - { + if ($py + 1 < 8) { + while (($py < 8) && ($board->board[$py + 1][$from]->type == "-")) { $py++; $tabres[$cpt] = $from; @@ -66,10 +56,8 @@ public function check($from, $to) } } $py = $to; - if ($py - 1 >= 0) - { - while (($py >= 0) && ($board->board[$py - 1][$from]->type == "-")) - { + if ($py - 1 >= 0) { + while (($py >= 0) && ($board->board[$py - 1][$from]->type == "-")) { $py--; $tabres[$cpt] = $from; $cpt++; @@ -78,10 +66,8 @@ public function check($from, $to) } } - if ($px + 1 < 8) - { - while (($px + 1 < 8) && ($board->board[$to][$px + 1]->type == "-")) - { + if ($px + 1 < 8) { + while (($px + 1 < 8) && ($board->board[$to][$px + 1]->type == "-")) { $px++; $tabres[$cpt] = $px; $cpt++; @@ -91,10 +77,8 @@ public function check($from, $to) } } $px = $from; - if ($px - 1 >= 0) - { - while (($px - 1 >= 0) && ($board->board[$to][$px - 1]->type == "-")) - { + if ($px - 1 >= 0) { + while (($px - 1 >= 0) && ($board->board[$to][$px - 1]->type == "-")) { $px--; $tabres[$cpt] = $px; $cpt++; @@ -105,12 +89,10 @@ public function check($from, $to) $px = $from; $py = $to; - if (($py + 1 < 8) ) - { - if ($px + 1 < 8) - { - while (($px + 1 < 8)&&($py + 1 < 8) && ($board->board[$py + 1][$px + 1]->type == "-")) - { + if (($py + 1 < 8) ) { + if ($px + 1 < 8) { + while (($px + 1 < 8)&&($py + 1 < 8) && + ($board->board[$py + 1][$px + 1]->type == "-")) { $px++; $py++; $tabres[$cpt] = $px; @@ -123,12 +105,10 @@ public function check($from, $to) $px = $from; $py = $to; - if (($py + 1 > 8)) - { - if ($px - 1 >= 0) - { - while (($px - 1 >= 0)&&($py + 1 < 8) && ($board->board[$py + 1][$px - 1]->type == "-")) - { + if (($py + 1 > 8)) { + if ($px - 1 >= 0) { + while (($px - 1 >= 0)&&($py + 1 < 8) && + ($board->board[$py + 1][$px - 1]->type == "-")) { $px--; $py++; $tabres[$cpt] = $px; @@ -142,13 +122,10 @@ public function check($from, $to) $px = $from; $py = $to; - if (($px - 1 >= 0)) - { - if ($py - 1 >= 0) - - { - while (($px - 1 >= 0)&&($py - 1 >= 0) && ($board->board[$py - 1][$px - 1]->type == "-")) - { + if (($px - 1 >= 0)) { + if ($py - 1 >= 0) { + while (($px - 1 >= 0)&&($py - 1 >= 0) && + ($board->board[$py - 1][$px - 1]->type == "-")) { $px--; $py--; $tabres[$cpt] = $px; @@ -161,12 +138,10 @@ public function check($from, $to) $px = $from; $py = $to; - if ($px + 1 < 8) - { - if ($py - 1 >= 0) - { - while (($px + 1 < 8)&&($py - 1 >= 0) && ($board->board[$py - 1][$px + 1]->type == "-")) - { + if ($px + 1 < 8) { + if ($py - 1 >= 0) { + while (($px + 1 < 8)&&($py - 1 >= 0) && + ($board->board[$py - 1][$px + 1]->type == "-")) { $px++; $py--; $tabres[$cpt] = $px; @@ -179,20 +154,30 @@ public function check($from, $to) return $tabres; } - public function move($fromx, $fromy, $tox, $toy) { - $board = $_SESSION["chessboard"]; + public function move( + int $fromx, + int $fromy, + int $tox, + int $toy, + ChessBoard $chess + ): array +{ + $tab = array (0); - $board = $board->board; - $board[$toy][$tox] = $board->board[$fromy][$fromx]; - $board[$fromy][$fromx] = new None($fromy, $fromx, "", FALSE); + $board = $chess->board; + $board[$toy][$tox] = $chess->board[$fromy][$fromx]; + $board[$fromy][$fromx] = new None($fromy, $fromx, "", false); $tab[0]=$tox; $tab[1]=$toy; $tab[2]=$board[$toy][$tox]->type; - $board->board = $board; - $_SESSION["chessboard"] = $board; - return $tab; + $chess->board = $board; + + $response = [ + 'tab' => $tab, + 'chess' => $chess + ]; + + return $response; } } - -?> diff --git a/Tower.php b/src/Entity/Chess/Pieces/Tower.php similarity index 64% rename from Tower.php rename to src/Entity/Chess/Pieces/Tower.php index 7b8e206..d1492c1 100644 --- a/Tower.php +++ b/src/Entity/Chess/Pieces/Tower.php @@ -1,26 +1,21 @@ pos_x = $y; - $this->pos_y = $x; + $this->posX = $y; + $this->posY = $x; $this->color = $color; $this->alive = $alive; $this->type = "T"; - $this->has_moved = FALSE; + $this->hasMoved = false; } //getter setter @@ -35,12 +30,6 @@ public function __set($name, $value) $this->$name = $value; } - - public function eat () - { - - } - public function display() { if ($this->color == "White") @@ -49,9 +38,9 @@ public function display() echo "Tb"; } - public function check($from,$to) + public function check(int $from,int $to, ChessBoard $chess, $player = null) { - $board = $_SESSION["chessboard"]; + $board = $chess->__get(('board')); $cpt = 0; $px = $from; $py = $to; @@ -59,7 +48,7 @@ public function check($from,$to) if ($py + 1 < 8) { - while (($py < 8) && ($board->board[$py + 1][$from]->type == "-")) + while (($py < 8) && ($board[$py + 1][$from]->type == "-")) { $py++; @@ -73,7 +62,7 @@ public function check($from,$to) $py = $to; if ($py - 1 >= 0) { - while (($py - 1 >= 0) && ($board->board[$py - 1][$from]->type == "-")) + while (($py - 1 >= 0) && ($board[$py - 1][$from]->type == "-")) { $py--; $tabres[$cpt] = $from; @@ -86,7 +75,7 @@ public function check($from,$to) $px = $from; if ($px + 1 < 8) { - while (($px + 1 < 8) && ($board->board[$to][$px + 1]->type == "-")) + while (($px + 1 < 8) && ($board[$to][$px + 1]->type == "-")) { $px++; $tabres[$cpt] = $px; @@ -99,7 +88,7 @@ public function check($from,$to) $px = $from; if ($px - 1 > -1) { - while (($px - 1 >= 0) && ($board->board[$to][$px - 1]->type == "-")) + while (($px - 1 >= 0) && ($board[$to][$px - 1]->type == "-")) { $px--; $tabres[$cpt] = $px; @@ -111,20 +100,29 @@ public function check($from,$to) return $tabres; } - public function move($fromx, $fromy, $tox, $toy) { - $chess = $_SESSION["chessboard"]; + public function move( + int $fromx, + int $fromy, + int $tox, + int $toy, + ChessBoard $chess + ): array + { $tab = array (0); $board = $chess->board; $board[$toy][$tox] = $chess->board[$fromy][$fromx]; - $board[$fromy][$fromx] = new None($fromy, $fromx, "", FALSE); + $board[$fromy][$fromx] = new None($fromy, $fromx, "", false); $tab[0]=$tox; $tab[1]=$toy; $tab[2]=$board[$toy][$tox]->type; $chess->board = $board; - $_SESSION["chessboard"] = $chess; - return $tab; + + $response = [ + 'tab' => $tab, + 'chess' => $chess + ]; + + return $response; } } - -?> diff --git a/src/Kernel.php b/src/Kernel.php new file mode 100644 index 0000000..785b0be --- /dev/null +++ b/src/Kernel.php @@ -0,0 +1,53 @@ +getProjectDir().'/config/bundles.php'; + foreach ($contents as $class => $envs) { + if ($envs[$this->environment] ?? $envs['all'] ?? false) { + yield new $class(); + } + } + } + + public function getProjectDir(): string + { + return \dirname(__DIR__); + } + + protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void + { + $container->addResource(new FileResource($this->getProjectDir().'/config/bundles.php')); + $container->setParameter('container.dumper.inline_class_loader', true); + $confDir = $this->getProjectDir().'/config'; + + $loader->load($confDir.'/{packages}/*'.self::CONFIG_EXTS, 'glob'); + $loader->load($confDir.'/{packages}/'.$this->environment.'/**/*'.self::CONFIG_EXTS, 'glob'); + $loader->load($confDir.'/{services}'.self::CONFIG_EXTS, 'glob'); + $loader->load($confDir.'/{services}_'.$this->environment.self::CONFIG_EXTS, 'glob'); + } + + protected function configureRoutes(RouteCollectionBuilder $routes): void + { + $confDir = $this->getProjectDir().'/config'; + + $routes->import($confDir.'/{routes}/'.$this->environment.'/**/*'.self::CONFIG_EXTS, '/', 'glob'); + $routes->import($confDir.'/{routes}/*'.self::CONFIG_EXTS, '/', 'glob'); + $routes->import($confDir.'/{routes}'.self::CONFIG_EXTS, '/', 'glob'); + } +} diff --git a/src/Migrations/.gitignore b/src/Migrations/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/src/Repository/.gitignore b/src/Repository/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/src/Service/Chess/Updater/ChessGameUpdater.php b/src/Service/Chess/Updater/ChessGameUpdater.php new file mode 100644 index 0000000..3d270e6 --- /dev/null +++ b/src/Service/Chess/Updater/ChessGameUpdater.php @@ -0,0 +1,158 @@ +responseBuilder = $responseBuilder; + $this->movePossibility = $movePossibility; + } + + private function buildResponseByPossibility(): void + { + if (!$this->movePossibility->isMovePossible()) { + $this->responseBuilder->setContent(array()); + } else { + $this->responseBuilder->setContent( + $this->movePossibility->getPossibility() + ); + } + } + + public function buildMovePossibility(Request $request, Session $session): void + { + $player = $session->get('player'); + $chessBoard = $session->get('chessboard'); + + try { + $this->movePossibility->setPossibility($request, $chessBoard, $player); + self::buildResponseByPossibility(); + } catch (PossibilityException $e) { + if ($e->getExceptionLevel() == ExceptionLevel::MINOR) { + $this->responseBuilder->setContent($e->getResponseContent()); + } else { + $this->responseBuilder->setStatus($e->getCode()); + } + } + + $this->updateSession( + $session, + $this->movePossibility->getPossibility(), + $session->get('player'), + $request->get('mx'), + $request->get('my') + ); + } + + public function getEncodedResponse(): Response + { + return $this->responseBuilder->createResponse(); + } + + function requestForMove(Request $request, Session $session): void + { + $position = self::move($request, $session); + + $this->responseBuilder->setContent($position); + } + + private function move(Request $request, Session $session): array + { + $x = $request->get('mx'); + $y = $request->get('my'); + $player = $session->get('player'); + $test = $session->get('chessboard'); + $tab = array(); + + if (($player % 2 == 0)) { + if ($test->board[$y][$x]->type != "-") { + $tab = $test->board[$y][$x]->check($x, $y, $test, $player); + } elseif ($test->board[$y][$x]->type == "-" || + $test->board[$y][$x]->color == "Black") { + for ($i = 0; $i < sizeof($session->get('ancient')); $i++) { + if ($i % 2 == 0) { + if ($session->get('ancient')[$i] == $x) { + if ($session->get('ancient')[$i + 1] == $y) { + $moveResponse = $test->board[$y][$x] + ->move( + $session->get('ax'), + $session->get('ay'), + $x, + $y, + $test + ); + $session + ->set('chessBoard', $moveResponse['chess']); + $tab = $moveResponse['tab']; + $player ^= 1; + break; + } + } + } + + } + } + } elseif (($player % 2 == 1)) { + if ($test->board[$y][$x]->type != "-") { + $tab = $test->board[$y][$x]->check($x, $y, $test, $player); + } elseif ($test->board[$y][$x]->type == "-" || + $test->board[$y][$x]->color == "White") { + for ($i = 0; $i < sizeof($session->get('ancient')); $i++) { + if ($i % 2 == 0) { + if ($session->get('ancient')[$i] == $x) { + if ($session->get('ancient')[$i + 1] == $y) { + $moveResponse = $test->board[$y][$x] + ->move( + $session->get('ax'), + $session->get('ay'), + $x, + $y, + $test + ); + $session->set( + 'chessBoard', + $moveResponse['chess'] + ); + $tab = $moveResponse['tab']; + $player ^= 1; + break; + } + } + } + + } + } + } + + $this->updateSession($session, $tab, $player, $x, $y); + + return ($tab); + } + + public function updateSession( + Session $session, + array $board, + int $player, + int $x, + int $y + ): void + { + $session->set('player', $player); + $session->set('ancient', $board); + $session->set('ax', $x); + $session->set('ay', $y); + } +} \ No newline at end of file diff --git a/src/Service/Chess/Updater/MovePossibility.php b/src/Service/Chess/Updater/MovePossibility.php new file mode 100644 index 0000000..706b3be --- /dev/null +++ b/src/Service/Chess/Updater/MovePossibility.php @@ -0,0 +1,53 @@ +possibility; + } + + public function isMovePossible(): bool + { + if (empty($this->possibility)) { + return false; + } + + return true; + } + + /** + * @param Request $request + * @param ChessBoard $chessBoard + * @param int $player + * @throws PossibilityException + */ + public function setPossibility(Request $request, + ChessBoard $chessBoard, + int $player): void + { + $x = $request->get('mx'); + $y = $request->get('my'); + $board = $chessBoard->getBoard(); + + if ($board[$y][$x]->type == "-") { + throw new PossibilityException( + array(ResponseStatus::FAILURE), + ExceptionLevel::MINOR, + "selection is not a valid piece", + ResponseStatus::SUCCESS); + } + + $this->possibility = $board[$y][$x]->check($x, $y, $chessBoard, $player); + } +} \ No newline at end of file diff --git a/src/Service/Chess/Updater/ResponseBuilder.php b/src/Service/Chess/Updater/ResponseBuilder.php new file mode 100644 index 0000000..36b96cd --- /dev/null +++ b/src/Service/Chess/Updater/ResponseBuilder.php @@ -0,0 +1,42 @@ +status = ResponseStatus::SUCCESS; + $this->contentType = array('Content-type', 'json'); + $this->content = array(); + } + + public function setStatus(int $status) + { + $this->status = $status; + } + + public function setContent(array $content): void + { + $this->content = $content; + } + + public function createResponse() + { + $response = new Response(json_encode($this->content), + $this->status, + $this->contentType); + + return $response; + } +} \ No newline at end of file diff --git a/src/Service/Chess/Updater/ResponseStatus.php b/src/Service/Chess/Updater/ResponseStatus.php new file mode 100644 index 0000000..0b71a67 --- /dev/null +++ b/src/Service/Chess/Updater/ResponseStatus.php @@ -0,0 +1,12 @@ +getConstants()); + } +} \ No newline at end of file diff --git a/src/Utils/Exception/AbstractException.php b/src/Utils/Exception/AbstractException.php new file mode 100644 index 0000000..63f324b --- /dev/null +++ b/src/Utils/Exception/AbstractException.php @@ -0,0 +1,29 @@ +level = $level; + parent::__construct($message, $code, $previous); + } + + public function getExceptionLevel(): int + { + return $this->level; + } +} \ No newline at end of file diff --git a/src/Utils/Exception/ExceptionLevel.php b/src/Utils/Exception/ExceptionLevel.php new file mode 100644 index 0000000..2f650d7 --- /dev/null +++ b/src/Utils/Exception/ExceptionLevel.php @@ -0,0 +1,12 @@ +responseContent = $responseContent; + parent::__construct($level, $message, $code, $previous); + } + + public function getResponseContent(): array + { + return $this->responseContent; + } +} \ No newline at end of file diff --git a/symfony.lock b/symfony.lock new file mode 100644 index 0000000..c1e4975 --- /dev/null +++ b/symfony.lock @@ -0,0 +1,517 @@ +{ + "doctrine/annotations": { + "version": "1.0", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "1.0", + "ref": "cb4152ebcadbe620ea2261da1a1c5a9b8cea7672" + }, + "files": [ + "config/routes/annotations.yaml" + ] + }, + "doctrine/cache": { + "version": "v1.8.0" + }, + "doctrine/collections": { + "version": "v1.6.2" + }, + "doctrine/common": { + "version": "v2.11.0" + }, + "doctrine/dbal": { + "version": "v2.9.2" + }, + "doctrine/doctrine-bundle": { + "version": "1.6", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "1.6", + "ref": "5e476e8edf3fa8e7f045ad034f89bb464424f5c1" + }, + "files": [ + "config/packages/doctrine.yaml", + "config/packages/prod/doctrine.yaml", + "src/Entity/.gitignore", + "src/Repository/.gitignore" + ] + }, + "doctrine/doctrine-cache-bundle": { + "version": "1.3.5" + }, + "doctrine/doctrine-migrations-bundle": { + "version": "1.2", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "1.2", + "ref": "c1431086fec31f17fbcfe6d6d7e92059458facc1" + }, + "files": [ + "config/packages/doctrine_migrations.yaml", + "src/Migrations/.gitignore" + ] + }, + "doctrine/event-manager": { + "version": "v1.0.0" + }, + "doctrine/inflector": { + "version": "v1.3.0" + }, + "doctrine/instantiator": { + "version": "1.2.0" + }, + "doctrine/lexer": { + "version": "1.0.2" + }, + "doctrine/migrations": { + "version": "2.1.1" + }, + "doctrine/orm": { + "version": "v2.6.4" + }, + "doctrine/persistence": { + "version": "1.1.1" + }, + "doctrine/reflection": { + "version": "v1.0.0" + }, + "easycorp/easy-log-handler": { + "version": "1.0", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "1.0", + "ref": "70062abc2cd58794d2a90274502f81b55cd9951b" + }, + "files": [ + "config/packages/dev/easy_log_handler.yaml" + ] + }, + "egulias/email-validator": { + "version": "2.1.11" + }, + "fig/link-util": { + "version": "1.0.0" + }, + "jdorn/sql-formatter": { + "version": "v1.2.17" + }, + "monolog/monolog": { + "version": "1.25.1" + }, + "nikic/php-parser": { + "version": "v4.2.4" + }, + "ocramius/package-versions": { + "version": "1.4.0" + }, + "ocramius/proxy-manager": { + "version": "2.1.1" + }, + "phpdocumentor/reflection-common": { + "version": "2.0.0" + }, + "phpdocumentor/reflection-docblock": { + "version": "4.3.2" + }, + "phpdocumentor/type-resolver": { + "version": "1.0.1" + }, + "psr/cache": { + "version": "1.0.1" + }, + "psr/container": { + "version": "1.0.0" + }, + "psr/link": { + "version": "1.0.0" + }, + "psr/log": { + "version": "1.1.0" + }, + "sensio/framework-extra-bundle": { + "version": "5.2", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "5.2", + "ref": "fb7e19da7f013d0d422fa9bce16f5c510e27609b" + }, + "files": [ + "config/packages/sensio_framework_extra.yaml" + ] + }, + "swiftmailer/swiftmailer": { + "version": "v6.2.1" + }, + "symfony/asset": { + "version": "v4.3.4" + }, + "symfony/browser-kit": { + "version": "v4.3.4" + }, + "symfony/cache": { + "version": "v4.3.4" + }, + "symfony/cache-contracts": { + "version": "v1.1.5" + }, + "symfony/config": { + "version": "v4.3.4" + }, + "symfony/console": { + "version": "3.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.3", + "ref": "482d233eb8de91ebd042992077bbd5838858890c" + }, + "files": [ + "bin/console", + "config/bootstrap.php" + ] + }, + "symfony/css-selector": { + "version": "v4.3.4" + }, + "symfony/debug": { + "version": "v4.3.4" + }, + "symfony/debug-bundle": { + "version": "4.1", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "4.1", + "ref": "f8863cbad2f2e58c4b65fa1eac892ab189971bea" + }, + "files": [ + "config/packages/dev/debug.yaml" + ] + }, + "symfony/debug-pack": { + "version": "v1.0.7" + }, + "symfony/dependency-injection": { + "version": "v4.3.4" + }, + "symfony/doctrine-bridge": { + "version": "v4.3.4" + }, + "symfony/dom-crawler": { + "version": "v4.3.4" + }, + "symfony/dotenv": { + "version": "v4.3.4" + }, + "symfony/event-dispatcher": { + "version": "v4.3.4" + }, + "symfony/event-dispatcher-contracts": { + "version": "v1.1.5" + }, + "symfony/expression-language": { + "version": "v4.3.4" + }, + "symfony/filesystem": { + "version": "v4.3.4" + }, + "symfony/finder": { + "version": "v4.3.4" + }, + "symfony/flex": { + "version": "1.0", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "1.0", + "ref": "dc3fc2e0334a4137c47cfd5a3ececc601fa61a0b" + }, + "files": [ + ".env" + ] + }, + "symfony/form": { + "version": "v4.3.4" + }, + "symfony/framework-bundle": { + "version": "4.2", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "4.2", + "ref": "61ad963f28c091b8bb9449507654b9c7d8bbb53c" + }, + "files": [ + "config/bootstrap.php", + "config/packages/cache.yaml", + "config/packages/framework.yaml", + "config/packages/test/framework.yaml", + "config/services.yaml", + "public/index.php", + "src/Controller/.gitignore", + "src/Kernel.php" + ] + }, + "symfony/http-client": { + "version": "v4.3.4" + }, + "symfony/http-client-contracts": { + "version": "v1.1.6" + }, + "symfony/http-foundation": { + "version": "v4.3.4" + }, + "symfony/http-kernel": { + "version": "v4.3.4" + }, + "symfony/inflector": { + "version": "v4.3.4" + }, + "symfony/intl": { + "version": "v4.3.4" + }, + "symfony/maker-bundle": { + "version": "1.0", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "1.0", + "ref": "fadbfe33303a76e25cb63401050439aa9b1a9c7f" + } + }, + "symfony/mime": { + "version": "v4.3.4" + }, + "symfony/monolog-bridge": { + "version": "v4.3.4" + }, + "symfony/monolog-bundle": { + "version": "3.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.3", + "ref": "6240c6d43e8237a32452f057f81816820fd56ab6" + }, + "files": [ + "config/packages/dev/monolog.yaml", + "config/packages/prod/monolog.yaml", + "config/packages/test/monolog.yaml" + ] + }, + "symfony/options-resolver": { + "version": "v4.3.4" + }, + "symfony/orm-pack": { + "version": "v1.0.6" + }, + "symfony/phpunit-bridge": { + "version": "4.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "4.3", + "ref": "b0582341f1df39aaf3a9a866cdbe49937da35984" + }, + "files": [ + ".env.test", + "bin/phpunit", + "config/bootstrap.php", + "phpunit.xml.dist", + "tests/.gitignore" + ] + }, + "symfony/polyfill-intl-icu": { + "version": "v1.12.0" + }, + "symfony/polyfill-intl-idn": { + "version": "v1.12.0" + }, + "symfony/polyfill-mbstring": { + "version": "v1.12.0" + }, + "symfony/polyfill-php72": { + "version": "v1.12.0" + }, + "symfony/polyfill-php73": { + "version": "v1.12.0" + }, + "symfony/process": { + "version": "v4.3.4" + }, + "symfony/profiler-pack": { + "version": "v1.0.4" + }, + "symfony/property-access": { + "version": "v4.3.4" + }, + "symfony/property-info": { + "version": "v4.3.4" + }, + "symfony/routing": { + "version": "4.2", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "4.2", + "ref": "4c107a8d23a16b997178fbd4103b8d2f54f688b7" + }, + "files": [ + "config/packages/dev/routing.yaml", + "config/packages/routing.yaml", + "config/packages/test/routing.yaml", + "config/routes.yaml" + ] + }, + "symfony/security-bundle": { + "version": "3.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.3", + "ref": "e5a0228251d1dd2bca4c8ef918e14423c06db625" + }, + "files": [ + "config/packages/security.yaml" + ] + }, + "symfony/security-core": { + "version": "v4.3.4" + }, + "symfony/security-csrf": { + "version": "v4.3.4" + }, + "symfony/security-guard": { + "version": "v4.3.4" + }, + "symfony/security-http": { + "version": "v4.3.4" + }, + "symfony/serializer": { + "version": "v4.3.4" + }, + "symfony/serializer-pack": { + "version": "v1.0.2" + }, + "symfony/service-contracts": { + "version": "v1.1.6" + }, + "symfony/stopwatch": { + "version": "v4.3.4" + }, + "symfony/swiftmailer-bundle": { + "version": "2.5", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "2.5", + "ref": "429afc6c6778a1fdddb52a4f708cd94ff2c9960f" + }, + "files": [ + "config/packages/dev/swiftmailer.yaml", + "config/packages/swiftmailer.yaml", + "config/packages/test/swiftmailer.yaml" + ] + }, + "symfony/test-pack": { + "version": "v1.0.6" + }, + "symfony/translation": { + "version": "3.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.3", + "ref": "2ad9d2545bce8ca1a863e50e92141f0b9d87ffcd" + }, + "files": [ + "config/packages/translation.yaml", + "translations/.gitignore" + ] + }, + "symfony/translation-contracts": { + "version": "v1.1.6" + }, + "symfony/twig-bridge": { + "version": "v4.3.4" + }, + "symfony/twig-bundle": { + "version": "3.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.3", + "ref": "369b5b29dc52b2c190002825ae7ec24ab6f962dd" + }, + "files": [ + "config/packages/twig.yaml", + "config/routes/dev/twig.yaml", + "templates/base.html.twig" + ] + }, + "symfony/validator": { + "version": "4.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "4.3", + "ref": "d902da3e4952f18d3bf05aab29512eb61cabd869" + }, + "files": [ + "config/packages/test/validator.yaml", + "config/packages/validator.yaml" + ] + }, + "symfony/var-dumper": { + "version": "v4.3.4" + }, + "symfony/var-exporter": { + "version": "v4.3.4" + }, + "symfony/web-link": { + "version": "v4.3.4" + }, + "symfony/web-profiler-bundle": { + "version": "3.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.3", + "ref": "6bdfa1a95f6b2e677ab985cd1af2eae35d62e0f6" + }, + "files": [ + "config/packages/dev/web_profiler.yaml", + "config/packages/test/web_profiler.yaml", + "config/routes/dev/web_profiler.yaml" + ] + }, + "symfony/web-server-bundle": { + "version": "3.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.3", + "ref": "dae9b39fd6717970be7601101ce5aa960bf53d9a" + } + }, + "symfony/yaml": { + "version": "v4.3.4" + }, + "twig/twig": { + "version": "v2.11.3" + }, + "webmozart/assert": { + "version": "1.5.0" + }, + "zendframework/zend-code": { + "version": "3.3.2" + }, + "zendframework/zend-eventmanager": { + "version": "3.2.1" + } +} diff --git a/templates/base.html.twig b/templates/base.html.twig new file mode 100644 index 0000000..d493f08 --- /dev/null +++ b/templates/base.html.twig @@ -0,0 +1,17 @@ + + + + {% block stylesheets %} + + {% endblock %} + + {% block title %}Chess{% endblock %} + + +
+ {% block body %}{% endblock %} +
+{% block javascripts %} +{% endblock %} + + \ No newline at end of file diff --git a/templates/game/index.html.twig b/templates/game/index.html.twig new file mode 100644 index 0000000..1da6bf7 --- /dev/null +++ b/templates/game/index.html.twig @@ -0,0 +1,13 @@ +{% extends 'base.html.twig' %} +{% block title %} + Game +{% endblock %} +{% block body %} +
+ + +
+ {% block javascripts %} + + {% endblock %} +{% endblock %} \ No newline at end of file diff --git a/templates/index.html.twig b/templates/index.html.twig new file mode 100644 index 0000000..e1dba74 --- /dev/null +++ b/templates/index.html.twig @@ -0,0 +1,8 @@ +{% extends 'base.html.twig' %} +{% block title %} + Home +{% endblock %} +{% block body %} +

Chess

+ Play +{% endblock %} \ No newline at end of file diff --git a/tests/.gitignore b/tests/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/translations/.gitignore b/translations/.gitignore new file mode 100644 index 0000000..e69de29