commit
c9730da7ec
50 changed files with 7501 additions and 0 deletions
@ -0,0 +1,35 @@
|
||||
# In all environments, the following files are loaded if they exist, |
||||
# the later taking precedence over the former: |
||||
# |
||||
# * .env contains default values for the environment variables needed by the app |
||||
# * .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/configuration.html#infrastructure-related-configuration |
||||
|
||||
###> symfony/framework-bundle ### |
||||
APP_ENV=dev |
||||
APP_SECRET=0177ff1479ac3714f795c7cbb26f0025 |
||||
#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 ### |
@ -0,0 +1,4 @@
|
||||
# define your env variables for the test env here |
||||
KERNEL_CLASS='App\Kernel' |
||||
APP_SECRET='s$cretf0rt3st' |
||||
SYMFONY_DEPRECATIONS_HELPER=999999 |
@ -0,0 +1,18 @@
|
||||
|
||||
###> symfony/framework-bundle ### |
||||
/.env.local |
||||
/.env.local.php |
||||
/.env.*.local |
||||
/public/bundles/ |
||||
/var/ |
||||
/vendor/ |
||||
###< symfony/framework-bundle ### |
||||
|
||||
###> symfony/phpunit-bridge ### |
||||
.phpunit |
||||
/phpunit.xml |
||||
###< symfony/phpunit-bridge ### |
||||
|
||||
###> symfony/web-server-bundle ### |
||||
/.web-server-pid |
||||
###< symfony/web-server-bundle ### |
@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env php |
||||
<?php |
||||
|
||||
use App\Kernel; |
||||
use Symfony\Bundle\FrameworkBundle\Console\Application; |
||||
use Symfony\Component\Console\Input\ArgvInput; |
||||
use Symfony\Component\Debug\Debug; |
||||
|
||||
if (false === 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); |
||||
|
||||
require dirname(__DIR__).'/vendor/autoload.php'; |
||||
|
||||
if (!class_exists(Application::class)) { |
||||
throw new RuntimeException('You need to add "symfony/framework-bundle" as a Composer dependency.'); |
||||
} |
||||
|
||||
$input = new ArgvInput(); |
||||
if (null !== $env = $input->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); |
@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env php |
||||
<?php |
||||
|
||||
if (!file_exists(dirname(__DIR__).'/vendor/symfony/phpunit-bridge/bin/simple-phpunit')) { |
||||
echo "Unable to find the `simple-phpunit` script in `vendor/symfony/phpunit-bridge/bin/`.\n"; |
||||
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')) { |
||||
putenv('SYMFONY_PHPUNIT_DIR='.__DIR__.'/.phpunit'); |
||||
} |
||||
|
||||
require dirname(__DIR__).'/vendor/symfony/phpunit-bridge/bin/simple-phpunit'; |
@ -0,0 +1,80 @@
|
||||
{ |
||||
"type": "project", |
||||
"license": "proprietary", |
||||
"require": { |
||||
"php": "^7.1.3", |
||||
"ext-ctype": "*", |
||||
"ext-iconv": "*", |
||||
"sensio/framework-extra-bundle": "^5.1", |
||||
"symfony/asset": "4.2.*", |
||||
"symfony/console": "4.2.*", |
||||
"symfony/dotenv": "4.2.*", |
||||
"symfony/expression-language": "4.2.*", |
||||
"symfony/flex": "^1.1", |
||||
"symfony/form": "4.2.*", |
||||
"symfony/framework-bundle": "4.2.*", |
||||
"symfony/monolog-bundle": "^3.1", |
||||
"symfony/orm-pack": "*", |
||||
"symfony/process": "4.2.*", |
||||
"symfony/security-bundle": "4.2.*", |
||||
"symfony/serializer-pack": "*", |
||||
"symfony/swiftmailer-bundle": "^3.1", |
||||
"symfony/translation": "4.2.*", |
||||
"symfony/twig-bundle": "4.2.*", |
||||
"symfony/validator": "4.2.*", |
||||
"symfony/web-link": "4.2.*", |
||||
"symfony/yaml": "4.2.*" |
||||
}, |
||||
"require-dev": { |
||||
"symfony/debug-pack": "*", |
||||
"symfony/maker-bundle": "^1.0", |
||||
"symfony/profiler-pack": "*", |
||||
"symfony/test-pack": "*", |
||||
"symfony/web-server-bundle": "4.2.*" |
||||
}, |
||||
"config": { |
||||
"preferred-install": { |
||||
"*": "dist" |
||||
}, |
||||
"sort-packages": true |
||||
}, |
||||
"autoload": { |
||||
"psr-4": { |
||||
"App\\": "src/" |
||||
} |
||||
}, |
||||
"autoload-dev": { |
||||
"psr-4": { |
||||
"App\\Tests\\": "tests/" |
||||
} |
||||
}, |
||||
"replace": { |
||||
"paragonie/random_compat": "2.*", |
||||
"symfony/polyfill-ctype": "*", |
||||
"symfony/polyfill-iconv": "*", |
||||
"symfony/polyfill-php71": "*", |
||||
"symfony/polyfill-php70": "*", |
||||
"symfony/polyfill-php56": "*" |
||||
}, |
||||
"scripts": { |
||||
"auto-scripts": { |
||||
"cache:clear": "symfony-cmd", |
||||
"assets:install %PUBLIC_DIR%": "symfony-cmd" |
||||
}, |
||||
"post-install-cmd": [ |
||||
"@auto-scripts" |
||||
], |
||||
"post-update-cmd": [ |
||||
"@auto-scripts" |
||||
] |
||||
}, |
||||
"conflict": { |
||||
"symfony/symfony": "*" |
||||
}, |
||||
"extra": { |
||||
"symfony": { |
||||
"allow-contrib": false, |
||||
"require": "4.2.*" |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,21 @@
|
||||
<?php |
||||
|
||||
use Symfony\Component\Dotenv\Dotenv; |
||||
|
||||
require dirname(__DIR__).'/vendor/autoload.php'; |
||||
|
||||
// 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')) { |
||||
$_ENV += $env; |
||||
} 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'; |
@ -0,0 +1,17 @@
|
||||
<?php |
||||
|
||||
return [ |
||||
Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true], |
||||
Doctrine\Bundle\DoctrineCacheBundle\DoctrineCacheBundle::class => ['all' => true], |
||||
Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::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], |
||||
]; |
@ -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: ~ |
@ -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)%" |
@ -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 |
@ -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"] |
@ -0,0 +1,3 @@
|
||||
framework: |
||||
router: |
||||
strict_requirements: true |
@ -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'] |
@ -0,0 +1,6 @@
|
||||
web_profiler: |
||||
toolbar: true |
||||
intercept_redirects: false |
||||
|
||||
framework: |
||||
profiler: { only_exceptions: false } |
@ -0,0 +1,29 @@
|
||||
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: |
||||
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 |
@ -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 |
@ -0,0 +1,17 @@
|
||||
framework: |
||||
secret: '%env(APP_SECRET)%' |
||||
#default_locale: en |
||||
#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: ~ |
||||
cookie_secure: auto |
||||
cookie_samesite: lax |
||||
|
||||
#esi: true |
||||
#fragments: true |
||||
php_errors: |
||||
log: true |
@ -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 |
@ -0,0 +1,25 @@
|
||||
monolog: |
||||
handlers: |
||||
main: |
||||
type: fingers_crossed |
||||
action_level: error |
||||
handler: nested |
||||
excluded_404s: |
||||
# regex: exclude all 404 errors from the logs |
||||
- ^/ |
||||
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"] |
@ -0,0 +1,4 @@
|
||||
framework: |
||||
router: |
||||
strict_requirements: ~ |
||||
utf8: true |
@ -0,0 +1,24 @@
|
||||
security: |
||||
# https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers |
||||
providers: |
||||
in_memory: { memory: ~ } |
||||
firewalls: |
||||
dev: |
||||
pattern: ^/(_(profiler|wdt)|css|images|js)/ |
||||
security: false |
||||
main: |
||||
anonymous: true |
||||
|
||||
# activate different ways to authenticate |
||||
|
||||
# http_basic: true |
||||
# https://symfony.com/doc/current/security.html#a-configuring-how-your-users-will-authenticate |
||||
|
||||
# form_login: true |
||||
# https://symfony.com/doc/current/security/form_login_setup.html |
||||
|
||||
# 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 } |
@ -0,0 +1,3 @@
|
||||
sensio_framework_extra: |
||||
router: |
||||
annotations: false |
@ -0,0 +1,3 @@
|
||||
swiftmailer: |
||||
url: '%env(MAILER_URL)%' |
||||
spool: { type: 'memory' } |
@ -0,0 +1,4 @@
|
||||
framework: |
||||
test: true |
||||
session: |
||||
storage_id: session.storage.mock_file |
@ -0,0 +1,7 @@
|
||||
monolog: |
||||
handlers: |
||||
main: |
||||
type: stream |
||||
path: "%kernel.logs_dir%/%kernel.environment%.log" |
||||
level: debug |
||||
channels: ["!event"] |
@ -0,0 +1,3 @@
|
||||
framework: |
||||
router: |
||||
strict_requirements: true |
@ -0,0 +1,2 @@
|
||||
swiftmailer: |
||||
disable_delivery: true |
@ -0,0 +1,4 @@
|
||||
framework: |
||||
validation: |
||||
# As of Symfony 4.3 you can disable the NotCompromisedPassword Validator |
||||
# disable_not_compromised_password: true |
@ -0,0 +1,6 @@
|
||||
web_profiler: |
||||
toolbar: false |
||||
intercept_redirects: false |
||||
|
||||
framework: |
||||
profiler: { collect: false } |
@ -0,0 +1,6 @@
|
||||
framework: |
||||
default_locale: '%locale%' |
||||
translator: |
||||
default_path: '%kernel.project_dir%/translations' |
||||
fallbacks: |
||||
- '%locale%' |
@ -0,0 +1,4 @@
|
||||
twig: |
||||
default_path: '%kernel.project_dir%/templates' |
||||
debug: '%kernel.debug%' |
||||
strict_variables: '%kernel.debug%' |
@ -0,0 +1,3 @@
|
||||
framework: |
||||
validation: |
||||
email_validation_mode: html5 |
@ -0,0 +1,3 @@
|
||||
#index: |
||||
# path: / |
||||
# controller: App\Controller\DefaultController::index |
@ -0,0 +1,3 @@
|
||||
controllers: |
||||
resource: ../../src/Controller/ |
||||
type: annotation |
@ -0,0 +1,3 @@
|
||||
_errors: |
||||
resource: '@TwigBundle/Resources/config/routing/errors.xml' |
||||
prefix: /_error |
@ -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 |
@ -0,0 +1,28 @@
|
||||
# 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: |
||||
locale: 'en' |
||||
|
||||
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 |
@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
||||
<!-- https://phpunit.de/manual/current/en/appendixes.configuration.html --> |
||||
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/6.5/phpunit.xsd" |
||||
backupGlobals="false" |
||||
colors="true" |
||||
bootstrap="config/bootstrap.php" |
||||
> |
||||
<php> |
||||
<ini name="error_reporting" value="-1" /> |
||||
<server name="APP_ENV" value="test" force="true" /> |
||||
<server name="SHELL_VERBOSITY" value="-1" /> |
||||
</php> |
||||
|
||||
<testsuites> |
||||
<testsuite name="Project Test Suite"> |
||||
<directory>tests</directory> |
||||
</testsuite> |
||||
</testsuites> |
||||
|
||||
<filter> |
||||
<whitelist> |
||||
<directory>src</directory> |
||||
</whitelist> |
||||
</filter> |
||||
|
||||
<listeners> |
||||
<listener class="Symfony\Bridge\PhpUnit\SymfonyTestsListener" /> |
||||
</listeners> |
||||
</phpunit> |
@ -0,0 +1,27 @@
|
||||
<?php |
||||
|
||||
use App\Kernel; |
||||
use Symfony\Component\Debug\Debug; |
||||
use Symfony\Component\HttpFoundation\Request; |
||||
|
||||
require dirname(__DIR__).'/config/bootstrap.php'; |
||||
|
||||
if ($_SERVER['APP_DEBUG']) { |
||||
umask(0000); |
||||
|
||||
Debug::enable(); |
||||
} |
||||
|
||||
if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? $_ENV['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) { |
||||
Request::setTrustedHosts([$trustedHosts]); |
||||
} |
||||
|
||||
$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']); |
||||
$request = Request::createFromGlobals(); |
||||
$response = $kernel->handle($request); |
||||
$response->send(); |
||||
$kernel->terminate($request, $response); |
@ -0,0 +1,53 @@
|
||||
<?php |
||||
|
||||
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\HttpKernel\Kernel as BaseKernel; |
||||
use Symfony\Component\Routing\RouteCollectionBuilder; |
||||
|
||||
class Kernel extends BaseKernel |
||||
{ |
||||
use MicroKernelTrait; |
||||
|
||||
private const CONFIG_EXTS = '.{php,xml,yaml,yml}'; |
||||
|
||||
public function registerBundles(): iterable |
||||
{ |
||||
$contents = require $this->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'); |
||||
} |
||||
} |
@ -0,0 +1,502 @@
|
||||
{ |
||||
"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.1" |
||||
}, |
||||
"doctrine/common": { |
||||
"version": "v2.10.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": "453e89b78ded666f351617baca5ae40d20622351" |
||||
}, |
||||
"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": "v1.0.1" |
||||
}, |
||||
"doctrine/migrations": { |
||||
"version": "v2.0.0" |
||||
}, |
||||
"doctrine/orm": { |
||||
"version": "v2.6.3" |
||||
}, |
||||
"doctrine/persistence": { |
||||
"version": "v1.1.0" |
||||
}, |
||||
"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.7" |
||||
}, |
||||
"facebook/webdriver": { |
||||
"version": "1.6.0" |
||||
}, |
||||
"fig/link-util": { |
||||
"version": "1.0.0" |
||||
}, |
||||
"jdorn/sql-formatter": { |
||||
"version": "v1.2.17" |
||||
}, |
||||
"monolog/monolog": { |
||||
"version": "1.24.0" |
||||
}, |
||||
"nikic/php-parser": { |
||||
"version": "v4.2.1" |
||||
}, |
||||
"ocramius/proxy-manager": { |
||||
"version": "2.1.1" |
||||
}, |
||||
"phpdocumentor/reflection-common": { |
||||
"version": "1.0.1" |
||||
}, |
||||
"phpdocumentor/reflection-docblock": { |
||||
"version": "4.3.0" |
||||
}, |
||||
"phpdocumentor/type-resolver": { |
||||
"version": "0.4.0" |
||||
}, |
||||
"psr/cache": { |
||||
"version": "1.0.1" |
||||
}, |
||||
"psr/container": { |
||||
"version": "1.0.0" |
||||
}, |
||||
"psr/link": { |
||||
"version": "1.0.0" |
||||
}, |
||||
"psr/log": { |
||||
"version": "1.1.0" |
||||
}, |
||||
"psr/simple-cache": { |
||||
"version": "1.0.1" |
||||
}, |
||||
"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.0" |
||||
}, |
||||
"symfony/asset": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/browser-kit": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/cache": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/config": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"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/contracts": { |
||||
"version": "v1.0.2" |
||||
}, |
||||
"symfony/css-selector": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/debug": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"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.2.7" |
||||
}, |
||||
"symfony/doctrine-bridge": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/dom-crawler": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/dotenv": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/event-dispatcher": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/expression-language": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/filesystem": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/finder": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/flex": { |
||||
"version": "1.0", |
||||
"recipe": { |
||||
"repo": "github.com/symfony/recipes", |
||||
"branch": "master", |
||||
"version": "1.0", |
||||
"ref": "dc3fc2e0334a4137c47cfd5a3ececc601fa61a0b" |
||||
}, |
||||
"files": [ |
||||
".env" |
||||
] |
||||
}, |
||||
"symfony/form": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/framework-bundle": { |
||||
"version": "4.2", |
||||
"recipe": { |
||||
"repo": "github.com/symfony/recipes", |
||||
"branch": "master", |
||||
"version": "4.2", |
||||
"ref": "f64037a414de7d861f68e9b5b5c0e4f7425e2002" |
||||
}, |
||||
"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-foundation": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/http-kernel": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/inflector": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/intl": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/maker-bundle": { |
||||
"version": "1.0", |
||||
"recipe": { |
||||
"repo": "github.com/symfony/recipes", |
||||
"branch": "master", |
||||
"version": "1.0", |
||||
"ref": "fadbfe33303a76e25cb63401050439aa9b1a9c7f" |
||||
} |
||||
}, |
||||
"symfony/monolog-bridge": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/monolog-bundle": { |
||||
"version": "3.1", |
||||
"recipe": { |
||||
"repo": "github.com/symfony/recipes", |
||||
"branch": "master", |
||||
"version": "3.1", |
||||
"ref": "18ebf5a940573a20de06f9c4060101eeb438cf3d" |
||||
}, |
||||
"files": [ |
||||
"config/packages/dev/monolog.yaml", |
||||
"config/packages/prod/monolog.yaml", |
||||
"config/packages/test/monolog.yaml" |
||||
] |
||||
}, |
||||
"symfony/options-resolver": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/orm-pack": { |
||||
"version": "v1.0.6" |
||||
}, |
||||
"symfony/panther": { |
||||
"version": "v0.3.0" |
||||
}, |
||||
"symfony/phpunit-bridge": { |
||||
"version": "4.1", |
||||
"recipe": { |
||||
"repo": "github.com/symfony/recipes", |
||||
"branch": "master", |
||||
"version": "4.1", |
||||
"ref": "0e548dd90adba18fabd4ef419b14d361fe4d6c74" |
||||
}, |
||||
"files": [ |
||||
".env.test", |
||||
"bin/phpunit", |
||||
"config/bootstrap.php", |
||||
"phpunit.xml.dist", |
||||
"tests/.gitignore" |
||||
] |
||||
}, |
||||
"symfony/polyfill-intl-icu": { |
||||
"version": "v1.11.0" |
||||
}, |
||||
"symfony/polyfill-intl-idn": { |
||||
"version": "v1.11.0" |
||||
}, |
||||
"symfony/polyfill-mbstring": { |
||||
"version": "v1.11.0" |
||||
}, |
||||
"symfony/polyfill-php72": { |
||||
"version": "v1.11.0" |
||||
}, |
||||
"symfony/process": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/profiler-pack": { |
||||
"version": "v1.0.4" |
||||
}, |
||||
"symfony/property-access": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/property-info": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/routing": { |
||||
"version": "4.2", |
||||
"recipe": { |
||||
"repo": "github.com/symfony/recipes", |
||||
"branch": "master", |
||||
"version": "4.2", |
||||
"ref": "5374e24d508ba8fd6ba9eb15170255fdb778316a" |
||||
}, |
||||
"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": "f8a63faa0d9521526499c0a8f403c9964ecb0527" |
||||
}, |
||||
"files": [ |
||||
"config/packages/security.yaml" |
||||
] |
||||
}, |
||||
"symfony/security-core": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/security-csrf": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/security-guard": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/security-http": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/serializer": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/serializer-pack": { |
||||
"version": "v1.0.2" |
||||
}, |
||||
"symfony/stopwatch": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/swiftmailer-bundle": { |
||||
"version": "2.5", |
||||
"recipe": { |
||||
"repo": "github.com/symfony/recipes", |
||||
"branch": "master", |
||||
"version": "2.5", |
||||
"ref": "3db029c03e452b4a23f7fc45cec7c922c2247eb8" |
||||
}, |
||||
"files": [ |
||||
"config/packages/dev/swiftmailer.yaml", |
||||
"config/packages/swiftmailer.yaml", |
||||
"config/packages/test/swiftmailer.yaml" |
||||
] |
||||
}, |
||||
"symfony/test-pack": { |
||||
"version": "v1.0.5" |
||||
}, |
||||
"symfony/translation": { |
||||
"version": "3.3", |
||||
"recipe": { |
||||
"repo": "github.com/symfony/recipes", |
||||
"branch": "master", |
||||
"version": "3.3", |
||||
"ref": "1fb02a6e1c8f3d4232cce485c9afa868d63b115a" |
||||
}, |
||||
"files": [ |
||||
"config/packages/translation.yaml", |
||||
"translations/.gitignore" |
||||
] |
||||
}, |
||||
"symfony/twig-bridge": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"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.1", |
||||
"recipe": { |
||||
"repo": "github.com/symfony/recipes", |
||||
"branch": "master", |
||||
"version": "4.1", |
||||
"ref": "9a285e4ff3915c7cd086e9945f30591a926baf83" |
||||
}, |
||||
"files": [ |
||||
"config/packages/test/validator.yaml", |
||||
"config/packages/validator.yaml" |
||||
] |
||||
}, |
||||
"symfony/var-dumper": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/var-exporter": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"symfony/web-link": { |
||||
"version": "v4.2.7" |
||||
}, |
||||
"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.2.7" |
||||
}, |
||||
"twig/twig": { |
||||
"version": "v2.8.1" |
||||
}, |
||||
"webmozart/assert": { |
||||
"version": "1.4.0" |
||||
}, |
||||
"zendframework/zend-code": { |
||||
"version": "3.3.1" |
||||
}, |
||||
"zendframework/zend-eventmanager": { |
||||
"version": "3.2.1" |
||||
} |
||||
} |
@ -0,0 +1,12 @@
|
||||
<!DOCTYPE html> |
||||
<html> |
||||
<head> |
||||
<meta charset="UTF-8"> |
||||
<title>{% block title %}Welcome!{% endblock %}</title> |
||||
{% block stylesheets %}{% endblock %} |
||||
</head> |
||||
<body> |
||||
{% block body %}{% endblock %} |
||||
{% block javascripts %}{% endblock %} |
||||
</body> |
||||
</html> |
Loading…
Reference in new issue