Studyx - Professional web training

BECOME A WEB EXPERT

Symfony 3

Op 16 november 2015 werd een eerste beta van de nieuwste release (versie 3) van Symfony vrijgegeven. Je kan de beta versie hier downloaden. Een upgrade tussen verschillende versies veroorzaakt vaak grote paniek bij Symfony gebruikers (bij de overstap van Symfony 1 naar 2 in juli 2011 was het inderdaad zo dat zeer veel projecten niet meer correct functioneerden). Het goede nieuws is dat je zal merken dat dit bij de nieuwe versie niet zo zeer het geval is.

Symfony3

Verschil met Symfony 2.8

Symfony 2.8 is een LTS (long-term-support) versie waarbij 36 maanden support en 48 maanden security support wordt ondersteund. Je zal merken dat er geen verschil is qua functionaliteiten tussen versie 2.8 en de nieuwe versie 3.0. Het enige verschil is dat in versie 3.0 alle verouderde APIs niet meer beschikbaar zijn (later meer daarover). Ook belangrijk om te weten is dat PHP 5.5.9 vereist is. Versie 3.0 zal ook geen LTS versie zijn, deze wordt pas later uitgebracht.

“Backward Compatibility Promise”

Eén van de hoogste prioriteiten van Symfony is een soepele upgrade van je projecten. Dat is de reden waarom ze “backward compatibility” beloven bij alle “minor” Symfony releases (bv. 2.6 -> 2.7). Je herkent deze strategie waarschijnlijk als “Semantic versioning”. Dit betekent dat alleen “major” releases (zoals bv. 2.0, 3.0, etc.) toegelaten zijn de “backwards compatibility” te breken. “Minor” releases (zoals 2.5, 2.6, etc.) mogen nieuwe features introduceren, maar ze moeten dit doen zonder de bestaande API van die release branch te breken.

“Semantic Versioning”

Zoals hierboven vermeld volgt Symfony het “Semantic Versioning” principe bij het releasen van nieuwe versies. Een afbeelding ter verduidelijking:

Semantic_Versioning

Semantic_Versioning

“Symfony Life Cycle”

In de afbeelding hieronder zie je hoe de ondersteuning van een bepaalde release van het Symfony framework verloopt.

SymfonyLifeCycle

Zoals je ziet zal er bij een standaard release (2.4, 2.5, 2.6) slecht 8 maanden support & 14 maanden security support verleend worden. Bij een LTS (long-term-support) versie zal er 36 maanden support & 48 maanden “security” support verleend worden. Hou dit in het achterhoofd bij het starten van een nieuw symfony project.

“Deprecated functions”

Zoals hierboven vermeld zullen verouderde functies niet meer ondersteund worden in de nieuwe versie van Symfony. Een voorbeeld hiervan is dat de “UniversalClassLoader” verwijderd is ten gunste van de “ClassLoader”. Het enige verschil hierbij is dat enkele methode namen verschillen. Een lijst van alle zaken die “deprecated” zijn in versie 3 vind je in de “Upgrading Guide for Symfony 3”.

Concreet wil het dus zeggen dat uw Symfony applicaties enkel zullen werken in versie 3 wanneer je alle verouderde functies verwijderd hebt. Om het proces bij het vinden van alle “deprecated functions” die effect hebben op je applicatie te versnellen is er een nieuwe tool ontwikkeld genaamd “Deprecation Detector”.

Deze console command zal een analyse runnen en op zoek gaan naar “deprecated methods, classes, interfaces & services” in de source code van uw project. Het identificeert het gebruik van “deprecated” code dankzij de @deprecated annotatie.

Hoewel deze tool zich nog in een zeer vroeg stadium van ontwikkeling bevindt, kan je deze al testen in je eigen Symfony projecten:

Deprecated_Functions

Symfony Upgrade Fixer

Naast de “Deprecation Detector” tool is er ook een nieuwe tool, genaamd “Symfony Upgrade Fixer”, ontwikkeld door iemand uit de community. Deze tool analyseert (net zoals de andere tool) je Symfony project en probeert deze compatibel te maken met de nieuwe versie van het Symfony framework. Hoe deze tool te installeren vind je hier.

Het fix commando probeert zoveel mogelijk “upgrade issues” te repareren op een bepaald bestand of bepaalde map.

Symfony Upgrade Fixer

Met de optie –dry-run worden alle files weergegeven die “gerepareerd” moeten worden zonder deze effectief aan te passen.

Symfony Upgrade Fixer

 

 

Share on FacebookShare on LinkedInTweet about this on TwitterShare on Google+Email this to someonePrint this page
20/11/15

0 Reacties opSymfony 3"

Laat een bericht na