Symfony 3.4.0-BETA1 has just been released. Here is a list of the most important changes:

  • feature #24583 Adding a new debug:autowiring command (@weaverryan)
  • feature #24523 [HttpFoundation] Make sessions secure and lazy (@nicolas-grekas)
  • feature #22610 [Form] [TwigBridge] Added option to disable usage of default themes when rendering a form (@emodric)
  • feature #23112 [OptionsResolver] Support array of types in allowed type (@pierredup)
  • feature #24321 added ability to handle parent classes for PropertyNormalizer (@ivoba)
  • feature #24505 [HttpKernel] implement reset() in DumpDataCollector (@xabbuh)
  • feature #24425 [Console][HttpKernel] Handle new SHELL_VERBOSITY env var, also configures the default logger (@nicolas-grekas)
  • feature #24387 [FORM] Prevent forms from extending itself as a parent (@pierredup)
  • feature #24484 [DI] Throw accurate failures when accessing removed services (@nicolas-grekas)
  • feature #24208 [Form] Display option definition from a given form type (@yceruto, @ogizanagi)
  • feature #23499 [Workflow] add guard is_valid() method support (@alain-flaus, @lyrixx)
  • feature #24388 [Security] Look at headers for switch_user username (@chalasr)
  • feature #23708 Added deprecation to cwd not existing Fixes #18249 (@alexbowers)
  • feature #24443 [Session] deprecate MemcacheSessionHandler (@Tobion)
  • feature #24409 [BridgeDoctrine][FrameworkBundle] Deprecate some remaining uses of ContainerAwareTrait (@nicolas-grekas)
  • feature #24438 [Session][VarDumper] Deprecate accepting legacy mongo extension (@Tobion)
  • feature #24389 [DoctrineBridge] Deprecate dbal session handler (@Tobion)
  • feature #16835 [Security] Add Guard authenticator <supports> method (@Amo, @chalasr)
  • feature #24289 [FrameworkBundle][HttpKernel] Reset profiler (@derrabus)
  • feature #24144 [FrameworkBundle] Expose dotenv in bin/console about (@ro0NL)
  • feature #24403 [FrameworkBundle][Routing] Show welcome message if no routes are configured (@yceruto)
  • feature #22679 [Form] Add tel and color types (@apetitpa)
  • feature #23845 [Validator] Add unique entity violation cause (@Ilya Vertakov)
  • feature #22132 [Lock] Automaticaly release lock when user forget it (@jderusse)
  • feature #21751 Bootstrap4 support for Twig form theme (@hiddewie, @javiereguiluz)
  • feature #24383 [FrameworkBundle] Don't clear app pools on cache:clear (@nicolas-grekas)
  • feature #24148 [Form] Hide label button when its setted to false (@TeLiXj)
  • feature #24378 [SecurityBundle] Deprecate auto picking the first provider (@ogizanagi)
  • feature #24260 [Security] Add impersonation support for stateless authentication (@chalasr)
  • feature #24300 [HttpKernel][FrameworkBundle] Add a minimalist default PSR-3 logger (@dunglas)
  • feature #21604 [Security] Argon2i Password Encoder (@zanbaldwin)
  • feature #24372 [DowCrawler] Default to UTF-8 when possible (@nicolas-grekas)
  • feature #24264 [TwigBundle] Improve the overriding of bundle templates (@yceruto)
  • feature #24197 [Translation] Moved PhpExtractor and PhpStringTokenParser to Translation component (@Nyholm)
  • feature #24362 [HttpKernel] Deprecate some compiler passes in favor of tagged iterator args (@nicolas-grekas)
  • feature #21027 [Asset] Provide default context (@ro0NL)
  • feature #22200 [DI] Reference tagged services in config (@ro0NL)
  • feature #24337 Adding a shortcuts for the main security functionality (@weaverryan, @javiereguiluz)
  • feature #24358 [TwigBundle] register an identity translator as fallback (@xabbuh)
  • feature #24357 [Yaml] include file and line no in deprecation message (@xabbuh)
  • feature #24330 [FrameworkBundle] register class metadata factory alias (@xabbuh)
  • feature #24349 [SecurityBundle] Add missing AclSchemaListener deprecation (@ogizanagi)
  • feature #24202 [Filesystem] deprecate relative paths in makePathRelative() (@xabbuh)
  • feature #21716 [Serializer] Add Support for object_to_populate in CustomNormalizer (@chrisguitarguy)
  • feature #21960 Remove ValidatorTypeTestCase and add validator logic to base TypeTestCase (@pierredup)
  • feature #22113 [Lock] Include lock component in framework bundle (@jderusse)
  • feature #24236 [WebProfilerBundle] Render file links for twig templates (@ro0NL)
  • feature #21239 [Serializer] throw more specific exceptions (@xabbuh)
  • feature #24256 CsvEncoder handling variable structures and custom header order (@Oliver Hoff)
  • feature #23471 [Finder] Add a method to check if any results were found (@duncan3dc)
  • feature #23149 [PhpUnitBridge] Added a CoverageListener to enhance the code coverage report (@lyrixx)
  • feature #24318 [SecurityBundle] Deprecate ACL related code (@chalasr)
  • feature #24335 [Security][SecurityBundle] Deprecate the HTTP digest auth (@ogizanagi)
  • feature #21951 [Security][Firewall] Passing the newly generated security token to the event during user switching (@klandaika)
  • feature #23485 [Config] extracted the xml parsing from XmlUtils::loadFile into XmlUtils::parse (@Basster)
  • feature #22890 [HttpKernel] Add ability to configure catching exceptions for Client (@kbond)
  • feature #24239 [HttpFoundation] Deprecate compatibility with PHP <5.4 sessions (@afurculita)
  • feature #23882 [Security] Deprecated not being logged out after user change (@iltar)
  • feature #24200 Added an alias for FlashBagInterface in config (@tifabien)
  • feature #24295 [DI][DX] Throw exception on some ContainerBuilder methods used from extensions (@ogizanagi)
  • feature #24253 [Yaml] support parsing files (@xabbuh)
  • feature #24290 Adding Definition::addError() and a compiler pass to throw errors as exceptions (@weaverryan)
  • feature #24301 [DI] Add AutowireRequiredMethodsPass to fix bindings for @required methods (@nicolas-grekas)
  • feature #24226 [Cache] Add ResettableInterface to allow resetting any pool's local state (@nicolas-grekas)
  • feature #24303 [FrameworkBundle] allow forms without translations and validator (@xabbuh)
  • feature #24291 [SecurityBundle] Reset the authentication token between requests (@derrabus)
  • feature #24280 [VarDumper] Make dump() a little bit more easier to use (@freekmurze)
  • feature #24277 [Serializer] Getter for extra attributes in ExtraAttributesException (@mdeboer)
  • feature #24257 [HttpKernel][DI] Enable Kernel to implement CompilerPassInterface (@nicolas-grekas)
  • feature #23834 [DI] Add "PHP fluent format" for configuring the container (@nicolas-grekas)
  • feature #24180 [Routing] Add PHP fluent DSL for configuring routes (@nicolas-grekas)
  • feature #24232 [BridgeDoctrine] Add "DoctrineType::reset()" method (@nicolas-grekas)
  • feature #24238 [DI] Turn services and aliases private by default, with BC layer (@nicolas-grekas)
  • feature #23648 [Form] Add input + regions options to TimezoneType (@ro0NL)
  • feature #24185 [Form] Display general forms information on debug:form (@yceruto)
  • feature #23747 [Serializer][FrameworkBundle] Add a DateInterval normalizer (@Lctrs)
  • feature #24193 [FrameworkBundle] Reset stopwatch between requests (@derrabus)
  • feature #24160 [HttpKernel] Deprecate bundle inheritance (@fabpot)
  • feature #24155 [FrameworkBundle][HttpKernel] Add DI tag for resettable services (@derrabus)
  • feature #23625 Feature #23583 Add current and fallback locales in WDT / Profiler (@nemoneph)
  • feature #24179 [TwigBundle] Add default templates directory and option to configure it (@yceruto)
  • feature #24104 Make as many services private as possible (@nicolas-grekas)
  • feature #18314 [Translation] added support for adding custom message formatter (@aitboudad)
  • feature #24158 deprecated profiler.matcher configuration (@fabpot)
  • feature #24131 [Console] Do not display short exception trace for common console exceptions (@yceruto)
  • feature #24080 Deprecated the web_profiler.position option (@javiereguiluz)
  • feature #24114 [SecurityBundle] Throw a meaningful exception when an undefined user provider is used inside a firewall (@chalasr)
  • feature #24122 [DI] rename ResolveDefinitionTemplatesPass to ResolveChildDefinitionsPass (@nicolas-grekas)
  • feature #23901 [DI] Allow processing env vars (@nicolas-grekas)
  • feature #24093 [FrameworkBundle] be able to enable workflow support explicitly (@xabbuh)
  • feature #24064 [TwigBridge] Show Twig's loader paths on debug:twig command (@yceruto)
  • feature #23978 [Cache] Use options from Memcached DSN (@Bukashk0zzz)
  • feature #24075 Implemented PruneableInterface on TagAwareAdapter (@Toflar)
  • feature #21414 [Console] Display file and line on Exception (@arno14)
  • feature #24068 [HttpKernel] Deprecate EnvParametersResource (@ro0NL)
  • feature #22542 [Lock] Check TTL expiration in lock acquisition (@jderusse)
  • feature #24031 [Routing] Add the possibility to define a prefix for all routes of a controller (@fabpot)
  • feature #23967 [VarDumper] add force-collapse/expand + use it for traces (@nicolas-grekas)
  • feature #24033 [DI] Add ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE (@nicolas-grekas)
  • feature #24026 [Security] add impersonator_user to "User was reloaded" log message (@gharlan)
  • feature #23603 [Cache] Add (pdosimple) prune method (@robfrawley)
  • feature #23694 [Form] Add debug:form command (@yceruto)
  • feature #24028 [Yaml] mark some classes as final (@xabbuh)
  • feature #22543 [Lock] Expose an expiringDate and isExpired method in Lock (@jderusse)
  • feature #23667 [Translation] Create an TranslationReaderInterface and move TranslationLoader to TranslationComponent (@Nyholm)
  • feature #24024 [config] Add ability to deprecate a node (@sanpii)
  • feature #23668 [VarDumper] Add period caster (@maidmaid)
  • feature #23991 [DI] Improve psr4-based service discovery (alternative implementation) (@kbond)
  • feature #23947 [Translation] Adding the ability do load <notes> in xliff2.0 (@Nyholm)
  • feature #23887 [Console] Allow commands to provide a default name for compile time registration (@chalasr, @nicolas-grekas)
  • feature #23874 [DI] Case sensitive parameter names (@ro0NL)
  • feature #23936 Remove some sf2 references (@fabpot)
  • feature #23680 [Webprofiler] Added blocks that allows extension of the profiler page. (@Nyholm)
  • feature #23665 Create an interface for TranslationWriter (@Nyholm)
  • feature #23890 [Translation] Adding the ability do dump <notes> in xliff2.0 (@Nyholm)
  • feature #23862 [SecurityBundle] resolve class name parameter inside AddSecurityVotersPass (@pjarmalavicius)
  • feature #23915 [DI] Allow get available services from service locator (@Koc)
  • feature #23792 [HttpKernel][FrameworkBundle] Add RebootableInterface, fix and un-deprecate cache:clear with warmup (@nicolas-grekas)
  • feature #23227 Add support for "controller" keyword for configuring routes controllers (@voronkovich)
  • feature #23869 [Console] Made console command shortcuts case insensitive (@thanosp)
  • feature #23855 [DI] Allow dumping inline services in Yaml (@nicolas-grekas)
  • feature #23836 [FrameworkBundle] Catch Fatal errors in commands registration (@chalasr)
  • feature #23805 [HttpKernel] Deprecated commands auto-registration (@GuilhemN)
  • feature #23816 [Debug] Detect internal and deprecated methods (@GuilhemN)
  • feature #23812 [FrameworkBundle] Allow micro kernel to subscribe events easily (@ogizanagi)
  • feature #22187 [DependencyInjection] Support local binding (@GuilhemN)
  • feature #23741 [DI] Generate one file per service factory (@nicolas-grekas)
  • feature #23807 [Debug] Trigger a deprecation when using an internal class/trait/interface (@GuilhemN)
  • feature #22587 [Workflow] Add transition completed event (@izzyp)
  • feature #23624 [FrameworkBundle] Commands as a service (@ro0NL)
  • feature #21111 [Validator] add groups support to the Valid constraint (@xabbuh)
  • feature #20361 [Config] Enable cannotBeEmpty along with requiresAtLeastOneElement (@ro0NL)
  • feature #23712 [DependencyInjection] Deprecate autowiring service auto-registration (@GuilhemN)
  • feature #23719 Autoconfigure instances of ArgumentValueResolverInterface (@BPScott)
  • feature #23706 [Webprofiler] Improve sql explain table display (@mimol91)
  • feature #23724 [Lock] Deprecate Filesystem/LockHandler (@jderusse)
  • feature #23593 [Workflow] Adding workflow name to the announce event (@Nyholm)
  • feature #20496 [Form] Allow pass filter callback to delete_empty option. (@Koc)
  • feature #23451 [Cache] Add (filesystemsimple) prune method and prune command (@robfrawley)
  • feature #23519 [TwigBundle] Commands as a service (@ro0NL)
  • feature #23591 [VarDumper] Add time zone caster (@maidmaid)
  • feature #23510 [Console] Add a factory command loader for standalone application with lazy-loading needs (@ogizanagi)
  • feature #23357 [VarDumper] Add interval caster (@maidmaid)
  • feature #23550 [DebugBundle] Added min_depth to Configuration (@james-johnston-thumbtack)
  • feature #23570 [FrameworkBundle] Make RouterCacheWarmer implement ServiceSubscriberInterface (@nicolas-grekas)
  • feature #23437 [TwigBridge] deprecate TwigRenderer (@Tobion)
  • feature #23515 [VarDumper] Added setMinDepth to VarCloner (@james-johnston-thumbtack)
  • feature #23404 [Serializer] AbstractObjectNormalizer: Allow to disable type enforcement (@ogizanagi)
  • feature #21086 [MonologBridge] Add TokenProcessor (@maidmaid)
  • feature #22576 [Validator] Allow to use a property path to get value to compare in comparison constraints (@ogizanagi)
  • feature #22689 [DoctrineBridge] Add support for doctrin/dbal v2.6 types (@jvasseur)
  • feature #22734 [Console] Add support for command lazy-loading (@chalasr)
  • feature #19034 [Security] make it possible to configure a custom access decision manager service (@xabbuh)
  • feature #23037 [TwigBundle] Added a RuntimeExtensionInterface to take advantage of autoconfigure (@lyrixx)
  • feature #22176 [DI] Allow imports in string format for YAML (@ro0NL)
  • feature #23295 [Security] Lazy load user providers (@chalasr)
  • feature #23440 [Routing] Add matched and default parameters to redirect responses (@artursvonda, @Tobion)
  • feature #22832 [Debug] Deprecate support for stacked errors (@mbabker)
  • feature #21469 [HttpFoundation] Find the original request protocol version (@thewilkybarkid)
  • feature #23431 [Validator] Add min/max amount of pixels to Image constraint (@akeeman)
  • feature #23223 Add support for microseconds in Stopwatch (@javiereguiluz)
  • feature #22341 [BrowserKit] Emulate back/forward browser navigation (@e-moe)
  • feature #22619 [FrameworkBundle][Translation] Move translation compiler pass (@lepiaf)
  • feature #22620 [FrameworkBundle][HttpKernel] Move httpkernel pass (@lepiaf)
  • feature #23337 [Component][Serializer][Normalizer] : Deal it with Has Method for the Normalizer/Denormalizer (@jordscream)
  • feature #22588 [VarDumper] Add filter in VarDumperTestTrait (@maidmaid)
  • feature #23288 [Yaml] deprecate the !str tag (@xabbuh)
  • feature #23039 [Validator] Support for parsing PHP constants in yaml loader (@mimol91)
  • feature #22431 [VarDumper] Add date caster (@maidmaid)
  • feature #23285 [Stopwatch] Add a reset method (@jmgq)
  • feature #23320 [WebServer] Allow to bind all interfaces (as INADDR_ANY) (@jpauli, @fabpot)
  • feature #23272 [FrameworkBundle] disable unusable fragment renderers (@xabbuh)
  • feature #23332 [Yaml] fix the displayed line number (@fabpot, @xabbuh)
  • feature #23026 [SecurityBundle] Add user impersonation info and exit action to the profiler (@yceruto)
  • feature #22932 [HttpFoundation] Adds support for the immutable directive in the cache-control header (@twoleds)
  • feature #22554 [Profiler][Validator] Add a validator panel in profiler (@ogizanagi)
  • feature #22124 Shift responsibility for keeping Date header to ResponseHeaderBag (@mpdude)
  • feature #23122 Xml encoder optional type cast (@ragboyjr)
  • feature #23207 [FrameworkBundle] Allow .yaml file extension everywhere (@ogizanagi)
  • feature #23076 [Validator] Adds support to check specific DNS record type for URL (@iisisrael)
  • feature #22629 [Security] Trigger a deprecation when a voter is missing the VoterInterface (@iltar)
  • feature #22636 [Routing] Expose request in route conditions, if needed and possible (@ro0NL)
  • feature #22909 [Yaml] Deprecate using the non-specific tag (@GuilhemN)
  • feature #23042 Consistent error handling in remember me services (@lstrojny)
  • feature #22444 [Serializer] DateTimeNormalizer: allow to provide timezone (@ogizanagi)
  • feature #23143 [DI] Reference instead of inline for array-params (@nicolas-grekas)
  • feature #23154 [WebProfilerBundle] Sticky ajax window (@ro0NL)
  • feature #23161 [FrameworkBundle] Deprecate useless --no-prefix option (@chalasr)
  • feature #23105 [SecurityBundle][Profiler] Give info about called security listeners in profiler (@chalasr)
  • feature #23148 [FrameworkBundle] drop hard dependency on the Stopwatch component (@xabbuh)
  • feature #23131 [FrameworkBundle] Remove dependency on Doctrine cache (@fabpot)
  • feature #23114 [SecurityBundle] Lazy load security listeners (@chalasr)
  • feature #23111 [Process] Deprecate ProcessBuilder (@nicolas-grekas)
  • feature #22675 [FrameworkBundle] KernelTestCase: deprecate not using KERNEL_CLASS (@ogizanagi)
  • feature #22917 [VarDumper] Cycle prev/next searching in HTML dumps (@ro0NL)
  • feature #23044 Automatically enable the routing annotation loader (@GuilhemN)
  • feature #22696 [PropertyInfo] Made ReflectionExtractor's prefix lists instance variables (@neemzy)
  • feature #23035 Deprecate passing a concrete service in optional cache warmers (@romainneutron)
  • feature #23036 Implement ServiceSubscriberInterface in optional cache warmers (@romainneutron)
  • feature #23022 [Di] Remove closure-proxy arguments (@nicolas-grekas)
  • feature #22903 [DI] Deprecate XML services without ID (@ro0NL)
  • feature #22597 [Lock] Re-add the Lock component in 3.4 (@jderusse)
  • feature #22803 [DI] Deprecate Container::initialized() for privates (@ro0NL)
  • feature #22828 [Finder] Deprecate FilterIterator (@ogizanagi)
  • feature #22826 [Validator] improve strict option value deprecation (@xabbuh)

Want to upgrade to this new release? Fortunately, because Symfony protects backwards-compatibility very closely, this should be quite easy. Read our upgrade documentation to learn more.

Want to be notified whenever a new Symfony release is published? Or when a version is not maintained anymore? Or only when a security issue is fixed? Consider subscribing to the Symfony Roadmap Notifications.

Published in #Releases