Upgrades voor Symfony-applicaties met API Platform en Doctrine, tegen een vaste prijs
Symfony 5.4 of 6.4 naar 7.4, API Platform 2 of 3 naar 4, Doctrine ORM 2 naar 3, annotations naar attributes. Elke stap is een aparte pull request die zelfstandig live kan. Jij houdt je repository, wij werken via PR's.
Waarom de upgrade steeds wordt uitgesteld
Symfony zelf upgraden is zelden het probleem: 7.4 naar 8 is vooral deprecations wegwerken. Het werk zit in de laag eromheen. API Platform 2 en 3 naar 4 betekent data providers herschrijven naar state providers en processors. Doctrine ORM 2 naar 3 en annotations naar attributes raken elke entity. Verlaten bundles zoals SensioFrameworkExtra, security-guard, Swiftmailer en FOSRest hebben geen upgradepad, alleen een vervanger. Dat is architectuurwerk, niet iets wat Rector voor je oplost. Het is precies het werk dat wij doen.
Wat er op de klok staat
Bugfixes stoppen in november 2026. Security-fixes lopen door tot november 2027.
Security-ondersteuning stopt in december 2026. PHP 8.1 is al end-of-life.
End-of-life in februari 2027. Actuele bundles vereisen ORM 3.
Wordt niet meer onderhouden. Alleen 4.x krijgt fixes.
Symfony 5.4 krijgt nog security-fixes tot 2029, maar geen bugfixes, en de bundles eromheen zijn verder gegaan. Draaien op PHP 8.3 of 8.4 wordt elke release lastiger.
Hoe we werken
Upload je composer.lock. Je ziet je upgradepad, blokkerende pakketten, cliffs en een readiness-score. Geen account, geen broncode.
Leestoegang tot je repository. Rector dry run, deprecation-inventaris, bundle-vervangingsplan, stappenplan met PHP-versies en een vaste offerte. Inclusief een gesprek van een uur. Volledig verrekend bij de upgrade.
Eén major per fase, elke fase een mergebare PR, tests groen voordat we verdergaan. Waar dekking ontbreekt voegen we eerst characterization tests toe. Geen downtime.
Maandelijkse composer update-PR, deprecation-teller op nul, security-advisories afgehandeld, één minor-upgrade per jaar. Maandelijks opzegbaar.
Prijzen
Alle prijzen exclusief btw. Vaste prijzen worden bepaald in het assessment; de ranges hieronder zijn waar de meeste projecten op uitkomen. Betaling per fase: 40% bij start, 60% bij merge van de laatste stap.
Upgrade-assessment
Volledig verrekend bij de upgrade.
- Rector dry run en PHPUnit-deprecation-inventaris
- Bundle-vervangingsplan
- Stappenplan met vereiste PHP-versie per stap
- Vaste offerte en een gesprek van een uur
Symfony 6.4 → 7.4
Schone codebase, attributes al in gebruik.
- Eerst deprecations op nul op 6.4
- Composer, configuratie, CI
- PHP 8.3 of 8.4
Symfony 5.4 → 7.4
Het project dat iedereen voor zich uit schuift.
- Guard → authenticators
- Swiftmailer → Mailer
- SensioFrameworkExtra en annotations → attributes
- Via 6.4, elke major een eigen PR
API Platform 2.x / 3.x → 4.3
Of €3.000 – 6.000 bovenop een Symfony-upgrade.
- Resources en attributes, nieuw metadata-systeem
- Data providers en persisters → state providers en processors
- Filters, serializer-groups, OpenAPI, GraphQL
- Tests gaan mee
FOSRestBundle → API Platform
Prijs per resource-set.
- Controllers worden resources
- Serialization-groups blijven behouden
- Bestaande clients blijven werken
Add-ons
- Doctrine ORM 2 → 3: €1.500 – 3.500
- PHPUnit → 12/13: €750 – 1.500
- PHP-versiesprong: €500 – 1.500
- EasyAdmin, Sonata: op offerte
Upgrade Care
Zorgt dat de upgrade niet opnieuw nodig wordt.
- Maandelijkse composer update-PR
- Deprecation-teller op nul gehouden
- Security-advisories dezelfde week afgehandeld
- Eén minor-upgrade per jaar inbegrepen
Meerdere services of codebases?
| Landschap | Model |
|---|---|
| Eén service | Assessment €750, daarna een vaste prijs per fase. |
| Twee tot vijf services | Landschapsassessment: €750 plus €250 per extra service, maximaal €1.750. Afhankelijkheidsgraaf, volgorde, één doelstack voor alles. Daarna vaste prijs per service, 10% korting vanaf de derde. Gedeelde interne packages gaan eerst, als add-on. |
| Meer dan vijf, of veel onbekenden | Upgrade-programma: vast maandbedrag van €4.000 – 6.000 voor vaste capaciteit, milestone per service, minimaal drie maanden, daarna maandelijks opzegbaar. |
| Na oplevering | Upgrade Care per service, staffel vanaf drie services. |
Omgevingen (dev, staging, productie) tellen niet mee: één codebase is één eenheid. Alleen de deploy-pipeline wordt per omgeving getest.
Runtime en tooling rondom de app
Veel Symfony-applicaties hangen aan sidecars die om dezelfde reden vastzitten: Python-scripts voor PDF-generatie, wkhtmltopdf, headless Chrome, een Node-buildketen, Docker-base-images, databaseversies. Niemand raakt ze aan omdat de output er anders uit zou kunnen zien. Wij nemen die mee als aparte laag, met een visuele-regressie-harness: golden-master-PDF's uit productie, gerenderd vóór en na, per pagina vergeleken. Zo bewijzen we dat de PDF's er nog hetzelfde uitzien.
| Add-on | Wat | Prijs per component |
|---|---|---|
| S | Versiebump met bestaande tests (Node, Docker-image, DB-client, PHP-extensie) | €500 – 1.000 |
| M | Bump met visuele-regressie-harness (PDF, rapportage, Python-plugin) | €1.500 – 3.000 |
| L | Vervanging van een dode tool, inclusief harness | vanaf €4.000 |
Wat we niet doen
Greenfield-bouw, doorlopende feature-ontwikkeling, frontend-migraties (Encore naar AssetMapper alleen als add-on), Laravel, Drupal. Wij upgraden runtimes en tooling; we herontwerpen geen templates.
Vragen
Waarom niet gewoon Rector gebruiken?
Dat doen we, voor alles wat Rector kan. Het lost syntax en bekende deprecations op. Het maakt van een data provider geen state provider, vervangt Guard niet door authenticators en kiest niet welke bundle een verlaten bundle vervangt. Het assessment laat precies zien welk deel van jouw upgrade Rector-werk is en welk deel niet.
Hebben jullie productietoegang nodig?
Nee. Leestoegang tot de repository voor het assessment, en een branch om pull requests tegen te openen voor de upgrade. Jouw team reviewt en deployt.
Wat als de testdekking laag is?
We voegen characterization tests toe rond de delen die we aanpassen, voordat we ze aanpassen. Dat zit in de vaste prijs, geen verrassing achteraf.
Kunnen we ook een deel laten doen?
Ja. Elke fase wordt apart geprijsd en opgeleverd. Nu Symfony 5.4 naar 6.4 en later API Platform is een normale volgorde.
Waar zitten jullie?
In Nederland. We werken op afstand met teams in de EU, in het Nederlands, Engels en Duits.
Begin met het assessment
€750 exclusief btw, volledig verrekend bij de upgrade. Binnen één werkdag hoor je terug met een voorstel voor het gesprek.
Assessment aanvragen of mail naar info@kwiktech.nl