Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ZendCon 2015 - The future of Symfony : Symfony3

ZendCon 2015 - The future of Symfony : Symfony3

Symfony 3 is coming out this november! Let's see how to prepare your application to get ready for a smooth migration.

We will review the major deprecations you will need to work on, then the improvements of the new major version and finally how you can help the community by contributing really easily.

Sarah KHALIL

October 22, 2015
Tweet

More Decks by Sarah KHALIL

Other Decks in Technology

Transcript

  1. Who I am? • Head of • Trainer & Developer

    • Enjoying sharer • Contributor to
  2. Agenda • Full change log of features added from 2.7.5

    to 2.8/3.0 [7adb842] feature #12461 [HttpKernel] Removed deprecated Kernel::init() method (saro0h) [73d3770] feature #12731 [Monolog Bridge] Remove deprecated log methods + add unit tests (FlorianLB) [e0205ba] feature #12697 [3.0][Process] Remove deprecated methods (romainneutron) [5417675] feature #12854 [3.0][HttpKernel] Remove unused method Kernel::isClassInActiveBundle (hacfi) [4c1ab52] feature #13046 [3.0] [Bridge] [Swiftmailer] removed Swiftmailer bridge namespace. (hhamon) [d8ebcd2] feature #12994 Add LegacyPdoSessionHandler class (jeremylivingston) [7dee89b] feature #13129 [Yaml] Removed the ability to parse a file in Yaml::parse() (saro0h) [e3872b9] feature #13130 [HttpKernel] Removed deprecated ErrorHandler and ExceptionHandler classes (saro0h) [b9f4425] feature #13128 [Form] Removed deprecated form_enctype() (saro0h) [a15df69] feature #13127 [FrameworkBundle] Removed the deprecated RouterApacheDumperCommand (saro0h) [649061b] feature #13121 [Console] Removed DialogHelper, ProgressHelper and TableHelper (saro0h) [a179b90] feature #12460 [3.0] [FrameworkBundle] removed request service occurrences. (hhamon) [92a7416] feature #12457 [FrameworkBundle] REFS #11294 Controller class become abstract (mickaelandrieu) [900f78a] feature #13216 [3.0] [Config] removed deprecated ReferenceDumper class. (hhamon) [9c6d315] feature #13122 [3.0][Form] Removed depracted events PRE_BIND, BIND and POST_BIND (saro0h) [eb5f3b4] feature #12663 [FrameworkBundle] remove deprecated method 'createEsi' (FlorianLB) [6a6d9c3] feature #13233 [TwigBundle] removed deprecated ActionsExtension (fabpot) [2afd614] removed deprecated Twig features
  3. Agenda • Full change log of features added from 2.7.5

    to 2.8/3.0 [7adb842] feature #12461 [HttpKernel] Removed deprecated Kernel::init() method (saro0h) [73d3770] feature #12731 [Monolog Bridge] Remove deprecated log methods + add unit tests (FlorianLB) [e0205ba] feature #12697 [3.0][Process] Remove deprecated methods (romainneutron) [5417675] feature #12854 [3.0][HttpKernel] Remove unused method Kernel::isClassInActiveBundle (hacfi) [4c1ab52] feature #13046 [3.0] [Bridge] [Swiftmailer] removed Swiftmailer bridge namespace. (hhamon) [d8ebcd2] feature #12994 Add LegacyPdoSessionHandler class (jeremylivingston) [7dee89b] feature #13129 [Yaml] Removed the ability to parse a file in Yaml::parse() (saro0h) [e3872b9] feature #13130 [HttpKernel] Removed deprecated ErrorHandler and ExceptionHandler classes (saro0h) [b9f4425] feature #13128 [Form] Removed deprecated form_enctype() (saro0h) [a15df69] feature #13127 [FrameworkBundle] Removed the deprecated RouterApacheDumperCommand (saro0h) [649061b] feature #13121 [Console] Removed DialogHelper, ProgressHelper and TableHelper (saro0h) [a179b90] feature #12460 [3.0] [FrameworkBundle] removed request service occurrences. (hhamon) [92a7416] feature #12457 [FrameworkBundle] REFS #11294 Controller class become abstract (mickaelandrieu) [900f78a] feature #13216 [3.0] [Config] removed deprecated ReferenceDumper class. (hhamon) [9c6d315] feature #13122 [3.0][Form] Removed depracted events PRE_BIND, BIND and POST_BIND (saro0h) [eb5f3b4] feature #12663 [FrameworkBundle] remove deprecated method 'createEsi' (FlorianLB) [6a6d9c3] feature #13233 [TwigBundle] removed deprecated ActionsExtension (fabpot) [2afd614] removed deprecated Twig features [5e623a9] feature #14153 Remove the legacy PDO session handler (dosten) [5b117e6] feature #14145 Removed deprecations in Filesystem component (dosten) [22c2345] feature #14155 Removed deprecations in DependencyInjection component (dosten) [65d4ae0] feature #13324 [WebProfilerBundle] Improved page for logs (hason) [791e583] feature #14403 [Form] deprecate read_only option (Tobion) [a57ce90] feature #14630 [Translator] Dump translation constants as tree instead of simple list (gepo) [2983ecb] feature #14756 [Serializer] Support for array denormalization (derrabus) [78cf382] feature #14733 [Security] Add setVoters() on AccessDecisionManager (nicolas-grekas) [d04cc5e] feature #14700 [DependencyInjection] [Routing] [Config] Recursive directory loading (lavoiesl, nicolas-grekas) [4133aad] feature #14781 [TwigBundle] Reconfigure twig paths when they are updated (chbruyand) [567af65] feature #14904 [toolbar] Merged colored icons in toolbar (MJBGO) [0315e5d] feature #14903 [profiler][request toolbar] Removed route name from the toolbar (MJBGO) [a44ceb3] feature #14912 [HttpFoundation] Postpone setting the date header on a Response (jakzal) [15ff865] feature #14993 [Profiler][Translation] added filter. (aitboudad) [35f0a32] feature #14928 Removed deprecated stuff from the Console component (dosten) [09fabfe] feature #12067 [Form] Added the 'range' FormType (jaytaph) [a2bdc72] feature #14979 [Security] removed obsolete translations (fabpot) [54bd6f7] feature #12314 [Form] Add "prototype_data" option to collection type (kgilden) [04ae391] feature #15019 [Form] Deprecated "cascade_validation" (webmozart) [dfb4ccf] feature #14693 [3.0][Translator] changed the visibility of the locale from protected to private. (aitboudad) [921b6aa] feature #14927 Removed deprecated stuff from the Config component (dosten) [3151614] feature #14660 [Form] moved data trimming logic of TrimListener into StringUtil (issei-m) [9f86195] feature #14991 [Console][Table] allow multiple render() calls. (jaytaph) [dd7583d] feature #14429 [FrameworkBundle] Add a doctrine cache service definition for validator mapping (jakzal) [50e752b] feature #14984 [DependencyInjection] Deprecate scope concept (dosten) [93e69e4] feature #15076 [Debug] Allow throwing from __toString() with `return trigger_error($e, E_USER_ERROR);` (nicolas-grekas) [674b124] feature #14238 [config] added remove option to ignoreExtraKeys (twifty) [ffed0ce] feature #15134 [FrameworkBundle] add option to force web server startup (xabbuh) [cad16ac] feature #14764 [TwigBundle] Warmup twig templates in non-standard paths (kbond) [32cbfd4] feature #15096 [DependencyInjection] Allow anonymous DefinitionDecorator resolving (nicolas-grekas) [bfa28d6] feature #15154 [Validator] Added missing error codes and turned codes into UUIDs (webmozart) [fc6ed5b] feature #15141 [DX] [Security] Renamed Token#getKey() to getSecret() (WouterJ) [86e77eb] feature #15175 [VarDumper] Ingore PHPUnit and Prophecy object when they are nested (lyrixx) [02347d5] feature #15139 [Translation] Add parameters to DataCollectorTranslator (damienalexandre) [a48c377] feature #15219 [DependencyInjection] Added ParameterBagInterface::remove (lyrixx) [0e5eb6b] feature #14264 [WebProfilerBundle] Add link to show profile of latest request (xelaris) [b9f45d1] feature #15290 [DependencyInjection] Forbid container cloning (jakzal) [86b218e] feature #15131 [Security] Moved Simple{Form,Pre}AuthenticatorInterfaces to Security\Http (WouterJ) [4995900] feature #15185 Implement resettable containers (stof) [23919ab] feature #15347 [DependencyInjection][3.0] Add initialized to container interface (znerol) [7ec1cd4] Reverted the feature to display different toolbar versions [251314e] feature #15160 Redesigned the web debug toolbar (javiereguiluz) [ce5363a] feature #15372 [FrameworkBundle] Change the default value of cookie_httponly (jderusse) [0de8905] feature #15285 [Config] deprecate cannotBeEmpty() for boolean and numeric nodes (xabbuh) [f02a5dc] feature #14987 [FrameworkBundle] Configurable Serializer name converter (dunglas) [839e925] feature #15123 [2.8][FrameworkBundle] Allow parameter use_cookies in session configuration (derrabus) [3c10715] feature #15418 [Debug] Deprecate ExceptionHandler::createResponse (nicolas-grekas) [5b38d74] feature #15079 [Form] Deprecated FormTypeInterface::getName() and passing of type instances (webmozart) [bffca95] feature #15013 [Security] Removed security-acl from the core (iltar) [c73e0a3] feature #15422 [Debug] Remove deprecated ExceptionHandler::createResponse (nicolas-grekas) [c856a01] feature #15382 [Console] Use readline for user input when available #DX (michaelperrin) [317d30b] feature #13990 [Form] Add flexibility for EntityType (raziel057) [64d0507] feature #15433 Allow to define Enum nodes with 1 single element (javiereguiluz) [a00687f] feature #15416 [DependencyInjection] Added a way to define the priority of service decoration (dosten) [e6d7534] feature #15430 [SecurityBundle] Remove deprecated code (dosten) [c8e05e3] feature #15452 [Translator] [Xliff] Add support for target attributes. (marcosdsanchez) [c1c5f1d] feature #15555 [VarDumper] Add caster for pgsql resources (nicolas-grekas) [19f4ada] fixed tests using deprecation features [d4441e9] feature #15551 [Translation] added <tool> element metadata to XliffFileDumper (aitboudad)
  4. Agenda • Full change log of features added from 2.7.5

    to 2.8/3.0 [7adb842] feature #12461 [HttpKernel] Removed deprecated Kernel::init() method (saro0h) [73d3770] feature #12731 [Monolog Bridge] Remove deprecated log methods + add unit tests (FlorianLB) [e0205ba] feature #12697 [3.0][Process] Remove deprecated methods (romainneutron) [5417675] feature #12854 [3.0][HttpKernel] Remove unused method Kernel::isClassInActiveBundle (hacfi) [4c1ab52] feature #13046 [3.0] [Bridge] [Swiftmailer] removed Swiftmailer bridge namespace. (hhamon) [d8ebcd2] feature #12994 Add LegacyPdoSessionHandler class (jeremylivingston) [7dee89b] feature #13129 [Yaml] Removed the ability to parse a file in Yaml::parse() (saro0h) [e3872b9] feature #13130 [HttpKernel] Removed deprecated ErrorHandler and ExceptionHandler classes (saro0h) [b9f4425] feature #13128 [Form] Removed deprecated form_enctype() (saro0h) [a15df69] feature #13127 [FrameworkBundle] Removed the deprecated RouterApacheDumperCommand (saro0h) [649061b] feature #13121 [Console] Removed DialogHelper, ProgressHelper and TableHelper (saro0h) [a179b90] feature #12460 [3.0] [FrameworkBundle] removed request service occurrences. (hhamon) [92a7416] feature #12457 [FrameworkBundle] REFS #11294 Controller class become abstract (mickaelandrieu) [900f78a] feature #13216 [3.0] [Config] removed deprecated ReferenceDumper class. (hhamon) [9c6d315] feature #13122 [3.0][Form] Removed depracted events PRE_BIND, BIND and POST_BIND (saro0h) [eb5f3b4] feature #12663 [FrameworkBundle] remove deprecated method 'createEsi' (FlorianLB) [6a6d9c3] feature #13233 [TwigBundle] removed deprecated ActionsExtension (fabpot) [2afd614] removed deprecated Twig features [86278cd] [Routing] remove deprecated features from routing [4ca9ab3] [FrameworkBundle] remove deprecated routing features [7b6f6d7] feature #13409 removed deprecated Twig features (fabpot) [cca5e41] feature #13203 [3.0] [ClassLoader] removed deprecated UniversalClassLoader and DebugClassLoader classes. (hhamon) [9f195cd] feature #13260 [3.0][EventDispatcher][Event] removed deprecated methods (aitboudad) [270818d] feature #13348 [3.0][Monolog] Remove deprecated interface and deprecated methods (rosier) [9ff47b8] feature #13086 [Console] Define isVerbose(), etc. methods in OutputInterface (frne) [2e496e1] feature #13258 [HttpFoundation] remove deprecated : FlashBag don't implement anymore IteratorAggregate (FlorianLB) [f7395c7] feature #13444 [Serializer] Remove deprecated JSON error methods (dunglas) [589179c] feature #13396 [Routing] remove deprecations for 3.0 (Tobion) [5e90ef4] feature #13407 [Form] Remove deprecated setDefaultOptions and OptionsResolverInterface (peterrehm) [8018d4b] removed deprecated asset feature [52badd0] removed deprecated Twig features [d948837] feature #13666 removed deprecated asset feature (fabpot) [fffcc24] feature #13752 [PropertyAccess] remove deprecations for 3.0 (Tobion) [ad1888b] feature #13756 [3.0][Console] Added type hint (francisbesset) [f538167] feature #13808 [OptionsResolver] removed deprecated functionality (Tobion) [156c4a2] feature #14070 removed all *.class parameters (fabpot) [01cebda] feature #14091 [3.0] [FrameworkBundle] Drop backward compatibility for debug commands (matthieuauger) [aec88f4] feature #14119 Removed deprecation in YAML component (saro0h) [e01a9a6] feature #14118 Removed deprecations in Console component (saro0h) [2669016] feature #14120 Removed deprecation in translation component (saro0h) [0409baa] feature #14156 Remove deprecated Locale component (stloyd) [8d6929b] feature #14150 Removed deprecations in Templating component (dosten) [637c8bb] feature #14147 Removed deprecations in Process component (dosten) [5d7f909] feature #14169 [Debug] Removed deprecated interfaces (nicolas-grekas) [630a982] feature #14220 [3.0][Console][OutputStyle] Implements verbosity levels methods (ogizanagi) [73853c4] feature #14317 [3.0][FrameworkBundle][lint commands ] remove deprecated alias. (vincentaubert) [6bab76d] feature #14383 [FrameworkBundle][Server Command] add address port number option. (aitboudad) [862bdf1] feature #14359 [Translation] added FileLoader. (aitboudad) [449b18c] feature #14424 [VarDumper] Added support for SplFileInfo (lyrixx) [e861134] feature #14431 [Console] Bind the closure (code) to the Command if possible (lyrixx) [a4e3e07] feature #14443 [VarDumper] Allow preserving a subset of cut arrays (nicolas-grekas) [7e29d2c] feature #14473 [DX] Minor improvement for the translation:debug output (nicolasdewez) [1973960] feature #14320 [Translation] added an --all option to the debug:translation command #14237 (sgehrig) [55b3525] feature #14546 [Translator] deprecate getMessages in favor of getCatalogue. (aitboudad) [da0194b] feature #14563 [FrameworkBundle][EventDispatcher] Add priorities to the debug:event-dispatcher command (Seldaek) [88b7e7c] feature #14561 [FrameworkBundle][DX] Add option to specify additional translation loading paths (Seldaek) [5e623a9] feature #14153 Remove the legacy PDO session handler (dosten) [5b117e6] feature #14145 Removed deprecations in Filesystem component (dosten) [22c2345] feature #14155 Removed deprecations in DependencyInjection component (dosten) [65d4ae0] feature #13324 [WebProfilerBundle] Improved page for logs (hason) [791e583] feature #14403 [Form] deprecate read_only option (Tobion) [a57ce90] feature #14630 [Translator] Dump translation constants as tree instead of simple list (gepo) [2983ecb] feature #14756 [Serializer] Support for array denormalization (derrabus) [78cf382] feature #14733 [Security] Add setVoters() on AccessDecisionManager (nicolas-grekas) [d04cc5e] feature #14700 [DependencyInjection] [Routing] [Config] Recursive directory loading (lavoiesl, nicolas-grekas) [4133aad] feature #14781 [TwigBundle] Reconfigure twig paths when they are updated (chbruyand) [567af65] feature #14904 [toolbar] Merged colored icons in toolbar (MJBGO) [0315e5d] feature #14903 [profiler][request toolbar] Removed route name from the toolbar (MJBGO) [a44ceb3] feature #14912 [HttpFoundation] Postpone setting the date header on a Response (jakzal) [15ff865] feature #14993 [Profiler][Translation] added filter. (aitboudad) [35f0a32] feature #14928 Removed deprecated stuff from the Console component (dosten) [09fabfe] feature #12067 [Form] Added the 'range' FormType (jaytaph) [a2bdc72] feature #14979 [Security] removed obsolete translations (fabpot) [54bd6f7] feature #12314 [Form] Add "prototype_data" option to collection type (kgilden) [04ae391] feature #15019 [Form] Deprecated "cascade_validation" (webmozart) [dfb4ccf] feature #14693 [3.0][Translator] changed the visibility of the locale from protected to private. (aitboudad) [921b6aa] feature #14927 Removed deprecated stuff from the Config component (dosten) [3151614] feature #14660 [Form] moved data trimming logic of TrimListener into StringUtil (issei-m) [9f86195] feature #14991 [Console][Table] allow multiple render() calls. (jaytaph) [dd7583d] feature #14429 [FrameworkBundle] Add a doctrine cache service definition for validator mapping (jakzal) [50e752b] feature #14984 [DependencyInjection] Deprecate scope concept (dosten) [93e69e4] feature #15076 [Debug] Allow throwing from __toString() with `return trigger_error($e, E_USER_ERROR);` (nicolas-grekas) [674b124] feature #14238 [config] added remove option to ignoreExtraKeys (twifty) [ffed0ce] feature #15134 [FrameworkBundle] add option to force web server startup (xabbuh) [cad16ac] feature #14764 [TwigBundle] Warmup twig templates in non-standard paths (kbond) [32cbfd4] feature #15096 [DependencyInjection] Allow anonymous DefinitionDecorator resolving (nicolas-grekas) [bfa28d6] feature #15154 [Validator] Added missing error codes and turned codes into UUIDs (webmozart) [fc6ed5b] feature #15141 [DX] [Security] Renamed Token#getKey() to getSecret() (WouterJ) [86e77eb] feature #15175 [VarDumper] Ingore PHPUnit and Prophecy object when they are nested (lyrixx) [02347d5] feature #15139 [Translation] Add parameters to DataCollectorTranslator (damienalexandre) [a48c377] feature #15219 [DependencyInjection] Added ParameterBagInterface::remove (lyrixx) [0e5eb6b] feature #14264 [WebProfilerBundle] Add link to show profile of latest request (xelaris) [b9f45d1] feature #15290 [DependencyInjection] Forbid container cloning (jakzal) [86b218e] feature #15131 [Security] Moved Simple{Form,Pre}AuthenticatorInterfaces to Security\Http (WouterJ) [4995900] feature #15185 Implement resettable containers (stof) [23919ab] feature #15347 [DependencyInjection][3.0] Add initialized to container interface (znerol) [7ec1cd4] Reverted the feature to display different toolbar versions [251314e] feature #15160 Redesigned the web debug toolbar (javiereguiluz) [ce5363a] feature #15372 [FrameworkBundle] Change the default value of cookie_httponly (jderusse) [0de8905] feature #15285 [Config] deprecate cannotBeEmpty() for boolean and numeric nodes (xabbuh) [f02a5dc] feature #14987 [FrameworkBundle] Configurable Serializer name converter (dunglas) [839e925] feature #15123 [2.8][FrameworkBundle] Allow parameter use_cookies in session configuration (derrabus) [3c10715] feature #15418 [Debug] Deprecate ExceptionHandler::createResponse (nicolas-grekas) [5b38d74] feature #15079 [Form] Deprecated FormTypeInterface::getName() and passing of type instances (webmozart) [bffca95] feature #15013 [Security] Removed security-acl from the core (iltar) [c73e0a3] feature #15422 [Debug] Remove deprecated ExceptionHandler::createResponse (nicolas-grekas) [c856a01] feature #15382 [Console] Use readline for user input when available #DX (michaelperrin) [317d30b] feature #13990 [Form] Add flexibility for EntityType (raziel057) [64d0507] feature #15433 Allow to define Enum nodes with 1 single element (javiereguiluz) [a00687f] feature #15416 [DependencyInjection] Added a way to define the priority of service decoration (dosten) [e6d7534] feature #15430 [SecurityBundle] Remove deprecated code (dosten) [c8e05e3] feature #15452 [Translator] [Xliff] Add support for target attributes. (marcosdsanchez) [c1c5f1d] feature #15555 [VarDumper] Add caster for pgsql resources (nicolas-grekas) [19f4ada] fixed tests using deprecation features [d4441e9] feature #15551 [Translation] added <tool> element metadata to XliffFileDumper (aitboudad)
  5. Agenda • Full change log of features added from 2.7.5

    to 2.8/3.0 [7adb842] feature #12461 [HttpKernel] Removed deprecated Kernel::init() method (saro0h) [73d3770] feature #12731 [Monolog Bridge] Remove deprecated log methods + add unit tests (FlorianLB) [e0205ba] feature #12697 [3.0][Process] Remove deprecated methods (romainneutron) [5417675] feature #12854 [3.0][HttpKernel] Remove unused method Kernel::isClassInActiveBundle (hacfi) [4c1ab52] feature #13046 [3.0] [Bridge] [Swiftmailer] removed Swiftmailer bridge namespace. (hhamon) [d8ebcd2] feature #12994 Add LegacyPdoSessionHandler class (jeremylivingston) [7dee89b] feature #13129 [Yaml] Removed the ability to parse a file in Yaml::parse() (saro0h) [e3872b9] feature #13130 [HttpKernel] Removed deprecated ErrorHandler and ExceptionHandler classes (saro0h) [b9f4425] feature #13128 [Form] Removed deprecated form_enctype() (saro0h) [a15df69] feature #13127 [FrameworkBundle] Removed the deprecated RouterApacheDumperCommand (saro0h) [649061b] feature #13121 [Console] Removed DialogHelper, ProgressHelper and TableHelper (saro0h) [a179b90] feature #12460 [3.0] [FrameworkBundle] removed request service occurrences. (hhamon) [92a7416] feature #12457 [FrameworkBundle] REFS #11294 Controller class become abstract (mickaelandrieu) [900f78a] feature #13216 [3.0] [Config] removed deprecated ReferenceDumper class. (hhamon) [9c6d315] feature #13122 [3.0][Form] Removed depracted events PRE_BIND, BIND and POST_BIND (saro0h) [eb5f3b4] feature #12663 [FrameworkBundle] remove deprecated method 'createEsi' (FlorianLB) [6a6d9c3] feature #13233 [TwigBundle] removed deprecated ActionsExtension (fabpot) [2afd614] removed deprecated Twig features [86278cd] [Routing] remove deprecated features from routing [4ca9ab3] [FrameworkBundle] remove deprecated routing features [7b6f6d7] feature #13409 removed deprecated Twig features (fabpot) [cca5e41] feature #13203 [3.0] [ClassLoader] removed deprecated UniversalClassLoader and DebugClassLoader classes. (hhamon) [9f195cd] feature #13260 [3.0][EventDispatcher][Event] removed deprecated methods (aitboudad) [270818d] feature #13348 [3.0][Monolog] Remove deprecated interface and deprecated methods (rosier) [9ff47b8] feature #13086 [Console] Define isVerbose(), etc. methods in OutputInterface (frne) [2e496e1] feature #13258 [HttpFoundation] remove deprecated : FlashBag don't implement anymore IteratorAggregate (FlorianLB) [f7395c7] feature #13444 [Serializer] Remove deprecated JSON error methods (dunglas) [589179c] feature #13396 [Routing] remove deprecations for 3.0 (Tobion) [5e90ef4] feature #13407 [Form] Remove deprecated setDefaultOptions and OptionsResolverInterface (peterrehm) [8018d4b] removed deprecated asset feature [52badd0] removed deprecated Twig features [d948837] feature #13666 removed deprecated asset feature (fabpot) [fffcc24] feature #13752 [PropertyAccess] remove deprecations for 3.0 (Tobion) [ad1888b] feature #13756 [3.0][Console] Added type hint (francisbesset) [f538167] feature #13808 [OptionsResolver] removed deprecated functionality (Tobion) [156c4a2] feature #14070 removed all *.class parameters (fabpot) [01cebda] feature #14091 [3.0] [FrameworkBundle] Drop backward compatibility for debug commands (matthieuauger) [aec88f4] feature #14119 Removed deprecation in YAML component (saro0h) [e01a9a6] feature #14118 Removed deprecations in Console component (saro0h) [2669016] feature #14120 Removed deprecation in translation component (saro0h) [0409baa] feature #14156 Remove deprecated Locale component (stloyd) [8d6929b] feature #14150 Removed deprecations in Templating component (dosten) [637c8bb] feature #14147 Removed deprecations in Process component (dosten) [5d7f909] feature #14169 [Debug] Removed deprecated interfaces (nicolas-grekas) [630a982] feature #14220 [3.0][Console][OutputStyle] Implements verbosity levels methods (ogizanagi) [73853c4] feature #14317 [3.0][FrameworkBundle][lint commands ] remove deprecated alias. (vincentaubert) [6bab76d] feature #14383 [FrameworkBundle][Server Command] add address port number option. (aitboudad) [862bdf1] feature #14359 [Translation] added FileLoader. (aitboudad) [449b18c] feature #14424 [VarDumper] Added support for SplFileInfo (lyrixx) [e861134] feature #14431 [Console] Bind the closure (code) to the Command if possible (lyrixx) [a4e3e07] feature #14443 [VarDumper] Allow preserving a subset of cut arrays (nicolas-grekas) [7e29d2c] feature #14473 [DX] Minor improvement for the translation:debug output (nicolasdewez) [1973960] feature #14320 [Translation] added an --all option to the debug:translation command #14237 (sgehrig) [55b3525] feature #14546 [Translator] deprecate getMessages in favor of getCatalogue. (aitboudad) [da0194b] feature #14563 [FrameworkBundle][EventDispatcher] Add priorities to the debug:event-dispatcher command (Seldaek) [88b7e7c] feature #14561 [FrameworkBundle][DX] Add option to specify additional translation loading paths (Seldaek) [5e623a9] feature #14153 Remove the legacy PDO session handler (dosten) [5b117e6] feature #14145 Removed deprecations in Filesystem component (dosten) [22c2345] feature #14155 Removed deprecations in DependencyInjection component (dosten) [65d4ae0] feature #13324 [WebProfilerBundle] Improved page for logs (hason) [791e583] feature #14403 [Form] deprecate read_only option (Tobion) [a57ce90] feature #14630 [Translator] Dump translation constants as tree instead of simple list (gepo) [2983ecb] feature #14756 [Serializer] Support for array denormalization (derrabus) [78cf382] feature #14733 [Security] Add setVoters() on AccessDecisionManager (nicolas-grekas) [d04cc5e] feature #14700 [DependencyInjection] [Routing] [Config] Recursive directory loading (lavoiesl, nicolas-grekas) [4133aad] feature #14781 [TwigBundle] Reconfigure twig paths when they are updated (chbruyand) [567af65] feature #14904 [toolbar] Merged colored icons in toolbar (MJBGO) [0315e5d] feature #14903 [profiler][request toolbar] Removed route name from the toolbar (MJBGO) [a44ceb3] feature #14912 [HttpFoundation] Postpone setting the date header on a Response (jakzal) [15ff865] feature #14993 [Profiler][Translation] added filter. (aitboudad) [35f0a32] feature #14928 Removed deprecated stuff from the Console component (dosten) [09fabfe] feature #12067 [Form] Added the 'range' FormType (jaytaph) [a2bdc72] feature #14979 [Security] removed obsolete translations (fabpot) [54bd6f7] feature #12314 [Form] Add "prototype_data" option to collection type (kgilden) [04ae391] feature #15019 [Form] Deprecated "cascade_validation" (webmozart) [dfb4ccf] feature #14693 [3.0][Translator] changed the visibility of the locale from protected to private. (aitboudad) [921b6aa] feature #14927 Removed deprecated stuff from the Config component (dosten) [3151614] feature #14660 [Form] moved data trimming logic of TrimListener into StringUtil (issei-m) [9f86195] feature #14991 [Console][Table] allow multiple render() calls. (jaytaph) [dd7583d] feature #14429 [FrameworkBundle] Add a doctrine cache service definition for validator mapping (jakzal) [50e752b] feature #14984 [DependencyInjection] Deprecate scope concept (dosten) [93e69e4] feature #15076 [Debug] Allow throwing from __toString() with `return trigger_error($e, E_USER_ERROR);` (nicolas-grekas) [674b124] feature #14238 [config] added remove option to ignoreExtraKeys (twifty) [ffed0ce] feature #15134 [FrameworkBundle] add option to force web server startup (xabbuh) [cad16ac] feature #14764 [TwigBundle] Warmup twig templates in non-standard paths (kbond) [32cbfd4] feature #15096 [DependencyInjection] Allow anonymous DefinitionDecorator resolving (nicolas-grekas) [bfa28d6] feature #15154 [Validator] Added missing error codes and turned codes into UUIDs (webmozart) [fc6ed5b] feature #15141 [DX] [Security] Renamed Token#getKey() to getSecret() (WouterJ) [86e77eb] feature #15175 [VarDumper] Ingore PHPUnit and Prophecy object when they are nested (lyrixx) [02347d5] feature #15139 [Translation] Add parameters to DataCollectorTranslator (damienalexandre) [a48c377] feature #15219 [DependencyInjection] Added ParameterBagInterface::remove (lyrixx) [0e5eb6b] feature #14264 [WebProfilerBundle] Add link to show profile of latest request (xelaris) [b9f45d1] feature #15290 [DependencyInjection] Forbid container cloning (jakzal) [86b218e] feature #15131 [Security] Moved Simple{Form,Pre}AuthenticatorInterfaces to Security\Http (WouterJ) [4995900] feature #15185 Implement resettable containers (stof) [23919ab] feature #15347 [DependencyInjection][3.0] Add initialized to container interface (znerol) [7ec1cd4] Reverted the feature to display different toolbar versions [251314e] feature #15160 Redesigned the web debug toolbar (javiereguiluz) [ce5363a] feature #15372 [FrameworkBundle] Change the default value of cookie_httponly (jderusse) [0de8905] feature #15285 [Config] deprecate cannotBeEmpty() for boolean and numeric nodes (xabbuh) [f02a5dc] feature #14987 [FrameworkBundle] Configurable Serializer name converter (dunglas) [839e925] feature #15123 [2.8][FrameworkBundle] Allow parameter use_cookies in session configuration (derrabus) [3c10715] feature #15418 [Debug] Deprecate ExceptionHandler::createResponse (nicolas-grekas) [5b38d74] feature #15079 [Form] Deprecated FormTypeInterface::getName() and passing of type instances (webmozart) [bffca95] feature #15013 [Security] Removed security-acl from the core (iltar) [c73e0a3] feature #15422 [Debug] Remove deprecated ExceptionHandler::createResponse (nicolas-grekas) [c856a01] feature #15382 [Console] Use readline for user input when available #DX (michaelperrin) [317d30b] feature #13990 [Form] Add flexibility for EntityType (raziel057) [64d0507] feature #15433 Allow to define Enum nodes with 1 single element (javiereguiluz) [a00687f] feature #15416 [DependencyInjection] Added a way to define the priority of service decoration (dosten) [e6d7534] feature #15430 [SecurityBundle] Remove deprecated code (dosten) [c8e05e3] feature #15452 [Translator] [Xliff] Add support for target attributes. (marcosdsanchez) [c1c5f1d] feature #15555 [VarDumper] Add caster for pgsql resources (nicolas-grekas) [19f4ada] fixed tests using deprecation features [d4441e9] feature #15551 [Translation] added <tool> element metadata to XliffFileDumper (aitboudad) [47d001e] feature #15934 Add a non-static API for the CssSelector component (stof) [181d470] feature #15919 [Form] Guess currency field based on validator constraint (enumag) [8d1cee9] feature #15929 [3.0][Config] Remove ResourceInterface::getResource() which was deprecated in 2.8 (mpdude) [5322cbb] feature #15964 Symfony Console Style tweaks (javiereguiluz) [d65f864] feature #15972 [Console] Updated the styles of the server commands (javiereguiluz) [7bc3ec0] feature #15978 Updated the styles of the cache commands (javiereguiluz) [b258949] feature #16007 [HttpFoundation] deprecate finding deep items in request parameters (xabbuh) [8f44cc3] feature #15944 Remove profiler storages (javiereguiluz) [4d855e2] feature #16011 [FrameworkBundle] Tag deprecated services (nicolas-grekas) [ac8fd04] feature #15838 [VarDumper] Dump PHP+Twig code excerpts in backtraces (nicolas-grekas) [2f44171] feature #15503 UI & CSS improvement to new toolbar (WouterJ) [3b3431e] feature #15938 [Console] Bind input before executing the COMMAND event (WouterJ) [aa2e7e4] feature #15899 [3.0][Security] Remove deprecated features (WouterJ) [dbb099d] feature #16029 [FrameworkBundle][TwigBridge] do not render empty form action attributes (xabbuh) [557e416] feature #16018 [HttpKernel] removed deprecated profiler storages (fabpot) [763d478] feature #16019 [HttpFoundation] removed the ParameterBag::get() deep argument (fabpot) [437398d] [3.0][Security] Remove deprecated features (follow up of #15899) [fc41cf0] [3.0][FrameworkBundle] Removed deprecated features [d226d35] feature #15904 [3.0][FrameworkBundle] Removed deprecated features (WouterJ) [6dc3cf9] [3.0][DoctrineBridge] Removed deprecated features [7bab317] feature #15900 [3.0][DoctrineBridge] Removed deprecated features (WouterJ) [925ecaf] [Validator] removed deprecated features in Constraints [17cedd3] [Form] removed usage of Validator deprecated features [33f3400] [Form] removed deprecated features [48d1169] feature #16024 [Validator] removed deprecated features in Validator and Form (fabpot) [ffddafc] feature #15196 [HttpKernel] make RequestStack parameter required (Tobion) [54e3d71] feature #15778 Fluid interface for building routes in PHP (weaverryan) [99745e1] feature #15742 Using a service as a router resource (weaverryan) [aa7d4e6] feature #16020 [CssSelector] removed the deprecated CssSelector class (fabpot) [4af8a55] feature #16057 Deprecate loading multiple documents in the same crawler (stof) [9e60980] feature #16058 Prevent adding non-DOMElement elements in DomCrawler (stof) [6413fb7] feature #16063 [VarDumper] Add $this->getDump($var) when using VarDumperTestTrait (nicolas-grekas) [584cfc2] feature #16069 [WebProfilerBundle] Move AjaxCollector to HttpKernel for use with Silex (glaubinix, fabpot) [5ab9954] feature #16067 [3.0] Remove more deprecated interfaces in Form and Validator (nicolas-grekas) [8fdb412] feature #8967 [HttpFoundation] Request->getRequestFormat should only rely on the request attributes (pvandomm [7e3c4a6] feature #16035 [3.0][Security] Remove deprecated features (follow up of #15899) (Koc) [1e0adf4] feature #14721 [Security] Configuring a user checker per firewall (iltar) [d606e76] feature #16075 [3.0] Clean Form, Validator, DowCrawler and some more (nicolas-grekas) [478ad54] feature #15613 [DependencyInjection] Add autowiring capabilities (dunglas) [3567548] feature #16102 Simplify AbstractVoter (Koc) [88e2d70] feature #16076 [HttpFoundation] change precedence of parameters in Request::get (Tobion) [40cf393] feature #14908 Include working directory in ProcessFailedException (Rvanlaak) [8b15af9] feature #16125 Replace is_callable checks with type hints (mpajunen, nicolas-grekas) [21e50d5] feature #14044 [Console] [Helper] [Table] Columns styles (MAXakaWIZARD) [f72a7c3] feature #16107 [3.0] Various deprecations cleanups (nicolas-grekas) [a1c7af1] feature #16001 [DI] Warn when a definition relies on a deprecated class in ContainerBuilder::createService() (nicolas- [141f9eb] feature #15879 Deprecate the SecureRandom class (pierredup) [10389e3] feature #16189 [PhpUnitBridge] Add SkippedTestsListener to collect and replay skipped tests (nicolas-grekas) [6907498] feature #15025 [2.8] [Form] Rename CollectionType options for entries (WouterJ) [b03ccb3] feature #16198 [EventDispatcher] added EventDispatcher::ge
  6. Agenda • Full change log of features added from 2.7.5

    to 2.8/3.0 [7adb842] feature #12461 [HttpKernel] Removed deprecated Kernel::init() method (saro0h) [73d3770] feature #12731 [Monolog Bridge] Remove deprecated log methods + add unit tests (FlorianLB) [e0205ba] feature #12697 [3.0][Process] Remove deprecated methods (romainneutron) [5417675] feature #12854 [3.0][HttpKernel] Remove unused method Kernel::isClassInActiveBundle (hacfi) [4c1ab52] feature #13046 [3.0] [Bridge] [Swiftmailer] removed Swiftmailer bridge namespace. (hhamon) [d8ebcd2] feature #12994 Add LegacyPdoSessionHandler class (jeremylivingston) [7dee89b] feature #13129 [Yaml] Removed the ability to parse a file in Yaml::parse() (saro0h) [e3872b9] feature #13130 [HttpKernel] Removed deprecated ErrorHandler and ExceptionHandler classes (saro0h) [b9f4425] feature #13128 [Form] Removed deprecated form_enctype() (saro0h) [a15df69] feature #13127 [FrameworkBundle] Removed the deprecated RouterApacheDumperCommand (saro0h) [649061b] feature #13121 [Console] Removed DialogHelper, ProgressHelper and TableHelper (saro0h) [a179b90] feature #12460 [3.0] [FrameworkBundle] removed request service occurrences. (hhamon) [92a7416] feature #12457 [FrameworkBundle] REFS #11294 Controller class become abstract (mickaelandrieu) [900f78a] feature #13216 [3.0] [Config] removed deprecated ReferenceDumper class. (hhamon) [9c6d315] feature #13122 [3.0][Form] Removed depracted events PRE_BIND, BIND and POST_BIND (saro0h) [eb5f3b4] feature #12663 [FrameworkBundle] remove deprecated method 'createEsi' (FlorianLB) [6a6d9c3] feature #13233 [TwigBundle] removed deprecated ActionsExtension (fabpot) [2afd614] removed deprecated Twig features [86278cd] [Routing] remove deprecated features from routing [4ca9ab3] [FrameworkBundle] remove deprecated routing features [7b6f6d7] feature #13409 removed deprecated Twig features (fabpot) [cca5e41] feature #13203 [3.0] [ClassLoader] removed deprecated UniversalClassLoader and DebugClassLoader classes. (hhamon) [9f195cd] feature #13260 [3.0][EventDispatcher][Event] removed deprecated methods (aitboudad) [270818d] feature #13348 [3.0][Monolog] Remove deprecated interface and deprecated methods (rosier) [9ff47b8] feature #13086 [Console] Define isVerbose(), etc. methods in OutputInterface (frne) [2e496e1] feature #13258 [HttpFoundation] remove deprecated : FlashBag don't implement anymore IteratorAggregate (FlorianLB) [f7395c7] feature #13444 [Serializer] Remove deprecated JSON error methods (dunglas) [589179c] feature #13396 [Routing] remove deprecations for 3.0 (Tobion) [5e90ef4] feature #13407 [Form] Remove deprecated setDefaultOptions and OptionsResolverInterface (peterrehm) [8018d4b] removed deprecated asset feature [52badd0] removed deprecated Twig features [d948837] feature #13666 removed deprecated asset feature (fabpot) [fffcc24] feature #13752 [PropertyAccess] remove deprecations for 3.0 (Tobion) [ad1888b] feature #13756 [3.0][Console] Added type hint (francisbesset) [f538167] feature #13808 [OptionsResolver] removed deprecated functionality (Tobion) [156c4a2] feature #14070 removed all *.class parameters (fabpot) [01cebda] feature #14091 [3.0] [FrameworkBundle] Drop backward compatibility for debug commands (matthieuauger) [aec88f4] feature #14119 Removed deprecation in YAML component (saro0h) [e01a9a6] feature #14118 Removed deprecations in Console component (saro0h) [2669016] feature #14120 Removed deprecation in translation component (saro0h) [0409baa] feature #14156 Remove deprecated Locale component (stloyd) [8d6929b] feature #14150 Removed deprecations in Templating component (dosten) [637c8bb] feature #14147 Removed deprecations in Process component (dosten) [5d7f909] feature #14169 [Debug] Removed deprecated interfaces (nicolas-grekas) [630a982] feature #14220 [3.0][Console][OutputStyle] Implements verbosity levels methods (ogizanagi) [73853c4] feature #14317 [3.0][FrameworkBundle][lint commands ] remove deprecated alias. (vincentaubert) [6bab76d] feature #14383 [FrameworkBundle][Server Command] add address port number option. (aitboudad) [862bdf1] feature #14359 [Translation] added FileLoader. (aitboudad) [449b18c] feature #14424 [VarDumper] Added support for SplFileInfo (lyrixx) [e861134] feature #14431 [Console] Bind the closure (code) to the Command if possible (lyrixx) [a4e3e07] feature #14443 [VarDumper] Allow preserving a subset of cut arrays (nicolas-grekas) [7e29d2c] feature #14473 [DX] Minor improvement for the translation:debug output (nicolasdewez) [1973960] feature #14320 [Translation] added an --all option to the debug:translation command #14237 (sgehrig) [55b3525] feature #14546 [Translator] deprecate getMessages in favor of getCatalogue. (aitboudad) [da0194b] feature #14563 [FrameworkBundle][EventDispatcher] Add priorities to the debug:event-dispatcher command (Seldaek) [88b7e7c] feature #14561 [FrameworkBundle][DX] Add option to specify additional translation loading paths (Seldaek) [5e623a9] feature #14153 Remove the legacy PDO session handler (dosten) [5b117e6] feature #14145 Removed deprecations in Filesystem component (dosten) [22c2345] feature #14155 Removed deprecations in DependencyInjection component (dosten) [65d4ae0] feature #13324 [WebProfilerBundle] Improved page for logs (hason) [791e583] feature #14403 [Form] deprecate read_only option (Tobion) [a57ce90] feature #14630 [Translator] Dump translation constants as tree instead of simple list (gepo) [2983ecb] feature #14756 [Serializer] Support for array denormalization (derrabus) [78cf382] feature #14733 [Security] Add setVoters() on AccessDecisionManager (nicolas-grekas) [d04cc5e] feature #14700 [DependencyInjection] [Routing] [Config] Recursive directory loading (lavoiesl, nicolas-grekas) [4133aad] feature #14781 [TwigBundle] Reconfigure twig paths when they are updated (chbruyand) [567af65] feature #14904 [toolbar] Merged colored icons in toolbar (MJBGO) [0315e5d] feature #14903 [profiler][request toolbar] Removed route name from the toolbar (MJBGO) [a44ceb3] feature #14912 [HttpFoundation] Postpone setting the date header on a Response (jakzal) [15ff865] feature #14993 [Profiler][Translation] added filter. (aitboudad) [35f0a32] feature #14928 Removed deprecated stuff from the Console component (dosten) [09fabfe] feature #12067 [Form] Added the 'range' FormType (jaytaph) [a2bdc72] feature #14979 [Security] removed obsolete translations (fabpot) [54bd6f7] feature #12314 [Form] Add "prototype_data" option to collection type (kgilden) [04ae391] feature #15019 [Form] Deprecated "cascade_validation" (webmozart) [dfb4ccf] feature #14693 [3.0][Translator] changed the visibility of the locale from protected to private. (aitboudad) [921b6aa] feature #14927 Removed deprecated stuff from the Config component (dosten) [3151614] feature #14660 [Form] moved data trimming logic of TrimListener into StringUtil (issei-m) [9f86195] feature #14991 [Console][Table] allow multiple render() calls. (jaytaph) [dd7583d] feature #14429 [FrameworkBundle] Add a doctrine cache service definition for validator mapping (jakzal) [50e752b] feature #14984 [DependencyInjection] Deprecate scope concept (dosten) [93e69e4] feature #15076 [Debug] Allow throwing from __toString() with `return trigger_error($e, E_USER_ERROR);` (nicolas-grekas) [674b124] feature #14238 [config] added remove option to ignoreExtraKeys (twifty) [ffed0ce] feature #15134 [FrameworkBundle] add option to force web server startup (xabbuh) [cad16ac] feature #14764 [TwigBundle] Warmup twig templates in non-standard paths (kbond) [32cbfd4] feature #15096 [DependencyInjection] Allow anonymous DefinitionDecorator resolving (nicolas-grekas) [bfa28d6] feature #15154 [Validator] Added missing error codes and turned codes into UUIDs (webmozart) [fc6ed5b] feature #15141 [DX] [Security] Renamed Token#getKey() to getSecret() (WouterJ) [86e77eb] feature #15175 [VarDumper] Ingore PHPUnit and Prophecy object when they are nested (lyrixx) [02347d5] feature #15139 [Translation] Add parameters to DataCollectorTranslator (damienalexandre) [a48c377] feature #15219 [DependencyInjection] Added ParameterBagInterface::remove (lyrixx) [0e5eb6b] feature #14264 [WebProfilerBundle] Add link to show profile of latest request (xelaris) [b9f45d1] feature #15290 [DependencyInjection] Forbid container cloning (jakzal) [86b218e] feature #15131 [Security] Moved Simple{Form,Pre}AuthenticatorInterfaces to Security\Http (WouterJ) [4995900] feature #15185 Implement resettable containers (stof) [23919ab] feature #15347 [DependencyInjection][3.0] Add initialized to container interface (znerol) [7ec1cd4] Reverted the feature to display different toolbar versions [251314e] feature #15160 Redesigned the web debug toolbar (javiereguiluz) [ce5363a] feature #15372 [FrameworkBundle] Change the default value of cookie_httponly (jderusse) [0de8905] feature #15285 [Config] deprecate cannotBeEmpty() for boolean and numeric nodes (xabbuh) [f02a5dc] feature #14987 [FrameworkBundle] Configurable Serializer name converter (dunglas) [839e925] feature #15123 [2.8][FrameworkBundle] Allow parameter use_cookies in session configuration (derrabus) [3c10715] feature #15418 [Debug] Deprecate ExceptionHandler::createResponse (nicolas-grekas) [5b38d74] feature #15079 [Form] Deprecated FormTypeInterface::getName() and passing of type instances (webmozart) [bffca95] feature #15013 [Security] Removed security-acl from the core (iltar) [c73e0a3] feature #15422 [Debug] Remove deprecated ExceptionHandler::createResponse (nicolas-grekas) [c856a01] feature #15382 [Console] Use readline for user input when available #DX (michaelperrin) [317d30b] feature #13990 [Form] Add flexibility for EntityType (raziel057) [64d0507] feature #15433 Allow to define Enum nodes with 1 single element (javiereguiluz) [a00687f] feature #15416 [DependencyInjection] Added a way to define the priority of service decoration (dosten) [e6d7534] feature #15430 [SecurityBundle] Remove deprecated code (dosten) [c8e05e3] feature #15452 [Translator] [Xliff] Add support for target attributes. (marcosdsanchez) [c1c5f1d] feature #15555 [VarDumper] Add caster for pgsql resources (nicolas-grekas) [19f4ada] fixed tests using deprecation features [d4441e9] feature #15551 [Translation] added <tool> element metadata to XliffFileDumper (aitboudad) [47d001e] feature #15934 Add a non-static API for the CssSelector component (stof) [181d470] feature #15919 [Form] Guess currency field based on validator constraint (enumag) [8d1cee9] feature #15929 [3.0][Config] Remove ResourceInterface::getResource() which was deprecated in 2.8 (mpdude) [5322cbb] feature #15964 Symfony Console Style tweaks (javiereguiluz) [d65f864] feature #15972 [Console] Updated the styles of the server commands (javiereguiluz) [7bc3ec0] feature #15978 Updated the styles of the cache commands (javiereguiluz) [b258949] feature #16007 [HttpFoundation] deprecate finding deep items in request parameters (xabbuh) [8f44cc3] feature #15944 Remove profiler storages (javiereguiluz) [4d855e2] feature #16011 [FrameworkBundle] Tag deprecated services (nicolas-grekas) [ac8fd04] feature #15838 [VarDumper] Dump PHP+Twig code excerpts in backtraces (nicolas-grekas) [2f44171] feature #15503 UI & CSS improvement to new toolbar (WouterJ) [3b3431e] feature #15938 [Console] Bind input before executing the COMMAND event (WouterJ) [aa2e7e4] feature #15899 [3.0][Security] Remove deprecated features (WouterJ) [dbb099d] feature #16029 [FrameworkBundle][TwigBridge] do not render empty form action attributes (xabbuh) [557e416] feature #16018 [HttpKernel] removed deprecated profiler storages (fabpot) [763d478] feature #16019 [HttpFoundation] removed the ParameterBag::get() deep argument (fabpot) [437398d] [3.0][Security] Remove deprecated features (follow up of #15899) [fc41cf0] [3.0][FrameworkBundle] Removed deprecated features [d226d35] feature #15904 [3.0][FrameworkBundle] Removed deprecated features (WouterJ) [6dc3cf9] [3.0][DoctrineBridge] Removed deprecated features [7bab317] feature #15900 [3.0][DoctrineBridge] Removed deprecated features (WouterJ) [925ecaf] [Validator] removed deprecated features in Constraints [17cedd3] [Form] removed usage of Validator deprecated features [33f3400] [Form] removed deprecated features [48d1169] feature #16024 [Validator] removed deprecated features in Validator and Form (fabpot) [ffddafc] feature #15196 [HttpKernel] make RequestStack parameter required (Tobion) [54e3d71] feature #15778 Fluid interface for building routes in PHP (weaverryan) [99745e1] feature #15742 Using a service as a router resource (weaverryan) [aa7d4e6] feature #16020 [CssSelector] removed the deprecated CssSelector class (fabpot) [4af8a55] feature #16057 Deprecate loading multiple documents in the same crawler (stof) [9e60980] feature #16058 Prevent adding non-DOMElement elements in DomCrawler (stof) [6413fb7] feature #16063 [VarDumper] Add $this->getDump($var) when using VarDumperTestTrait (nicolas-grekas) [584cfc2] feature #16069 [WebProfilerBundle] Move AjaxCollector to HttpKernel for use with Silex (glaubinix, fabpot) [5ab9954] feature #16067 [3.0] Remove more deprecated interfaces in Form and Validator (nicolas-grekas) [8fdb412] feature #8967 [HttpFoundation] Request->getRequestFormat should only rely on the request attributes (pvandomm [7e3c4a6] feature #16035 [3.0][Security] Remove deprecated features (follow up of #15899) (Koc) [1e0adf4] feature #14721 [Security] Configuring a user checker per firewall (iltar) [d606e76] feature #16075 [3.0] Clean Form, Validator, DowCrawler and some more (nicolas-grekas) [478ad54] feature #15613 [DependencyInjection] Add autowiring capabilities (dunglas) [3567548] feature #16102 Simplify AbstractVoter (Koc) [88e2d70] feature #16076 [HttpFoundation] change precedence of parameters in Request::get (Tobion) [40cf393] feature #14908 Include working directory in ProcessFailedException (Rvanlaak) [8b15af9] feature #16125 Replace is_callable checks with type hints (mpajunen, nicolas-grekas) [21e50d5] feature #14044 [Console] [Helper] [Table] Columns styles (MAXakaWIZARD) [f72a7c3] feature #16107 [3.0] Various deprecations cleanups (nicolas-grekas) [a1c7af1] feature #16001 [DI] Warn when a definition relies on a deprecated class in ContainerBuilder::createService() (nicolas- [141f9eb] feature #15879 Deprecate the SecureRandom class (pierredup) [10389e3] feature #16189 [PhpUnitBridge] Add SkippedTestsListener to collect and replay skipped tests (nicolas-grekas) [6907498] feature #15025 [2.8] [Form] Rename CollectionType options for entries (WouterJ) [b03ccb3] feature #16198 [EventDispatcher] added EventDispatcher::ge
  7. Agenda Releases / Versions 1 Most relevant deprecations 2 New

    features (sexiest) 3 Migrate your app to Symfony3 4
  8. Symfony Development • Symfony manages its releases through a time-based

    model. • New Symfony versions come out every six months, one in May, one in November.
  9. version 2.7 version 2.8 version 3.0 Long Term Support (Supported

    until may 2019) Long Term Support (Supported until novembre 2019)
  10. version 2.7 version 2.8 version 3.0 Long Term Support (Supported

    until may 2019) Long Term Support (Supported until novembre 2019) More features!
  11. version 2.7 version 2.8 version 3.0 Long Term Support (Supported

    until may 2019) Long Term Support (Supported until novembre 2019) More features! Backward compatibility assured
  12. version 2.7 version 2.8 version 3.0 Long Term Support (Supported

    until may 2019) Long Term Support (Supported until novembre 2019) More features! Backward compatibility assured === 2.8 without the BC layer
  13. version 2.7 version 2.8 version 3.0 Long Term Support (Supported

    until may 2019) Long Term Support (Supported until novembre 2019) More features! Backward compatibility assured === 2.8 without the BC layer 5.5.9+
  14. Remove the concept of scopes Scopes: • Container: The same

    instance is used each time you ask for it from this container. • Prototype: A new instance is created each time you ask for the service. • Request: This scope is tied to the request, meaning a new instance is created for each subrequest and is unavailable outside the request (for instance in the CLI). https://github.com/symfony/symfony/pull/15693
  15. Remove synchronized services • Synchronization of the dependencies with the

    request. • But the request service is about to be removed, so no need anymore.
  16. Forms • Form::bind() will be removed • use Form::submit() or

    Form::handleRequest() • AbstractType::setDefaultOptions() will be removed • use AbstractType::configureOptions() • The virtual option disappears.
  17. Validation • Optional and Required constraints disappears /** * @Assert\Collection(

    * fields={ * "personal_email" = @Assert\Required({@Assert\NotBlank, @Assert\Email}), * "alternate_email" = @Assert\Optional(@Assert\Email) * } * ) */ private $data;
  18. VoterInterface & AbstractVoter • Deprecated: • VoterInterface::supportsAttribute() • VoterInterface::supportsClass() •

    Extend: • AbstractVoter::getSupportedClasses() • AbstractVoter::getSupportedAttributes() • and implement the isGranted() method.
  19. Twig templates • Removal of the {% render %} tag

    • Removal of the {% include %} tag • Removal of the global variable app.security
  20. Configuration before autowiring services: serviceA: class: MyBundle\MyClass arguments: [dependency1, dependency2]

    dependency1: class: MyBundle\MyDependencyOneClass dependency2: class: MyBundle\MyDependencyTwoClass
  21. Configuration with autowiring services: serviceA: class: MyBundle\MyClass autowire: true Parse

    the constructor: - if there is already a definition of the dependencies, it will inject it; - otherwise, it registers the dependencies as private services.
  22. If the constructor has interfaces as type hint for its

    dependencies? • It looks for a service that implements that interface. • If several services implement the same interface: services: dependency1: class: MyBundle\MyClass autowiring_types: MyInterface
  23. Decoration priority services: foo: class: Foo bar: class: Bar arguments:

    ['@bar.inner'] decorates: foo public: false foobar: class: Foobar arguments: ['@foobar.inner'] decorates: foo decoration_priority: 1 public: false https://github.com/symfony/symfony/pull/15416 $this->services['foo'] = new Bar(new Foobar(new Foo))); =>
  24. What’s that? • Backports features found in latest PHP versions

    • Provides compatibility PHP implementations for some extensions and functions • You should use it when portability across PHP versions and extensions is desired
  25. Previously we did it thanks to the SimplePreAuthenticator Implement the

    SimplePreAuthenticatorInterface 1. createToken(Request $request, $providerkey) 2. supportsToken(TokenInterface $token, $provider) 3. authenticateToken(TokenInterface $token, UserProviderInterface $userProvider) step 1 / 3
  26. Previously we did it thanks to the SimplePreAuthenticator Implement the

    SimplePreAuthenticatorInterface 1. createToken(Request $request, $providerkey) 2. supportsToken(TokenInterface $token, $provider) 3. authenticateToken(TokenInterface $token, UserProviderInterface $userProvider) Create a token object that contains all of the information from the request that you need to authenticate the user. step 1 / 3
  27. Previously we did it thanks to the SimplePreAuthenticator Implement the

    SimplePreAuthenticatorInterface 1. createToken(Request $request, $providerkey) 2. supportsToken(TokenInterface $token, $provider) 3. authenticateToken(TokenInterface $token, UserProviderInterface $userProvider) Create a token object that contains all of the information from the request that you need to authenticate the user. Figure out who should handle the token. you just need to make sure that this method returns true for a token that has been created by createToken(). step 1 / 3
  28. Previously we did it thanks to the SimplePreAuthenticator Implement the

    SimplePreAuthenticatorInterface 1. createToken(Request $request, $providerkey) 2. supportsToken(TokenInterface $token, $provider) 3. authenticateToken(TokenInterface $token, UserProviderInterface $userProvider) Create a token object that contains all of the information from the request that you need to authenticate the user. Call the user provider thanks to the info in the token, to get the user and complete the token. Figure out who should handle the token. you just need to make sure that this method returns true for a token that has been created by createToken(). step 1 / 3
  29. Previously we did it thanks to the SimplePreAuthenticator Implement the

    SimplePreAuthenticatorInterface 1. createToken(Request $request, $providerkey) 2. supportsToken(TokenInterface $token, $provider) 3. authenticateToken(TokenInterface $token, UserProviderInterface $userProvider) Create a token object that contains all of the information from the request that you need to authenticate the user. Call the user provider thanks to the info in the token, to get the user and complete the token. Figure out who should handle the token. you just need to make sure that this method returns true for a token that has been created by createToken(). step 1 / 3 And it as has to be a service
  30. Previously we did it thanks to the SimplePreAuthenticator Implement the

    UserProviderInterface 1. loadUserByUsername($username) 2. refreshUser(UserInterface $user) 3. supportsToken($class) step 2 / 3
  31. Previously we did it thanks to the SimplePreAuthenticator Implement the

    UserProviderInterface 1. loadUserByUsername($username) 2. refreshUser(UserInterface $user) 3. supportsToken($class) step 2 / 3 Gets the user, and return an object implement the UserInterface.
  32. Previously we did it thanks to the SimplePreAuthenticator Implement the

    UserProviderInterface 1. loadUserByUsername($username) 2. refreshUser(UserInterface $user) 3. supportsToken($class) step 2 / 3 Gets the user, and return an object implement the UserInterface. Called at every request, should return the user updated.
  33. Previously we did it thanks to the SimplePreAuthenticator Implement the

    UserProviderInterface 1. loadUserByUsername($username) 2. refreshUser(UserInterface $user) 3. supportsToken($class) step 2 / 3 Gets the user, and return an object implement the UserInterface. Called at every request, should return the user updated. Returns true if the type of the token is supported.
  34. Previously we did it thanks to the SimplePreAuthenticator Implement the

    UserProviderInterface 1. loadUserByUsername($username) 2. refreshUser(UserInterface $user) 3. supportsToken($class) step 2 / 3 Gets the user, and return an object implement the UserInterface. Called at every request, should return the user updated. Returns true if the type of the token is supported. And it as has to be a service
  35. Previously we did it thanks to the SimplePreAuthenticator Wire everything

    thanks to the configuration of the SecurityBundle security: firewalls: secured_area: pattern: ^/admin simple_preauth: authenticator: name_of_authenticator_service provider: my_user_provider providers: my_user_provider: id: name_of_your_user_provider_service step 3 / 3
  36. Implement authentication with Guard Extends the AbstractGuardAuthenticator 1. getCredentials(Request $request)

    2. getUser($credentials, UserProviderInterface $userProvider) 3. checkCredentials($credentials, UserInterface $user) 4. onAuthenticationSuccess(Request $request, TokenInterface $token, $providerKey) 5. onAuthenticationFailure(Request $request, AuthenticationException $e) 6. start(Request $request, AuthenticationException $exception) 7. supportsRememberMe() step 1 / 2
  37. Implement authentication with Guard Extends the AbstractGuardAuthenticator 1. getCredentials(Request $request)

    2. getUser($credentials, UserProviderInterface $userProvider) 3. checkCredentials($credentials, UserInterface $user) 4. onAuthenticationSuccess(Request $request, TokenInterface $token, $providerKey) 5. onAuthenticationFailure(Request $request, AuthenticationException $e) 6. start(Request $request, AuthenticationException $exception) 7. supportsRememberMe() step 1 / 2 And it as has to be a service
  38. Implement authentication with Guard Wire everything thanks to the configuration

    of the SecurityBundle security: firewalls: secured_area: authenticators: - app.api_token_authenticator entry_point: app.form_login_authenticator providers: database_users: entity: { class: AppBundle:User, property: username } step 2 / 2
  39. 1. getCredentials(Request $request) The getCredentials() method is called on every

    single request and its job is to fetch the API token and return it.
  40. 3. checkCredentials($credentials, UserInterface $user) Here, you can do any additional

    checks for the validity of the token - or anything else you can think of.
  41. 4. onAuthenticationSuccess(Request $request, TokenInterface $token, $providerKey) Your user is authenticated!

    Amazing! At this point, in an API, you usually want to simply let the request continue like normal. return;
  42. 5. onAuthenticationFailure(Request $request, AuthenticationException $e) If the getUser() method returns

    null or throws an AuthenticationException, then you’ll end up here. return new JsonResponse( array('message' => $exception->getMessageKey()), 403 );
  43. 7. supportsRememberMe This method is required for all authenticators. If

    true, then the authenticator will work together with the remember_me functionality on your firewall, if you have it configured. Obviously, for an API, we don't need remember me functionality.
  44. What’s that? • Each components that needs to introspect in

    object properties have its own logic. • This component propose a common API to introspect object properties • Which component? Serializer / Form / Validator…
  45. How to use it? security: providers: ldap_users: ldap: service: my_ldap

    base_dn: dc=MyDomain,dc=tld search_dn: CN=My User,OU=Users,DC=MyDomain,DC=tld search_password: p455w0rd filter: (sAMAccountName={username}) default_roles: ROLE_USER firewalls: api: provider: ldap_users stateless: true pattern: ^/api http_basic_ldap: service: my_ldap dn_string: "{username}@MYDOMAIN" demo_secured_area: provider: ldap_users pattern: ^/ form_login_ldap: service: my_ldap dn_string: CN={username},OU=Users,DC=MyDomain,DC=tld check_path: login_check login_path: login