Slide 1

Slide 1 text

The future of Symfony Sarah Khalil - October 22nd, 2015

Slide 2

Slide 2 text

Who I am? • Head of • Trainer & Developer • Enjoying sharer • Contributor to

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

Agenda • Full change log of features added from 2.7.5 to 2.8/3.0

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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 element metadata to XliffFileDumper (aitboudad)

Slide 7

Slide 7 text

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 element metadata to XliffFileDumper (aitboudad)

Slide 8

Slide 8 text

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 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

Slide 9

Slide 9 text

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 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

Slide 10

Slide 10 text

Agenda

Slide 11

Slide 11 text

Agenda Releases / Versions 1

Slide 12

Slide 12 text

Agenda Releases / Versions 1 Most relevant deprecations 2

Slide 13

Slide 13 text

Agenda Releases / Versions 1 Most relevant deprecations 2 New features (sexiest) 3

Slide 14

Slide 14 text

Agenda Releases / Versions 1 Most relevant deprecations 2 New features (sexiest) 3 Migrate your app to Symfony3 4

Slide 15

Slide 15 text

Releases / Versions 1

Slide 16

Slide 16 text

version 3

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

-Everyone « When should I migrate to Symfony3 »

Slide 19

Slide 19 text

Roadmap - releases Know when to upgrade

Slide 20

Slide 20 text

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.

Slide 21

Slide 21 text

Symfony Versions

Slide 22

Slide 22 text

-Probably you « What about the next version on November then? »

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

version 2.7 version 2.8 version 3.0

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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!

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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+

Slide 31

Slide 31 text

http://symfony.com/doc/current/contributing/code/bc.html

Slide 32

Slide 32 text

Some of the deprecations you should be aware of 2

Slide 33

Slide 33 text

Some of the deprecations you should be aware of 2

Slide 34

Slide 34 text

Deprecated services

Slide 35

Slide 35 text

Deprecated services form.csrf_provider

Slide 36

Slide 36 text

Deprecated services form.csrf_provider

Slide 37

Slide 37 text

Deprecated services form.csrf_provider security.csrf.token_manager

Slide 38

Slide 38 text

Deprecated services form.csrf_provider request security.csrf.token_manager

Slide 39

Slide 39 text

Deprecated services form.csrf_provider request security.csrf.token_manager

Slide 40

Slide 40 text

Deprecated services form.csrf_provider request request_stack security.csrf.token_manager

Slide 41

Slide 41 text

Deprecated services form.csrf_provider request security.context request_stack security.csrf.token_manager

Slide 42

Slide 42 text

Deprecated services form.csrf_provider request security.context request_stack security.csrf.token_manager

Slide 43

Slide 43 text

Deprecated services form.csrf_provider request security.context security.token_storage security.authorization_checker request_stack security.csrf.token_manager

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

Remove synchronized services • Synchronization of the dependencies with the request. • But the request service is about to be removed, so no need anymore.

Slide 46

Slide 46 text

Event dispatcher • You cannot access the event dispatcher from an event anymore.

Slide 47

Slide 47 text

Forms • Form::bind() will be removed • use Form::submit() or Form::handleRequest() • AbstractType::setDefaultOptions() will be removed • use AbstractType::configureOptions() • The virtual option disappears.

Slide 48

Slide 48 text

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;

Slide 49

Slide 49 text

VoterInterface & AbstractVoter • Deprecated: • VoterInterface::supportsAttribute() • VoterInterface::supportsClass() • Extend: • AbstractVoter::getSupportedClasses() • AbstractVoter::getSupportedAttributes() • and implement the isGranted() method.

Slide 50

Slide 50 text

Twig templates • Removal of the {% render %} tag • Removal of the {% include %} tag • Removal of the global variable app.security

Slide 51

Slide 51 text

New Cool Features 3

Slide 52

Slide 52 text

New Cool Features 3

Slide 53

Slide 53 text

Service autowiring

Slide 54

Slide 54 text

Use case Service A dependency 1 dependency 2

Slide 55

Slide 55 text

Configuration before autowiring services: serviceA: class: MyBundle\MyClass arguments: [dependency1, dependency2] dependency1: class: MyBundle\MyDependencyOneClass dependency2: class: MyBundle\MyDependencyTwoClass

Slide 56

Slide 56 text

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.

Slide 57

Slide 57 text

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

Slide 58

Slide 58 text

https://dunglas.fr/2015/10/new-in-symfony-2-83-0- services-autowiring/

Slide 59

Slide 59 text

Decoration pritorities

Slide 60

Slide 60 text

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))); =>

Slide 61

Slide 61 text

New component: Polyfill

Slide 62

Slide 62 text

No content

Slide 63

Slide 63 text

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

Slide 64

Slide 64 text

New component: Guard

Slide 65

Slide 65 text

New component: Guard

Slide 66

Slide 66 text

No content

Slide 67

Slide 67 text

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

Slide 68

Slide 68 text

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

Slide 69

Slide 69 text

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

Slide 70

Slide 70 text

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

Slide 71

Slide 71 text

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

Slide 72

Slide 72 text

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

Slide 73

Slide 73 text

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.

Slide 74

Slide 74 text

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.

Slide 75

Slide 75 text

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.

Slide 76

Slide 76 text

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

Slide 77

Slide 77 text

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

Slide 78

Slide 78 text

No content

Slide 79

Slide 79 text

No content

Slide 80

Slide 80 text

Now a brand new component

Slide 81

Slide 81 text

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

Slide 82

Slide 82 text

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

Slide 83

Slide 83 text

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

Slide 84

Slide 84 text

7 methods to implement

Slide 85

Slide 85 text

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.

Slide 86

Slide 86 text

2. getUser($credentials, UserProviderInterface $userProvider) Its job is simple: return a the user (an object implementing UserInterface).

Slide 87

Slide 87 text

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.

Slide 88

Slide 88 text

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;

Slide 89

Slide 89 text

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 );

Slide 90

Slide 90 text

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.

Slide 91

Slide 91 text

Tutorials by KnpUniversity https://knpuniversity.com/screencast/guard

Slide 92

Slide 92 text

Symfony Profiler looks better!

Slide 93

Slide 93 text

No content

Slide 94

Slide 94 text

No content

Slide 95

Slide 95 text

No content

Slide 96

Slide 96 text

No content

Slide 97

Slide 97 text

No content

Slide 98

Slide 98 text

New architecture of Symfony full stack

Slide 99

Slide 99 text

No content

Slide 100

Slide 100 text

console

Slide 101

Slide 101 text

console

Slide 102

Slide 102 text

console /cache /logs

Slide 103

Slide 103 text

New component: Property Info

Slide 104

Slide 104 text

No content

Slide 105

Slide 105 text

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…

Slide 106

Slide 106 text

New component: LDAP

Slide 107

Slide 107 text

Before…

Slide 108

Slide 108 text

No content

Slide 109

Slide 109 text

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

Slide 110

Slide 110 text

Migrate my application to Symfony3 4

Slide 111

Slide 111 text

How to spot the deprecations in my application?

Slide 112

Slide 112 text

No content

Slide 113

Slide 113 text

insight.sensiolabs.com

Slide 114

Slide 114 text

SensioLabs DeprecationDetector • Command line tool deprecation-detector check https://github.com/sensiolabs-de/deprecation-detector

Slide 115

Slide 115 text

SensioLabs DeprecationDetector • Command line tool deprecation-detector check https://github.com/sensiolabs-de/deprecation-detector

Slide 116

Slide 116 text

In your tests with PHPUnit http://symfony.com/blog/new-in-symfony-2-7-phpunit-bridge composer require --dev "symfony/phpunit-bridge"

Slide 117

Slide 117 text

Symfony 2.8 & 3.0 are out in November 2015 2.8 is an LTS version!

Slide 118

Slide 118 text

https://speakerdeck.com/freerich/symfony3

Slide 119

Slide 119 text

Follow him! He’s cute ;) @catlannister

Slide 120

Slide 120 text

http://tinyurl.com/sfcon2015

Slide 121

Slide 121 text

http://tinyurl.com/sfliveusa

Slide 122

Slide 122 text

Thank you! @saro0h speakerdeck.com/saro0h/ saro0h This is a zero guys!