diff --git a/.env b/.env
new file mode 100644
index 00000000..e6cabe40
--- /dev/null
+++ b/.env
@@ -0,0 +1,20 @@
+# In all environments, the following files are loaded if they exist,
+# the latter 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.
+# https://symfony.com/doc/current/configuration/secrets.html
+#
+# 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 ###
+APP_ENV=dev
+APP_SECRET=
+###< symfony/framework-bundle ###
diff --git a/.env.test b/.env.test
new file mode 100644
index 00000000..9e7162f0
--- /dev/null
+++ b/.env.test
@@ -0,0 +1,6 @@
+# define your env variables for the test env here
+KERNEL_CLASS='App\Kernel'
+APP_SECRET='$ecretf0rt3st'
+SYMFONY_DEPRECATIONS_HELPER=999999
+PANTHER_APP_ENV=panther
+PANTHER_ERROR_SCREENSHOT_DIR=./var/error-screenshots
diff --git a/.github/workflows/test-application.yaml b/.github/workflows/test-application.yaml
index dfe45226..dd11414d 100644
--- a/.github/workflows/test-application.yaml
+++ b/.github/workflows/test-application.yaml
@@ -131,9 +131,11 @@ jobs:
- name: Install dependencies
run: |
composer validate
- composer require --no-update symfony/symfony:${{ matrix.symfony-version }}
+ composer require --no-update symfony/flex:"^1.0 || ^2.0" --dev
composer require --no-update elasticsearch/elasticsearch:${{ matrix.elasticsearch-package-constraint }}
composer install --no-interaction --prefer-dist
+ env:
+ SYMFONY_VERSION: ${{ matrix.symfony-version }}
- name: Fix code style
if: ${{ matrix.lint }}
diff --git a/.gitignore b/.gitignore
index d7992523..d5768e6a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,18 @@
/var/cache/
.phpunit.result.cache
/.idea/
+
+###> symfony/framework-bundle ###
+/.env.local
+/.env.local.php
+/.env.*.local
+/config/secrets/prod/prod.decrypt.private.php
+/public/bundles/
+/var/
+/vendor/
+###< symfony/framework-bundle ###
+
+###> symfony/phpunit-bridge ###
+.phpunit.result.cache
+/phpunit.xml
+###< symfony/phpunit-bridge ###
diff --git a/Tests/bootstrap.php b/Tests/bootstrap.php
new file mode 100644
index 00000000..47a58557
--- /dev/null
+++ b/Tests/bootstrap.php
@@ -0,0 +1,13 @@
+bootEnv(dirname(__DIR__).'/.env');
+}
+
+if ($_SERVER['APP_DEBUG']) {
+ umask(0000);
+}
diff --git a/bin/console b/bin/console
new file mode 100755
index 00000000..d8d530e2
--- /dev/null
+++ b/bin/console
@@ -0,0 +1,21 @@
+#!/usr/bin/env php
+= 80000) {
+ require dirname(__DIR__).'/vendor/phpunit/phpunit/phpunit';
+ } else {
+ define('PHPUNIT_COMPOSER_INSTALL', dirname(__DIR__).'/vendor/autoload.php');
+ require PHPUNIT_COMPOSER_INSTALL;
+ PHPUnit\TextUI\Command::main();
+ }
+} else {
+ if (!is_file(dirname(__DIR__).'/vendor/symfony/phpunit-bridge/bin/simple-phpunit.php')) {
+ echo "Unable to find the `simple-phpunit.php` script in `vendor/symfony/phpunit-bridge/bin/`.\n";
+ exit(1);
+ }
+
+ require dirname(__DIR__).'/vendor/symfony/phpunit-bridge/bin/simple-phpunit.php';
+}
diff --git a/composer.json b/composer.json
index f81f1463..0e359adb 100644
--- a/composer.json
+++ b/composer.json
@@ -53,5 +53,16 @@
"replace": {
"ongr/elasticsearch-bundle": "self.version"
},
- "minimum-stability": "dev"
+ "minimum-stability": "dev",
+ "config": {
+ "allow-plugins": {
+ "symfony/flex": true
+ }
+ },
+ "scripts": {
+ "auto-scripts": {
+ "cache:clear": "symfony-cmd",
+ "assets:install %PUBLIC_DIR%": "symfony-cmd"
+ }
+ }
}
diff --git a/config/bundles.php b/config/bundles.php
new file mode 100644
index 00000000..bdd37acd
--- /dev/null
+++ b/config/bundles.php
@@ -0,0 +1,6 @@
+ ['all' => true],
+ Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true],
+];
diff --git a/config/packages/cache.yaml b/config/packages/cache.yaml
new file mode 100644
index 00000000..6899b720
--- /dev/null
+++ b/config/packages/cache.yaml
@@ -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
diff --git a/config/packages/framework.yaml b/config/packages/framework.yaml
new file mode 100644
index 00000000..877eb25d
--- /dev/null
+++ b/config/packages/framework.yaml
@@ -0,0 +1,16 @@
+# see https://symfony.com/doc/current/reference/configuration/framework.html
+framework:
+ secret: '%env(APP_SECRET)%'
+ #csrf_protection: true
+
+ # Note that the session will be started ONLY if you read or write from it.
+ session: true
+
+ #esi: true
+ #fragments: true
+
+when@test:
+ framework:
+ test: true
+ session:
+ storage_factory_id: session.storage.factory.mock_file
diff --git a/config/packages/routing.yaml b/config/packages/routing.yaml
new file mode 100644
index 00000000..8166181c
--- /dev/null
+++ b/config/packages/routing.yaml
@@ -0,0 +1,10 @@
+framework:
+ router:
+ # 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
+
+when@prod:
+ framework:
+ router:
+ strict_requirements: null
diff --git a/config/packages/twig.yaml b/config/packages/twig.yaml
new file mode 100644
index 00000000..3f795d92
--- /dev/null
+++ b/config/packages/twig.yaml
@@ -0,0 +1,6 @@
+twig:
+ file_name_pattern: '*.twig'
+
+when@test:
+ twig:
+ strict_variables: true
diff --git a/config/packages/validator.yaml b/config/packages/validator.yaml
new file mode 100644
index 00000000..dd47a6ad
--- /dev/null
+++ b/config/packages/validator.yaml
@@ -0,0 +1,11 @@
+framework:
+ validation:
+ # Enables validator auto-mapping support.
+ # For instance, basic validation constraints will be inferred from Doctrine's metadata.
+ #auto_mapping:
+ # App\Entity\: []
+
+when@test:
+ framework:
+ validation:
+ not_compromised_password: false
diff --git a/config/preload.php b/config/preload.php
new file mode 100644
index 00000000..5ebcdb21
--- /dev/null
+++ b/config/preload.php
@@ -0,0 +1,5 @@
+
+
+
+
+
+
diff --git a/public/index.php b/public/index.php
new file mode 100644
index 00000000..9982c218
--- /dev/null
+++ b/public/index.php
@@ -0,0 +1,9 @@
+
+
+
+
+ {% block title %}Welcome!{% endblock %}
+
+ {% block stylesheets %}
+ {% endblock %}
+
+ {% block javascripts %}
+ {% endblock %}
+
+
+ {% block body %}{% endblock %}
+
+