new mariadb optimizes subqueries, which prevents using trick to get required row when grouping by multiple rows, and you need specific row to show after applying group by

when using queries like:

SELECT * FROM (
    SELECT ... FROM table ORDER BY column DESC
)
GROUP BY some_field

to fix that, before this query set following option:

SET SESSION optimizer_switch='derived_merge=off';

this would allow sorting group by query by required column, and in turn provide us witch correct results

when using symfony’s framework.ide integration, and it is not working, does not open anyting without error, make sure that after installation and correct setup of required:

https://github.com/sanduhrs/phpstorm-url-handler

make sure that you can run phpstorm by executing in command line:

phpstorm

it’s required, because phpstorm url handler integration, runs this command to open required file

to set up this CLI command, in PhpStorm, open Tools / Create Command Line Launcher…

if you are using JetBrains toolkit, open it, click gear near PhpStorm, go to settings, click enable near shell integration, next, turn on shell toggle

example configuration of framework.ide configuration in symfony config:

framework:
    ide: 'phpstorm://open?file=%%f&line=%%l&/var/www/html/>/home/u/PhpstormProjects/YOUR_PROJECT_DIR_HERE/'

Remove / ignore prefix with database name while autocomplete of SQL, when having multiple databases in PhpStorm / Idea, so that code completion do not prefix table names with database name

Open IDE and go to:

File | Settings | Languages & Frameworks | SQL Resolution Scopes

Set default project mapping to single database or set different database, on specific directories inside project

In case after this change Jetbrains IDE does not recognize table names and columns, try to click ALT + ENTER and try to execute “Run query in console” inside database you want, this should fix issue

Second option is to remove database prefixes in:

File | Settings | Editor | General | Smart Keys | SQL

Change “On Collisions” setting in for Table, in qualify settings

when running phpunit test inside docker using remote interpreter, various cache files have wrong permissions, because phpstorm runs phpunit as default user, in this case root, so cache files are created with root user, and this makes permission issues, to fix that for development you can do this:

if (0 === \posix_geteuid()) {
    \umask(0000);
}

which detects that user is root (check for zero), and sets umask(0000)

in symfony you can put this in config/bootstrap.php

if ($_SERVER['APP_DEBUG'] && 0 === \posix_geteuid()) {
    \umask(0000);
}