feat: #3625568 "Add GitLab CI using the Drupal Association templates, with PostGIS support for tests"

Closes #3625568

This MR adds GitLab CI based on the Drupal Association templates. The pipeline runs on PostgreSQL 18, and the PHPUnit job swaps the templates' database image for postgis/postgis:18-3.6, because the templates' image has no PostGIS. The alias and credentials stay the same. A minimal composer.json declares drupal/eca and drupal/geofield, since the templates read dependencies only from composer.json. A module phpstan.neon raises PHPStan to level 6 and scans geoPHP, whose global classes Composer cannot autoload. .cspell-project-words.txt adds the project's technical terms. All existing phpcs, PHPStan level 6 and CSpell findings are fixed.

Along the way it fixes three issues. The referencing entities action now has config schema for extra_entity_fields and spatial_operator. The class comments no longer name the wrong spatial operator. queryContainedEntities() now always relates the target geometry to the polygon, so ST_Within and ST_CoveredBy match targets inside the polygon instead of the reverse. A new Kernel test covers this, and saved models that use either operator will behave differently. It also adds a tool-agnostic AGENTS.md and updates the README and docs/ for all four actions and ECA 3. All 34 tests pass locally against both the DDEV database and the same postgis/postgis image the pipeline uses. The pipeline itself has not run on drupal.org yet.

Merge request reports

Loading
Loading