The first beta of Symfony 2.8 has just been released. As always, backward compatibility means that you should be able to upgrade easily without changing anything in your code. This release also adds a lot of deprecation notices to make it much more easier for developers to make code compatible with the upcoming Symfony 3.0 major version.
Read the UPGRADE from 2.7 to 2.8 guide to learn more about new ways of doing things and deprecated features that will be removed in 3.0.
We've started to blog about the great new features that comes with 2.8 (more blog posts on their way), but here is a curated list of the most relevant ones:
New Components and Bridges
- New LDAP component (csarrazi, lyrixx) (14602)
- New PropertyInfo component (dunglas) (15858 and 15966)
Twig
- Foundation form layout integration (totophe) (12587)
- Decoupled Twig from the Templating Component (fabpot) (15970, 16271)
- Warmup twig templates in non-standard paths (kbond) (14764)
DependencyInjection
- Added autowiring capabilities (dunglas) (15613)
- Deprecated the scope concept (dosten) (14984)
- Added a way to define the priority of service decoration (dosten) (15416)
- Added support for deprecated definitions (Taluu) (15491)
- Added logging of unused tags (Marmelatze, fabpot) (15963)
- Implemented resettable containers (stof) (15185)
- Automatically process extensions when they implement CompilerPassInterface (WouterJ) (13761)
YAML
- Deprecated non-escaped in double-quoted strings when parsing (fabpot) (16201)
- Deprecated usage of @ and at the beginning of an unquoted string (fabpot) (`16285)
- Deprecated unquoted indicator characters (xabbuh) (16433)
Console
- Added a progress indicator helper (kbond) (16409)
- Added table columns styles (MAXakaWIZARD) (14044)
- Deprecated the Shell Console class (fabpot) (15892)
- Add domain exceptions to replace generic exceptions (GromNaN) (14894)
- Use readline for user input when available #DX (michaelperrin) (15382)
- Made the exception output visible even in quiet mode (Seldaek) (15773)
- Converted Output::write's type to an options arg where verbosity can be passed in as well (Seldaek) (15772)
VarDumper
- Added casters for Generator, ReflectionGenerator, ReflectionType, OuterIterator, SplFileInfo, and pgsql resources (nicolas-grekas, lyrixx) (16325, 15787, 15555, 14424)
- Dump PHP+Twig code excerpts in backtraces (nicolas-grekas) (15838)
PHPUnit
- Mock clock on @group time-sensitive annotations (nicolas-grekas) (16194)
EventDispatcher
- Added EventDispatcher::getListenerPriority() (fabpot) (16198)
- Added priorities to the debug:event-dispatcher command (Seldaek) (14563)
Security
- New Guard Authentication System (weaverryan) (14673)
- Removed security-acl from core (iltar) (15013)
- Configuring a user checker per firewall (iltar) (14721)
- Deprecated supportsAttribute and supportsClass methods (WouterJ) (15151)
- Renamed Token#getKey() to getSecret() (WouterJ) (15141)
- Deprecated the SecureRandom class (pierredup) (15879)
Filesystem
- Changed dumpFile to allow dumping to streams (markchalloner, pierredup) (16156)
WebProfiler
- Redesigned the Symfony Profiler (javiereguiluz) (15523)
- Redesigned the web debug toolbar (javiereguiluz) (15160)
- Added filter links in search results (Rvanlaak) (16344)
- Deprecated import/export commands (fabpot) (15709)
- Improved page for logs (hason) (13324)
- Removed profiler storages (javiereguiluz) (15944)
CssSelector
- Added a non-static API for the CssSelector component (stof) (15934)
Form
- Added choice_translation_domain option (aitboudad) (15301)
- Deprecated FormTypeInterface::getName() and passing of type instances (webmozart) (15079)
- Deprecated "cascade_validation" (webmozart) (15019)
- Added the 'range' FormType (jaytaph) (12067)
- Deprecated read_only option (Tobion) (14403)
Translator
- Added XLIFF 2.0 support (xphere, aitboudad) (15717)
- Allowed get file content without writing in file. (aitboudad) (15786)
- Deprecated format method in favor of formatCatalogue. (aitboudad) (15699)
- Added parameters to DataCollectorTranslator (damienalexandre) (15139)
- Added an option to specify additional translation loading paths (Seldaek) (14561)
- Deprecated getMessages in favor of getCatalogue. (aitboudad) (14546)
- Added an --all option to the debug:translation command (sgehrig) (14320)
Serializer
- Configurable Serializer name converter (dunglas) (14987)
- Support for array denormalization (derrabus) (14756)
DomCrawler
- Deprecated methods inherited from SplObjectStorage (stof) (15907)
- Deprecated loading multiple documents in the same crawler (stof) (16057)
- Prevented adding non-DOMElement elements in DomCrawler (stof) (16058)
Debug
- Added BufferingLogger for errors that happen before a proper logger is configured (nicolas-grekas) (15521)
- Added ExceptionHandler::getHtml() to expose the full HTML of an exception (fabpot) (15710)
Finder
- Deprecated adapters and related classes (nicolas-grekas) (15805)
Miscellaneous
- Added a micro kernel (fabpot) (15990)
- Added UserLoaderInterface for loading users through Doctrine. (mtrojanowski) (15947)
- Rely on iconv and symfony/polyfill-* (nicolas-grekas) (16317)
- Added a new ClassCache cache warmer (tucksaun) (16263)
- Deprecate finding deep items in request parameters (xabbuh) (16007)
- is_granted no longer raise an exception if the token storage is empty (lyrixx) (15953)
- Easier Custom Authentication errors (weaverryan) (15882)
- Updating AbstractVoter so that the method receives the TokenInterface (weaverryan) (15870)
- Made template shortcuts be usable without Templating component (Koc) (15620)
- Added an option to force the built-in web server startup (xabbuh) (15134)
- Added a Doctrine cache service definition for validator mapping (jakzal) (14429)
Want to upgrade to this new release? Fortunately, because Symfony protects backwards-compatibility very closely, this should be quite easy. Read our upgrade documentation to learn more.
Want to check the integrity of this new version? Read my blog post about signing releases .
Want to be notified whenever a new Symfony release is published? Or when a version is not maintained anymore? Or only when a security issue is fixed? Consider subscribing to the Symfony Roadmap Notifications.
Tested on 2 applications, 100% of tests OK.
@Loïc do you have the PHPUnit Bridge installed? If that's the case, it's impressive to not have a single deprecation in the apps. Congrats!
What I like the most is the new visuals of the Profiler. Looks very... sexy :) .
OK so it's been 10 days since the first beta ? Any plans for a second beta ? November is almost over...