not everything is working, but at least the dependencies are resolved

feature/symfony_upgrade
Hecht 4 years ago
parent 9df1f0f347
commit 7594b5af67

30
.env

@ -1,23 +1,25 @@
# This file defines all environment variables that the application needs. # In all environments, the following files are loaded if they exist,
# DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE. # the latter taking precedence over the former:
# Use ".env.local" for local overrides during development. #
# Use real environment variables when deploying to production. # * .env contains default values for the environment variables needed by the app
# https://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration # * .env.local uncommitted file with local overrides
# * .env.$APP_ENV committed environment-specific defaults
# * .env.$APP_ENV.local uncommitted environment-specific overrides
#
# Real environment variables win over .env files.
#
# DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES.
#
# Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2).
# https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration
###> symfony/framework-bundle ### ###> symfony/framework-bundle ###
APP_ENV=dev APP_ENV=dev
APP_SECRET=879a6adeceeccbdc835a19f7e3aad7e8 APP_SECRET=2e4a817309fb576a536b62a60eaf2aaa
#TRUSTED_PROXIES=127.0.0.1,127.0.0.2 #TRUSTED_PROXIES=127.0.0.1,127.0.0.2
#TRUSTED_HOSTS='^localhost|example\.com$' #TRUSTED_HOSTS='^(localhost|example\.com)$'
###< symfony/framework-bundle ### ###< symfony/framework-bundle ###
###> doctrine/doctrine-bundle ###
# Format described at http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# For an SQLite database, use: "sqlite:///%kernel.project_dir%/var/data.db"
# Configure your db driver and server_version in config/packages/doctrine.yaml
DATABASE_URL=sqlite:///%kernel.project_dir%/var/data.db
###< doctrine/doctrine-bundle ###
###> symfony/swiftmailer-bundle ### ###> symfony/swiftmailer-bundle ###
# For Gmail as a transport, use: "gmail://username:password@localhost" # For Gmail as a transport, use: "gmail://username:password@localhost"
# For a generic SMTP server, use: "smtp://localhost:25?encryption=&auth_mode=" # For a generic SMTP server, use: "smtp://localhost:25?encryption=&auth_mode="

@ -1,24 +0,0 @@
# This file is a "template" of which env vars need to be defined for your application
# Copy this file to .env file for development, create environment variables when deploying to production
# https://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration
###> symfony/framework-bundle ###
APP_ENV=dev
APP_SECRET=9d74944d92d8155f1c870695def94464
#TRUSTED_PROXIES=127.0.0.1,127.0.0.2
#TRUSTED_HOSTS=localhost,example.com
###< symfony/framework-bundle ###
###> doctrine/doctrine-bundle ###
# Format described at http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# For an SQLite database, use: "sqlite:///%kernel.project_dir%/var/data.db"
# Configure your db driver and server_version in config/packages/doctrine.yaml
DATABASE_URL=mysql://db_user:db_password@127.0.0.1:3306/db_name
###< doctrine/doctrine-bundle ###
###> symfony/swiftmailer-bundle ###
# For Gmail as a transport, use: "gmail://username:password@localhost"
# For a generic SMTP server, use: "smtp://localhost:25?encryption=&auth_mode="
# Delivery is disabled by default via "null://localhost"
MAILER_URL=null://localhost
###< symfony/swiftmailer-bundle ###

@ -1,4 +1,6 @@
# define your env variables for the test env here # define your env variables for the test env here
KERNEL_CLASS='App\Kernel' KERNEL_CLASS='App\Kernel'
APP_SECRET='s$cretf0rt3st' APP_SECRET='$ecretf0rt3st'
SYMFONY_DEPRECATIONS_HELPER=999999 SYMFONY_DEPRECATIONS_HELPER=999999
PANTHER_APP_ENV=panther
DATABASE_URL=sqlite:///%kernel.project_dir%/var/data_test.db

5
.gitignore vendored

@ -1,6 +1,7 @@
###> symfony/framework-bundle ### ###> symfony/framework-bundle ###
/.env.local /.env.local
/.env.local.php
/.env.*.local /.env.*.local
/public/bundles/ /public/bundles/
/var/ /var/
@ -9,9 +10,13 @@
###> symfony/phpunit-bridge ### ###> symfony/phpunit-bridge ###
.phpunit .phpunit
.phpunit.result.cache
/phpunit.xml /phpunit.xml
###< symfony/phpunit-bridge ### ###< symfony/phpunit-bridge ###
###> symfony/web-server-bundle ### ###> symfony/web-server-bundle ###
/.web-server-pid /.web-server-pid
###< symfony/web-server-bundle ### ###< symfony/web-server-bundle ###
.project

@ -6,26 +6,28 @@ use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Component\Console\Input\ArgvInput; use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\Debug\Debug; use Symfony\Component\Debug\Debug;
if (!in_array(PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) {
echo 'Warning: The console should be invoked via the CLI version of PHP, not the '.PHP_SAPI.' SAPI'.PHP_EOL;
}
set_time_limit(0); set_time_limit(0);
require dirname(__DIR__).'/vendor/autoload.php'; require dirname(__DIR__).'/vendor/autoload.php';
if (!class_exists(Application::class)) { if (!class_exists(Application::class)) {
throw new RuntimeException('You need to add "symfony/framework-bundle" as a Composer dependency.'); throw new LogicException('You need to add "symfony/framework-bundle" as a Composer dependency.');
} }
$input = new ArgvInput(); $input = new ArgvInput();
if (null !== $_ENV['APP_ENV'] = $input->getParameterOption(['--env', '-e'], null, true)) { if (null !== $env = $input->getParameterOption(['--env', '-e'], null, true)) {
putenv('APP_ENV='.$_ENV['APP_ENV']); putenv('APP_ENV='.$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = $env);
// force loading .env files when --env is defined
$_SERVER['APP_ENV'] = null;
} }
if ($input->hasParameterOption('--no-debug', true)) { if ($input->hasParameterOption('--no-debug', true)) {
putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0'); putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0');
} }
require dirname(__DIR__).'/src/.bootstrap.php'; require dirname(__DIR__).'/config/bootstrap.php';
if ($_SERVER['APP_DEBUG']) { if ($_SERVER['APP_DEBUG']) {
umask(0000); umask(0000);
@ -35,6 +37,6 @@ if ($_SERVER['APP_DEBUG']) {
} }
} }
$kernel = new Kernel($_SERVER['APP_ENV'], $_SERVER['APP_DEBUG']); $kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$application = new Application($kernel); $application = new Application($kernel);
$application->run($input); $application->run($input);

@ -1,19 +1,13 @@
#!/usr/bin/env php #!/usr/bin/env php
<?php <?php
if (!file_exists(dirname(__DIR__).'/vendor/symfony/phpunit-bridge/bin/simple-phpunit')) { if (!file_exists(dirname(__DIR__).'/vendor/symfony/phpunit-bridge/bin/simple-phpunit.php')) {
echo "Unable to find the `simple-phpunit` script in `vendor/symfony/phpunit-bridge/bin/`.\n"; echo "Unable to find the `simple-phpunit.php` script in `vendor/symfony/phpunit-bridge/bin/`.\n";
exit(1); exit(1);
} }
if (false === getenv('SYMFONY_PHPUNIT_VERSION')) {
putenv('SYMFONY_PHPUNIT_VERSION=6.5');
}
if (false === getenv('SYMFONY_PHPUNIT_REMOVE')) {
putenv('SYMFONY_PHPUNIT_REMOVE=');
}
if (false === getenv('SYMFONY_PHPUNIT_DIR')) { if (false === getenv('SYMFONY_PHPUNIT_DIR')) {
putenv('SYMFONY_PHPUNIT_DIR='.__DIR__.'/.phpunit'); putenv('SYMFONY_PHPUNIT_DIR='.__DIR__.'/.phpunit');
} }
require dirname(__DIR__).'/vendor/symfony/phpunit-bridge/bin/simple-phpunit'; require dirname(__DIR__).'/vendor/symfony/phpunit-bridge/bin/simple-phpunit.php';

@ -7,32 +7,32 @@
"ext-iconv": "*", "ext-iconv": "*",
"friendsofsymfony/rest-bundle": "^2.4", "friendsofsymfony/rest-bundle": "^2.4",
"sensio/framework-extra-bundle": "^5.1", "sensio/framework-extra-bundle": "^5.1",
"symfony/asset": "4.1.*", "symfony/asset": "4.4.*",
"symfony/console": "4.1.*", "symfony/console": "4.4.*",
"symfony/expression-language": "4.1.*", "symfony/expression-language": "4.4.*",
"symfony/flex": "^1.1", "symfony/flex": "^1.1",
"symfony/form": "4.1.*", "symfony/form": "4.4.*",
"symfony/framework-bundle": "4.1.*", "symfony/framework-bundle": "4.4.*",
"symfony/monolog-bundle": "^3.1", "symfony/monolog-bundle": "^3.1",
"symfony/orm-pack": "*", "symfony/orm-pack": "*",
"symfony/process": "4.1.*", "symfony/process": "4.4.*",
"symfony/security-bundle": "4.1.*", "symfony/security-bundle": "4.4.*",
"symfony/serializer-pack": "*", "symfony/serializer-pack": "*",
"symfony/swiftmailer-bundle": "^3.1", "symfony/swiftmailer-bundle": "^3.1",
"symfony/translation": "4.1.*", "symfony/translation": "4.4.*",
"symfony/twig-bundle": "4.1.*", "symfony/twig-bundle": "4.4.*",
"symfony/validator": "4.1.*", "symfony/validator": "4.4.*",
"symfony/web-link": "4.1.*", "symfony/web-link": "4.4.*",
"symfony/yaml": "4.1.*" "symfony/yaml": "4.4.*"
}, },
"require-dev": { "require-dev": {
"doctrine/doctrine-fixtures-bundle": "^3.0", "doctrine/doctrine-fixtures-bundle": "^3.0",
"symfony/debug-pack": "*", "symfony/debug-pack": "*",
"symfony/dotenv": "4.1.*", "symfony/dotenv": "4.4.*",
"symfony/maker-bundle": "^1.0", "symfony/maker-bundle": "^1.0",
"symfony/profiler-pack": "*", "symfony/profiler-pack": "*",
"symfony/test-pack": "*", "symfony/test-pack": "*",
"symfony/web-server-bundle": "4.1.*" "symfony/web-server-bundle": "4.4.*"
}, },
"config": { "config": {
"preferred-install": { "preferred-install": {
@ -76,7 +76,7 @@
"extra": { "extra": {
"symfony": { "symfony": {
"allow-contrib": false, "allow-contrib": false,
"require": "4.1.*" "require": "4.4.*"
} }
} }
} }

6187
composer.lock generated

File diff suppressed because it is too large Load Diff

@ -0,0 +1,53 @@
<?php
use Symfony\Component\Dotenv\Dotenv;
require dirname(__DIR__).'/vendor/autoload.php';
if (!class_exists(Dotenv::class)) {
throw new LogicException('Please run "composer require symfony/dotenv" to load the ".env" files configuring the application.');
}
// Load cached env vars if the .env.local.php file exists
// Run "composer dump-env prod" to create it (requires symfony/flex >=1.2)
if (is_array($env = @include dirname(__DIR__).'/.env.local.php') && (!isset($env['APP_ENV']) || ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? $env['APP_ENV']) === $env['APP_ENV'])) {
(new Dotenv(false))->populate($env);
} else {
$path = dirname(__DIR__).'/.env';
$dotenv = new Dotenv(false);
// load all the .env files
if (method_exists($dotenv, 'loadEnv')) {
$dotenv->loadEnv($path);
} else {
// fallback code in case your Dotenv component is not 4.2 or higher (when loadEnv() was added)
if (file_exists($path) || !file_exists($p = "$path.dist")) {
$dotenv->load($path);
} else {
$dotenv->load($p);
}
if (null === $env = $_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? null) {
$dotenv->populate(array('APP_ENV' => $env = 'dev'));
}
if ('test' !== $env && file_exists($p = "$path.local")) {
$dotenv->load($p);
$env = $_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? $env;
}
if (file_exists($p = "$path.$env")) {
$dotenv->load($p);
}
if (file_exists($p = "$path.$env.local")) {
$dotenv->load($p);
}
}
}
$_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';

@ -0,0 +1,19 @@
framework:
cache:
# Unique name of your app: used to compute stable namespaces for cache keys.
#prefix_seed: your_vendor_name/app_name
# The "app" cache stores to the filesystem by default.
# The data in this cache should persist between deploys.
# 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

@ -1,17 +1,15 @@
parameters:
# Adds a fallback DATABASE_URL if the env var is not set.
# This allows you to run cache:warmup even if your
# environment variables are not available yet.
# You should not need to change this value.
env(DATABASE_URL): ''
doctrine: doctrine:
dbal: dbal:
# configure these for your database server
driver: 'pdo_sqlite'
charset: utf8
url: '%env(resolve:DATABASE_URL)%' url: '%env(resolve:DATABASE_URL)%'
# IMPORTANT: You MUST configure your server version,
# either here or in the DATABASE_URL env var (see .env file)
#server_version: '5.7'
# only needed for MySQL
charset: utf8mb4
default_table_options:
collate: utf8mb4_unicode_ci
orm: orm:
auto_generate_proxy_classes: true auto_generate_proxy_classes: true
naming_strategy: doctrine.orm.naming_strategy.underscore naming_strategy: doctrine.orm.naming_strategy.underscore
@ -19,7 +17,7 @@ doctrine:
mappings: mappings:
App: App:
is_bundle: false is_bundle: false
type: yml type: annotation
dir: '%kernel.project_dir%/config/orm' dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity' prefix: 'App\Entity'
alias: App alias: App

@ -1,5 +1,5 @@
doctrine_migrations: doctrine_migrations:
dir_name: '%kernel.project_dir%/src/Migrations' migrations_paths:
# namespace is arbitrary but should be different from App\Migrations # namespace is arbitrary but should be different from App\Migrations
# as migrations classes should NOT be autoloaded # as migrations classes should NOT be autoloaded
namespace: DoctrineMigrations 'DoctrineMigrations': '%kernel.project_dir%/migrations'

@ -1,24 +1,15 @@
# Read the documentation: https://symfony.com/doc/master/bundles/FOSRestBundle/index.html # Read the documentation: https://symfony.com/doc/master/bundles/FOSRestBundle/index.html
fos_rest: fos_rest: null
disable_csrf_role: ROLE_API # param_fetcher_listener: true
param_fetcher_listener: true
body_listener: true
# allowed_methods_listener: true # allowed_methods_listener: true
# routing_loader: true # routing_loader: true
view: # view:
view_response_listener: force # view_response_listener: true
exception: # exception:
enabled: true # codes:
exception_controller: 'fos_rest.exception.controller:showAction' # App\Exception\MyException: 403
codes: # messages:
'Symfony\Component\Routing\Exception\ResourceNotFoundException': 404 # App\Exception\MyException: Forbidden area.
'Doctrine\ORM\OptimisticLockException': HTTP_CONFLICT # format_listener:
messages: # rules:
'Symfony\Component\Routing\Exception\ResourceNotFoundException': true # - { path: ^/api, prefer_extension: true, fallback_format: json, priorities: [ json, html ] }
format_listener:
rules:
- { path: ^/api, prefer_extension: true, fallback_format: json, priorities: [ json, xml ] }
- { path: ^/, prefer_extension: true, fallback_format: html, priorities: [ html ] }
serializer:
groups: ['Default']

@ -1,34 +1,15 @@
framework: framework:
secret: '%env(APP_SECRET)%' secret: '%env(APP_SECRET)%'
#default_locale: en
#csrf_protection: true #csrf_protection: true
#http_method_override: true #http_method_override: true
# Enables session support. Note that the session will ONLY be started if you read or write from it. # 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. # Remove or comment this section to explicitly disable session support.
session: session:
handler_id: ~ handler_id: null
cookie_samesite: lax
#esi: true #esi: true
#fragments: true #fragments: true
php_errors: php_errors:
log: true log: true
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
serializer: { enable_annotations: true }
templating:
engines: ['twig']

@ -0,0 +1,8 @@
# As of Symfony 5.1, deprecations are logged in the dedicated "deprecation" channel when it exists
#monolog:
# channels: [deprecation]
# handlers:
# deprecation:
# type: stream
# channels: [deprecation]
# path: "%kernel.logs_dir%/%kernel.environment%.deprecations.log"

@ -4,9 +4,8 @@ monolog:
type: fingers_crossed type: fingers_crossed
action_level: error action_level: error
handler: nested handler: nested
excluded_404s: excluded_http_codes: [404, 405]
# regex: exclude all 404 errors from the logs buffer_size: 50 # How many messages should be saved? Prevent memory leaks
- ^/
nested: nested:
type: stream type: stream
path: "%kernel.logs_dir%/%kernel.environment%.log" path: "%kernel.logs_dir%/%kernel.environment%.log"
@ -15,11 +14,3 @@ monolog:
type: console type: console
process_psr_3_messages: false process_psr_3_messages: false
channels: ["!event", "!doctrine"] 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"]

@ -0,0 +1,3 @@
framework:
router:
strict_requirements: null

@ -1,3 +1,3 @@
framework: framework:
router: router:
strict_requirements: ~ utf8: true

@ -1,31 +1,20 @@
security: security:
encoders:
App\Entity\User:
algorithm: argon2i
# https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
providers: providers:
in_memory: { memory: ~ } users_in_memory: { memory: null }
firewalls: firewalls:
dev: dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/ pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false security: false
api:
pattern: ^/api/
guard:
authenticators:
- App\Security\TokenAuthenticator
stateless: true
main: main:
anonymous: true anonymous: true
provider: users_in_memory
# activate different ways to authenticate # activate different ways to authenticate
# https://symfony.com/doc/current/security.html#firewalls-authentication
# http_basic: true # https://symfony.com/doc/current/security/impersonating_user.html
# https://symfony.com/doc/current/security.html#a-configuring-how-your-users-will-authenticate # switch_user: true
# form_login: true
# https://symfony.com/doc/current/security/form_login_setup.html
# Easy way to control access for large sections of your site # Easy way to control access for large sections of your site
# Note: Only the *first* access control that matches will be used # Note: Only the *first* access control that matches will be used

@ -1,7 +1,12 @@
monolog: monolog:
handlers: handlers:
main: main:
type: fingers_crossed
action_level: error
handler: nested
excluded_http_codes: [404, 405]
channels: ["!event"]
nested:
type: stream type: stream
path: "%kernel.logs_dir%/%kernel.environment%.log" path: "%kernel.logs_dir%/%kernel.environment%.log"
level: debug level: debug
channels: ["!event"]

@ -0,0 +1,2 @@
twig:
strict_variables: true

@ -0,0 +1,4 @@
framework:
validation:
# As of Symfony 4.3 you can disable the NotCompromisedPassword Validator
# not_compromised_password: false

@ -1,6 +1,6 @@
framework: framework:
default_locale: '%locale%' default_locale: en
translator: translator:
default_path: '%kernel.project_dir%/translations' default_path: '%kernel.project_dir%/translations'
fallbacks: fallbacks:
- '%locale%' - en

@ -2,4 +2,3 @@ twig:
default_path: '%kernel.project_dir%/templates' default_path: '%kernel.project_dir%/templates'
debug: '%kernel.debug%' debug: '%kernel.debug%'
strict_variables: '%kernel.debug%' strict_variables: '%kernel.debug%'
exception_controller: 'FOS\RestBundle\Controller\ExceptionController::showAction'

@ -1,13 +1,3 @@
#index: #index:
# path: / # path: /
# controller: App\Controller\DefaultController::index # controller: App\Controller\DefaultController::index
user:
prefix: /api
type: rest
resource: App\Controller\UserController
hero:
prefix: /api
type: rest
resource: App\Controller\HeroController

@ -1,3 +1,7 @@
controllers: controllers:
resource: ../../src/Controller/ resource: ../../src/Controller/
type: annotation type: annotation
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 # 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 # https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
parameters: parameters:
locale: 'en'
services: services:
# default configuration for services in *this* file # default configuration for services in *this* file

@ -1,17 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- https://phpunit.de/manual/current/en/appendixes.configuration.html --> <!-- https://phpunit.readthedocs.io/en/latest/configuration.html -->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/6.5/phpunit.xsd" xsi:noNamespaceSchemaLocation="bin/.phpunit/phpunit.xsd"
backupGlobals="false" backupGlobals="false"
colors="true" colors="true"
bootstrap="src/.bootstrap.php" bootstrap="tests/bootstrap.php"
> >
<php> <php>
<ini name="error_reporting" value="-1" /> <ini name="error_reporting" value="-1" />
<env name="APP_ENV" value="test" /> <server name="APP_ENV" value="test" force="true" />
<env name="SHELL_VERBOSITY" value="-1" /> <server name="SHELL_VERBOSITY" value="-1" />
<env name="SYMFONY_DEPRECATIONS_HELPER" value="weak_vendors" /> <server name="SYMFONY_PHPUNIT_REMOVE" value="" />
<server name="SYMFONY_PHPUNIT_VERSION" value="7.5" />
</php> </php>
<testsuites> <testsuites>
@ -21,8 +22,8 @@
</testsuites> </testsuites>
<filter> <filter>
<whitelist> <whitelist processUncoveredFilesFromWhitelist="true">
<directory>src</directory> <directory suffix=".php">src</directory>
</whitelist> </whitelist>
</filter> </filter>

@ -4,7 +4,7 @@ use App\Kernel;
use Symfony\Component\Debug\Debug; use Symfony\Component\Debug\Debug;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
require dirname(__DIR__).'/src/.bootstrap.php'; require dirname(__DIR__).'/config/bootstrap.php';
if ($_SERVER['APP_DEBUG']) { if ($_SERVER['APP_DEBUG']) {
umask(0000); umask(0000);
@ -12,15 +12,15 @@ if ($_SERVER['APP_DEBUG']) {
Debug::enable(); 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); 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]); Request::setTrustedHosts([$trustedHosts]);
} }
$kernel = new Kernel($_SERVER['APP_ENV'], $_SERVER['APP_DEBUG']); $kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$request = Request::createFromGlobals(); $request = Request::createFromGlobals();
$response = $kernel->handle($request); $response = $kernel->handle($request);
$response->send(); $response->send();

@ -45,7 +45,7 @@ class Kernel extends BaseKernel
$confDir = $this->getProjectDir().'/config'; $confDir = $this->getProjectDir().'/config';
$loader->load($confDir.'/{packages}/*'.self::CONFIG_EXTS, 'glob'); $loader->load($confDir.'/{packages}/*'.self::CONFIG_EXTS, 'glob');
$loader->load($confDir.'/{packages}/'.$this->environment.'/**/*'.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}'.self::CONFIG_EXTS, 'glob');
$loader->load($confDir.'/{services}_'.$this->environment.self::CONFIG_EXTS, 'glob'); $loader->load($confDir.'/{services}_'.$this->environment.self::CONFIG_EXTS, 'glob');
} }
@ -54,8 +54,8 @@ class Kernel extends BaseKernel
{ {
$confDir = $this->getProjectDir().'/config'; $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');
$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,8 +5,11 @@
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "master", "branch": "master",
"version": "1.0", "version": "1.0",
"ref": "cb4152ebcadbe620ea2261da1a1c5a9b8cea7672" "ref": "a2759dd6123694c8d901d0ec80006e044c2e6457"
} },
"files": [
"config/routes/annotations.yaml"
]
}, },
"doctrine/cache": { "doctrine/cache": {
"version": "v1.8.0" "version": "v1.8.0"
@ -29,8 +32,14 @@
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "master", "branch": "master",
"version": "1.6", "version": "1.6",
"ref": "453e89b78ded666f351617baca5ae40d20622351" "ref": "2ede24c63b72e96be0b28819052033f887024927"
} },
"files": [
"config/packages/doctrine.yaml",
"config/packages/prod/doctrine.yaml",
"src/Entity/.gitignore",
"src/Repository/.gitignore"
]
}, },
"doctrine/doctrine-cache-bundle": { "doctrine/doctrine-cache-bundle": {
"version": "1.3.5" "version": "1.3.5"
@ -41,17 +50,24 @@
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "master", "branch": "master",
"version": "3.0", "version": "3.0",
"ref": "fc52d86631a6dfd9fdf3381d0b7e3df2069e51b3" "ref": "e5b542d4ef47d8a003c91beb35650c76907f7e53"
} },
"files": [
"src/DataFixtures/AppFixtures.php"
]
}, },
"doctrine/doctrine-migrations-bundle": { "doctrine/doctrine-migrations-bundle": {
"version": "1.2", "version": "2.2",
"recipe": { "recipe": {
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "master", "branch": "master",
"version": "1.2", "version": "2.2",
"ref": "c1431086fec31f17fbcfe6d6d7e92059458facc1" "ref": "baaa439e3e3179e69e3da84b671f0a3e4a2f56ad"
} },
"files": [
"config/packages/doctrine_migrations.yaml",
"migrations/.gitignore"
]
}, },
"doctrine/event-manager": { "doctrine/event-manager": {
"version": "v1.0.0" "version": "v1.0.0"
@ -92,21 +108,30 @@
"facebook/webdriver": { "facebook/webdriver": {
"version": "1.6.0" "version": "1.6.0"
}, },
"fig/link-util": {
"version": "1.0.0"
},
"friendsofsymfony/rest-bundle": { "friendsofsymfony/rest-bundle": {
"version": "2.2", "version": "2.2",
"recipe": { "recipe": {
"repo": "github.com/symfony/recipes-contrib", "repo": "github.com/symfony/recipes-contrib",
"branch": "master", "branch": "master",
"version": "2.2", "version": "2.2",
"ref": "258300d52be6ad59b32a888d5ddafbf9638540ff" "ref": "cad41ef93d6150067ae2bb3c7fd729492dff6f0a"
} },
"files": [
"config/packages/fos_rest.yaml"
]
}, },
"jdorn/sql-formatter": { "jdorn/sql-formatter": {
"version": "v1.2.17" "version": "v1.2.17"
}, },
"laminas/laminas-code": {
"version": "3.4.1"
},
"laminas/laminas-eventmanager": {
"version": "3.3.0"
},
"laminas/laminas-zendframework-bridge": {
"version": "1.1.1"
},
"monolog/monolog": { "monolog/monolog": {
"version": "1.24.0" "version": "1.24.0"
}, },
@ -119,6 +144,9 @@
"ocramius/proxy-manager": { "ocramius/proxy-manager": {
"version": "2.1.1" "version": "2.1.1"
}, },
"php": {
"version": "7.4"
},
"phpdocumentor/reflection-common": { "phpdocumentor/reflection-common": {
"version": "1.0.1" "version": "1.0.1"
}, },
@ -140,9 +168,6 @@
"psr/log": { "psr/log": {
"version": "1.0.2" "version": "1.0.2"
}, },
"psr/simple-cache": {
"version": "1.0.1"
},
"sensio/framework-extra-bundle": { "sensio/framework-extra-bundle": {
"version": "5.2", "version": "5.2",
"recipe": { "recipe": {
@ -164,6 +189,9 @@
"symfony/cache": { "symfony/cache": {
"version": "v4.1.7" "version": "v4.1.7"
}, },
"symfony/cache-contracts": {
"version": "v2.2.0"
},
"symfony/config": { "symfony/config": {
"version": "v4.1.7" "version": "v4.1.7"
}, },
@ -173,8 +201,12 @@
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "master", "branch": "master",
"version": "3.3", "version": "3.3",
"ref": "181d766db0eb468f41337f9b2d9d5b61ba1ee441" "ref": "5b06148c10d442bf536a4d3017cadb3a99fd9135"
} },
"files": [
"bin/console",
"config/bootstrap.php"
]
}, },
"symfony/css-selector": { "symfony/css-selector": {
"version": "v4.1.7" "version": "v4.1.7"
@ -206,9 +238,15 @@
"symfony/dotenv": { "symfony/dotenv": {
"version": "v4.1.7" "version": "v4.1.7"
}, },
"symfony/error-handler": {
"version": "v4.4.15"
},
"symfony/event-dispatcher": { "symfony/event-dispatcher": {
"version": "v4.1.7" "version": "v4.1.7"
}, },
"symfony/event-dispatcher-contracts": {
"version": "v1.1.9"
},
"symfony/expression-language": { "symfony/expression-language": {
"version": "v4.1.7" "version": "v4.1.7"
}, },
@ -224,20 +262,36 @@
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "master", "branch": "master",
"version": "1.0", "version": "1.0",
"ref": "5f8a51c0fad684396f6b6c0fd770e043439cb632" "ref": "c0eeb50665f0f77226616b6038a9b06c03752d8e"
} },
"files": [
".env"
]
}, },
"symfony/form": { "symfony/form": {
"version": "v4.1.7" "version": "v4.1.7"
}, },
"symfony/framework-bundle": { "symfony/framework-bundle": {
"version": "3.3", "version": "3.4",
"recipe": { "recipe": {
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "master", "branch": "master",
"version": "3.3", "version": "3.4",
"ref": "9ec493d6f3575c54671493d635fa4b68658022ab" "ref": "903c28f0ce372b8414cc569a8832428737e8abd1"
} },
"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-contracts": {
"version": "v2.3.1"
}, },
"symfony/http-foundation": { "symfony/http-foundation": {
"version": "v4.1.7" "version": "v4.1.7"
@ -260,17 +314,26 @@
"ref": "fadbfe33303a76e25cb63401050439aa9b1a9c7f" "ref": "fadbfe33303a76e25cb63401050439aa9b1a9c7f"
} }
}, },
"symfony/mime": {
"version": "v4.4.15"
},
"symfony/monolog-bridge": { "symfony/monolog-bridge": {
"version": "v4.1.7" "version": "v4.1.7"
}, },
"symfony/monolog-bundle": { "symfony/monolog-bundle": {
"version": "3.1", "version": "3.3",
"recipe": { "recipe": {
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "master", "branch": "master",
"version": "3.1", "version": "3.3",
"ref": "18ebf5a940573a20de06f9c4060101eeb438cf3d" "ref": "d7249f7d560f6736115eee1851d02a65826f0a56"
} },
"files": [
"config/packages/dev/monolog.yaml",
"config/packages/prod/deprecations.yaml",
"config/packages/prod/monolog.yaml",
"config/packages/test/monolog.yaml"
]
}, },
"symfony/options-resolver": { "symfony/options-resolver": {
"version": "v4.1.7" "version": "v4.1.7"
@ -282,23 +345,41 @@
"version": "v0.2.0" "version": "v0.2.0"
}, },
"symfony/phpunit-bridge": { "symfony/phpunit-bridge": {
"version": "4.1", "version": "4.3",
"recipe": { "recipe": {
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "master", "branch": "master",
"version": "4.1", "version": "4.3",
"ref": "b4c7d939cac9a67e02366fa7971746e9cbf1dad0" "ref": "6d0e35f749d5f4bfe1f011762875275cd3f9874f"
} },
"files": [
".env.test",
"bin/phpunit",
"phpunit.xml.dist",
"tests/bootstrap.php"
]
}, },
"symfony/polyfill-intl-icu": { "symfony/polyfill-intl-icu": {
"version": "v1.10.0" "version": "v1.10.0"
}, },
"symfony/polyfill-intl-idn": {
"version": "v1.18.1"
},
"symfony/polyfill-intl-normalizer": {
"version": "v1.18.1"
},
"symfony/polyfill-mbstring": { "symfony/polyfill-mbstring": {
"version": "v1.10.0" "version": "v1.10.0"
}, },
"symfony/polyfill-php72": { "symfony/polyfill-php72": {
"version": "v1.10.0" "version": "v1.10.0"
}, },
"symfony/polyfill-php73": {
"version": "v1.18.1"
},
"symfony/polyfill-php80": {
"version": "v1.18.1"
},
"symfony/process": { "symfony/process": {
"version": "v4.1.7" "version": "v4.1.7"
}, },
@ -312,16 +393,18 @@
"version": "v4.1.7" "version": "v4.1.7"
}, },
"symfony/routing": { "symfony/routing": {
"version": "4.0", "version": "4.2",
"recipe": { "recipe": {
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "master", "branch": "master",
"version": "4.0", "version": "4.2",
"ref": "5f514d9d3b8a8aac3d62ae6a86b18b90ed0c7826" "ref": "683dcb08707ba8d41b7e34adb0344bfd68d248a7"
}
}, },
"symfony/security": { "files": [
"version": "v4.1.7" "config/packages/prod/routing.yaml",
"config/packages/routing.yaml",
"config/routes.yaml"
]
}, },
"symfony/security-bundle": { "symfony/security-bundle": {
"version": "3.3", "version": "3.3",
@ -329,8 +412,23 @@
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "master", "branch": "master",
"version": "3.3", "version": "3.3",
"ref": "f8a63faa0d9521526499c0a8f403c9964ecb0527" "ref": "38d658ce68375d66d2cddc88892af8f08701e6e7"
} },
"files": [
"config/packages/security.yaml"
]
},
"symfony/security-core": {
"version": "v4.4.15"
},
"symfony/security-csrf": {
"version": "v4.4.15"
},
"symfony/security-guard": {
"version": "v4.4.15"
},
"symfony/security-http": {
"version": "v4.4.15"
}, },
"symfony/serializer": { "symfony/serializer": {
"version": "v4.1.7" "version": "v4.1.7"
@ -338,6 +436,9 @@
"symfony/serializer-pack": { "symfony/serializer-pack": {
"version": "v1.0.1" "version": "v1.0.1"
}, },
"symfony/service-contracts": {
"version": "v2.2.0"
},
"symfony/stopwatch": { "symfony/stopwatch": {
"version": "v4.1.7" "version": "v4.1.7"
}, },
@ -347,8 +448,13 @@
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "master", "branch": "master",
"version": "2.5", "version": "2.5",
"ref": "3db029c03e452b4a23f7fc45cec7c922c2247eb8" "ref": "ae4d22af30bbd484506bc1817c5a3ef72c855b93"
} },
"files": [
"config/packages/dev/swiftmailer.yaml",
"config/packages/swiftmailer.yaml",
"config/packages/test/swiftmailer.yaml"
]
}, },
"symfony/templating": { "symfony/templating": {
"version": "v4.1.7" "version": "v4.1.7"
@ -362,8 +468,15 @@
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "master", "branch": "master",
"version": "3.3", "version": "3.3",
"ref": "1fb02a6e1c8f3d4232cce485c9afa868d63b115a" "ref": "2ad9d2545bce8ca1a863e50e92141f0b9d87ffcd"
} },
"files": [
"config/packages/translation.yaml",
"translations/.gitignore"
]
},
"symfony/translation-contracts": {
"version": "v2.3.0"
}, },
"symfony/twig-bridge": { "symfony/twig-bridge": {
"version": "v4.1.7" "version": "v4.1.7"
@ -374,8 +487,14 @@
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "master", "branch": "master",
"version": "3.3", "version": "3.3",
"ref": "369b5b29dc52b2c190002825ae7ec24ab6f962dd" "ref": "1da1987340b5ba64b16383906d678b989e3d096e"
} },
"files": [
"config/packages/test/twig.yaml",
"config/packages/twig.yaml",
"config/routes/dev/twig.yaml",
"templates/base.html.twig"
]
}, },
"symfony/validator": { "symfony/validator": {
"version": "4.1", "version": "4.1",
@ -383,12 +502,19 @@
"repo": "github.com/symfony/recipes", "repo": "github.com/symfony/recipes",
"branch": "master", "branch": "master",
"version": "4.1", "version": "4.1",
"ref": "0cdc982334f45d554957a6167e030482795bf9d7" "ref": "21ab70175caf1e4b273791364fb30d27f1153546"
} },
"files": [
"config/packages/test/validator.yaml",
"config/packages/validator.yaml"
]
}, },
"symfony/var-dumper": { "symfony/var-dumper": {
"version": "v4.1.7" "version": "v4.1.7"
}, },
"symfony/var-exporter": {
"version": "v4.4.15"
},
"symfony/web-link": { "symfony/web-link": {
"version": "v4.1.7" "version": "v4.1.7"
}, },
@ -416,6 +542,9 @@
"twig/twig": { "twig/twig": {
"version": "v2.5.0" "version": "v2.5.0"
}, },
"webimpress/safe-writer": {
"version": "2.1.0"
},
"webmozart/assert": { "webmozart/assert": {
"version": "1.3.0" "version": "1.3.0"
}, },

@ -0,0 +1,11 @@
<?php
use Symfony\Component\Dotenv\Dotenv;
require dirname(__DIR__).'/vendor/autoload.php';
if (file_exists(dirname(__DIR__).'/config/bootstrap.php')) {
require dirname(__DIR__).'/config/bootstrap.php';
} elseif (method_exists(Dotenv::class, 'bootEnv')) {
(new Dotenv())->bootEnv(dirname(__DIR__).'/.env');
}
Loading…
Cancel
Save