Merge branch '4.0' into 4.1

* 4.0:
  [HttpKernel] Fix merging bindings for controllers' locators
  bumped Symfony version to 4.0.14
  updated VERSION for 4.0.13
  updated CHANGELOG for 4.0.13
  bumped Symfony version to 3.4.14
  updated VERSION for 3.4.13
  updated CHANGELOG for 3.4.13
  bumped Symfony version to 2.8.44
This commit is contained in:
Nicolas Grekas 2018-07-26 10:24:24 +02:00
commit abe2a237a0
3 changed files with 59 additions and 1 deletions

View File

@ -7,6 +7,40 @@ in 4.0 minor versions.
To get the diff for a specific change, go to https://github.com/symfony/symfony/commit/XXX where XXX is the change hash
To get the diff between two versions, go to https://github.com/symfony/symfony/compare/v4.0.0...v4.0.1
* 4.0.13 (2018-07-23)
* bug #28005 [HttpKernel] Fixed templateExists on parse error of the template name (yceruto)
* bug #27997 Serbo-Croatian has Serbian plural rule (kylekatarnls)
* bug #26193 Fix false-positive deprecation notices for TranslationLoader and WriteCheckSessionHandler (iquito)
* bug #27941 [WebProfilerBundle] Fixed icon alignment issue using Bootstrap 4.1.2 (jmsche)
* bug #27937 [HttpFoundation] reset callback on StreamedResponse when setNotModified() is called (rubencm)
* bug #27927 [HttpFoundation] Suppress side effects in 'get' and 'has' methods of NamespacedAttributeBag (webnet-fr)
* bug #27923 [Form/Profiler] Massively reducing memory footprint of form profiling pages... (VincentChalnot)
* bug #27918 [Console] correctly return parameter's default value on "--" (seschwar)
* bug #27904 [Filesystem] fix lock file permissions (fritzmg)
* bug #27903 [Lock] fix lock file permissions (fritzmg)
* bug #27889 [Form] Replace .initialism with .text-uppercase. (vudaltsov)
* bug #27902 Fix the detection of the Process new argument (stof)
* bug #27885 [HttpFoundation] don't encode cookie name for BC (nicolas-grekas)
* bug #27782 [DI] Fix dumping ignore-on-uninitialized references to synthetic services (nicolas-grekas)
* bug #27435 [OptionResolver] resolve arrays (Doctrs)
* bug #27728 [TwigBridge] Fix missing path and separators in loader paths list on debug:twig output (yceruto)
* bug #27837 [PropertyInfo] Fix dock block lookup fallback loop (DerManoMann)
* bug #27758 [WebProfilerBundle] Prevent toolbar links color override by css (alcalyn)
* bug #27847 [Security] Fix accepting null as $uidKey in LdapUserProvider (louhde)
* bug #27834 [DI] Don't show internal service id on binding errors (nicolas-grekas)
* bug #27831 Check for Hyper terminal on all operating systems. (azjezz)
* bug #27794 Add color support for Hyper terminal . (azjezz)
* bug #27809 [HttpFoundation] Fix tests: new message for status 425 (dunglas)
* bug #27618 [PropertyInfo] added handling of nullable types in PhpDoc (oxan)
* bug #27659 [HttpKernel] Make AbstractTestSessionListener compatible with CookieClearingLogoutHandler (thewilkybarkid)
* bug #27752 [Cache] provider does not respect option maxIdLength with versioning enabled (Constantine Shtompel)
* bug #27776 [ProxyManagerBridge] Fix support of private services (bis) (nicolas-grekas)
* bug #27714 [HttpFoundation] fix session tracking counter (nicolas-grekas, dmaicher)
* bug #27747 [HttpFoundation] fix registration of session proxies (nicolas-grekas)
* bug #27722 Redesign the Debug error page in prod (javiereguiluz)
* bug #27716 [DI] fix dumping deprecated service in yaml (nicolas-grekas)
* 4.0.12 (2018-06-25)
* bug #27626 [TwigBundle][DX] Only add the Twig WebLinkExtension if the WebLink component is enabled (thewilkybarkid)

View File

@ -62,7 +62,7 @@ class RegisterControllerArgumentLocatorsPass implements CompilerPassInterface
while ($def instanceof ChildDefinition) {
$def = $container->findDefinition($def->getParent());
$class = $class ?: $def->getClass();
$bindings = $def->getBindings();
$bindings += $def->getBindings();
}
$class = $parameterBag->resolveValue($class);

View File

@ -13,6 +13,7 @@ namespace Symfony\Component\HttpKernel\Tests\DependencyInjection;
use PHPUnit\Framework\TestCase;
use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument;
use Symfony\Component\DependencyInjection\ChildDefinition;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerAwareTrait;
use Symfony\Component\DependencyInjection\ContainerBuilder;
@ -339,6 +340,29 @@ class RegisterControllerArgumentLocatorsPassTest extends TestCase
$this->assertTrue($container->has((string) $reference));
$this->assertSame('foo_val', $container->get((string) $reference));
}
public function testBindingsOnChildDefinitions()
{
$container = new ContainerBuilder();
$resolver = $container->register('argument_resolver.service')->addArgument(array());
$container->register('parent', ArgumentWithoutTypeController::class);
$container->setDefinition('child', (new ChildDefinition('parent'))
->setBindings(array('$someArg' => new Reference('parent')))
->addTag('controller.service_arguments')
);
$pass = new RegisterControllerArgumentLocatorsPass();
$pass->process($container);
$locator = $container->getDefinition((string) $resolver->getArgument(0))->getArgument(0);
$this->assertInstanceOf(ServiceClosureArgument::class, $locator['child:fooAction']);
$locator = $container->getDefinition((string) $locator['child:fooAction']->getValues()[0])->getArgument(0);
$this->assertInstanceOf(ServiceClosureArgument::class, $locator['someArg']);
$this->assertEquals(new Reference('parent'), $locator['someArg']->getValues()[0]);
}
}
class RegisterTestController