The SplendidBear website
Back to Blog

Upgrade to Symfony 8.1 & forgetting the Google ReCaptcha

upgradecaptchasymfonyreact-admin
Upgrade to Symfony 8.1 & forgetting the Google ReCaptcha

Source of image: https://interskills.fr

The SplendidBear website

New version has been released on the backend's engine, the Favicon of url symfony.comSymfony 8.1. So, I decided that, I am going to do my first upgrade on my portfolio projects.

AreaPackage GroupBeforeAfterNotes
JS (Admin)TanStack Query@tanstack/query-core ^5.100.10<br>@tanstack/react-query 5.100.10@tanstack/query-core ^5.100.14<br>@tanstack/react-query 5.100.14Query stack upgraded
JS (Admin)React Admin + Routerreact-admin ^5.14.6<br>react-router ^7.15.1<br>react-router-dom ^7.15.1react-admin 5.14.6<br>react-router 7.15.1<br>react-router-dom 7.15.1Pinned to exact versions to avoid router-context mismatch
JS (Admin)RA i18n packagesra-i18n-polyglot ^5.14.6<br>ra-language-english ^5.14.6ra-i18n-polyglot 5.14.6<br>ra-language-english 5.14.6Pinned for consistency with react-admin
JS (Admin)UI + tooling bumpsMUI X (9.2.0 / 8.28.5), @uiw/react-md-editor ^4.1.0, date-fns ^4.1.0, react/react-dom ^19.2.6, react-hook-form ^7.76.0, eslint 10.4.0, sass ^1.99.0, vite ^8.0.13MUI X (9.3.0 / 8.28.7), @uiw/react-md-editor ^4.1.1, date-fns ^4.4.0, react/react-dom ^19.2.7, react-hook-form ^7.77.0, eslint 10.4.1, sass ^1.100.0, vite ^8.0.16General frontend refresh
PHP (Composer constraints)Symfony line8.*8.1.*Applied across Symfony packages + extra.symfony.require
PHP (Lockfile resolved)API Platform4.3.54.3.7Full API Platform 4.3 patch-line bump
PHP (Lockfile resolved)AWS SDK3.381.23.383.1Latest 3.x patch update
PHP (Lockfile resolved)Doctrine ORM3.6.53.6.7Patch update
PHP (Lockfile resolved)WebAuthn lib5.3.25.3.5Patch update
ConfigLiipImaginedefaultliip_imagine.twig.mode: lazyAdded to avoid deprecated templating mode noise

Firstly I upgraded the Symfony engine from 8.0 to 8.1 with a simple composer command

bash
1$ composer update "symfony/*" --with-all-dependencies

After making sure that the upgrade was successful without any regression, I upgraded all other packages to the latest available version.

bash
1$ composer up

After that the backend's status is clear.

bash
1$ composer outdated
2Color legend:
3- patch or minor release available - update recommended
4- major release available - update possible
5
6Direct dependencies required in composer.json:
7Everything up to date
8
9Transitive dependencies not required in composer.json:
10doctrine/collections 2.6.0 3.1.0 PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.

Meanwhile Favicon of url marmelab.comMarmelab's react-admin is often Favicon of url github.comupdated. I did not want to forgot the frontend too. The result is below. Some packages cannot be upgraded because we are waiting for the new major of react-admin.

bash
1$ bun outdated
2bun outdated v1.3.14 (0d9b296a)
3[0.08ms] ".env"
4┌─────────────────────┬─────────┬────────┬────────┐
5│ Package             │ Current │ Update │ Latest │
6├─────────────────────┼─────────┼────────┼────────┤
7│ @mui/icons-material │ 7.3.11  │ 7.3.11 │ 9.0.1  │
8├─────────────────────┼─────────┼────────┼────────┤
9│ @mui/material       │ 7.3.11  │ 7.3.11 │ 9.0.1  │
10├─────────────────────┼─────────┼────────┼────────┤
11│ @mui/system         │ 7.3.11  │ 7.3.11 │ 9.0.1  │
12├─────────────────────┼─────────┼────────┼────────┤
13│ @mui/utils          │ 7.3.11  │ 7.3.11 │ 9.0.1  │
14├─────────────────────┼─────────┼────────┼────────┤
15│ @mui/x-date-pickers │ 8.28.7  │ 8.28.7 │ 9.3.0  │
16├─────────────────────┼─────────┼────────┼────────┤
17│ ra-i18n-polyglot    │ 5.14.6  │ 5.14.6 │ 5.14.7 │
18├─────────────────────┼─────────┼────────┼────────┤
19│ ra-language-english │ 5.14.6  │ 5.14.6 │ 5.14.7 │
20├─────────────────────┼─────────┼────────┼────────┤
21│ react-admin         │ 5.14.6  │ 5.14.6 │ 5.14.7 │
22├─────────────────────┼─────────┼────────┼────────┤
23│ react-router        │ 7.15.1  │ 7.15.1 │ 7.16.0 │
24├─────────────────────┼─────────┼────────┼────────┤
25│ react-router-dom    │ 7.15.1  │ 7.15.1 │ 7.16.0 │
26└─────────────────────┴─────────┴────────┴────────┘

The website's Favicon of url nextjs.orgNext.js engine did not changed too much, only some minor updates has been came in the last few weeks. After I upgraded it w/ bun it is on the latest version just like the backend.

The MineSeeker Game

I migrated the last pain-in-the-*ss of the project: the Favicon of url developers.google.comGoogle ReCaptcha v3 to an open-source, self-hostable & more reliable service: the Favicon of url trycap.devCap. The dependency managers' output speaks for themself. The Symfony is on its latest LTS, but I think I am going to upgrade to the latest mainstream version when I have enough time.

bash
1$ bun outdated
2bun outdated v1.3.14 (0d9b296a)
3[0.03ms] ".env"
4
5$ bun run lint
6$ eslint assets/js/
7
8$ composer outdated
9Color legend:
10- patch or minor release available - update recommended
11- major release available - update possible
12
13Direct dependencies required in composer.json:
14symfony/browser-kit          7.4.8  8.1.0 Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically
15symfony/console              7.4.13 8.1.0 Eases the creation of beautiful and testable command line interfaces
16symfony/css-selector         7.4.9  8.1.0 Converts CSS selectors to XPath expressions
17symfony/dotenv               7.4.11 8.1.0 Registers environment variables from a .env file
18symfony/form                 7.4.9  8.1.0 Allows to easily create, process and reuse HTML forms
19symfony/framework-bundle     7.4.13 8.1.0 Provides a tight integration between Symfony components and the Symfony full-stack framework
20symfony/http-client          7.4.13 8.1.0 Provides powerful methods to fetch HTTP resources synchronously or asynchronously
21symfony/mailer               7.4.12 8.1.0 Helps sending emails
22symfony/security-bundle      7.4.13 8.1.0 Provides a tight integration of the Security component into the Symfony full-stack framework
23symfony/stopwatch            7.4.8  8.1.0 Provides a way to profile code
24symfony/translation          7.4.10 8.1.0 Provides tools to internationalize your application
25symfony/twig-bundle          7.4.8  8.1.0 Provides a tight integration of Twig into the Symfony full-stack framework
26symfony/validator            7.4.10 8.1.0 Provides tools to validate values
27symfony/web-profiler-bundle  7.4.13 8.1.0 Provides a development tool that gives detailed information about the execution of any request
28symfony/yaml                 7.4.13 8.1.0 Loads and dumps YAML files
29
30Transitive dependencies not required in composer.json:
31doctrine/collections         2.6.0  3.1.0 PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.
32symfony/asset                7.4.8  8.1.0 Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files
33symfony/cache                7.4.13 8.1.0 Provides extended PSR-6, PSR-16 (and tags) implementations
34symfony/clock                7.4.8  8.1.0 Decouples applications from the system clock
35symfony/config               7.4.10 8.1.0 Helps you find, load, combine, autofill and validate configuration values of any kind
36symfony/dependency-injection 7.4.13 8.1.0 Allows you to standardize and centralize the way objects are constructed in your application
37symfony/doctrine-bridge      7.4.9  8.1.0 Provides integration for Doctrine with various Symfony components
38symfony/dom-crawler          7.4.12 8.1.0 Eases DOM navigation for HTML and XML documents
39symfony/error-handler        7.4.8  8.1.0 Provides tools to manage errors and ease debugging PHP code
40symfony/event-dispatcher     7.4.9  8.1.0 Provides tools that allow your application components to communicate with each other by dispatching events and listening to them
41symfony/filesystem           7.4.11 8.1.0 Provides basic utilities for the filesystem
42symfony/finder               7.4.8  8.1.0 Finds files and directories via an intuitive fluent interface
43symfony/http-foundation      7.4.13 8.1.0 Defines an object-oriented layer for the HTTP specification
44symfony/http-kernel          7.4.13 8.1.0 Provides a structured process for converting a Request into a Response
45symfony/mime                 7.4.13 8.1.0 Allows manipulating MIME messages
46symfony/monolog-bridge       7.4.12 8.1.0 Provides integration for Monolog with various Symfony components
47symfony/options-resolver     7.4.8  8.1.0 Provides an improved replacement for the array_replace PHP function
48symfony/password-hasher      7.4.8  8.1.0 Provides password hashing utilities
49symfony/process              7.4.13 8.1.0 Executes commands in sub-processes
50symfony/property-access      7.4.8  8.1.0 Provides functions to read and write from/to an object or array using a simple string notation
51symfony/property-info        7.4.8  8.1.0 Extracts information about PHP class' properties using metadata of popular sources
52symfony/routing              7.4.13 8.1.0 Maps an HTTP request to a set of configuration variables
53symfony/security-core        7.4.13 8.1.0 Symfony Security Component - Core Library
54symfony/security-csrf        7.4.8  8.1.0 Symfony Security Component - CSRF Library
55symfony/security-http        7.4.13 8.1.0 Symfony Security Component - HTTP Integration
56symfony/serializer           7.4.10 8.1.0 Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.
57symfony/string               7.4.13 8.1.0 Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way
58symfony/twig-bridge          7.4.12 8.1.0 Provides integration for Twig with various Symfony components
59symfony/type-info            7.4.9  8.1.0 Extracts PHP types information.
60symfony/uid                  7.4.9  8.1.0 Provides an object-oriented API to generate and represent UIDs
61symfony/var-dumper           7.4.8  8.1.0 Provides mechanisms for walking through any arbitrary PHP variable
62symfony/var-exporter         7.4.9  8.1.0 Allows exporting any serializable PHP data structure to plain PHP code
63symfony/web-link             7.4.8  8.1.0 Manages links between resources

Cheers! 🚀 🎉

— Lang