Symfony 4.1.1 发布,PHP 框架与可重用 PHP 组件集

Symfony 4.1.1 发布了,Symfony 是一款基于 MVC 架构的 PHP 框架。Symfony 致力于减少重复代码的编写,以加速 Web 应用的开发和维护。Symfony 与许多关系型数据库集成的也非常好,成本也较小。此外,Symfony 致力于在企业背景下创建健壮的应用,同时也给予了开发者强大的配置功能:从文件结构到外部目录,几乎所有的东西都可以自定义。Symfony 也捆绑了一些诸如测试、调试、文档生成等额外的工具来满足企业的开发过程。

此次更新主要进行了 bug 修复,内容如下:

  • bug #27626 [TwigBundle][DX] Only add the Twig WebLinkExtension if the WebLink component is enabled (@thewilkybarkid)
  • bug #27702 [TwigBundle] bump lowest deps to fix issue with “double-colon” controller service refs (@nicolas-grekas)
  • bug #27701 [SecurityBundle] Dont throw if “security.http_utils” is not found (@nicolas-grekas)
  • bug #27690 [DI] Resolve env placeholder in logs (@ro0NL)
  • bug #27687 [HttpKernel] fix argument’s error messages in ServiceValueResolver (@nicolas-grekas)
  • bug #27614 [VarDumper] Fix dumping by splitting Server/Connection out of Dumper/ServerDumper (@nicolas-grekas)
  • bug #27681 [DI] Avoid leaking unused env placeholders (@ro0NL)
  • bug #26534 allow_extra_attributes does not throw an exception as documented (@deviantintegral)
  • bug #27664 [FrameworkBundle] Ignore keepQueryParams attribute when generating route redirect (@vudaltsov)
  • bug #27668 [Lock] use ‘r+’ for fopen (fixes issue on Solaris) (@fritzmg)
  • bug #27669 [Filesystem] fix file lock on SunOS (@fritzmg)
  • bug #27662 [HttpKernel] fix handling of nested Error instances (@xabbuh)
  • bug #27651 [Messenger] Fixed MessengerPass::guessHandledClasses return type (@massimilianobraglia)
  • bug #26845 [Config] Fixing GlobResource when inside phar archive (@vworldat)
  • bug #27382 [Form] Fix error when rendering a DateIntervalType form with exactly 0 weeks (@krixon)
  • bug #27309 Fix surrogate not using original request (@Toflar)
  • bug #27467 [HttpKernel] fix session tracking in surrogate master requests (@nicolas-grekas)
  • bug #27632 [HttpFoundation] Ensure RedisSessionHandler::updateTimestamp returns a boolean (@MatTheCat)
  • bug #27630 [Validator][Form] Remove BOM in some xlf files (@gautierderuette)
  • bug #27596 [Framework][Workflow] Added support for interfaces (@vudaltsov)
  • bug #27593 [ProxyManagerBridge] Fixed support of private services (@nicolas-grekas)
  • bug #27591 [VarDumper] Fix dumping ArrayObject and ArrayIterator instances (@nicolas-grekas)
  • bug #27528 [FrameworkBundle] give access to non-shared services when using test.service_container (@nicolas-grekas)
  • bug #27584 Avoid calling eval when there is no script embedded in the toolbar (@stof)
  • bug #27581 Fix bad method call with guard authentication + session migration (@weaverryan)
  • bug #27576 [Cache] Fix expiry comparisons in array-based pools (@nicolas-grekas)
  • bug #27566 [FrameworkBundle] fix for allowing single colon controller notation (@dmaicher)
  • bug #27556 Avoiding session migration for stateless firewall UsernamePasswordJsonAuthenticationListener (@weaverryan)
  • bug #27452 Avoid migration on stateless firewalls (@weaverryan)
  • bug #27568 [DI] Deduplicate generated proxy classes (@nicolas-grekas)
  • bug #27511 [Routing] fix matching host patterns, utf8 prefixes and non-capturing groups (@nicolas-grekas)
  • bug #27326 [Serializer] deserialize from xml: Fix a collection that contains the only one element (@webnet-fr)
  • bug #27562 [HttpKernel] Log/Collect exceptions at prio 0 (@ro0NL)
  • bug #27567 [PhpUnitBridge] Fix error on some Windows OS (@Nsbx)
  • bug #27357 [Lock] Remove released semaphore (@jderusse)
  • bug #27416 TagAwareAdapter over non-binary memcached connections corrupts memcache (@aleksey Prilipko)
  • bug #27514 [Debug] Pass previous exception to FatalErrorException (@pmontoya)
  • bug #27516 Revert “bug #26138 [HttpKernel] Catch HttpExceptions when templating is not installed (cilefen)” (@nicolas-grekas)
  • bug #27501 [FrameworkBundle] Fix test-container on kernel reboot, revert to returning the real container from Client::getContainer() (@nicolas-grekas)
  • bug #27472 [DI] Ignore missing tree root nodes on validate (@ro0NL)
  • bug #27458 [WebProfilerBundle] fixed getSession when no session has been set deprecation warnings (@GregOriol)
  • bug #27318 [Cache] memcache connect should not add duplicate entries on sequential calls (@aleksey Prilipko)
  • bug #27498 [Routing] Don’t reorder past variable-length placeholders (@nanocom, @nicolas-grekas)
  • bug #27496 [DebugBundle] DebugBundle::registerCommands should be noop (@ogizanagi)
  • bug #27485 [BrowserKit] Fix a BC break in Client affecting Panthère (@dunglas)
  • bug #27470 [DI] Remove default env type check on validate (@ro0NL)
  • bug #27454 [FrameworkBundle][TwigBridge] Fix BC break from strong dependency on CSRF token storage (@tgalopin)
  • bug #27389 [Serializer] Fix serializer tries to denormalize null values on nullable properties (@ogizanagi)
  • bug #27272 [FrameworkBundle] Change priority of AddConsoleCommandPass to TYPE_BEFORE_REMOVING (@upyx)
  • bug #27396 [HttpKernel] fix registering IDE links (@nicolas-grekas)
  • bug #26973 [HttpKernel] Set first trusted proxy as REMOTE_ADDR in InlineFragmentRenderer. (@kmadejski)
  • bug #27303 [Process] Consider “executable” suffixes first on Windows (@sanmai)
  • bug #27297 Triggering RememberMe’s loginFail() when token cannot be created (@weaverryan)