#1: Restructure
Some checks failed
Quality Check / Check (push) Failing after 3s

This commit is contained in:
Snoweuph 2024-07-13 00:56:04 +02:00
parent 9c94416a70
commit 37a63c29cc
Signed by: Snoweuph
GPG key ID: A494330694B208EF
126 changed files with 19711 additions and 12744 deletions

View file

@ -6,15 +6,13 @@ jobs:
name: "Check" name: "Check"
runs-on: "ubuntu-latest" runs-on: "ubuntu-latest"
container: container:
image: "git.euph.dev/actions/runner-php-8.2:latest" image: "git.euph.dev/actions/runner-php-8.3:latest"
steps: steps:
- name: "Checkout" - name: "Checkout"
uses: "https://git.euph.dev/actions/checkout@v3" uses: "https://git.euph.dev/actions/checkout@v3"
- name: "cd App"
run: cd app
- name: "composer install" - name: "composer install"
run: | run: |
composer check-platform-reqs composer check-platform-reqs
composer install --no-scripts --audit composer install --no-scripts --audit
- name: "npm install" - name: "npm install"
run: "npm install" run: "npm install --no-fund"

3
.gitignore vendored
View file

@ -1,3 +0,0 @@
.idea/
.phpunit.result.cache
.php-cs-fixer.cache

8
.idea/.gitignore vendored Normal file
View file

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

276
.idea/Website.iml Normal file
View file

@ -0,0 +1,276 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/app/tests" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/app/tests" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/app/tests" isTestSource="true" packagePrefix="App\Tests\" />
<sourceFolder url="file://$MODULE_DIR$/app/backend" isTestSource="false" packagePrefix="App\" />
<sourceFolder url="file://$MODULE_DIR$/app/backend/fixtures" isTestSource="true" packagePrefix="DoctrineFixtures\" />
<sourceFolder url="file://$MODULE_DIR$/app/backend/src" isTestSource="false" packagePrefix="App\" />
<sourceFolder url="file://$MODULE_DIR$/app/backend/tests" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/app/backend/tests" isTestSource="true" packagePrefix="App\Tests\" />
<sourceFolder url="file://$MODULE_DIR$/app/fixtures" isTestSource="true" packagePrefix="DoctrineFixtures\" />
<sourceFolder url="file://$MODULE_DIR$/app/spec" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/clue/ndjson-react" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/composer" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/dama/doctrine-test-bundle" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/doctrine/cache" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/doctrine/collections" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/doctrine/data-fixtures" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/doctrine/dbal" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/doctrine/deprecations" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/doctrine/doctrine-bundle" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/doctrine/doctrine-fixtures-bundle" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/doctrine/doctrine-migrations-bundle" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/doctrine/event-manager" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/doctrine/inflector" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/doctrine/instantiator" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/doctrine/lexer" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/doctrine/migrations" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/doctrine/orm" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/doctrine/persistence" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/doctrine/sql-formatter" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/evenement/evenement" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/fidry/cpu-core-counter" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/friendsofphp/php-cs-fixer" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/masterminds/html5" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/monolog/monolog" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/myclabs/deep-copy" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/nikic/php-parser" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/phar-io/manifest" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/phar-io/version" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/phpstan/extension-installer" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/phpstan/phpstan" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/phpstan/phpstan-phpunit" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/phpunit/php-code-coverage" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/phpunit/php-file-iterator" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/phpunit/php-invoker" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/phpunit/php-text-template" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/phpunit/php-timer" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/phpunit/phpunit" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/psr/cache" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/psr/container" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/psr/event-dispatcher" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/psr/log" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/react/cache" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/react/child-process" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/react/dns" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/react/event-loop" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/react/promise" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/react/socket" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/react/stream" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/sebastian/cli-parser" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/sebastian/code-unit" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/sebastian/code-unit-reverse-lookup" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/sebastian/comparator" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/sebastian/complexity" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/sebastian/diff" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/sebastian/environment" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/sebastian/exporter" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/sebastian/global-state" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/sebastian/lines-of-code" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/sebastian/object-enumerator" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/sebastian/object-reflector" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/sebastian/recursion-context" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/sebastian/resource-operations" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/sebastian/type" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/sebastian/version" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/asset" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/browser-kit" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/cache" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/cache-contracts" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/config" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/console" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/css-selector" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/debug-bundle" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/dependency-injection" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/deprecation-contracts" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/doctrine-bridge" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/dom-crawler" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/dotenv" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/error-handler" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/event-dispatcher" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/event-dispatcher-contracts" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/filesystem" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/finder" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/flex" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/form" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/framework-bundle" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/http-foundation" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/http-kernel" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/monolog-bridge" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/monolog-bundle" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/options-resolver" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/phpunit-bridge" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/polyfill-intl-grapheme" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/polyfill-intl-icu" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/polyfill-intl-normalizer" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/polyfill-mbstring" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/polyfill-php83" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/polyfill-uuid" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/process" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/property-access" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/property-info" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/routing" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/runtime" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/service-contracts" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/stimulus-bundle" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/stopwatch" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/string" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/translation-contracts" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/twig-bridge" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/twig-bundle" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/uid" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/validator" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/var-dumper" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/var-exporter" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/web-profiler-bundle" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/webpack-encore-bundle" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/symfony/yaml" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/theseer/tokenizer" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/twig/extra-bundle" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/twig/twig" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/vincentlanglet/twig-cs-fixer" />
<excludeFolder url="file://$MODULE_DIR$/app/backend/vendor/webmozart/assert" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/clue/ndjson-react" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/composer" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/dama/doctrine-test-bundle" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/dflydev/dot-access-data" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/doctrine/cache" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/doctrine/collections" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/doctrine/common" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/doctrine/data-fixtures" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/doctrine/dbal" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/doctrine/deprecations" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/doctrine/doctrine-bundle" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/doctrine/doctrine-fixtures-bundle" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/doctrine/doctrine-migrations-bundle" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/doctrine/event-manager" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/doctrine/inflector" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/doctrine/instantiator" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/doctrine/lexer" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/doctrine/migrations" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/doctrine/orm" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/doctrine/persistence" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/doctrine/sql-formatter" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/evenement/evenement" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/fidry/cpu-core-counter" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/friendsofphp/php-cs-fixer" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/jms/metadata" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/league/commonmark" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/league/config" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/masterminds/html5" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/monolog/monolog" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/myclabs/deep-copy" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/nette/schema" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/nette/utils" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/nikic/php-parser" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/phar-io/manifest" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/phar-io/version" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/phpstan/extension-installer" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/phpstan/phpstan" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/phpstan/phpstan-phpunit" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/phpunit/php-code-coverage" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/phpunit/php-file-iterator" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/phpunit/php-invoker" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/phpunit/php-text-template" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/phpunit/php-timer" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/phpunit/phpunit" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/presta/sitemap-bundle" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/psr/cache" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/psr/container" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/psr/event-dispatcher" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/psr/log" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/react/cache" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/react/child-process" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/react/dns" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/react/event-loop" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/react/promise" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/react/socket" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/react/stream" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/sebastian/cli-parser" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/sebastian/code-unit" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/sebastian/code-unit-reverse-lookup" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/sebastian/comparator" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/sebastian/complexity" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/sebastian/diff" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/sebastian/environment" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/sebastian/exporter" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/sebastian/global-state" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/sebastian/lines-of-code" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/sebastian/object-enumerator" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/sebastian/object-reflector" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/sebastian/recursion-context" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/sebastian/resource-operations" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/sebastian/type" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/sebastian/version" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/apache-pack" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/asset" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/browser-kit" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/cache" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/cache-contracts" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/config" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/console" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/css-selector" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/debug-bundle" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/dependency-injection" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/deprecation-contracts" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/doctrine-bridge" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/dom-crawler" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/dotenv" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/error-handler" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/event-dispatcher" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/event-dispatcher-contracts" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/filesystem" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/finder" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/flex" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/form" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/framework-bundle" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/http-foundation" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/http-kernel" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/mime" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/monolog-bridge" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/monolog-bundle" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/options-resolver" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/phpunit-bridge" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/polyfill-intl-grapheme" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/polyfill-intl-icu" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/polyfill-intl-idn" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/polyfill-intl-normalizer" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/polyfill-mbstring" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/polyfill-php83" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/polyfill-uuid" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/process" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/property-access" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/property-info" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/routing" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/runtime" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/service-contracts" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/stimulus-bundle" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/stopwatch" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/string" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/translation-contracts" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/twig-bridge" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/twig-bundle" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/type-info" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/uid" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/validator" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/var-dumper" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/var-exporter" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/web-profiler-bundle" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/webpack-encore-bundle" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/symfony/yaml" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/theseer/tokenizer" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/twig/extra-bundle" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/twig/string-extra" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/twig/twig" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/vich/uploader-bundle" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/vincentlanglet/twig-cs-fixer" />
<excludeFolder url="file://$MODULE_DIR$/app/vendor/webmozart/assert" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View file

@ -0,0 +1,31 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<JSCodeStyleSettings version="0">
<option name="FORCE_SEMICOLON_STYLE" value="true" />
<option name="USE_DOUBLE_QUOTES" value="false" />
<option name="FORCE_QUOTE_STYlE" value="true" />
</JSCodeStyleSettings>
<TypeScriptCodeStyleSettings version="0">
<option name="FORCE_SEMICOLON_STYLE" value="true" />
<option name="USE_DOUBLE_QUOTES" value="false" />
<option name="FORCE_QUOTE_STYlE" value="true" />
</TypeScriptCodeStyleSettings>
<codeStyleSettings language="JAVA">
<option name="ALIGN_MULTILINE_BINARY_OPERATION" value="true" />
</codeStyleSettings>
<codeStyleSettings language="JavaScript">
<option name="INDENT_CASE_FROM_SWITCH" value="false" />
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
<option name="ALIGN_MULTILINE_FOR" value="false" />
<option name="ARRAY_INITIALIZER_LBRACE_ON_NEXT_LINE" value="true" />
<option name="ARRAY_INITIALIZER_RBRACE_ON_NEXT_LINE" value="true" />
</codeStyleSettings>
<codeStyleSettings language="TypeScript">
<option name="INDENT_CASE_FROM_SWITCH" value="false" />
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
<option name="ALIGN_MULTILINE_FOR" value="false" />
<option name="ARRAY_INITIALIZER_LBRACE_ON_NEXT_LINE" value="true" />
<option name="ARRAY_INITIALIZER_RBRACE_ON_NEXT_LINE" value="true" />
</codeStyleSettings>
</code_scheme>
</component>

View file

@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</state>
</component>

18
.idea/codeception.xml Normal file
View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Codeception">
<option name="configurations">
<list>
<Configuration>
<option name="path" value="$PROJECT_DIR$/app/tests" />
</Configuration>
<Configuration>
<option name="path" value="$PROJECT_DIR$/backend/tests" />
</Configuration>
<Configuration>
<option name="path" value="$PROJECT_DIR$/tests" />
</Configuration>
</list>
</option>
</component>
</project>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="framework" type="frameworkType"/>
<xs:complexType name="commandType">
<xs:all>
<xs:element type="xs:string" name="name" minOccurs="1" maxOccurs="1"/>
<xs:element type="xs:string" name="params" minOccurs="0" maxOccurs="1"/>
<xs:element type="xs:string" name="help" minOccurs="0" maxOccurs="1"/>
<xs:element type="optionsBeforeType" name="optionsBefore" minOccurs="0" maxOccurs="1"/>
</xs:all>
</xs:complexType>
<xs:complexType name="frameworkType">
<xs:sequence>
<xs:element type="xs:string" name="extraData" minOccurs="0" maxOccurs="1"/>
<xs:element type="commandType" name="command" maxOccurs="unbounded" minOccurs="0"/>
<xs:element type="xs:string" name="help" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:attribute type="xs:string" name="name" use="required"/>
<xs:attribute type="xs:string" name="invoke" use="required"/>
<xs:attribute type="xs:string" name="alias" use="required"/>
<xs:attribute type="xs:boolean" name="enabled" use="required"/>
<xs:attribute type="xs:integer" name="version" use="required"/>
<xs:attribute type="xs:string" name="frameworkId" use="optional"/>
</xs:complexType>
<xs:complexType name="optionsBeforeType">
<xs:sequence>
<xs:element type="optionType" name="option" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="optionType">
<xs:sequence>
<xs:element type="xs:string" name="help" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:attribute type="xs:string" name="name" use="required"/>
<xs:attribute type="xs:string" name="shortcut" use="optional"/>
<xs:attribute name="pattern" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="space"/>
<xs:enumeration value="equals"/>
<xs:enumeration value="unknown"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:schema>

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptLibraryMappings">
<includedPredefinedLibrary name="Node.js Core" />
</component>
</project>

8
.idea/modules.xml Normal file
View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/Website.iml" filepath="$PROJECT_DIR$/.idea/Website.iml" />
</modules>
</component>
</project>

406
.idea/php.xml Normal file
View file

@ -0,0 +1,406 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MessDetectorOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PHPCSFixerOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PHPCodeSnifferOptionsConfiguration">
<option name="highlightLevel" value="WARNING" />
<option name="transferred" value="true" />
</component>
<component name="PhpCSFixer">
<phpcsfixer_settings>
<PhpCSFixerConfiguration standards="DoctrineAnnotation;PER;PER-CS;PER-CS1.0;PER-CS2.0;PHP54Migration;PHP56Migration;PHP70Migration;PHP71Migration;PHP73Migration;PHP74Migration;PHP80Migration;PHP81Migration;PHP82Migration;PHP83Migration;PHPUnit100Migration;PHPUnit30Migration;PHPUnit32Migration;PHPUnit35Migration;PHPUnit43Migration;PHPUnit48Migration;PHPUnit50Migration;PHPUnit52Migration;PHPUnit54Migration;PHPUnit55Migration;PHPUnit56Migration;PHPUnit57Migration;PHPUnit60Migration;PHPUnit75Migration;PHPUnit84Migration;PSR1;PSR12;PSR2;PhpCsFixer;Symfony" tool_path="$PROJECT_DIR$/app/vendor/bin/php-cs-fixer" />
</phpcsfixer_settings>
</component>
<component name="PhpIncludePathManager">
<include_path>
<path value="$PROJECT_DIR$/app/vendor/symfony/polyfill-uuid" />
<path value="$PROJECT_DIR$/app/vendor/symfony/uid" />
<path value="$PROJECT_DIR$/app/vendor/symfony/validator" />
<path value="$PROJECT_DIR$/app/vendor/symfony/twig-bundle" />
<path value="$PROJECT_DIR$/app/vendor/symfony/asset" />
<path value="$PROJECT_DIR$/app/vendor/symfony/webpack-encore-bundle" />
<path value="$PROJECT_DIR$/app/vendor/symfony/yaml" />
<path value="$PROJECT_DIR$/app/vendor/symfony/web-profiler-bundle" />
<path value="$PROJECT_DIR$/app/vendor/theseer/tokenizer" />
<path value="$PROJECT_DIR$/app/vendor/doctrine/cache" />
<path value="$PROJECT_DIR$/app/vendor/doctrine/event-manager" />
<path value="$PROJECT_DIR$/app/vendor/doctrine/persistence" />
<path value="$PROJECT_DIR$/app/vendor/doctrine/lexer" />
<path value="$PROJECT_DIR$/app/vendor/doctrine/instantiator" />
<path value="$PROJECT_DIR$/app/vendor/doctrine/inflector" />
<path value="$PROJECT_DIR$/app/vendor/doctrine/deprecations" />
<path value="$PROJECT_DIR$/app/vendor/doctrine/collections" />
<path value="$PROJECT_DIR$/app/vendor/doctrine/dbal" />
<path value="$PROJECT_DIR$/app/vendor/doctrine/sql-formatter" />
<path value="$PROJECT_DIR$/app/vendor/doctrine/orm" />
<path value="$PROJECT_DIR$/app/vendor/doctrine/doctrine-bundle" />
<path value="$PROJECT_DIR$/app/vendor/doctrine/data-fixtures" />
<path value="$PROJECT_DIR$/app/vendor/doctrine/doctrine-fixtures-bundle" />
<path value="$PROJECT_DIR$/app/vendor/doctrine/migrations" />
<path value="$PROJECT_DIR$/app/vendor/doctrine/doctrine-migrations-bundle" />
<path value="$PROJECT_DIR$/app/vendor/sebastian/diff" />
<path value="$PROJECT_DIR$/app/vendor/sebastian/version" />
<path value="$PROJECT_DIR$/app/vendor/sebastian/type" />
<path value="$PROJECT_DIR$/app/vendor/sebastian/resource-operations" />
<path value="$PROJECT_DIR$/app/vendor/sebastian/recursion-context" />
<path value="$PROJECT_DIR$/app/vendor/sebastian/object-reflector" />
<path value="$PROJECT_DIR$/app/vendor/sebastian/object-enumerator" />
<path value="$PROJECT_DIR$/app/vendor/sebastian/global-state" />
<path value="$PROJECT_DIR$/app/vendor/sebastian/exporter" />
<path value="$PROJECT_DIR$/app/vendor/sebastian/environment" />
<path value="$PROJECT_DIR$/app/vendor/sebastian/comparator" />
<path value="$PROJECT_DIR$/app/vendor/sebastian/code-unit" />
<path value="$PROJECT_DIR$/app/vendor/sebastian/cli-parser" />
<path value="$PROJECT_DIR$/app/vendor/sebastian/lines-of-code" />
<path value="$PROJECT_DIR$/app/vendor/sebastian/complexity" />
<path value="$PROJECT_DIR$/app/vendor/sebastian/code-unit-reverse-lookup" />
<path value="$PROJECT_DIR$/app/vendor/webmozart/assert" />
<path value="$PROJECT_DIR$/app/vendor/masterminds/html5" />
<path value="$PROJECT_DIR$/app/vendor/friendsofphp/php-cs-fixer" />
<path value="$PROJECT_DIR$/app/vendor/vincentlanglet/twig-cs-fixer" />
<path value="$PROJECT_DIR$/app/vendor/composer" />
<path value="$PROJECT_DIR$/app/vendor/psr/event-dispatcher" />
<path value="$PROJECT_DIR$/app/vendor/psr/log" />
<path value="$PROJECT_DIR$/app/vendor/psr/container" />
<path value="$PROJECT_DIR$/app/vendor/psr/cache" />
<path value="$PROJECT_DIR$/app/vendor/twig/twig" />
<path value="$PROJECT_DIR$/app/vendor/twig/extra-bundle" />
<path value="$PROJECT_DIR$/app/vendor/nikic/php-parser" />
<path value="$PROJECT_DIR$/app/vendor/monolog/monolog" />
<path value="$PROJECT_DIR$/app/vendor/myclabs/deep-copy" />
<path value="$PROJECT_DIR$/app/vendor/phar-io/version" />
<path value="$PROJECT_DIR$/app/vendor/phar-io/manifest" />
<path value="$PROJECT_DIR$/app/vendor/phpstan/phpstan" />
<path value="$PROJECT_DIR$/app/vendor/phpstan/extension-installer" />
<path value="$PROJECT_DIR$/app/vendor/phpstan/phpstan-phpunit" />
<path value="$PROJECT_DIR$/app/vendor/phpunit/php-timer" />
<path value="$PROJECT_DIR$/app/vendor/phpunit/php-text-template" />
<path value="$PROJECT_DIR$/app/vendor/phpunit/php-invoker" />
<path value="$PROJECT_DIR$/app/vendor/phpunit/php-file-iterator" />
<path value="$PROJECT_DIR$/app/vendor/phpunit/php-code-coverage" />
<path value="$PROJECT_DIR$/app/vendor/phpunit/phpunit" />
<path value="$PROJECT_DIR$/app/vendor/symfony/flex" />
<path value="$PROJECT_DIR$/app/vendor/symfony/runtime" />
<path value="$PROJECT_DIR$/app/vendor/symfony/polyfill-php83" />
<path value="$PROJECT_DIR$/app/vendor/symfony/polyfill-mbstring" />
<path value="$PROJECT_DIR$/app/vendor/symfony/deprecation-contracts" />
<path value="$PROJECT_DIR$/app/vendor/symfony/http-foundation" />
<path value="$PROJECT_DIR$/app/vendor/symfony/event-dispatcher-contracts" />
<path value="$PROJECT_DIR$/app/vendor/symfony/event-dispatcher" />
<path value="$PROJECT_DIR$/app/vendor/symfony/var-dumper" />
<path value="$PROJECT_DIR$/app/vendor/symfony/error-handler" />
<path value="$PROJECT_DIR$/app/vendor/symfony/service-contracts" />
<path value="$PROJECT_DIR$/app/vendor/symfony/doctrine-bridge" />
<path value="$PROJECT_DIR$/app/vendor/symfony/var-exporter" />
<path value="$PROJECT_DIR$/app/vendor/symfony/http-kernel" />
<path value="$PROJECT_DIR$/app/vendor/symfony/polyfill-intl-normalizer" />
<path value="$PROJECT_DIR$/app/vendor/symfony/polyfill-intl-grapheme" />
<path value="$PROJECT_DIR$/app/vendor/symfony/string" />
<path value="$PROJECT_DIR$/app/vendor/symfony/filesystem" />
<path value="$PROJECT_DIR$/app/vendor/symfony/config" />
<path value="$PROJECT_DIR$/app/vendor/symfony/dependency-injection" />
<path value="$PROJECT_DIR$/app/vendor/symfony/console" />
<path value="$PROJECT_DIR$/app/vendor/symfony/routing" />
<path value="$PROJECT_DIR$/app/vendor/symfony/finder" />
<path value="$PROJECT_DIR$/app/vendor/symfony/cache-contracts" />
<path value="$PROJECT_DIR$/app/vendor/symfony/cache" />
<path value="$PROJECT_DIR$/app/vendor/symfony/framework-bundle" />
<path value="$PROJECT_DIR$/app/vendor/symfony/stopwatch" />
<path value="$PROJECT_DIR$/app/vendor/symfony/process" />
<path value="$PROJECT_DIR$/app/vendor/symfony/options-resolver" />
<path value="$PROJECT_DIR$/app/vendor/symfony/dom-crawler" />
<path value="$PROJECT_DIR$/app/vendor/symfony/browser-kit" />
<path value="$PROJECT_DIR$/app/vendor/symfony/css-selector" />
<path value="$PROJECT_DIR$/app/vendor/symfony/translation-contracts" />
<path value="$PROJECT_DIR$/app/vendor/symfony/twig-bridge" />
<path value="$PROJECT_DIR$/app/vendor/symfony/debug-bundle" />
<path value="$PROJECT_DIR$/app/vendor/symfony/dotenv" />
<path value="$PROJECT_DIR$/app/vendor/symfony/property-info" />
<path value="$PROJECT_DIR$/app/vendor/symfony/property-access" />
<path value="$PROJECT_DIR$/app/vendor/symfony/polyfill-intl-icu" />
<path value="$PROJECT_DIR$/app/vendor/symfony/form" />
<path value="$PROJECT_DIR$/app/vendor/symfony/monolog-bridge" />
<path value="$PROJECT_DIR$/app/vendor/symfony/monolog-bundle" />
<path value="$PROJECT_DIR$/app/vendor/symfony/phpunit-bridge" />
<path value="$PROJECT_DIR$/app/vendor/symfony/stimulus-bundle" />
<path value="$PROJECT_DIR$/app/vendor/dama/doctrine-test-bundle" />
<path value="$PROJECT_DIR$/backend/vendor/psr/log" />
<path value="$PROJECT_DIR$/backend/vendor/psr/event-dispatcher" />
<path value="$PROJECT_DIR$/backend/vendor/monolog/monolog" />
<path value="$PROJECT_DIR$/backend/vendor/theseer/tokenizer" />
<path value="$PROJECT_DIR$/backend/vendor/phpstan/phpstan-phpunit" />
<path value="$PROJECT_DIR$/backend/vendor/phpstan/phpstan" />
<path value="$PROJECT_DIR$/backend/vendor/webmozart/assert" />
<path value="$PROJECT_DIR$/backend/vendor/phpstan/extension-installer" />
<path value="$PROJECT_DIR$/backend/vendor/evenement/evenement" />
<path value="$PROJECT_DIR$/backend/vendor/masterminds/html5" />
<path value="$PROJECT_DIR$/backend/vendor/sebastian/complexity" />
<path value="$PROJECT_DIR$/backend/vendor/clue/ndjson-react" />
<path value="$PROJECT_DIR$/backend/vendor/sebastian/global-state" />
<path value="$PROJECT_DIR$/backend/vendor/sebastian/object-reflector" />
<path value="$PROJECT_DIR$/backend/vendor/sebastian/recursion-context" />
<path value="$PROJECT_DIR$/backend/vendor/sebastian/cli-parser" />
<path value="$PROJECT_DIR$/backend/vendor/sebastian/object-enumerator" />
<path value="$PROJECT_DIR$/backend/vendor/sebastian/lines-of-code" />
<path value="$PROJECT_DIR$/backend/vendor/sebastian/diff" />
<path value="$PROJECT_DIR$/backend/vendor/sebastian/version" />
<path value="$PROJECT_DIR$/backend/vendor/sebastian/type" />
<path value="$PROJECT_DIR$/backend/vendor/sebastian/exporter" />
<path value="$PROJECT_DIR$/backend/vendor/dama/doctrine-test-bundle" />
<path value="$PROJECT_DIR$/backend/vendor/sebastian/comparator" />
<path value="$PROJECT_DIR$/backend/vendor/sebastian/code-unit" />
<path value="$PROJECT_DIR$/backend/vendor/sebastian/environment" />
<path value="$PROJECT_DIR$/backend/vendor/sebastian/code-unit-reverse-lookup" />
<path value="$PROJECT_DIR$/backend/vendor/sebastian/resource-operations" />
<path value="$PROJECT_DIR$/backend/vendor/fidry/cpu-core-counter" />
<path value="$PROJECT_DIR$/backend/vendor/friendsofphp/php-cs-fixer" />
<path value="$PROJECT_DIR$/backend/vendor/twig/extra-bundle" />
<path value="$PROJECT_DIR$/backend/vendor/twig/twig" />
<path value="$PROJECT_DIR$/backend/vendor/phpunit/php-file-iterator" />
<path value="$PROJECT_DIR$/backend/vendor/phpunit/php-timer" />
<path value="$PROJECT_DIR$/backend/vendor/phpunit/php-invoker" />
<path value="$PROJECT_DIR$/backend/vendor/phpunit/php-text-template" />
<path value="$PROJECT_DIR$/backend/vendor/phpunit/phpunit" />
<path value="$PROJECT_DIR$/backend/vendor/phpunit/php-code-coverage" />
<path value="$PROJECT_DIR$/backend/vendor/doctrine/event-manager" />
<path value="$PROJECT_DIR$/backend/vendor/doctrine/cache" />
<path value="$PROJECT_DIR$/backend/vendor/doctrine/orm" />
<path value="$PROJECT_DIR$/backend/vendor/doctrine/dbal" />
<path value="$PROJECT_DIR$/backend/vendor/nikic/php-parser" />
<path value="$PROJECT_DIR$/backend/vendor/doctrine/lexer" />
<path value="$PROJECT_DIR$/backend/vendor/doctrine/deprecations" />
<path value="$PROJECT_DIR$/backend/vendor/doctrine/doctrine-bundle" />
<path value="$PROJECT_DIR$/backend/vendor/doctrine/sql-formatter" />
<path value="$PROJECT_DIR$/backend/vendor/doctrine/collections" />
<path value="$PROJECT_DIR$/backend/vendor/doctrine/data-fixtures" />
<path value="$PROJECT_DIR$/backend/vendor/doctrine/instantiator" />
<path value="$PROJECT_DIR$/backend/vendor/doctrine/migrations" />
<path value="$PROJECT_DIR$/backend/vendor/doctrine/persistence" />
<path value="$PROJECT_DIR$/backend/vendor/doctrine/doctrine-fixtures-bundle" />
<path value="$PROJECT_DIR$/backend/vendor/doctrine/doctrine-migrations-bundle" />
<path value="$PROJECT_DIR$/backend/vendor/doctrine/inflector" />
<path value="$PROJECT_DIR$/backend/vendor/react/cache" />
<path value="$PROJECT_DIR$/backend/vendor/react/stream" />
<path value="$PROJECT_DIR$/backend/vendor/react/child-process" />
<path value="$PROJECT_DIR$/backend/vendor/react/promise" />
<path value="$PROJECT_DIR$/backend/vendor/react/dns" />
<path value="$PROJECT_DIR$/backend/vendor/react/event-loop" />
<path value="$PROJECT_DIR$/backend/vendor/react/socket" />
<path value="$PROJECT_DIR$/backend/vendor/myclabs/deep-copy" />
<path value="$PROJECT_DIR$/backend/vendor/phar-io/version" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/dependency-injection" />
<path value="$PROJECT_DIR$/backend/vendor/phar-io/manifest" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/deprecation-contracts" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/polyfill-php83" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/validator" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/dom-crawler" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/browser-kit" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/property-access" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/css-selector" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/event-dispatcher-contracts" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/monolog-bundle" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/yaml" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/polyfill-intl-grapheme" />
<path value="$PROJECT_DIR$/backend/vendor/vincentlanglet/twig-cs-fixer" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/cache" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/polyfill-intl-icu" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/doctrine-bridge" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/options-resolver" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/webpack-encore-bundle" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/twig-bundle" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/http-kernel" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/runtime" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/finder" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/phpunit-bridge" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/var-exporter" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/polyfill-uuid" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/string" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/web-profiler-bundle" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/var-dumper" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/service-contracts" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/uid" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/debug-bundle" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/event-dispatcher" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/routing" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/flex" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/error-handler" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/property-info" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/stimulus-bundle" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/cache-contracts" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/framework-bundle" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/console" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/polyfill-intl-normalizer" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/process" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/twig-bridge" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/filesystem" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/form" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/dotenv" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/asset" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/polyfill-mbstring" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/translation-contracts" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/monolog-bridge" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/config" />
<path value="$PROJECT_DIR$/backend/vendor/composer" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/http-foundation" />
<path value="$PROJECT_DIR$/backend/vendor/symfony/stopwatch" />
<path value="$PROJECT_DIR$/backend/vendor/psr/cache" />
<path value="$PROJECT_DIR$/backend/vendor/psr/container" />
<path value="$PROJECT_DIR$/vendor/sebastian/lines-of-code" />
<path value="$PROJECT_DIR$/vendor/sebastian/cli-parser" />
<path value="$PROJECT_DIR$/vendor/sebastian/code-unit" />
<path value="$PROJECT_DIR$/vendor/sebastian/comparator" />
<path value="$PROJECT_DIR$/vendor/masterminds/html5" />
<path value="$PROJECT_DIR$/vendor/webmozart/assert" />
<path value="$PROJECT_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
<path value="$PROJECT_DIR$/vendor/sebastian/complexity" />
<path value="$PROJECT_DIR$/vendor/vincentlanglet/twig-cs-fixer" />
<path value="$PROJECT_DIR$/vendor/friendsofphp/php-cs-fixer" />
<path value="$PROJECT_DIR$/vendor/composer" />
<path value="$PROJECT_DIR$/vendor/psr/log" />
<path value="$PROJECT_DIR$/vendor/psr/event-dispatcher" />
<path value="$PROJECT_DIR$/vendor/jms/metadata" />
<path value="$PROJECT_DIR$/vendor/dama/doctrine-test-bundle" />
<path value="$PROJECT_DIR$/vendor/clue/ndjson-react" />
<path value="$PROJECT_DIR$/vendor/psr/cache" />
<path value="$PROJECT_DIR$/vendor/psr/container" />
<path value="$PROJECT_DIR$/vendor/vich/uploader-bundle" />
<path value="$PROJECT_DIR$/vendor/twig/string-extra" />
<path value="$PROJECT_DIR$/vendor/twig/extra-bundle" />
<path value="$PROJECT_DIR$/vendor/twig/twig" />
<path value="$PROJECT_DIR$/vendor/nikic/php-parser" />
<path value="$PROJECT_DIR$/vendor/nette/schema" />
<path value="$PROJECT_DIR$/vendor/nette/utils" />
<path value="$PROJECT_DIR$/vendor/fidry/cpu-core-counter" />
<path value="$PROJECT_DIR$/vendor/react/cache" />
<path value="$PROJECT_DIR$/vendor/react/promise" />
<path value="$PROJECT_DIR$/vendor/react/stream" />
<path value="$PROJECT_DIR$/vendor/react/event-loop" />
<path value="$PROJECT_DIR$/vendor/league/config" />
<path value="$PROJECT_DIR$/vendor/react/child-process" />
<path value="$PROJECT_DIR$/vendor/react/socket" />
<path value="$PROJECT_DIR$/vendor/react/dns" />
<path value="$PROJECT_DIR$/vendor/monolog/monolog" />
<path value="$PROJECT_DIR$/vendor/dflydev/dot-access-data" />
<path value="$PROJECT_DIR$/vendor/presta/sitemap-bundle" />
<path value="$PROJECT_DIR$/vendor/league/commonmark" />
<path value="$PROJECT_DIR$/vendor/phpstan/phpstan" />
<path value="$PROJECT_DIR$/vendor/phar-io/manifest" />
<path value="$PROJECT_DIR$/vendor/phar-io/version" />
<path value="$PROJECT_DIR$/vendor/myclabs/deep-copy" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-text-template" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-timer" />
<path value="$PROJECT_DIR$/vendor/phpstan/phpstan-phpunit" />
<path value="$PROJECT_DIR$/vendor/phpstan/extension-installer" />
<path value="$PROJECT_DIR$/vendor/phpunit/phpunit" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-code-coverage" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-file-iterator" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-invoker" />
<path value="$PROJECT_DIR$/vendor/symfony/routing" />
<path value="$PROJECT_DIR$/vendor/symfony/deprecation-contracts" />
<path value="$PROJECT_DIR$/vendor/symfony/runtime" />
<path value="$PROJECT_DIR$/vendor/symfony/flex" />
<path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher-contracts" />
<path value="$PROJECT_DIR$/vendor/symfony/http-foundation" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php83" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-mbstring" />
<path value="$PROJECT_DIR$/vendor/symfony/filesystem" />
<path value="$PROJECT_DIR$/vendor/symfony/finder" />
<path value="$PROJECT_DIR$/vendor/symfony/var-dumper" />
<path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher" />
<path value="$PROJECT_DIR$/vendor/symfony/config" />
<path value="$PROJECT_DIR$/vendor/symfony/error-handler" />
<path value="$PROJECT_DIR$/vendor/symfony/service-contracts" />
<path value="$PROJECT_DIR$/vendor/symfony/var-exporter" />
<path value="$PROJECT_DIR$/vendor/symfony/cache" />
<path value="$PROJECT_DIR$/vendor/symfony/cache-contracts" />
<path value="$PROJECT_DIR$/vendor/symfony/dependency-injection" />
<path value="$PROJECT_DIR$/vendor/symfony/http-kernel" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-grapheme" />
<path value="$PROJECT_DIR$/vendor/symfony/framework-bundle" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-normalizer" />
<path value="$PROJECT_DIR$/vendor/symfony/doctrine-bridge" />
<path value="$PROJECT_DIR$/vendor/symfony/process" />
<path value="$PROJECT_DIR$/vendor/symfony/stopwatch" />
<path value="$PROJECT_DIR$/vendor/symfony/console" />
<path value="$PROJECT_DIR$/vendor/symfony/string" />
<path value="$PROJECT_DIR$/vendor/symfony/dom-crawler" />
<path value="$PROJECT_DIR$/vendor/symfony/browser-kit" />
<path value="$PROJECT_DIR$/vendor/symfony/apache-pack" />
<path value="$PROJECT_DIR$/vendor/symfony/options-resolver" />
<path value="$PROJECT_DIR$/vendor/symfony/debug-bundle" />
<path value="$PROJECT_DIR$/vendor/symfony/twig-bridge" />
<path value="$PROJECT_DIR$/vendor/symfony/translation-contracts" />
<path value="$PROJECT_DIR$/vendor/symfony/css-selector" />
<path value="$PROJECT_DIR$/vendor/symfony/property-access" />
<path value="$PROJECT_DIR$/vendor/symfony/property-info" />
<path value="$PROJECT_DIR$/vendor/symfony/type-info" />
<path value="$PROJECT_DIR$/vendor/symfony/dotenv" />
<path value="$PROJECT_DIR$/vendor/symfony/monolog-bundle" />
<path value="$PROJECT_DIR$/vendor/symfony/form" />
<path value="$PROJECT_DIR$/vendor/symfony/monolog-bridge" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-icu" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-uuid" />
<path value="$PROJECT_DIR$/vendor/symfony/stimulus-bundle" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-idn" />
<path value="$PROJECT_DIR$/vendor/symfony/phpunit-bridge" />
<path value="$PROJECT_DIR$/vendor/symfony/asset" />
<path value="$PROJECT_DIR$/vendor/symfony/validator" />
<path value="$PROJECT_DIR$/vendor/symfony/twig-bundle" />
<path value="$PROJECT_DIR$/vendor/symfony/uid" />
<path value="$PROJECT_DIR$/vendor/symfony/mime" />
<path value="$PROJECT_DIR$/vendor/symfony/web-profiler-bundle" />
<path value="$PROJECT_DIR$/vendor/symfony/yaml" />
<path value="$PROJECT_DIR$/vendor/symfony/webpack-encore-bundle" />
<path value="$PROJECT_DIR$/vendor/theseer/tokenizer" />
<path value="$PROJECT_DIR$/vendor/doctrine/deprecations" />
<path value="$PROJECT_DIR$/vendor/doctrine/sql-formatter" />
<path value="$PROJECT_DIR$/vendor/doctrine/persistence" />
<path value="$PROJECT_DIR$/vendor/doctrine/event-manager" />
<path value="$PROJECT_DIR$/vendor/doctrine/common" />
<path value="$PROJECT_DIR$/vendor/doctrine/instantiator" />
<path value="$PROJECT_DIR$/vendor/doctrine/lexer" />
<path value="$PROJECT_DIR$/vendor/doctrine/cache" />
<path value="$PROJECT_DIR$/vendor/doctrine/data-fixtures" />
<path value="$PROJECT_DIR$/vendor/doctrine/doctrine-bundle" />
<path value="$PROJECT_DIR$/vendor/doctrine/collections" />
<path value="$PROJECT_DIR$/vendor/doctrine/inflector" />
<path value="$PROJECT_DIR$/vendor/doctrine/migrations" />
<path value="$PROJECT_DIR$/vendor/doctrine/doctrine-migrations-bundle" />
<path value="$PROJECT_DIR$/vendor/doctrine/dbal" />
<path value="$PROJECT_DIR$/vendor/doctrine/doctrine-fixtures-bundle" />
<path value="$PROJECT_DIR$/vendor/sebastian/version" />
<path value="$PROJECT_DIR$/vendor/sebastian/diff" />
<path value="$PROJECT_DIR$/vendor/evenement/evenement" />
<path value="$PROJECT_DIR$/vendor/doctrine/orm" />
<path value="$PROJECT_DIR$/vendor/sebastian/object-reflector" />
<path value="$PROJECT_DIR$/vendor/sebastian/recursion-context" />
<path value="$PROJECT_DIR$/vendor/sebastian/resource-operations" />
<path value="$PROJECT_DIR$/vendor/sebastian/type" />
<path value="$PROJECT_DIR$/vendor/sebastian/environment" />
<path value="$PROJECT_DIR$/vendor/sebastian/exporter" />
<path value="$PROJECT_DIR$/vendor/sebastian/global-state" />
<path value="$PROJECT_DIR$/vendor/sebastian/object-enumerator" />
</include_path>
</component>
<component name="PhpProjectSharedConfiguration" php_language_level="8.2" />
<component name="PhpStan">
<PhpStan_settings>
<PhpStanConfiguration tool_path="$PROJECT_DIR$/app/vendor/bin/phpstan" />
</PhpStan_settings>
</component>
<component name="PhpStanOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PhpUnit">
<phpunit_settings>
<PhpUnitSettings configuration_file_path="$PROJECT_DIR$/app/phpunit.xml" custom_loader_path="$PROJECT_DIR$/app/vendor/autoload.php" use_configuration_file="true" />
</phpunit_settings>
</component>
<component name="PsalmOptionsConfiguration">
<option name="transferred" value="true" />
</component>
</project>

31
.idea/phpspec.xml Normal file
View file

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PHPSpec">
<suites>
<PhpSpecSuiteConfiguration>
<option name="myPath" value="$PROJECT_DIR$" />
</PhpSpecSuiteConfiguration>
<PhpSpecSuiteConfiguration>
<option name="myPath" value="$PROJECT_DIR$/app" />
</PhpSpecSuiteConfiguration>
<PhpSpecSuiteConfiguration>
<option name="myPath" value="$PROJECT_DIR$/app" />
</PhpSpecSuiteConfiguration>
<PhpSpecSuiteConfiguration>
<option name="myPath" value="$PROJECT_DIR$/app" />
</PhpSpecSuiteConfiguration>
<PhpSpecSuiteConfiguration>
<option name="myPath" value="$PROJECT_DIR$/backend" />
</PhpSpecSuiteConfiguration>
<PhpSpecSuiteConfiguration>
<option name="myPath" value="$PROJECT_DIR$/backend" />
</PhpSpecSuiteConfiguration>
<PhpSpecSuiteConfiguration>
<option name="myPath" value="$PROJECT_DIR$/backend" />
</PhpSpecSuiteConfiguration>
<PhpSpecSuiteConfiguration>
<option name="myPath" value="$PROJECT_DIR$" />
</PhpSpecSuiteConfiguration>
</suites>
</component>
</project>

12
.idea/phpunit.xml Normal file
View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PHPUnit">
<option name="directories">
<list>
<option value="$PROJECT_DIR$/app/tests" />
<option value="$PROJECT_DIR$/backend/tests" />
<option value="$PROJECT_DIR$/tests" />
</list>
</option>
</component>
</project>

6
.idea/vcs.xml Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

4
.idea/watcherTasks.xml Normal file
View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectTasksOptions" suppressed-tasks="SCSS" />
</project>

View file

@ -1,10 +1,8 @@
###> symfony/framework-bundle ### ###> symfony/framework-bundle ###
APP_ENV=dev APP_ENV=dev
APP_SECRET=3a451032bf2c8c9a639dfb642ce825d0 APP_SECRET=6d06c4db3a2052db7e13ad3cec58a28d
###< symfony/framework-bundle ### ###< symfony/framework-bundle ###
###> doctrine/doctrine-bundle ### ###> doctrine/doctrine-bundle ###
DATABASE_URL="mysql://root:empty@127.0.0.1:3306/app?serverVersion=8.0.32&charset=utf8mb4" DATABASE_URL="mysql://root:empty@127.0.0.1:3306/app?serverVersion=8.0.32&charset=utf8mb4"
###< doctrine/doctrine-bundle ### ###< doctrine/doctrine-bundle ###
TEST_TOKEN=

View file

@ -1,6 +1,7 @@
# define your env variables for the test env here
KERNEL_CLASS='App\Kernel' KERNEL_CLASS='App\Kernel'
APP_SECRET='$ecretf0rt3st' APP_SECRET='$ecretf0rt3st'
SYMFONY_DEPRECATIONS_HELPER=999999 SYMFONY_DEPRECATIONS_HELPER=999999
PANTHER_APP_ENV=panther PANTHER_APP_ENV=panther
PANTHER_ERROR_SCREENSHOT_DIR=./var/error-screenshots PANTHER_ERROR_SCREENSHOT_DIR=./var/error-screenshots
TEST_TOKEN="_test" TEST_TOKEN="_test"

23
app/.gitignore vendored
View file

@ -1,5 +1,4 @@
###> symfony/framework-bundle ### ###> symfony/framework-bundle ###
/.env.local
/.env.local.php /.env.local.php
/.env.*.local /.env.*.local
/config/secrets/prod/prod.decrypt.private.php /config/secrets/prod/prod.decrypt.private.php
@ -8,6 +7,10 @@
/vendor/ /vendor/
###< symfony/framework-bundle ### ###< symfony/framework-bundle ###
###> friendsofphp/php-cs-fixer ###
/.php-cs-fixer.cache
###< friendsofphp/php-cs-fixer ###
###> symfony/webpack-encore-bundle ### ###> symfony/webpack-encore-bundle ###
/node_modules/ /node_modules/
/public/build/ /public/build/
@ -15,27 +18,19 @@ npm-debug.log
yarn-error.log yarn-error.log
###< symfony/webpack-encore-bundle ### ###< symfony/webpack-encore-bundle ###
###> phpstan/phpstan ###
phpstan.dist.neon
###< phpstan/phpstan ###
###> friendsofphp/php-cs-fixer ###
/.php-cs-fixer.cache
###< friendsofphp/php-cs-fixer ###
###> phpunit/phpunit ### ###> phpunit/phpunit ###
/phpunit.dist.xml /phpunit.xml
.phpunit.result.cache .phpunit.result.cache
###< phpunit/phpunit ### ###< phpunit/phpunit ###
###> symfony/phpunit-bridge ### ###> symfony/phpunit-bridge ###
.phpunit.result.cache .phpunit.result.cache
/phpunit.dist.xml /phpunit.xml
###< symfony/phpunit-bridge ### ###< symfony/phpunit-bridge ###
# Encore Daemon
/npm-watch.pid
###> vincentlanglet/twig-cs-fixer ### ###> vincentlanglet/twig-cs-fixer ###
/.twig-cs-fixer.cache /.twig-cs-fixer.cache
###< vincentlanglet/twig-cs-fixer ### ###< vincentlanglet/twig-cs-fixer ###
.idea/
.vscode/

View file

View file

@ -1,12 +1,11 @@
<?php <?php
$finder = (new PhpCsFixer\Finder()) $finder = PhpCsFixer\Finder::create()
->in(__DIR__ . '/src') ->in(__DIR__ . '/backend')
->in(__DIR__ . '/tests') ->in(__DIR__ . '/tests');
;
return (new PhpCsFixer\Config()) $config = new PhpCsFixer\Config();
->setRules([ return $config->setRules([
//Symfony //Symfony
'@Symfony' => true, '@Symfony' => true,
'@Symfony:risky' => true, '@Symfony:risky' => true,
@ -17,46 +16,28 @@ return (new PhpCsFixer\Config())
'@PHP80Migration' => true, '@PHP80Migration' => true,
'@PHP80Migration:risky' => true, '@PHP80Migration:risky' => true,
##PHPUnit Version Migration //PHPUnit Version Migration
'@PHPUnit84Migration:risky' => true, '@PHPUnit84Migration:risky' => true,
//General //General
'array_indentation' => true, 'array_indentation' => true,
'compact_nullable_typehint' => true, 'compact_nullable_typehint' => true,
'concat_space' => [ 'concat_space' => ['spacing' => 'one'],
'spacing' => 'one'
],
'method_chaining_indentation' => true, 'method_chaining_indentation' => true,
'multiline_whitespace_before_semicolons' => [ 'multiline_whitespace_before_semicolons' => ['strategy' => 'new_line_for_chained_calls'],
'strategy' => 'new_line_for_chained_calls' 'ordered_imports' => ['imports_order' => ['class', 'function', 'const']],
],
'ordered_imports' => [
'imports_order' => [
'class',
'function',
'const'
]
],
'phpdoc_order' => true, 'phpdoc_order' => true,
'visibility_required' => [ 'visibility_required' => ['elements' => ['property', 'method', 'const']],
'elements' => [
'property',
'method',
'const'
]
],
'yoda_style' => false, 'yoda_style' => false,
'octal_notation' => false, 'octal_notation' => false,
'php_unit_test_case_static_method_calls' => [ 'php_unit_test_case_static_method_calls' => ['call_type' => 'this'],
'call_type' => 'this'
],
'global_namespace_import' => [ 'global_namespace_import' => [
'import_classes' => true, 'import_classes' => true,
'import_constants' => true, 'import_constants' => true,
'import_functions' => true 'import_functions' => true,
], ],
'no_superfluous_phpdoc_tags' => [ 'no_superfluous_phpdoc_tags' => [
'allow_mixed' => true, 'allow_mixed' => true,
'remove_inheritdoc' => true 'remove_inheritdoc' => true,
] ],
])->setFinder($finder); ])->setFinder($finder);

View file

@ -1 +1 @@
8.2 8.3

View file

@ -1,3 +0,0 @@
*.*
!*.css
!*.scss

View file

@ -3,7 +3,6 @@
$ruleset = new TwigCsFixer\Ruleset\Ruleset(); $ruleset = new TwigCsFixer\Ruleset\Ruleset();
$ruleset->addStandard(new TwigCsFixer\Standard\Twig()); $ruleset->addStandard(new TwigCsFixer\Standard\Twig());
$ruleset->addRule(new TwigCsFixer\Rules\Whitespace\EmptyLinesRule()); $ruleset->addRule(new TwigCsFixer\Rules\Whitespace\EmptyLinesRule());
$ruleset->addRule(new TwigCsFixer\Rules\Variable\VariableNameRule(TwigCsFixer\Rules\Variable\VariableNameRule::CAMEL_CASE));
$config = new TwigCsFixer\Config\Config(); $config = new TwigCsFixer\Config\Config();
$config->setRuleset($ruleset); $config->setRuleset($ruleset);

89
app/Justfile Normal file
View file

@ -0,0 +1,89 @@
_default:
@bin/just/choose.sh {{ source_file() }} choose
mod backend
mod frontend
alias i := install
alias start := up
alias stop := halt
alias clean := fresh
# Checks whether the requriements are met
[group('main')]
check:
#!/bin/bash
source bin/just/colors.sh
source bin/just/check.sh
printf "${BLUE_BG}${BLACK_FG} Checking Justfile Requirements ${CLEAR}\n"
check_cmd "jq" "jq"
check_cmd "fzf" "fzf"
check_cmd "screen" "screen"
check_cmd "grep" "grep"
check_cmd "printf" "Printf"
check_cmd "sed" "sed"
check_cmd "awk" "awk"
check_cmd "cut" "cut"
check_cmd "highlight" "highlight"
if ((error > 0 )); then
exit 1
fi
echo ""
just backend::check
just frontend::check
# Installs the dependencies
[group('main')]
install:
-@just backend::install
-@just frontend::install
# Starts the local Development Setup
[group('main')]
up: halt check
-@just backend::up
-@just frontend::up
# Stops the local Development Setup
[group('main')]
halt:
-@just backend::halt
-@just frontend::halt
# Starts the local Development Setup Fresh, with no Cache and the reseted test Data
[group('main')]
fresh: halt install up
@just backend::demo-data
linter_options := "All\nPHP\nTS\nSCSS\nTwig"
# Lints all Files, or if specified only a specifc Set
[group('utility')]
lint linter="":
#!/bin/bash
chosen_linter=$(
printf "{{ linter_options }}" |\
fzf --header="Which linters should be run?" --height 7 -i -q "{{ linter }}" -1
)
case "$chosen_linter" in
*All*) \
just frontend::lint all && just backend::lint;;
*PHP*) just backend::lint ;;
*TS*) just frontend::lint TS ;;
*SCSS*) just frontend::lint all SCSS ;;
*Twig*) just frontend::lint TWIG ;;
esac
# Runs the Static Code Analysis
[group('utility')]
stan:
@just backend::stan
# Runs all Tests, or if specified only a specific Suite
[group('utility')]
test:
@just backend::test
# Create and Execute Migrations
[group('utility')]
migration:
@just backend::migration

View file

@ -1,91 +0,0 @@
##|——[ General ]—————————————————————————————————————————————————————————————————————————|
help: ## Shops available commands
@bin/make/help.sh
check: ## Checks whether requirements are met
@bin/make/check.sh
##|——[ Local Server ]————————————————————————————————————————————————————————————————————|
up: ## Starts the Local Instance
@make down -s
@make check -s
@docker compose up -d
@symfony local:server:start -d --no-tls
@bash -c '$$(npm run watch >> var/log/encore.log)& echo $$! > ./npm-watch.pid'
down: ## Stops the Local Instance
ifneq (,$(wildcard ./npm-watch.pid))
@printf "${RED}Killing ${YELLOW}Encore${CLEAR}!\n"
@- kill $$(cat ./npm-watch.pid)
@rm -rf ./npm-watch.pid
endif
@symfony local:server:stop
@docker compose down
fresh: ## Starts a Fresh Local Instance
@make down -s
@symfony composer install
@npm i
@make up -s
@make db-demo -s
##|——[ Code Quality ]————————————————————————————————————————————————————————————————————|
test: ## Runs all Unittests
@docker compose up -d
@symfony console doctrine:database:drop --if-exists --force --env=test
@symfony console doctrine:database:create --env=test
@symfony console doctrine:migrations:migrate -n --env=test
@symfony console doctrine:fixtures:load -n --env=test
@symfony console cache:clear --env=test
vendor/bin/phpunit
analyze: ## Runs Static Code Analysis
vendor/bin/phpstan analyze
lint: ## Runs the Linters
@make lint-php -s
@make lint-ts -s
@make lint-twig -s
@make lint-scss -s
##|——[ Testing ]—————————————————————————————————————————————————————————————————————————|
test-unit: ## Runs the Unit tests
vendor/bin/phpunit --testsuite Unit
test-integration: ## Runs the Integration tests
@symfony console doctrine:fixtures:load -n --env=test
vendor/bin/phpunit --testsuite Integration
test-web: ## Runs the Web tests
@symfony console doctrine:fixtures:load -n --env=test
vendor/bin/phpunit --testsuite Web
##|——[ Linting ]—————————————————————————————————————————————————————————————————————————|
lint-php: ## Runs the PHP Linting
vendor/bin/php-cs-fixer fix --allow-risky=yes
lint-ts: ## Runs the Typescript Linting
npm run lint:ts:fix
lint-twig: ## Runs Twig Linting
vendor/bin/twig-cs-fixer lint --fix
php bin/console lint:twig
lint-scss: ## Runs Twig Linting
npm run lint:scss:fix
##|——[ Data ]————————————————————————————————————————————————————————————————————————————|
db-demo: ## Writes the Demo Data to the Local Instance
symfony console doctrine:database:drop --if-exists --force
symfony console doctrine:database:create
symfony console doctrine:migrations:migrate -n
symfony console doctrine:fixtures:load -n
symfony console cache:clear
db-migration-gen: ## Generates a Migration
symfony console doctrine:migration:diff
db-migration-do: ## Does the Migration
symfony console doctrine:migration:migrate

View file

@ -1,15 +0,0 @@
openapi: 3.0.3
info:
title: Api
version: 1.0.0
paths:
/test:
get:
summary: Lorem
description: Lorem Ipsum
responses:
200:
description: OK

View file

@ -1,2 +0,0 @@
import '@styles/app.scss';
import '@packages/stimulus';

View file

@ -1,7 +0,0 @@
import {Controller} from '@hotwired/stimulus';
export default class extends Controller {
connect(): void {
this.element.textContent = 'Hello Stimulus! Edit me in assets/controllers/hello_controller.js';
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square150x150logo src="/mstile-150x150.png"/>
<TileColor>#000000</TileColor>
</tile>
</msapplication>
</browserconfig>

Binary file not shown.

After

Width:  |  Height:  |  Size: 611 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 798 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View file

@ -0,0 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<path
d="M49.87 76.493c-28.61 28.61-28.61 74.992 0 103.598L125.78 256l89.538-90.112c13.89-13.89 19.517-56.259-2.294-80.364l-.666 9.344a72.955 72.955 0 0 1-15.98 40.592l-67.158 67.159a37.34 37.34 0 0 1 0-52.808l25.405-25.405c26.553-26.547 26.553-69.596 0-96.149L126.363 0Zm23.485 70.006a30.029 30.029 0 0 1 0-42.47l53.264-53.254 2.99 2.99a31.928 31.928 0 0 1 0 45.153l-51.917 51.917z"
style="stroke-width:5.12"
/>
<style>
path { fill: #000 }
@media (prefers-color-scheme: dark) {
path{ fill: #fff }
}
</style>
</svg>

After

Width:  |  Height:  |  Size: 658 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -0,0 +1,29 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="700.000000pt" height="700.000000pt" viewBox="0 0 700.000000 700.000000"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.14, written by Peter Selinger 2001-2017
</metadata>
<g transform="translate(0.000000,700.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M2349 5893 c-1156 -1158 -1168 -1171 -1293 -1380 -80 -135 -198 -421
-220 -533 -2 -14 -11 -56 -19 -95 -9 -38 -18 -94 -21 -122 -3 -29 -9 -77 -12
-105 -12 -102 -7 -287 11 -433 42 -338 201 -712 414 -975 25 -30 50 -61 56
-68 5 -7 497 -501 1092 -1098 l1082 -1084 172 173 c977 982 2292 2307 2309
2327 136 155 254 464 286 750 2 19 6 55 9 79 7 55 7 274 0 365 -17 221 -83
464 -177 651 -70 141 -213 339 -214 299 -1 -27 -14 -199 -19 -264 -14 -149
-40 -283 -81 -415 -14 -44 -29 -89 -33 -100 -73 -184 -123 -282 -220 -430 -59
-92 -143 -179 -1000 -1038 l-936 -938 -44 48 c-74 81 -134 181 -196 326 -16
36 -40 138 -52 222 -15 99 -4 284 23 375 9 29 17 61 19 71 4 20 38 99 67 154
63 121 125 191 530 598 229 230 441 448 471 485 214 262 356 592 405 937 9 68
9 417 -1 485 -32 225 -109 455 -214 645 -118 213 -167 271 -642 748 l-446 448
-1106 -1108z m1302 -495 c54 -79 112 -213 125 -288 3 -14 7 -32 10 -40 11 -29
14 -213 4 -283 -21 -142 -89 -300 -178 -413 -33 -42 -1428 -1444 -1475 -1482
-14 -12 -25 -4 -89 61 -96 97 -122 129 -168 207 -33 55 -91 189 -89 205 0 3
-5 31 -12 63 -27 134 -7 321 51 463 58 142 87 175 878 966 l756 756 74 -78
c40 -43 91 -104 113 -137z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -0,0 +1,19 @@
{
"name": "",
"short_name": "",
"icons": [
{
"src": "/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/android-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
],
"theme_color": "#ffffff",
"background_color": "#ffffff",
"display": "standalone"
}

View file

@ -0,0 +1 @@
a

View file

@ -1,8 +0,0 @@
import {startStimulusApp} from '@symfony/stimulus-bridge';
import {Application} from '@hotwired/stimulus';
export const app: Application = startStimulusApp(require.context(
'@symfony/stimulus-bridge/lazy-controller-loader!@controllers',
true,
/\.[jt]sx?$/
));

View file

@ -1,5 +1,5 @@
{ {
"extends": "stylelint-config-standard", "extends": "stylelint-config-standard-scss",
"plugins": [ "plugins": [
"stylelint-scss" "stylelint-scss"
], ],
@ -10,4 +10,4 @@
"import-notation": "string", "import-notation": "string",
"scss/no-global-function-names": null "scss/no-global-function-names": null
} }
} }

View file

@ -1,3 +1 @@
:root { // This is the Main style file
$gitKeep: true;
}

View file

@ -0,0 +1,34 @@
<?php
declare(strict_types=1);
namespace App;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Attribute\AsController;
use Symfony\Component\Routing\Annotation\Route;
use Twig\Environment;
#[AsController]
#[Route(
path: '/',
name: 'test',
methods: [Request::METHOD_GET]
)]
final readonly class TestController
{
public function __construct(
private Environment $twig,
) {
}
public function __invoke(Request $request): Response
{
return new Response(
$this->twig->render(
'base.html.twig'
)
);
}
}

115
app/backend/mod.just Normal file
View file

@ -0,0 +1,115 @@
__default:
@../bin/just/choose.sh {{ source_file() }} choose
# Checks whether the requriements are met
[group('main')]
check:
#!/bin/bash
source ../bin/just/colors.sh
source ../bin/just/check.sh
printf "${BLUE_BG}${BLACK_FG} Checking Backend Requirements ${CLEAR}\n"
cd ..
check_cmd "php" "Php"
check_cmd "composer" "Composer"
current_composer_version=$(composer --version 2>/dev/null | awk '{print $3}' | cut -d '.' -f 1)
if [ "${current_composer_version}" = "2" ]; then
printf >&2 "${GREEN_FG}✔ Composer${BLUE_FG} Version ${GREEN_FG}${current_composer_version}${BLUE_FG} is ${GREEN_FG}installed${BLUE_FG}.\n"
else
printf >&2 "${RED_FG}✘ Wrong Composer Version${YELLOW_FG} is installed!\n Version ${RED_FG}2${YELLOW_FG} is ${RED_FG}required${YELLOW_FG}.\n"
error = 1
fi
check_cmd "symfony" "Symfony cli"
required_php_version=$(cat .php-version)
current_php_version=$(symfony php -r "echo PHP_MAJOR_VERSION.'.'.PHP_MINOR_VERSION;")
if [ "${current_php_version}" = "${required_php_version}" ]; then
printf >&2 "${GREEN_FG}✔ PHP${BLUE_FG} Version ${GREEN_FG}${current_php_version}${BLUE_FG} is ${GREEN_FG}installed${BLUE_FG}.\n"
else
printf >&2 "${RED_FG}✘ Wrong PHP Version${YELLOW_FG} is installed!\n Version ${RED_FG}${required_php_version}${YELLOW_FG} is ${RED_FG}required${YELLOW_FG}.\n"
symfony local:php:list
error = 1
fi
check "[ $(php -m | grep -c PDO) -eq 1 ]" "Php PDO"
check "[ $(php -m | grep -c pdo_mysql) -eq 1 ]" "Php Mysql PDO"
check_cmd "docker" "Docker"
check "$(docker compose version >/dev/null 2>&1)" "Docker Compose"
if ((error > 0 )); then
exit 1
fi
echo ""
# Installs the dependencies
[group('main')]
install:
cd .. && composer install
# Starts the local Development Setup
[group('main')]
up:
-@cd .. && docker compose up -d
-@cd .. && symfony local:server:start -d --no-tls
# Stops the local Development Setup
[group('main')]
halt:
-@cd .. && symfony local:server:stop
-@cd .. && docker compose down
suite_options := "All\nUnit\nIntegration\nWeb"
# Runs all Tests, or if specified only a specific Suite
[group('utility')]
test suite="":
#!/bin/bash
chosen_suite=$(
printf "{{ suite_options }}" |\
fzf --header="which tests should be run?" --height 7 -i -q "{{ suite }}" -1
)
if [ "$chosen_suite" != "All" ]; then
suite_arg="--testsuite $chosen_suite"
fi
cd ..
symfony console doctrine:database:drop --if-exists --force --env=test
symfony console doctrine:database:create --env=test
symfony console doctrine:schema:update --force --complete --env=test
symfony console doctrine:fixtures:load -n --env=test
symfony console cache:clear --env=test
vendor/bin/phpunit $suite_arg
# Lints the PHP Backend Code
[group('utility')]
lint:
@cd .. && vendor/bin/php-cs-fixer fix --allow-risky=yes
# Runs the Static Code Analysis
[group('utility')]
stan:
@cd .. && vendor/bin/phpstan analyze --memory-limit=2G
migration_options := "Generate\nExecute\n"
# Create and Execute Migrations
[group('utility')]
migration migration="":
#!/bin/bash
chosen_migration=$(
printf "{{ migration_options }}" |\
fzf --header="Which migration action to perform?" --height 7 -i -q "{{ migration }}" -1
)
cd ..
case "$chosen_migration" in
*Generate*) symfony console doctrine:migrations:diff ;;
*Execute*) symfony console doctrine:migrations:migrate ;;
esac
# Sets up a Fresh Data Set
[group('utility')]
demo-data:
#!/bin/bash
cd ..
symfony console doctrine:database:drop --if-exists --force
symfony console doctrine:database:create
symfony console doctrine:migrations:migrate -n
symfony console doctrine:fixtures:load -n
symfony console cache:clear

80
app/bin/deploy.sh Executable file
View file

@ -0,0 +1,80 @@
#!/usr/bin/env bash
set -e
# ---------------------------------------------------------------------------------------------------------------------
# 1. testing for important env vars to be set
[[ -z "$SYMFONY_DECRYPTION_SECRET" ]] && echo "SYMFONY_DECRYPTION_SECRET missing" && exit 1;
[[ -z "$WEBROOT" ]] && echo "WEBROOT missing" && exit 1;
[[ -f ~/.bash_profile ]] && source ~/.bash_profile
# ---------------------------------------------------------------------------------------------------------------------
# 2. syncing persistent shared data into new release and making sure folder structure exists
touch ./public/maintenance.flag
mkdir -p ../../shared/log
mkdir -p ../../shared/sessions
mkdir -p ../../shared/images
mkdir -p ../../shared/videos
mkdir -p ../../shared/assets
mkdir -p ./var
mkdir -p ./public/assets
ln -sf ../../shared/log ./var/log
ln -sf ../../shared/sessions ./var/sessions
ln -sf ../../shared/images ./public/assets/images
ln -sf ../../shared/videos ./public/assets/videos
ln -sf ../../shared/assets ./public/assets/assets
# ---------------------------------------------------------------------------------------------------------------------
# 3. Update robots.txt
echo "Sitemap: $WEBROOT/sitemap.xml" >> ./public/robots.txt
# ---------------------------------------------------------------------------------------------------------------------
# 4. decrypt secret vault into local prod environment
php ./bin/console secrets:decrypt-to-local --force
rm -rf ./config/secrets/prod/
# ---------------------------------------------------------------------------------------------------------------------
# 5. move temp folder to release-x folder with the next higher number
# and delete the release-x folder with the lowest number
cd ..
# Set the release folder prefix and initialize counter
prefix="release-"
counter=0
# Loop through all the folders with the given prefix and find the highest numbered release folder
for folder in $prefix*; do
if [[ -d $folder ]]; then
num=${folder#$prefix}
if [[ $num =~ ^[0-9]+$ && $num -gt $counter ]]; then
counter=$num
fi
fi
done
# Rename the "temp" folder to the next highest release folder
new_release="$prefix$((counter+1))"
mv temp "$new_release"
# ---------------------------------------------------------------------------------------------------------------------
# 6. symlink new release
ln -sfn $new_release latest
cd $new_release
# ---------------------------------------------------------------------------------------------------------------------
# 7. run migrations and update plugins/apps
php ./bin/console doctrine:migrations:migrate -n
# ---------------------------------------------------------------------------------------------------------------------
# 8. clean up and end maintenance mode
php ./bin/console cache:clear
rm -f ./public/maintenance.flag
# ---------------------------------------------------------------------------------------------------------------------
# 9. Clear the Webcache
~/bin/cachetool.phar opcache:reset
# ---------------------------------------------------------------------------------------------------------------------
# 10. remove all but the last four releases (including the one just created)
# We do this after the deployment in order to reduce the chance of deleted folders reappearing because of old processes
# still using them.
ls -d ../release-* | sort -t- -k2n | head -n -4 | xargs --no-run-if-empty rm -rf

13
app/bin/just/check.sh Normal file
View file

@ -0,0 +1,13 @@
#!/bin/bash
check() {
if $1; then
printf >&2 "${GREEN_FG}$2${BLUE_FG} is ${GREEN_FG}installed${BLUE_FG}.\n"
else
printf >&2 "${RED_FG}$2${YELLOW_FG} is ${RED_FG}not installed${YELLOW_FG}! \n"
error=1
fi
}
check_cmd() {
check "$(command -v $1 >/dev/null 2>&1)" $2
}

43
app/bin/just/choose.sh Executable file
View file

@ -0,0 +1,43 @@
#!/bin/bash
justfile=$1
action=$2
content=$3
function preview() {
source "$(dirname ${BASH_SOURCE[0]})/colors.sh"
recipe=$(choose_truncate $content)
if [[ -z "$recipe" ]] || echo $recipe | grep -q "^\["; then
printf "${RED_FG}Select this to Exit${CLEAR}"
elif [[ "$content" == *" ..." ]]; then
just_wrapper --list $recipe | highlight --out-format xterm256 --syntax conf
else
just_wrapper --show $recipe | highlight --out-format xterm256 --syntax sh
fi
}
function choose() {
script_path="$(pwd)/${BASH_SOURCE[0]}"
choice=$( choose_truncate $(choose_list | fzf --tac --cycle --preview "$script_path $justfile preview {}" ))
if [[ -z "$choice" ]] || echo $choice | grep -q "^\["; then
exit
else
just_wrapper $choice
fi
}
function just_wrapper() {
just --justfile $justfile $@
}
function choose_truncate() {
echo $1 | cut -d ' ' -f1
}
function choose_list() {
just_wrapper -l --no-aliases --list-heading="" | awk '{$1=$1};1'
}
case "$action" in
*choose) choose;;
*preview) preview;;
esac

View file

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/sh
# Colors # Colors
COLOR_MARKER='\033' COLOR_MARKER='\033'
@ -9,11 +9,8 @@ COLOR_CLEAR='0'
COLOR_FG='3' COLOR_FG='3'
COLOR_BG='4' COLOR_BG='4'
COLOR_WHITE='9' COLOR_WHITE='8'
COLOR_LIGHT_GRAY='8'
COLOR_GRAY='7'
COLOR_BLACK='0' COLOR_BLACK='0'
COLOR_RED='1' COLOR_RED='1'
COLOR_GREEN='2' COLOR_GREEN='2'
COLOR_YELLOW='3' COLOR_YELLOW='3'

View file

@ -1,117 +0,0 @@
#!/bin/bash
source bin/make/colors.sh
printf "${BLUE_BG} ${CLEAR}\n"
printf "${BLUE_BG}${BLACK_FG} Checking Requirements ${CLEAR}\n"
printf "${BLUE_BG} ${CLEAR}\n"
# Check PHP
command -v php >/dev/null 2>&1 || \
{ \
printf >&2 "${RED_FG}✘ PHP${YELLOW_FG} is ${RED_FG}not installed${YELLOW_FG}!\n"; \
exit 1; \
}
# Check PHP Version
required_php_version=$(cat .php-version) && \
current_php_version=$(symfony php -r "echo PHP_MAJOR_VERSION.'.'.PHP_MINOR_VERSION;") && \
[ "${current_php_version}" = "${required_php_version}" ] || \
{ \
printf >&2 "${RED_FG}✘ Wrong PHP Version${YELLOW_FG} is installed!\n Version ${RED_FG}${required_php_version}${YELLOW_FG} is ${RED_FG}required${YELLOW_FG}.\n"; \
symfony local:php:list; \
exit 1; \
} && \
printf >&2 "${GREEN_FG}✔ PHP${BLUE_FG} Version ${GREEN_FG}${current_php_version}${BLUE_FG} is ${GREEN_FG}installed${BLUE_FG}.\n"
# Check PHP PDO_MYSQL
php -m | grep -i pdo_mysql >/dev/null 2>&1 || \
{ \
printf >&2 "${RED_FG}✘ PHP PDO_MYSQL${YELLOW_FG} is ${RED_FG}not installed${YELLOW_FG}!\n"; \
exit 1; \
}
printf >&2 "${GREEN_FG}✔ PHP MySQL PDO${BLUE_FG} is ${GREEN_FG}installed${BLUE_FG}.\n"
# Check Composer
command -v composer >/dev/null 2>&1 || \
{ \
printf >&2 "${RED_FG}✘ Composer${YELLOW_FG} is ${RED_FG}not installed${YELLOW_FG}!\n"; \
exit 1; \
}
# Check Composer Version
current_composer_version=$(composer --version 2> /dev/null | awk '{print $3}' | cut -d '.' -f 1) && \
[ "${current_composer_version}" = "2" ] || \
{ \
printf >&2 "${RED_FG}✘ Wrong Composer Version${YELLOW_FG} is installed!\n Version ${RED_FG}2${YELLOW_FG} is ${RED_FG}required${YELLOW_FG}.\n"; \
exit 1; \
} && \
printf >&2 "${GREEN_FG}✔ Composer${BLUE_FG} Version ${GREEN_FG}${current_composer_version}${BLUE_FG} is ${GREEN_FG}installed${BLUE_FG}.\n"
# Check Symfony CLI
command -v symfony >/dev/null 2>&1 || \
{ \
printf >&2 "${RED_FG}✘ Symfony CLI${YELLOW_FG} is ${RED_FG}not installed${YELLOW_FG}! please install it from:\nhttps://symfony.com/download\n"; \
exit 1; \
}
printf >&2 "${GREEN_FG}✔ Symfony CLI${BLUE_FG} is ${GREEN_FG}installed${BLUE_FG}!\n"
# Check JQ
command -v jq >/dev/null 2>&1 || \
{ \
printf >&2 "${RED_FG}✘ JQ${YELLOW_FG} is ${RED_FG}not installed${YELLOW_FG}!"; \
exit 1; \
}
printf >&2 "${GREEN_FG}✔ JQ${BLUE_FG} is ${GREEN_FG}installed${BLUE_FG}!\n"
# Check Volta
command -v volta >/dev/null 2>&1 || \
{ \
printf >&2 "${RED_FG}✘ Volta${YELLOW_FG} is ${RED_FG}not installed${YELLOW_FG}! \n"; \
exit 1; \
}
printf >&2 "${GREEN_FG}✔ Volta${BLUE_FG} is ${GREEN_FG}installed${BLUE_FG}.\n"
# Check Node
command -v node >/dev/null 2>&1 || \
{ \
printf >&2 "${RED_FG}✘ Node${YELLOW_FG} is ${RED_FG}not installed${YELLOW_FG}!\n"; \
exit 1; \
}
# Check Node Version
required_node_version=$(cat package.json | jq .volta.node | cut -c 2- | cut -d '.' -f 1) && \
current_major_node_version=$(node -v | cut -c 2- | cut -d '.' -f 1) && \
current_node_version=$(node -v | cut -c 2-) && \
[ "${current_major_node_version}" = "${required_node_version}" ] || \
{ \
printf >&2 "${RED_FG}✘ Wrong Node Version${YELLOW_FG} is installed!\n Version ${RED_FG}${required_node_version}${YELLOW_FG} is ${RED_FG}required${YELLOW_FG}.\n"; \
exit 1; \
} && \
printf >&2 "${GREEN_FG}✔ Node${BLUE_FG} Version ${GREEN_FG}${current_node_version}${BLUE_FG} is ${GREEN_FG}installed${BLUE_FG}.\n"
# Check NPM
command -v npm >/dev/null 2>&1 || \
{ \
printf >&2 "${RED_FG}✘ NPM${YELLOW_FG} is ${RED_FG}not installed${YELLOW_FG}!\n Install it via Volta.\n"; \
exit 1; \
}
printf >&2 "${GREEN_FG}✔ NPM${BLUE_FG} is ${GREEN_FG}installed${BLUE_FG}.\n"
# Check for Docker
command -v docker >/dev/null 2>&1 || \
{ \
printf >&2 "${RED_FG}✘ Docker${YELLOW_FG} is ${RED_FG}not installed${YELLOW_FG}!\n"; \
exit 1; \
}
printf >&2 "${GREEN_FG}✔ Docker${BLUE_FG} is ${GREEN_FG}installed${BLUE_FG}.\n"
# Check for Docker Compose
! docker compose version >/dev/null 2>&1 && \
{ \
printf >&2 "${RED_FG}✘ Docker Compose${YELLOW_FG} is ${RED_FG}not installed${YELLOW_FG}!\n"; \
exit 1; \
}
printf >&2 "${GREEN_FG}✔ Docker Compose${BLUE_FG} is ${GREEN_FG}installed${BLUE_FG}.\n"

View file

@ -1,11 +0,0 @@
#!/bin/bash
source bin/make/colors.sh
COLOR_HELP_GROUP=${COLOR_START}${COLOR_FG}${COLOR_BLUE}${COLOR_END}
COLOR_HELP_COMMAND=${COLOR_START}${COLOR_FG}${COLOR_GREEN}${COLOR_END}
COLOR_HELP_COMMAND_DESCRIPTION=${CLEAR}
grep -E '(^[a-zA-Z0-9_-]+:.*##.*$$)|(^##)' Makefile \
| awk "BEGIN {FS = \":.*?## \"}{printf \"${COLOR_MARKER}${COLOR_HELP_COMMAND}%-20s${COLOR_HELP_COMMAND_DESCRIPTION} %s\n\", \$1, \$2}" \
| sed -e "s/\\${COLOR_HELP_COMMAND}##/${COLOR_HELP_GROUP}/"

View file

@ -6,13 +6,9 @@ if (!ini_get('date.timezone')) {
} }
if (is_file(dirname(__DIR__).'/vendor/phpunit/phpunit/phpunit')) { if (is_file(dirname(__DIR__).'/vendor/phpunit/phpunit/phpunit')) {
if (PHP_VERSION_ID >= 80000) { define('PHPUNIT_COMPOSER_INSTALL', dirname(__DIR__).'/vendor/autoload.php');
require dirname(__DIR__).'/vendor/phpunit/phpunit/phpunit'; require PHPUNIT_COMPOSER_INSTALL;
} else { PHPUnit\TextUI\Command::main();
define('PHPUNIT_COMPOSER_INSTALL', dirname(__DIR__).'/vendor/autoload.php');
require PHPUNIT_COMPOSER_INSTALL;
PHPUnit\TextUI\Command::main();
}
} else { } else {
if (!is_file(dirname(__DIR__).'/vendor/symfony/phpunit-bridge/bin/simple-phpunit.php')) { 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"; echo "Unable to find the `simple-phpunit.php` script in `vendor/symfony/phpunit-bridge/bin/`.\n";

View file

@ -1,8 +1,9 @@
version: '3' version: '3'
services: services:
database: mysql:
image: docker.io/library/mysql:8.0 container_name: 'euph-website_mysql'
image: 'mysql:8.0'
ports: ports:
- '3306:3306' - '3306:3306'
volumes: volumes:

View file

@ -1,97 +1,104 @@
{ {
"type": "project", "type": "project",
"license": "proprietary", "license": "proprietary",
"minimum-stability": "stable", "minimum-stability": "stable",
"prefer-stable": true, "prefer-stable": true,
"require": { "require": {
"php": ">=8.1", "php": ">=8.2",
"ext-ctype": "*", "ext-ctype": "*",
"ext-iconv": "*", "ext-dom": "*",
"doctrine/doctrine-bundle": "^2.12", "ext-iconv": "*",
"doctrine/doctrine-migrations-bundle": "^3.3", "ext-simplexml": "*",
"doctrine/orm": "^3.0", "doctrine/doctrine-bundle": "^2.11",
"symfony/asset": "6.4.*", "doctrine/doctrine-migrations-bundle": "^3.3",
"symfony/console": "6.4.*", "doctrine/orm": "^2.17",
"symfony/dotenv": "6.4.*", "league/commonmark": "^2.4",
"symfony/flex": "^2", "presta/sitemap-bundle": "^4.1",
"symfony/form": "6.4.*", "symfony/apache-pack": "^1.0",
"symfony/framework-bundle": "6.4.*", "symfony/asset": "7.1.*",
"symfony/monolog-bundle": "^3.10", "symfony/console": "7.1.*",
"symfony/runtime": "6.4.*", "symfony/dotenv": "7.1.*",
"symfony/stimulus-bundle": "^2.12", "symfony/finder": "7.1.*",
"symfony/stopwatch": "6.4.*", "symfony/flex": "^2",
"symfony/twig-bundle": "6.4.*", "symfony/form": "7.1.*",
"symfony/uid": "6.4.*", "symfony/framework-bundle": "7.1.*",
"symfony/validator": "6.4.*", "symfony/monolog-bundle": "^3.0",
"symfony/webpack-encore-bundle": "^2.1", "symfony/runtime": "7.1.*",
"symfony/yaml": "6.4.*", "symfony/stimulus-bundle": "^2.12",
"twig/extra-bundle": "^2.12|^3.0", "symfony/twig-bundle": "7.1.*",
"twig/twig": "^2.12|^3.0", "symfony/uid": "7.1.*",
"webmozart/assert": "*" "symfony/validator": "7.1.*",
"symfony/webpack-encore-bundle": "^2.1",
"symfony/yaml": "7.1.*",
"twig/extra-bundle": "^3.8",
"twig/string-extra": "^3.8",
"vich/uploader-bundle": "^2.3",
"webmozart/assert": "^1.11"
},
"config": {
"allow-plugins": {
"php-http/discovery": true,
"symfony/flex": true,
"symfony/runtime": true,
"phpstan/extension-installer": true
}, },
"config": { "sort-packages": true
"allow-plugins": { },
"php-http/discovery": true, "autoload": {
"symfony/flex": true, "psr-4": {
"symfony/runtime": true, "App\\": "backend/"
"phpstan/extension-installer": true
},
"sort-packages": true
},
"autoload": {
"psr-4": {
"App\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"App\\Tests\\": "tests/",
"DoctrineFixtures\\": "fixtures/"
}
},
"replace": {
"symfony/polyfill-ctype": "*",
"symfony/polyfill-iconv": "*",
"symfony/polyfill-php72": "*",
"symfony/polyfill-php73": "*",
"symfony/polyfill-php74": "*",
"symfony/polyfill-php80": "*",
"symfony/polyfill-php81": "*"
},
"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": "6.4.*"
}
},
"require-dev": {
"dama/doctrine-test-bundle": "^8.0",
"doctrine/doctrine-fixtures-bundle": "^3.5",
"friendsofphp/php-cs-fixer": "^3.49",
"phpstan/extension-installer": "^1.3",
"phpstan/phpstan": "^1.10",
"phpstan/phpstan-phpunit": "^1.3",
"phpunit/phpunit": "^9.6",
"symfony/browser-kit": "6.4.*",
"symfony/css-selector": "6.4.*",
"symfony/debug-bundle": "6.4.*",
"symfony/phpunit-bridge": "^7.0",
"symfony/web-profiler-bundle": "6.4.*",
"vincentlanglet/twig-cs-fixer": "^2.4"
} }
},
"autoload-dev": {
"psr-4": {
"App\\Tests\\": "tests/",
"DoctrineFixtures\\": "fixtures/"
}
},
"replace": {
"symfony/polyfill-ctype": "*",
"symfony/polyfill-iconv": "*",
"symfony/polyfill-php72": "*",
"symfony/polyfill-php73": "*",
"symfony/polyfill-php74": "*",
"symfony/polyfill-php80": "*",
"symfony/polyfill-php81": "*"
},
"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": "7.1.*"
}
},
"require-dev": {
"dama/doctrine-test-bundle": "^8.0",
"doctrine/doctrine-fixtures-bundle": "^3.5",
"friendsofphp/php-cs-fixer": "^3.35",
"phpstan/extension-installer": "^1.3",
"phpstan/phpstan": "^1.10",
"phpstan/phpstan-phpunit": "^1.3",
"phpunit/phpunit": "^9.5",
"symfony/browser-kit": "7.1.*",
"symfony/css-selector": "7.1.*",
"symfony/debug-bundle": "7.1.*",
"symfony/phpunit-bridge": "^6.3",
"symfony/stopwatch": "7.1.*",
"symfony/web-profiler-bundle": "7.1.*",
"vincentlanglet/twig-cs-fixer": "^2.4"
}
} }

3689
app/composer.lock generated

File diff suppressed because it is too large Load diff

View file

@ -1,13 +1,10 @@
<?php <?php
declare(strict_types=1);
return [ return [
Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true], Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
Symfony\WebpackEncoreBundle\WebpackEncoreBundle::class => ['all' => true], Symfony\WebpackEncoreBundle\WebpackEncoreBundle::class => ['all' => true],
Symfony\UX\StimulusBundle\StimulusBundle::class => ['all' => true],
Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true], Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true],
Twig\Extra\TwigExtraBundle\TwigExtraBundle::class => ['all' => true], Symfony\UX\StimulusBundle\StimulusBundle::class => ['all' => true],
Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true], Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true],
Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true], Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true],
Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true], Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true],
@ -15,4 +12,7 @@ return [
Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true], Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true],
Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true], Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true],
DAMA\DoctrineTestBundle\DAMADoctrineTestBundle::class => ['test' => true], DAMA\DoctrineTestBundle\DAMADoctrineTestBundle::class => ['test' => true],
Vich\UploaderBundle\VichUploaderBundle::class => ['all' => true],
Twig\Extra\TwigExtraBundle\TwigExtraBundle::class => ['all' => true],
Presta\SitemapBundle\PrestaSitemapBundle::class => ['all' => true],
]; ];

View file

@ -1,11 +0,0 @@
<?php
declare(strict_types=1);
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
return static function (ContainerConfigurator $containerConfigurator): void {
$containerConfigurator->extension('framework', [
'cache' => null,
]);
};

View file

@ -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

View file

@ -1,15 +0,0 @@
<?php
declare(strict_types=1);
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
return static function (ContainerConfigurator $containerConfigurator): void {
if ($containerConfigurator->env() === 'test') {
$containerConfigurator->extension('dama_doctrine_test', [
'enable_static_connection' => true,
'enable_static_meta_data_cache' => true,
'enable_static_query_cache' => true,
]);
}
};

View file

@ -0,0 +1,5 @@
when@test:
dama_doctrine_test:
enable_static_connection: true
enable_static_meta_data_cache: true
enable_static_query_cache: true

View file

@ -1,13 +0,0 @@
<?php
declare(strict_types=1);
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
return static function (ContainerConfigurator $containerConfigurator): void {
if ($containerConfigurator->env() === 'dev') {
$containerConfigurator->extension('debug', [
'dump_destination' => 'tcp://%env(VAR_DUMPER_SERVER)%',
]);
}
};

View file

@ -0,0 +1,5 @@
when@dev:
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)%"

View file

@ -1,71 +0,0 @@
<?php
declare(strict_types=1);
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
return static function (ContainerConfigurator $containerConfigurator): void {
$containerConfigurator->extension('doctrine', [
'dbal' => [
'url' => '%env(resolve:DATABASE_URL)%',
'profiling_collect_backtrace' => '%kernel.debug%',
],
'orm' => [
'auto_generate_proxy_classes' => true,
'enable_lazy_ghost_objects' => true,
'report_fields_where_declared' => true,
'validate_xml_mapping' => true,
'naming_strategy' => 'doctrine.orm.naming_strategy.underscore_number_aware',
'auto_mapping' => true,
'mappings' => [
'App' => [
'type' => 'attribute',
'is_bundle' => false,
'dir' => '%kernel.project_dir%/src',
'prefix' => 'App',
'alias' => 'App',
],
],
],
]);
if ($containerConfigurator->env() === 'test') {
$containerConfigurator->extension('doctrine', [
'dbal' => [
'connections' => [
'default' => [
'dbname_suffix' => '%env(TEST_TOKEN)%',
'use_savepoints' => true,
],
],
],
]);
}
if ($containerConfigurator->env() === 'prod') {
$containerConfigurator->extension('doctrine', [
'orm' => [
'auto_generate_proxy_classes' => false,
'proxy_dir' => '%kernel.build_dir%/doctrine/orm/Proxies',
'query_cache_driver' => [
'type' => 'pool',
'pool' => 'doctrine.system_cache_pool',
],
'result_cache_driver' => [
'type' => 'pool',
'pool' => 'doctrine.result_cache_pool',
],
],
]);
$containerConfigurator->extension('framework', [
'cache' => [
'pools' => [
'doctrine.result_cache_pool' => [
'adapter' => 'cache.app',
],
'doctrine.system_cache_pool' => [
'adapter' => 'cache.system',
],
],
],
]);
}
};

View file

@ -0,0 +1,47 @@
doctrine:
dbal:
url: '%env(resolve:DATABASE_URL)%'
profiling_collect_backtrace: '%kernel.debug%'
orm:
auto_generate_proxy_classes: true
enable_lazy_ghost_objects: true
report_fields_where_declared: true
validate_xml_mapping: true
naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
auto_mapping: true
mappings:
App:
type: attribute
is_bundle: false
dir: '%kernel.project_dir%/backend'
prefix: 'App'
alias: App
when@test:
doctrine:
dbal:
# "TEST_TOKEN" is typically set by ParaTest
connections:
default:
dbname_suffix: '%env(TEST_TOKEN)%'
use_savepoints: true
when@prod:
doctrine:
orm:
auto_generate_proxy_classes: false
proxy_dir: '%kernel.build_dir%/doctrine/orm/Proxies'
query_cache_driver:
type: pool
pool: doctrine.system_cache_pool
result_cache_driver:
type: pool
pool: doctrine.result_cache_pool
framework:
cache:
pools:
doctrine.result_cache_pool:
adapter: cache.app
doctrine.system_cache_pool:
adapter: cache.system

View file

@ -1,14 +0,0 @@
<?php
declare(strict_types=1);
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
return static function (ContainerConfigurator $containerConfigurator): void {
$containerConfigurator->extension('doctrine_migrations', [
'migrations_paths' => [
'DoctrineMigrations' => '%kernel.project_dir%/migrations',
],
'enable_profiler' => false,
]);
};

View file

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

View file

@ -1,37 +1,28 @@
<?php <?php
declare(strict_types=1);
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symfony\Config\FrameworkConfig;
return static function (ContainerConfigurator $containerConfigurator): void { return static function (FrameworkConfig $framework, ContainerConfigurator $container): void {
$containerConfigurator->extension('framework', [
'secret' => '%env(APP_SECRET)%', $framework->secret('%env(APP_SECRET)%');
'http_method_override' => false, $framework->httpMethodOverride(false);
'handle_all_throwables' => true, $framework->handleAllThrowables(true);
'session' => [
'handler_id' => null, $framework->session()
'cookie_secure' => 'auto', ->handlerId(null)
'cookie_samesite' => 'lax', ->cookieSecure("auto")
'storage_factory_id' => 'session.storage.factory.native', ->cookieSamesite("lax")
], ->storageFactoryId("session.storage.factory.native");
'php_errors' => [
'log' => true, $framework->phpErrors(["log" => true]);
],
]); if ($container->env() === "test") {
if ($containerConfigurator->env() === 'test') { $framework->test(true);
$containerConfigurator->extension('framework', [ $framework->session()->storageFactoryId("session.storage.factory.mock_file");
'test' => true,
'session' => [
'storage_factory_id' => 'session.storage.factory.mock_file',
],
]);
} }
if ($containerConfigurator->env() === 'prod') {
$containerConfigurator->extension('framework', [ if ($container->env() === "prod") {
'session' => [ $framework->session()->handlerId('file://%kernel.project_dir%/var/sessions');
'handler_id' => 'file://%kernel_project_dir%/var/sessions',
],
]);
} }
}; };

View file

@ -1,96 +0,0 @@
<?php
declare(strict_types=1);
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
return static function (ContainerConfigurator $containerConfigurator): void {
$containerConfigurator->extension('monolog', [
'channels' => [
'deprecation',
],
]);
if ($containerConfigurator->env() === 'dev') {
$containerConfigurator->extension('monolog', [
'handlers' => [
'main' => [
'type' => 'stream',
'path' => '%kernel.logs_dir%/%kernel.environment%.log',
'level' => 'debug',
'channels' => [
'!event',
],
],
'console' => [
'type' => 'console',
'process_psr_3_messages' => false,
'channels' => [
'!event',
'!doctrine',
'!console',
],
],
],
]);
}
if ($containerConfigurator->env() === 'test') {
$containerConfigurator->extension('monolog', [
'handlers' => [
'main' => [
'type' => 'fingers_crossed',
'action_level' => 'error',
'handler' => 'nested',
'excluded_http_codes' => [
404,
405,
],
'channels' => [
'!event',
],
],
'nested' => [
'type' => 'stream',
'path' => '%kernel.logs_dir%/%kernel.environment%.log',
'level' => 'debug',
],
],
]);
}
if ($containerConfigurator->env() === 'prod') {
$containerConfigurator->extension('monolog', [
'handlers' => [
'main' => [
'type' => 'fingers_crossed',
'action_level' => 'error',
'handler' => 'nested',
'excluded_http_codes' => [
404,
405,
],
'buffer_size' => 50,
],
'nested' => [
'type' => 'stream',
'path' => '%kernel.logs_dir%/%kernel.environment%.log',
'level' => 'debug',
'formatter' => 'monolog.formatter.json',
],
'console' => [
'type' => 'console',
'process_psr_3_messages' => false,
'channels' => [
'!event',
'!doctrine',
],
],
'deprecation' => [
'type' => 'stream',
'channels' => [
'deprecation',
],
'path' => '%kernel.logs_dir%/%kernel.environment%.log',
],
],
]);
}
};

View file

@ -0,0 +1,53 @@
monolog:
channels:
- deprecation # Deprecations are logged in the dedicated "deprecation" channel when it exists
when@dev:
monolog:
handlers:
main:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.log"
level: debug
channels: [ "!event" ]
console:
type: console
process_psr_3_messages: false
channels: [ "!event", "!doctrine", "!console" ]
when@test:
monolog:
handlers:
main:
type: fingers_crossed
action_level: error
handler: nested
excluded_http_codes: [ 404, 405 ]
channels: [ "!event" ]
nested:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.log"
level: debug
when@prod:
monolog:
handlers:
main:
type: fingers_crossed
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"
level: debug
formatter: monolog.formatter.json
console:
type: console
process_psr_3_messages: false
channels: [ "!event", "!doctrine" ]
deprecation:
type: stream
channels: [ deprecation ]
path: "%kernel.logs_dir%/%kernel.environment%.log"

View file

@ -0,0 +1,2 @@
presta_sitemap:
default_section: default

View file

@ -1,20 +0,0 @@
<?php
declare(strict_types=1);
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
return static function (ContainerConfigurator $containerConfigurator): void {
$containerConfigurator->extension('framework', [
'router' => [
'utf8' => true,
],
]);
if ($containerConfigurator->env() === 'prod') {
$containerConfigurator->extension('framework', [
'router' => [
'strict_requirements' => null,
],
]);
}
};

View file

@ -0,0 +1,12 @@
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
when@prod:
framework:
router:
strict_requirements: null

View file

@ -1,16 +0,0 @@
<?php
declare(strict_types=1);
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
return static function (ContainerConfigurator $containerConfigurator): void {
$containerConfigurator->extension('twig', [
'default_path' => '%kernel.project_dir%/templates',
]);
if ($containerConfigurator->env() === 'test') {
$containerConfigurator->extension('twig', [
'strict_variables' => true,
]);
}
};

View file

@ -0,0 +1,6 @@
twig:
default_path: '%kernel.project_dir%/templates'
when@test:
twig:
strict_variables: true

View file

@ -1,14 +0,0 @@
<?php
declare(strict_types=1);
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
return static function (ContainerConfigurator $containerConfigurator): void {
$containerConfigurator->extension('framework', [
'uid' => [
'default_uuid_version' => 7,
'time_based_uuid_version' => 7,
],
]);
};

View file

@ -0,0 +1,4 @@
framework:
uid:
default_uuid_version: 7
time_based_uuid_version: 7

View file

@ -1,20 +0,0 @@
<?php
declare(strict_types=1);
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
return static function (ContainerConfigurator $containerConfigurator): void {
$containerConfigurator->extension('framework', [
'validation' => [
'email_validation_mode' => 'html5',
],
]);
if ($containerConfigurator->env() === 'test') {
$containerConfigurator->extension('framework', [
'validation' => [
'not_compromised_password' => false,
],
]);
}
};

View file

@ -0,0 +1,13 @@
framework:
validation:
email_validation_mode: html5
# Enables validator auto-mapping support.
# For instance, basic validation constraints will be inferred from Doctrine's metadata.
#auto_mapping:
# App\Entity\: []
when@test:
framework:
validation:
not_compromised_password: false

View file

@ -0,0 +1,81 @@
vich_uploader:
db_driver: orm
metadata:
type: attribute
mappings:
job_overview_picture:
uri_prefix: /assets/images/jobs/overview-picture
upload_destination: '%kernel.project_dir%/public/assets/images/jobs/overview-picture'
namer: Vich\UploaderBundle\Naming\SmartUniqueNamer
inject_on_load: false
delete_on_update: true
delete_on_remove: true
job_banner:
uri_prefix: /assets/images/jobs/banner
upload_destination: '%kernel.project_dir%/public/assets/images/jobs/banner'
namer: Vich\UploaderBundle\Naming\SmartUniqueNamer
inject_on_load: false
delete_on_update: true
delete_on_remove: true
job_video:
uri_prefix: /assets/videos/jobs
upload_destination: '%kernel.project_dir%/public/assets/videos/jobs'
namer: Vich\UploaderBundle\Naming\SmartUniqueNamer
inject_on_load: false
delete_on_update: true
delete_on_remove: true
job_video-thumbnail:
uri_prefix: /assets/videos/jobs/thumbnails
upload_destination: '%kernel.project_dir%/public/assets/videos/jobs/thumbnails'
namer: Vich\UploaderBundle\Naming\SmartUniqueNamer
inject_on_load: false
delete_on_update: true
delete_on_remove: true
event_video:
uri_prefix: /assets/videos/events
upload_destination: '%kernel.project_dir%/public/assets/videos/events'
namer: Vich\UploaderBundle\Naming\SmartUniqueNamer
inject_on_load: false
delete_on_update: true
delete_on_remove: true
event_video-thumbnail:
uri_prefix: /assets/videos/events/thumbnails
upload_destination: '%kernel.project_dir%/public/assets/videos/events/thumbnails'
namer: Vich\UploaderBundle\Naming\SmartUniqueNamer
inject_on_load: false
delete_on_update: true
delete_on_remove: true
asset:
uri_prefix: /assets/assets
upload_destination: '%kernel.project_dir%/public/assets/assets'
namer: Vich\UploaderBundle\Naming\SmartUniqueNamer
inject_on_load: false
delete_on_update: true
delete_on_remove: true
when@test:
vich_uploader:
mappings:
job_overview_picture:
delete_on_update: false
delete_on_remove: false
job_banner:
delete_on_update: false
delete_on_remove: false
job_video-thumbnail:
delete_on_update: false
delete_on_remove: false
job_video:
delete_on_update: false
delete_on_remove: false
event_video-thumbnail:
delete_on_update: false
delete_on_remove: false
event_video:
delete_on_update: false
delete_on_remove: false
asset:
delete_on_update: false
delete_on_remove: false

View file

@ -1,31 +0,0 @@
<?php
declare(strict_types=1);
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
return static function (ContainerConfigurator $containerConfigurator): void {
if ($containerConfigurator->env() === 'dev') {
$containerConfigurator->extension('web_profiler', [
'toolbar' => true,
'intercept_redirects' => false,
]);
$containerConfigurator->extension('framework', [
'profiler' => [
'only_exceptions' => false,
'collect_serializer_data' => true,
],
]);
}
if ($containerConfigurator->env() === 'test') {
$containerConfigurator->extension('web_profiler', [
'toolbar' => false,
'intercept_redirects' => false,
]);
$containerConfigurator->extension('framework', [
'profiler' => [
'collect' => false,
],
]);
}
};

View file

@ -0,0 +1,17 @@
when@dev:
web_profiler:
toolbar: true
intercept_redirects: false
framework:
profiler:
only_exceptions: false
collect_serializer_data: true
when@test:
web_profiler:
toolbar: false
intercept_redirects: false
framework:
profiler: { collect: false }

View file

@ -1,20 +0,0 @@
<?php
declare(strict_types=1);
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
return static function (ContainerConfigurator $containerConfigurator): void {
$containerConfigurator->extension('webpack_encore', [
'output_path' => '%kernel.project_dir%/public/build',
'script_attributes' => [
'defer' => true,
],
]);
$containerConfigurator->extension('framework', [
'assets' => [
'json_manifest_path' => '%kernel.project_dir%/public/build/manifest.json',
],
]);
};

View file

@ -0,0 +1,45 @@
webpack_encore:
# The path where Encore is building the assets - i.e. Encore.setOutputPath()
output_path: '%kernel.project_dir%/public/build'
# If multiple builds are defined (as shown below), you can disable the default build:
# output_path: false
# Set attributes that will be rendered on all script and link tags
script_attributes:
defer: true
# Uncomment (also under link_attributes) if using Turbo Drive
# https://turbo.hotwired.dev/handbook/drive#reloading-when-assets-change
# 'data-turbo-track': reload
# link_attributes:
# Uncomment if using Turbo Drive
# 'data-turbo-track': reload
# If using Encore.enableIntegrityHashes() and need the crossorigin attribute (default: false, or use 'anonymous' or 'use-credentials')
# crossorigin: 'anonymous'
# Preload all rendered script and link tags automatically via the HTTP/2 Link header
# preload: true
# Throw an exception if the entrypoints.json file is missing or an entry is missing from the data
# strict_mode: false
# If you have multiple builds:
# builds:
# frontend: '%kernel.project_dir%/public/frontend/build'
# pass the build name as the 3rd argument to the Twig functions
# {{ encore_entry_script_tags('entry1', null, 'frontend') }}
framework:
assets:
json_manifest_path: '%kernel.project_dir%/public/build/manifest.json'
#when@prod:
# webpack_encore:
# # Cache the entrypoints.json (rebuild Symfony's cache when entrypoints.json changes)
# # Available in version 1.2
# cache: true
#when@test:
# webpack_encore:
# strict_mode: false

View file

@ -1,7 +1,5 @@
<?php <?php
declare(strict_types=1); if (file_exists(dirname(__DIR__).'/var/cache/prod/App_KernelProdContainer.preload.php')) {
require dirname(__DIR__).'/var/cache/prod/App_KernelProdContainer.preload.php';
if (file_exists(dirname(__DIR__) . '/var/cache/prod/App_KernelProdContainer.preload.php')) {
require dirname(__DIR__) . '/var/cache/prod/App_KernelProdContainer.preload.php';
} }

View file

@ -1,9 +0,0 @@
<?php
declare(strict_types=1);
use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator;
return function (RoutingConfigurator $routes): void {
$routes->import('../src/*', 'attribute');
};

8
app/config/routes.yaml Normal file
View file

@ -0,0 +1,8 @@
controllers:
resource:
path: ../backend/
namespace: App
type: attribute
presta_sitemap:
resource: "@PrestaSitemapBundle/config/routing.yml"

View file

@ -1,13 +0,0 @@
<?php
declare(strict_types=1);
use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator;
return static function (RoutingConfigurator $routingConfigurator): void {
if ($routingConfigurator->env() === 'dev') {
$routingConfigurator->import('@FrameworkBundle/Resources/config/routing/errors.xml')
->prefix('/_error')
;
}
};

View file

@ -0,0 +1,4 @@
when@dev:
_errors:
resource: '@FrameworkBundle/Resources/config/routing/errors.xml'
prefix: /_error

View file

@ -1,16 +0,0 @@
<?php
declare(strict_types=1);
use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator;
return static function (RoutingConfigurator $routingConfigurator): void {
if ($routingConfigurator->env() === 'dev') {
$routingConfigurator->import('@WebProfilerBundle/Resources/config/routing/wdt.xml')
->prefix('/_wdt')
;
$routingConfigurator->import('@WebProfilerBundle/Resources/config/routing/profiler.xml')
->prefix('/_profiler')
;
}
};

View file

@ -0,0 +1,8 @@
when@dev:
web_profiler_wdt:
resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml'
prefix: /_wdt
web_profiler_profiler:
resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml'
prefix: /_profiler

View file

@ -2,9 +2,16 @@
declare(strict_types=1); declare(strict_types=1);
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; namespace Symfony\Component\DependencyInjection\Loader\Configurator;
return function (ContainerConfigurator $container): void { use App\Markdown\CommonMarkMarkdownParserAdapter;
use App\Markdown\MarkdownParserInterface;
use App\Security\User;
use App\StaticData\StaticDataService;
use League\CommonMark\CommonMarkConverter;
use League\CommonMark\MarkdownConverter;
return function(ContainerConfigurator $container): void {
$services = $container->services() $services = $container->services()
->defaults() ->defaults()
->autowire() ->autowire()
@ -12,7 +19,11 @@ return function (ContainerConfigurator $container): void {
; ;
$services $services
->load('App\\', '../src/') ->load('App\\', '../backend/')
->exclude('../src/{DependencyInjection,Entity,Kernel.php}') ->exclude('../backend/{DependencyInjection,Entity,Kernel.php}')
; ;
$services->set(CommonMarkConverter::class);
$services->alias(MarkdownConverter::class, CommonMarkConverter::class);
$services->alias(MarkdownParserInterface::class, CommonMarkMarkdownParserAdapter::class);
}; };

View file

@ -4,8 +4,8 @@ declare(strict_types=1);
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
return function (ContainerConfigurator $container): void { return static function (ContainerConfigurator $containerConfigurator): void {
$services = $container->services() $services = $containerConfigurator->services()
->defaults() ->defaults()
->autowire() ->autowire()
->autoconfigure() ->autoconfigure()

View file

@ -4,8 +4,8 @@ declare(strict_types=1);
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
return function (ContainerConfigurator $container): void { return static function (ContainerConfigurator $containerConfigurator): void {
$services = $container->services() $services = $containerConfigurator->services()
->defaults() ->defaults()
->autowire() ->autowire()
->autoconfigure() ->autoconfigure()

View file

@ -44,4 +44,4 @@
"@typescript-eslint/ban-tslint-comment": "off", "@typescript-eslint/ban-tslint-comment": "off",
"@typescript-eslint/no-non-null-assertion": "off" "@typescript-eslint/no-non-null-assertion": "off"
} }
} }

Some files were not shown because too many files have changed in this diff Show more