SensioLabs
Migrating
to Symfony 3.0
by @nicolasgrekas
Let me tell you
how Symfony 3.0
was born
components
framework
+=
Highest
quality
processes
=
Releasing
Symfony Lifecycle
Release
end of
support
+8 months +14 months +36 months +48 months
end of security
support
end of security
support
end of
support
Standard Releases
(2.4, 2.5, 2.6, 3.0)
LTS Releases
(2.3, 2.7, 2.8)
Semantic Versioning
http://semver.org
Major
Minor
Patch
•
o
o
o
•
o
o
•
o
o
One monolithic
repo.
+
46 synchronized
components
=
Backward
Compatibility
The Backward Compatibility Promise
http://symfony.com/bc
Guidelines for Backward Compatibility
Example: Moving the
FlattenException class
Example: Moving the
FlattenException class
Example: Moving the
FlattenException class
Example: Moving the
FlattenException class
Patching process
•
•
•
Contribution Workflow
Patching Symfony 2.3 LTS
Continuous integration
Travis Matrix
Appveyor for Windows
What’s new
in Symfony 3?
Well... Nothing!
Fabien already
told you
All new features are
already included in
Symfony 2.8
What’s new in Symfony 3?
The Symfony 3.0 Architecture
•
•
•
•
•
What’s new
in Symfony 3?
The
Continuous
Upgrade
Path
The Symfony Core Team Wish!
Continuous Migration Path Before 2.7
•
•
•
•
•
•
• 
Continuous Migration Path Since 2.7
•
•
•
•
•
•
•
Trigger deprecation notices at run-time
Trigger deprecation notices at run-time
Trigger deprecation notices at run-time
Trigger deprecation notices at run-time
Trigger deprecation notices at run-time
Trigger deprecation notices at run-time
Trigger deprecation notices at run-time
It has to work
for Symfony itself,
component by
component
Cross Versions Dependencies
•
o
o ~2.x|~3.0.0
The @legacy PHPUnit Group
Cross Versions Dependencies
•
o
o ~2.8|~3.0
Prefer Lowest Requirements
Sustainability
of the CUP promise?
•
•
•
•
What’s new
in Symfony 3?
Much
Stricter
Quality
Processes
What about the
Symfony ecosystem?
Use the Symfony PHPUnit Bridge
Allow Symfony ~3.0 Dependencies
Their turn to deprecate
Their turn to deprecate
What’s new
in Symfony 3?
A Process
to Remove
Legacy Code
Now your turn!
•
•
•
•
o
o
o
•
•
Some guidelines
Some guidelines
Some guidelines
Some guidelines
Some guidelines
Some guidelines
Some guidelines
Some guidelines
Some guidelines
Now your turn!
SensioLabs
Merci !
@nicolasgrekas

Migrating to Symfony 3.0