Skip to content

Upgrade/php85 symfony74 - #88

Merged
floriancerizay merged 24 commits into
masterfrom
upgrade/php85-symfony74
Oct 2, 2026
Merged

floriancerizay merged 24 commits into
masterfrom
upgrade/php85-symfony74

Conversation

@floriancerizay

Copy link
Copy Markdown
Collaborator

Description

Type de pull request

  • correction de bug
  • nouvelle fonctionnalité
  • mise à jour de dépendance
  • mise à jour du style (formatage, renommage)
  • refactoring (pas de changement fonctionnel)
  • changement lié au build
  • contenu de la documentation
  • autre changement (détaillez ici)
  • je ne suis pas sûr

Est-ce que vous introduisez des changements cassants ?

  • Oui
  • Non
  • Je ne suis pas sûr (nous allons vérifier)

Checklist

  • Je comprends et accepte que les changements dans cette PR seront sous licence AGPL 3
  • J'ai suivi les règles de contribution, notamment en ce qui concerne le numéro de version de l'API
  • J'ai mis à jour les tests et la documentation et les tests passent en local

floriancerizay and others added 23 commits September 14, 2026 11:17
Move the Dockerfile to the project root and consolidate the various
helper shell scripts (application.sh, archive.sh, loop-validate.sh)
under bin/. Drop download-validator.sh, now handled by a composer
post-install-cmd. Add compose.override.yaml and a Doctrine-managed
database service to docker-compose.yml.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…Serializer 5

Bump composer dependencies (PHP ^8.5, Symfony 7.4.*, doctrine/orm ^3.7,
jms/serializer-bundle ^5.0, phpunit ^11, phpstan ^2) and update code and
config accordingly: annotations replaced by PHP attributes for routes,
Doctrine entity mapping and console commands; Doctrine ORM 3 query
builder API (setParameter, SortDirection); removal of the deprecated
getDoctrine() controller helper in favor of injected EntityManagerInterface;
Kernel routing configurator update; phpunit/phpstan config updated for
their new major versions.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Update @ignf/validator-client to v0.5.9 and copy-webpack-plugin to v14,
and rebuild the vendored validator-client.js bundle and style-carto.css
accordingly.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The validator-cli.jar writes a document-info.json file alongside
validation.jsonl when the "normalize" argument is enabled. Parse it
into a new nullable documentInfo field on the Validation entity, so
it is served as document_info by the existing API responses, the
same way results already is.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…orts, unused code, exit expressions)

Import DateTime/Exception/RuntimeException/ZipArchive/SplFileObject
instead of referencing them by fully-qualified name; drop unused command
parameters where possible; return the exit code from ProcessOneCommand's
handleSignal() instead of calling exit() directly, letting Symfony's
Console Application terminate the process; drop the dead exit() call in
CsvReportWriter's error-control operator and unused $csvName loop
variable; actually apply PdfReportWriter's intended error/warning/info
group ordering instead of leaving $order unused; avoid the $_ENV
superglobal in ValidatorCLI (Symfony's Process already merges the
current environment); suppress the false-positive UndefinedVariable
finding on Response::$statusTexts static property access.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Move the logs/results.csv/results.pdf/files.normalized/files.source
endpoints (and their shared getDownloadResponse() helper) into a new
ValidationFilesController, leaving ValidationsController with only the
CRUD endpoints. This brings ValidationsController's phpmd coupling
metric back under threshold after EntityManagerInterface was injected
directly (Symfony 7 removed the getDoctrine() helper).

Also fix ValidationsController's stale SerializerInterface type-hint:
toArray() is declared on JMS's ArrayTransformerInterface, not
SerializerInterface, which phpstan started flagging once JMS Serializer
5 tightened this interface split. Drop the now-unused Filesystem
dependency in favor of plain unlink()/file_exists(), and shorten the
$mimeTypeGuesserService property name to fit phpmd's LongVariable rule.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Move all local working-directory and persisted-storage file operations
(staging the uploaded zip, unzipping, zipping normalized results, saving
output to storage, removing local/persisted files) into a new
ValidationWorkspace collaborator. This drops ValidationManager's direct
dependency on Filesystem, ZipArchive, Process/ProcessFailedException and
ValidationsStorage, bringing its phpmd coupling metric back under
threshold.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…lient bundle

@ignf/validator-client v0.5.9 switched its webpack build from a single
bundle to code-splitting (runtimeChunk: 'single' + a vendors cache
group), so validator-client.js alone no longer defines the global
`validator` object referenced by demo.js -- causing "Uncaught
ReferenceError: validator is not defined" in the browser and leaving
the demo stuck on "Chargement...".

Add the missing runtime.validator-client.js and vendors.validator-client.js
script tags before validator-client.js, matching the load order used by
the client package's own reference public/index.html. Also commit the
regenerated chunk files and style-carto.css produced by the current
v0.5.9 build (the previously committed validator-client.js was a stale
single-bundle build predating this code-split).

Verified by loading the running dev server page through jsdom: `validator`
is now defined and the React demo app renders into #demo-wrapper with no
console errors.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@floriancerizay
floriancerizay force-pushed the upgrade/php85-symfony74 branch from c34af51 to c24373d Compare October 2, 2026 12:44
@floriancerizay
floriancerizay merged commit 2a11581 into master Oct 2, 2026
4 of 7 checks passed
@floriancerizay
floriancerizay deleted the upgrade/php85-symfony74 branch October 8, 2026 08:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant