diff --git a/.ddev/config.yaml b/.ddev/config.yaml index 8726fdc..fe8f087 100644 --- a/.ddev/config.yaml +++ b/.ddev/config.yaml @@ -1,3 +1,4 @@ +name: myep-team type: php docroot: public php_version: "8.4" @@ -6,8 +7,20 @@ xdebug_enabled: false additional_hostnames: [] additional_fqdns: [] database: - type: mysql - version: "8.4" + type: mariadb + version: "11.8" +hooks: + # The agent hooks in config.codex-claude.yaml are merged with these, not replaced by them. + post-start: + # ddev creates "db" alone, so the test database has to be created and granted here. + # Without it the first test run after a fresh start fails with "Access denied for user + # 'db'@'%' to database 'db_test'". + - exec: mysql -uroot -proot -hdb -e "CREATE DATABASE IF NOT EXISTS db_test CHARACTER SET utf8mb4; GRANT ALL ON db_test.* TO 'db'@'%';" + # Schema from the entity mapping, never from the migrations: the squashed history is not + # replayable from an empty database (Version20260824124850 alters a table that + # Version20260901090029 only creates later). No fixtures - a test persists its own rows. + - exec: php bin/console doctrine:schema:update --force --env=test --no-interaction +omit_containers: [ddev-ssh-agent] use_dns_when_possible: true timezone: Europe/Berlin composer_version: "2" @@ -15,8 +28,6 @@ web_environment: [] nodejs_version: "18" corepack_enable: false disable_upload_dirs_warning: true -omit_containers: [ddev-ssh-agent] - xhgui_https_port: "8142" xhgui_http_port: "8143" @@ -27,16 +38,16 @@ xhgui_http_port: "8143" # If the name is omitted, the project will take the name of the enclosing directory, # which is useful if you want to have a copy of the project side by side with this one. -# type: # backdrop, cakephp, craftcms, drupal, drupal6, drupal7, drupal8, drupal9, drupal10, drupal11, generic, laravel, magento, magento2, php, shopware6, silverstripe, symfony, typo3, wordpress +# type: # asterios, backdrop, cakephp, codeigniter, craftcms, drupal, drupal6, drupal7, drupal8, drupal9, drupal10, drupal11, drupal12, generic, joomla, laravel, magento, magento2, maho, modx, php, shopware6, silverstripe, symfony, typo3, wordpress, wp-bedrock # See https://docs.ddev.com/en/stable/users/quickstart/ for more # information on the different project types # docroot: # Relative path to the directory containing index.php. -# php_version: "8.3" # PHP version to use, "5.6" through "8.5" +# php_version: "8.4" # PHP version to use, "5.6" through "8.5" # You can explicitly specify the webimage but this -# is not recommended, as the images are often closely tied to DDEV's' behavior, +# is not recommended, as the images are often closely tied to DDEV's behavior, # so this can break upgrades. # webimage: @@ -46,10 +57,18 @@ xhgui_http_port: "8143" # database: # type: # mysql, mariadb, postgres # version: # database version, like "10.11" or "8.0" -# MariaDB versions can be 5.5-10.8, 10.11, 11.4, 11.8 -# MySQL versions can be 5.5-8.0, 8.4 +# MariaDB versions can be 5.5-10.8, 10.11, 11.4, 11.8, 12.3 +# MySQL versions can be 5.5-8.0, 8.4, 9.7 # PostgreSQL versions can be 9-18 +# You can explicitly specify the dbimage but this +# is not recommended, as the images are often closely tied to DDEV's behavior, +# so this can break upgrades. + +# dbimage: +# It’s unusual to change this option, and we don’t recommend it without Docker experience and a good reason. +# Typically, this means additions to the existing db image using a .ddev/db-build/Dockerfile.* + # router_http_port: # Port to be used for http (defaults to global configuration, usually 80) # router_https_port: # Port for https (defaults to global configuration, usually 443) @@ -69,8 +88,7 @@ xhgui_http_port: "8143" # bind_all_ports is used (normally with router disabled) # xhprof_mode: [prepend|xhgui|global] -# Set to "xhgui" to enable XHGui features -# "xhgui" will become default in a future major release +# Default is "xhgui" # webserver_type: nginx-fpm, apache-fpm, generic @@ -88,22 +106,24 @@ xhgui_http_port: "8143" # commands are executed. # composer_version: "2" -# You can set it to "" or "2" (default) for Composer v2 or "1" for Composer v1 +# You can set it to "" or "2" (default) for Composer v2 # to use the latest major version available at the time your container is built. -# It is also possible to use each other Composer version channel. This includes: +# It is also possible to use any other Composer version channel. This includes: # - 2.2 (latest Composer LTS version) # - stable # - preview # - snapshot # Alternatively, an explicit Composer version may be specified, for example "2.2.18". -# To reinstall Composer after the image was built, run "ddev debug rebuild". +# To reinstall Composer after the image was built, run "ddev utility rebuild". -# nodejs_version: "22" +# nodejs_root: +# Relative path to the directory containing the Node.js version file from the +# project root. Only used with "nodejs_version: auto" or "nodejs_version: engine". + +# nodejs_version: "24" # change from the default system Node.js version to any other version. # See https://docs.ddev.com/en/stable/users/configuration/config/#nodejs_version for more information -# and https://www.npmjs.com/package/n#specifying-nodejs-versions for the full documentation, -# Note that using of 'ddev nvm' is discouraged because "nodejs_version" is much easier to use, -# can specify any version, and is more robust than using 'nvm'. +# and https://www.npmjs.com/package/n#specifying-nodejs-versions for the full documentation. # corepack_enable: false # Change to 'true' to 'corepack enable' and gain access to latest versions of yarn/pnpm @@ -163,9 +183,7 @@ xhgui_http_port: "8143" # - "global": uses the value from the global config. # - "none": disables performance optimization for this project. # - "mutagen": enables Mutagen for this project. -# - "nfs": enables NFS for this project. # -# See https://docs.ddev.com/en/stable/users/install/performance/#nfs # See https://docs.ddev.com/en/stable/users/install/performance/#mutagen # fail_on_hook_fail: False @@ -195,10 +213,10 @@ xhgui_http_port: "8143" # The mailpit port is not normally bound on the host at all, instead being routed # through ddev-router, but it can be bound directly to localhost if specified here. -# webimage_extra_packages: [php7.4-tidy, php-bcmath] +# webimage_extra_packages: ['php${DDEV_PHP_VERSION}-tidy', 'php${DDEV_PHP_VERSION}-yac'] # Extra Debian packages that are needed in the webimage can be added here -# dbimage_extra_packages: [telnet,netcat] +# dbimage_extra_packages: [netcat, telnet, sudo] # Extra Debian packages that are needed in the dbimage can be added here # use_dns_when_possible: true @@ -210,12 +228,15 @@ xhgui_http_port: "8143" # project_tld: ddev.site # The top-level domain used for project URLs # The default "ddev.site" allows DNS lookup via a wildcard -# If you prefer you can change this to "ddev.local" to preserve -# pre-v1.9 behavior. -# ngrok_args: --basic-auth username:pass1234 -# Provide extra flags to the "ngrok http" command, see -# https://ngrok.com/docs/agent/config/v3/#agent-configuration or run "ngrok http -h" +# share_default_provider: ngrok +# The default share provider to use for "ddev share" +# Defaults to global configuration, usually "ngrok" +# Can be "ngrok" or "cloudflared" or the name of a custom provider from .ddev/share-providers/ + +# share_provider_args: --basic-auth username:pass1234 +# Provide extra flags to the share provider script +# See https://docs.ddev.com/en/stable/users/configuration/config/#share_provider_args # disable_settings_management: false # If true, DDEV will not create CMS-specific settings files like @@ -277,7 +298,7 @@ xhgui_http_port: "8143" # override_config: false # By default, config.*.yaml files are *merged* into the configuration # But this means that some things can't be overridden -# For example, if you have 'use_dns_when_possible: true'' you can't override it with a merge +# For example, if you have 'use_dns_when_possible: true' you can't override it with a merge # and you can't erase existing hooks or all environment variables. # However, with "override_config: true" in a particular config.*.yaml file, # 'use_dns_when_possible: false' can override the existing values, and @@ -287,7 +308,7 @@ xhgui_http_port: "8143" # web_environment: [] # or # additional_hostnames: [] -# can have their intended affect. 'override_config' affects only behavior of the +# can have their intended effect. 'override_config' affects only behavior of the # config.*.yaml file it exists in. # Many DDEV commands can be extended to run tasks before or after the diff --git a/.env b/.env index 5b250b9..c2f125d 100644 --- a/.env +++ b/.env @@ -27,7 +27,10 @@ APP_SECRET=b3cb0285aea14bbffb57df0cc3aa84f4 # DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=8.0.32&charset=utf8mb4" # DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=10.11.2-MariaDB&charset=utf8mb4" # DATABASE_URL="postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=15&charset=utf8" -DATABASE_URL="mysql://db:db@db:3306/db?serverVersion=8.4.5&charset=utf8mb4" +# ddev runs MariaDB to match production. The serverVersion is what makes DBAL pick its +# MariaDB platform - left at a MySQL version it speaks MySQL to a MariaDB server, and the +# test suite then runs against a different platform than production. +DATABASE_URL="mysql://db:db@db:3306/db?serverVersion=mariadb-11.8.9&charset=utf8mb4" ###< doctrine/doctrine-bundle ### ###> symfony/messenger ###