Symfony 5.1

master
Julien Rosset 5 years ago
parent 21ef094a4d
commit fc23008e57

@ -2,5 +2,7 @@
###> symfony/framework-bundle ###
APP_ENV=dev
APP_SECRET=02d2777e0242595653c8a47180aeba9e
APP_SECRET=47e0bab7bbf4f8507e1c45bba3e891dd
#TRUSTED_PROXIES=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
#TRUSTED_HOSTS='^(localhost|example\.com)$'
###< symfony/framework-bundle ###

@ -4,6 +4,7 @@
use App\Kernel;
use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\Dotenv\Dotenv;
use Symfony\Component\ErrorHandler\Debug;
if (!in_array(PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) {
@ -14,8 +15,8 @@ set_time_limit(0);
require dirname(__DIR__).'/vendor/autoload.php';
if (!class_exists(Application::class)) {
throw new LogicException('You need to add "symfony/framework-bundle" as a Composer dependency.');
if (!class_exists(Application::class) || !class_exists(Dotenv::class)) {
throw new LogicException('You need to add "symfony/framework-bundle" and "symfony/dotenv" as Composer dependencies.');
}
$input = new ArgvInput();
@ -27,7 +28,7 @@ if ($input->hasParameterOption('--no-debug', true)) {
putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0');
}
require dirname(__DIR__).'/config/bootstrap.php';
(new Dotenv())->bootEnv(dirname(__DIR__).'/.env');
if ($_SERVER['APP_DEBUG']) {
umask(0000);

@ -1,3 +1,4 @@
# see https://symfony.com/doc/current/reference/configuration/framework.html
framework:
secret: '%env(APP_SECRET)%'
#csrf_protection: true

@ -5,6 +5,7 @@ monolog:
action_level: error
handler: nested
excluded_http_codes: [404, 405]
buffer_size: 50 # How many messages should be saved? Prevent memory leaks
nested:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.log"
@ -13,11 +14,3 @@ monolog:
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"]

@ -1,3 +1,7 @@
framework:
router:
utf8: true
# Configure how to generate URLs in non-HTTP contexts, such as CLI commands.
# See https://symfony.com/doc/current/routing.html#generating-urls-in-commands
#default_uri: http://localhost

@ -1,30 +1,24 @@
security:
encoders:
App\Entity\User:
algorithm: auto
# https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
providers:
app_user_provider:
entity:
class: App\Entity\User
property: email
users_in_memory: { memory: null }
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
anonymous: lazy
remember_me:
secret: '%kernel.secret%'
lifetime: 604800 # 1 week
path: /
secure: true
guard:
authenticators:
- App\Security\LoginFormAuthenticator
logout:
path: app_security_logout
target: app_site_index
anonymous: true
lazy: true
provider: users_in_memory
# 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: ^/sign-in$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
role_hierarchy:
ROLE_ADMIN: ROLE_USER
# - { path: ^/admin, roles: ROLE_ADMIN }
# - { path: ^/profile, roles: ROLE_USER }

@ -1,8 +1,3 @@
# Redirige l'URL racine vers celle de la langue par défaut
index:
path: /
controller: Symfony\Bundle\FrameworkBundle\Controller\RedirectController
defaults:
route: 'app_site_index'
_locale: '%kernel.default_locale%'
permanent: true
#index:
# path: /
# controller: App\Controller\DefaultController::index

@ -1,8 +1,7 @@
controllers:
resource: ../../src/Controller/
type: annotation
prefix: /{_locale}
requirements:
_locale: '%app.supported_locales%'
defaults:
_locale: '%kernel.default_locale%'
kernel:
resource: ../../src/Kernel.php
type: annotation

@ -4,7 +4,6 @@
# 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:
app.supported_locales: 'fr|en'
services:
# default configuration for services in *this* file

@ -5,7 +5,7 @@
xsi:noNamespaceSchemaLocation="bin/.phpunit/phpunit.xsd"
backupGlobals="false"
colors="true"
bootstrap="config/bootstrap.php"
bootstrap="tests/bootstrap.php"
>
<php>
<ini name="error_reporting" value="-1" />

@ -1,311 +1,3 @@
# Apache configuration file
# ----------------------------------------------------------------------
# Better website experience for IE users
# ----------------------------------------------------------------------
# Force the latest IE version, in various cases when it may fall back to IE7 mode
# github.com/rails/rails/commit/123eb25#commitcomment-118920
# Use ChromeFrame if it's installed for a better experience for the poor IE folk
<IfModule mod_headers.c>
Header set X-UA-Compatible "IE=Edge,chrome=1"
# mod_headers can't match by content-type, but we don't want to send this header on *everything*...
<FilesMatch "\.(js|css|gif|png|jpe?g|pdf|xml|oga|ogg|m4a|ogv|mp4|m4v|webm|svg|svgz|eot|ttf|otf|woff|ico|webp|appcache|manifest|htc|crx|oex|xpi|safariextz|vcf)$" >
Header unset X-UA-Compatible
</FilesMatch>
</IfModule>
# ----------------------------------------------------------------------
# Cross-domain AJAX requests
# ----------------------------------------------------------------------
# Serve cross-domain Ajax requests, disabled by default.
# enable-cors.org
# code.google.com/p/html5security/wiki/CrossOriginRequestSecurity
# <IfModule mod_headers.c>
# Header set Access-Control-Allow-Origin "*"
# </IfModule>
# ----------------------------------------------------------------------
# CORS-enabled images (@crossorigin)
# ----------------------------------------------------------------------
# Send CORS headers if browsers request them; enabled by default for images.
# developer.mozilla.org/en/CORS_Enabled_Image
# blog.chromium.org/2011/07/using-cross-domain-images-in-webgl-and.html
# hacks.mozilla.org/2011/11/using-cors-to-load-webgl-textures-from-cross-domain-images/
# wiki.mozilla.org/Security/Reviews/crossoriginAttribute
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
# mod_headers, y u no match by Content-Type?!
<FilesMatch "\.(gif|png|jpe?g|svg|svgz|ico|webp)$">
SetEnvIf Origin ":" IS_CORS
Header set Access-Control-Allow-Origin "*" env=IS_CORS
</FilesMatch>
</IfModule>
</IfModule>
# ----------------------------------------------------------------------
# Webfont access
# ----------------------------------------------------------------------
# Allow access from all domains for webfonts.
# Alternatively you could only whitelist your
# subdomains like "subdomain.example.com".
<IfModule mod_headers.c>
<FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css)$">
Header set Access-Control-Allow-Origin "*"
</FilesMatch>
</IfModule>
# ----------------------------------------------------------------------
# Proper MIME type for all files
# ----------------------------------------------------------------------
# JavaScript
# Normalize to standard type (it's sniffed in IE anyways)
# tools.ietf.org/html/rfc4329#section-7.2
AddType application/javascript js
# Audio
AddType audio/ogg oga ogg
AddType audio/mp4 m4a
# Video
AddType video/ogg ogv
AddType video/mp4 mp4 m4v
AddType video/webm webm
# SVG
# Required for svg webfonts on iPad
# twitter.com/FontSquirrel/status/14855840545
AddType image/svg+xml svg svgz
AddEncoding gzip svgz
# Webfonts
AddType application/vnd.ms-fontobject eot
AddType application/x-font-ttf ttf ttc
AddType font/opentype otf
AddType application/x-font-woff woff
# Assorted types
AddType image/x-icon ico
AddType image/webp webp
AddType text/cache-manifest appcache manifest
AddType text/x-component htc
AddType application/x-chrome-extension crx
AddType application/x-opera-extension oex
AddType application/x-xpinstall xpi
AddType application/octet-stream safariextz
AddType application/x-web-app-manifest+json webapp
AddType text/x-vcard vcf
# ----------------------------------------------------------------------
# Gzip compression
# ----------------------------------------------------------------------
<IfModule mod_deflate.c>
# Force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
</IfModule>
</IfModule>
# HTML, TXT, CSS, JavaScript, JSON, XML, HTC:
<IfModule filter_module>
<IfModule version.c>
<IfVersion >= 2.4>
FilterDeclare COMPRESS
FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} = 'text/html'"
FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} = 'text/css'"
FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} = 'text/plain'"
FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} = 'text/xml'"
FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} = 'text/x-component'"
FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} = 'application/javascript'"
FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} = 'application/json'"
FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} = 'application/xml'"
FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} = 'application/xhtml+xml'"
FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} = 'application/rss+xml'"
FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} = 'application/atom+xml'"
FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} = 'application/vnd.ms-fontobject'"
FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} = 'image/svg+xml'"
FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} = 'image/x-icon'"
FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} = 'application/x-font-ttf'"
FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} = 'font/opentype'"
FilterChain COMPRESS
FilterProtocol COMPRESS DEFLATE change=yes;byteranges=no
</IfVersion>
<IfVersion <= 2.2>
FilterDeclare COMPRESS
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/html
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/css
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/plain
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/x-component
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/javascript
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/json
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/xhtml+xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/rss+xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/atom+xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/vnd.ms-fontobject
FilterProvider COMPRESS DEFLATE resp=Content-Type $image/svg+xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $image/x-icon
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/x-font-ttf
FilterProvider COMPRESS DEFLATE resp=Content-Type $font/opentype
FilterChain COMPRESS
FilterProtocol COMPRESS DEFLATE change=yes;byteranges=no
</IfVersion>
</IfModule>
</IfModule>
<IfModule !mod_filter.c>
# Legacy versions of Apache
AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml
AddOutputFilterByType DEFLATE image/x-icon image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
</IfModule>
</IfModule>
# ----------------------------------------------------------------------
# Expires headers (for better cache control)
# ----------------------------------------------------------------------
# These are pretty far-future expires headers.
# They assume you control versioning with cachebusting query params like
# <script src="application.js?20100608">
# Additionally, consider that outdated proxies may miscache
# www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/
# If you don't use filenames to version, lower the CSS and JS to something like
# "access plus 1 week" or so.
<IfModule mod_expires.c>
ExpiresActive on
# Perhaps better to whitelist expires rules? Perhaps.
ExpiresDefault "access plus 1 month"
# cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5)
ExpiresByType text/cache-manifest "access plus 0 seconds"
# Your document html
ExpiresByType text/html "access plus 0 seconds"
# Data
ExpiresByType text/xml "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType application/json "access plus 0 seconds"
# Feed
ExpiresByType application/rss+xml "access plus 1 hour"
ExpiresByType application/atom+xml "access plus 1 hour"
# Favicon (cannot be renamed)
ExpiresByType image/x-icon "access plus 1 week"
# Media: images, video, audio
ExpiresByType image/gif "access plus 6 hours"
ExpiresByType image/png "access plus 6 hours"
ExpiresByType image/jpg "access plus 6 hours"
ExpiresByType image/jpeg "access plus 6 hours"
ExpiresByType video/ogg "access plus 6 hours"
ExpiresByType audio/ogg "access plus 6 hours"
ExpiresByType video/mp4 "access plus 6 hours"
ExpiresByType video/webm "access plus 6 hours"
# HTC files (css3pie)
ExpiresByType text/x-component "access plus 1 month"
# Webfonts
ExpiresByType application/x-font-ttf "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType application/x-font-woff "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
# CSS and JavaScript
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
</IfModule>
# ----------------------------------------------------------------------
# ETag removal
# ----------------------------------------------------------------------
# FileETag None is not enough for every server.
<IfModule mod_headers.c>
Header unset ETag
</IfModule>
# Since we're sending far-future expires, we don't need ETags for
# static content.
# developer.yahoo.com/performance/rules.html#etags
FileETag None
# ----------------------------------------------------------------------
# UTF-8 encoding
# ----------------------------------------------------------------------
# Use UTF-8 encoding for anything served text/plain or text/html
AddDefaultCharset utf-8
# Force UTF-8 for a number of file formats
AddCharset utf-8 .css .js .xml .json .rss .atom
# ----------------------------------------------------------------------
# A little more security
# ----------------------------------------------------------------------
# "-Indexes" will have Apache block users from browsing folders without a default document
# Usually you should leave this activated, because you shouldn't allow everybody to surf through
# every folder on your server (which includes rather private places like CMS system folders).
<IfModule mod_autoindex.c>
Options -Indexes
</IfModule>
# Block access to "hidden" directories whose names begin with a period. This
# includes directories used by version control systems such as Subversion or Git.
<IfModule mod_rewrite.c>
RewriteCond %{SCRIPT_FILENAME} -d
RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule "(^|/)\." - [F]
</IfModule>
# Block access to backup and source files
# This files may be left by some text/html editors and
# pose a great security danger, when someone can access them
<FilesMatch "(\.(bak|config|sql|fla|psd|ini|log|sh|inc|swp|dist)|~)$">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
# Increase cookie security
<IfModule php5_module>
php_value session.cookie_httponly true
</IfModule>
# Use the front controller as index file. It serves as a fallback solution when
# every other rewrite/redirect fails (e.g. in an aliased environment without
# mod_rewrite). Additionally, this reduces the matching process for the
@ -317,7 +9,7 @@ DirectoryIndex index.php
# feature in your server configuration. Uncomment the following line if you
# install assets as symlinks or if you experience problems related to symlinks
# when compiling LESS/Sass/CoffeScript assets.
# Options FollowSymlinks
# Options +FollowSymlinks
# Disabling MultiViews prevents unwanted negotiation, e.g. "/index" should not resolve
# to the front controller "/index.php" but be rewritten to "/index.php/index".

@ -1,10 +1,13 @@
<?php
use App\Kernel;
use Symfony\Component\Dotenv\Dotenv;
use Symfony\Component\ErrorHandler\Debug;
use Symfony\Component\HttpFoundation\Request;
require dirname(__DIR__).'/config/bootstrap.php';
require dirname(__DIR__).'/vendor/autoload.php';
(new Dotenv())->bootEnv(dirname(__DIR__).'/.env');
if ($_SERVER['APP_DEBUG']) {
umask(0000);
@ -12,11 +15,11 @@ if ($_SERVER['APP_DEBUG']) {
Debug::enable();
}
if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? $_ENV['TRUSTED_PROXIES'] ?? false) {
if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? false) {
Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST);
}
if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? $_ENV['TRUSTED_HOSTS'] ?? false) {
if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? false) {
Request::setTrustedHosts([$trustedHosts]);
}

@ -3,52 +3,36 @@
namespace App;
use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait;
use Symfony\Component\Config\Loader\LoaderInterface;
use Symfony\Component\Config\Resource\FileResource;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symfony\Component\HttpKernel\Kernel as BaseKernel;
use Symfony\Component\Routing\RouteCollectionBuilder;
use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator;
class Kernel extends BaseKernel
{
use MicroKernelTrait;
private const CONFIG_EXTS = '.{php,xml,yaml,yml}';
public function registerBundles(): iterable
protected function configureContainer(ContainerConfigurator $container): void
{
$contents = require $this->getProjectDir().'/config/bundles.php';
foreach ($contents as $class => $envs) {
if ($envs[$this->environment] ?? $envs['all'] ?? false) {
yield new $class();
}
$container->import('../config/{packages}/*.yaml');
$container->import('../config/{packages}/'.$this->environment.'/*.yaml');
if (is_file(\dirname(__DIR__).'/config/services.yaml')) {
$container->import('../config/{services}.yaml');
$container->import('../config/{services}_'.$this->environment.'.yaml');
} elseif (is_file($path = \dirname(__DIR__).'/config/services.php')) {
(require $path)($container->withPath($path), $this);
}
}
public function getProjectDir(): string
{
return \dirname(__DIR__);
}
protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void
protected function configureRoutes(RoutingConfigurator $routes): void
{
$container->addResource(new FileResource($this->getProjectDir().'/config/bundles.php'));
$container->setParameter('container.dumper.inline_class_loader', \PHP_VERSION_ID < 70400 || $this->debug);
$container->setParameter('container.dumper.inline_factories', true);
$confDir = $this->getProjectDir().'/config';
$routes->import('../config/{routes}/'.$this->environment.'/*.yaml');
$routes->import('../config/{routes}/*.yaml');
$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');
if (is_file(\dirname(__DIR__).'/config/routes.yaml')) {
$routes->import('../config/{routes}.yaml');
} elseif (is_file($path = \dirname(__DIR__).'/config/routes.php')) {
(require $path)($routes->withPath($path), $this);
}
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');
}
}

@ -5,23 +5,23 @@
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "1.0",
"ref": "cb4152ebcadbe620ea2261da1a1c5a9b8cea7672"
"ref": "a2759dd6123694c8d901d0ec80006e044c2e6457"
},
"files": [
"config/routes/annotations.yaml"
]
},
"doctrine/cache": {
"version": "1.10.0"
"version": "1.10.1"
},
"doctrine/collections": {
"version": "1.6.4"
"version": "1.6.5"
},
"doctrine/common": {
"version": "2.12.0"
"version": "2.13.3"
},
"doctrine/dbal": {
"version": "v2.10.1"
"version": "2.10.2"
},
"doctrine/doctrine-bundle": {
"version": "2.0",
@ -55,31 +55,31 @@
"version": "1.1.0"
},
"doctrine/inflector": {
"version": "1.3.1"
"version": "1.4.3"
},
"doctrine/instantiator": {
"version": "1.3.0"
"version": "1.3.1"
},
"doctrine/lexer": {
"version": "1.2.0"
"version": "1.2.1"
},
"doctrine/migrations": {
"version": "2.2.1"
},
"doctrine/orm": {
"version": "v2.7.0"
"version": "v2.7.3"
},
"doctrine/persistence": {
"version": "1.3.6"
"version": "1.3.7"
},
"doctrine/reflection": {
"version": "v1.1.0"
"version": "1.2.1"
},
"doctrine/sql-formatter": {
"version": "1.1.0"
},
"egulias/email-validator": {
"version": "2.1.15"
"version": "2.1.18"
},
"laminas/laminas-code": {
"version": "3.4.1"
@ -88,31 +88,31 @@
"version": "3.2.1"
},
"laminas/laminas-zendframework-bridge": {
"version": "1.0.1"
"version": "1.0.4"
},
"monolog/monolog": {
"version": "2.0.2"
"version": "2.1.0"
},
"nikic/php-parser": {
"version": "v4.3.0"
"version": "v4.6.0"
},
"ocramius/package-versions": {
"version": "1.5.1"
"version": "1.9.0"
},
"ocramius/proxy-manager": {
"version": "2.6.0"
"version": "2.8.0"
},
"php": {
"version": "7.4"
},
"phpdocumentor/reflection-common": {
"version": "2.0.0"
"version": "2.2.0"
},
"phpdocumentor/reflection-docblock": {
"version": "4.3.4"
"version": "5.1.0"
},
"phpdocumentor/type-resolver": {
"version": "1.0.1"
"version": "1.3.0"
},
"psr/cache": {
"version": "1.0.1"
@ -127,7 +127,7 @@
"version": "1.0.0"
},
"psr/log": {
"version": "1.1.2"
"version": "1.1.3"
},
"sensio/framework-extra-bundle": {
"version": "5.2",
@ -147,42 +147,41 @@
"repo": "github.com/symfony/recipes-contrib",
"branch": "master",
"version": "1.0",
"ref": "410b9325a37ef86f1e47262c61738f6202202bca"
"ref": "71599f5b0fdeeeec0fb90e9b17c85e6f5e1350c1"
},
"files": [
"./public/.htaccess"
"public/.htaccess"
]
},
"symfony/asset": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/browser-kit": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/cache": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/cache-contracts": {
"version": "v2.0.1"
"version": "v2.1.2"
},
"symfony/config": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/console": {
"version": "4.4",
"version": "5.1",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "4.4",
"ref": "ea8c0eda34fda57e7d5cd8cbd889e2a387e3472c"
"version": "5.1",
"ref": "c6d02bdfba9da13c22157520e32a602dbee8a75c"
},
"files": [
"bin/console",
"config/bootstrap.php"
"bin/console"
]
},
"symfony/css-selector": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/debug-bundle": {
"version": "4.1",
@ -197,40 +196,40 @@
]
},
"symfony/debug-pack": {
"version": "v1.0.7"
"version": "v1.0.8"
},
"symfony/dependency-injection": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/deprecation-contracts": {
"version": "v2.1.2"
},
"symfony/doctrine-bridge": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/dom-crawler": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/dotenv": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/error-handler": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/event-dispatcher": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/event-dispatcher-contracts": {
"version": "v2.0.1"
"version": "v2.1.2"
},
"symfony/expression-language": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/filesystem": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/finder": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/flex": {
"version": "1.0",
@ -245,18 +244,17 @@
]
},
"symfony/form": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/framework-bundle": {
"version": "4.4",
"version": "5.1",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "4.4",
"ref": "23ecaccc551fe2f74baf613811ae529eb07762fa"
"version": "5.1",
"ref": "ffcb76bab779154c0a7d8cddb9f448c2c45a4e50"
},
"files": [
"config/bootstrap.php",
"config/packages/cache.yaml",
"config/packages/framework.yaml",
"config/packages/test/framework.yaml",
@ -268,22 +266,22 @@
]
},
"symfony/http-client": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/http-client-contracts": {
"version": "v2.0.1"
"version": "v2.1.2"
},
"symfony/http-foundation": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/http-kernel": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/inflector": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/intl": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/mailer": {
"version": "4.3",
@ -307,10 +305,10 @@
}
},
"symfony/mime": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/monolog-bridge": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/monolog-bundle": {
"version": "3.3",
@ -318,10 +316,11 @@
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "3.3",
"ref": "222b46a1bb02cd04bbc59700adec2f44f1a644b7"
"ref": "d7249f7d560f6736115eee1851d02a65826f0a56"
},
"files": [
"config/packages/dev/monolog.yaml",
"config/packages/prod/deprecations.yaml",
"config/packages/prod/monolog.yaml",
"config/packages/test/monolog.yaml"
]
@ -339,7 +338,7 @@
]
},
"symfony/options-resolver": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/phpunit-bridge": {
"version": "4.3",
@ -347,56 +346,55 @@
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "4.3",
"ref": "170be6250b77b421f02e986e2853df86c7bd6516"
"ref": "6d0e35f749d5f4bfe1f011762875275cd3f9874f"
},
"files": [
".env.test",
"bin/phpunit",
"config/bootstrap.php",
"phpunit.xml.dist",
"tests/.gitignore"
"tests/bootstrap.php"
]
},
"symfony/polyfill-intl-grapheme": {
"version": "v1.13.1"
"version": "v1.17.1"
},
"symfony/polyfill-intl-icu": {
"version": "v1.13.1"
"version": "v1.17.1"
},
"symfony/polyfill-intl-idn": {
"version": "v1.13.1"
"version": "v1.17.1"
},
"symfony/polyfill-intl-normalizer": {
"version": "v1.13.1"
"version": "v1.17.1"
},
"symfony/polyfill-mbstring": {
"version": "v1.13.1"
"version": "v1.17.1"
},
"symfony/polyfill-php73": {
"version": "v1.13.1"
"version": "v1.17.1"
},
"symfony/polyfill-php80": {
"version": "v1.17.1"
},
"symfony/process": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/profiler-pack": {
"version": "v1.0.4"
},
"symfony/property-access": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/property-info": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/routing": {
"version": "4.2",
"version": "5.1",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "4.2",
"ref": "683dcb08707ba8d41b7e34adb0344bfd68d248a7"
"version": "5.1",
"ref": "b4f3e7c95e38b606eef467e8a42a8408fc460c43"
},
"files": [
"config/packages/prod/routing.yaml",
@ -405,43 +403,43 @@
]
},
"symfony/security-bundle": {
"version": "4.4",
"version": "5.1",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "4.4",
"ref": "30efd98dd3b4ead6e9ad4713b1efc43bbe94bf77"
"version": "5.1",
"ref": "0a4bae19389d3b9cba1ca0102e3b2bccea724603"
},
"files": [
"config/packages/security.yaml"
]
},
"symfony/security-core": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/security-csrf": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/security-guard": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/security-http": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/serializer": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/serializer-pack": {
"version": "v1.0.2"
"version": "v1.0.3"
},
"symfony/service-contracts": {
"version": "v2.0.1"
"version": "v2.1.2"
},
"symfony/stopwatch": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/string": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/test-pack": {
"version": "v1.0.6"
@ -460,10 +458,10 @@
]
},
"symfony/translation-contracts": {
"version": "v2.0.1"
"version": "v2.1.2"
},
"symfony/twig-bridge": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/twig-bundle": {
"version": "5.0",
@ -496,13 +494,13 @@
]
},
"symfony/var-dumper": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/var-exporter": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/web-link": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"symfony/web-profiler-bundle": {
"version": "3.3",
@ -538,18 +536,18 @@
]
},
"symfony/yaml": {
"version": "v5.0.3"
"version": "v5.1.2"
},
"twig/extra-bundle": {
"version": "v3.0.1"
"version": "v3.0.4"
},
"twig/twig": {
"version": "v3.0.1"
"version": "v3.0.4"
},
"webimpress/safe-writer": {
"version": "2.0.0"
"version": "2.0.1"
},
"webmozart/assert": {
"version": "1.6.0"
"version": "1.9.0"
}
}

Loading…
Cancel
Save