Merge branch '2.7' into 2.8
* 2.7: [Bridge\ProxyManager] Dont call __destruct() on non-instantiated services bumped Symfony version to 2.7.34 updated VERSION for 2.7.33 update CONTRIBUTORS for 2.7.33 updated CHANGELOG for 2.7.33
This commit is contained in:
commit
2807709fed
@ -7,6 +7,17 @@ in 2.7 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/v2.7.0...v2.7.1
|
||||
|
||||
* 2.7.33 (2017-08-01)
|
||||
|
||||
* bug #22244 [Console] Fix passing options with defaultCommand (Jakub Sacha)
|
||||
* bug #23684 [Debug] Missing escape in debug output (c960657)
|
||||
* bug #23662 [VarDumper] Adapt to php 7.2 changes (nicolas-grekas)
|
||||
* bug #23649 [Form][TwigBridge] Don't render _method in form_rest() for a child form (fmarchalemisys)
|
||||
* bug #23619 [Validator] Fix IbanValidator for ukrainian IBANs (paroe)
|
||||
* bug #23238 [Security] ensure the 'route' index is set before attempting to use it (gsdevme)
|
||||
* bug #23580 Fix login redirect when referer contains a query string (fabpot)
|
||||
* bug #23574 [VarDumper] Move locale sniffing to dump() time (nicolas-grekas)
|
||||
|
||||
* 2.7.32 (2017-07-17)
|
||||
|
||||
* security #23507 [Security] validate empty passwords again (xabbuh)
|
||||
|
@ -20,11 +20,11 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Javier Eguiluz (javier.eguiluz)
|
||||
- Hugo Hamon (hhamon)
|
||||
- Maxime Steinhausser (ogizanagi)
|
||||
- Abdellatif Ait boudad (aitboudad)
|
||||
- Robin Chalas (chalas_r)
|
||||
- Abdellatif Ait boudad (aitboudad)
|
||||
- Grégoire Pineau (lyrixx)
|
||||
- Romain Neutron (romain)
|
||||
- Pascal Borreli (pborreli)
|
||||
- Grégoire Pineau (lyrixx)
|
||||
- Wouter De Jong (wouterj)
|
||||
- Joseph Bielawski (stloyd)
|
||||
- Karma Dordrak (drak)
|
||||
@ -34,8 +34,8 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Jean-François Simon (jfsimon)
|
||||
- Benjamin Eberlei (beberlei)
|
||||
- Igor Wiedler (igorw)
|
||||
- Eriksen Costa (eriksencosta)
|
||||
- Roland Franssen (ro0)
|
||||
- Eriksen Costa (eriksencosta)
|
||||
- Jules Pietri (heah)
|
||||
- Sarah Khalil (saro0h)
|
||||
- Guilhem Niot (energetick)
|
||||
@ -66,6 +66,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Eric Clemmons (ericclemmons)
|
||||
- Charles Sarrazin (csarrazi)
|
||||
- Christian Raue
|
||||
- Konstantin Myakshin (koc)
|
||||
- Arnout Boks (aboks)
|
||||
- Deni
|
||||
- Henrik Westphal (snc)
|
||||
@ -73,7 +74,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Jáchym Toušek (enumag)
|
||||
- Titouan Galopin (tgalopin)
|
||||
- Douglas Greenshields (shieldo)
|
||||
- Konstantin Myakshin (koc)
|
||||
- Dany Maillard (maidmaid)
|
||||
- Lee McDermott
|
||||
- Brandon Turner
|
||||
- Luis Cordova (cordoval)
|
||||
@ -89,23 +90,22 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Fran Moreno (franmomu)
|
||||
- Antoine Hérault (herzult)
|
||||
- Paráda József (paradajozsef)
|
||||
- Issei Murasawa (issei_m)
|
||||
- Arnaud Le Blanc (arnaud-lb)
|
||||
- Maxime STEINHAUSSER
|
||||
- Alexander M. Turek (derrabus)
|
||||
- Michal Piotrowski (eventhorizon)
|
||||
- Dany Maillard (maidmaid)
|
||||
- Issei Murasawa (issei_m)
|
||||
- Tim Nagel (merk)
|
||||
- Yonel Ceruto González (yonelceruto)
|
||||
- Brice BERNARD (brikou)
|
||||
- Baptiste Clavié (talus)
|
||||
- Vladimir Reznichenko (kalessil)
|
||||
- marc.weistroff
|
||||
- Yonel Ceruto González (yonelceruto)
|
||||
- lenar
|
||||
- Tobias Nyholm (tobias)
|
||||
- Włodzimierz Gajda (gajdaw)
|
||||
- Alexander Schwenn (xelaris)
|
||||
- Jacob Dreesen (jdreesen)
|
||||
- Tobias Nyholm (tobias)
|
||||
- Florian Voutzinos (florianv)
|
||||
- Colin Frei
|
||||
- Adrien Brault (adrienbrault)
|
||||
@ -132,13 +132,13 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Daniel Gomes (danielcsgomes)
|
||||
- Hidenori Goto (hidenorigoto)
|
||||
- Guilherme Blanco (guilhermeblanco)
|
||||
- David Maicher (dmaicher)
|
||||
- Pablo Godel (pgodel)
|
||||
- Jérémie Augustin (jaugustin)
|
||||
- Andréia Bohner (andreia)
|
||||
- Rafael Dohms (rdohms)
|
||||
- Arnaud Kleinpeter (nanocom)
|
||||
- jwdeitch
|
||||
- David Maicher (dmaicher)
|
||||
- Mikael Pajunen
|
||||
- Joel Wurtz (brouznouf)
|
||||
- Jérôme Vasseur (jvasseur)
|
||||
@ -175,6 +175,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Dennis Benkert (denderello)
|
||||
- Benjamin Dulau (dbenjamin)
|
||||
- Mathieu Lemoine (lemoinem)
|
||||
- Christian Schmidt
|
||||
- Andreas Hucks (meandmymonkey)
|
||||
- Noel Guilbert (noel)
|
||||
- Stepan Anchugov (kix)
|
||||
@ -200,7 +201,6 @@ Symfony is the result of the work of many people who made the code better
|
||||
- John Kary (johnkary)
|
||||
- Justin Hileman (bobthecow)
|
||||
- Blanchon Vincent (blanchonvincent)
|
||||
- Christian Schmidt
|
||||
- Michele Orselli (orso)
|
||||
- Tom Van Looy (tvlooy)
|
||||
- Sven Paulus (subsven)
|
||||
@ -236,6 +236,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Katsuhiro OGAWA
|
||||
- Patrick McDougle (patrick-mcdougle)
|
||||
- Alif Rachmawadi
|
||||
- Alessandro Chitolina
|
||||
- Kristen Gilden (kgilden)
|
||||
- Pierre-Yves LEBECQ (pylebecq)
|
||||
- Jordan Samouh (jordansamouh)
|
||||
@ -261,6 +262,8 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Pavel Batanov (scaytrase)
|
||||
- Nikita Konstantinov
|
||||
- Wodor Wodorski
|
||||
- Rob Frawley 2nd (robfrawley)
|
||||
- Gregor Harlan (gharlan)
|
||||
- Thomas Lallement (raziel057)
|
||||
- Giorgio Premi
|
||||
- Matthieu Napoli (mnapoli)
|
||||
@ -276,7 +279,6 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Marc Weistroff (futurecat)
|
||||
- Christian Schmidt
|
||||
- Hidde Wieringa (hiddewie)
|
||||
- Alessandro Chitolina
|
||||
- Chad Sikorra (chadsikorra)
|
||||
- Chris Smith (cs278)
|
||||
- Florian Klein (docteurklein)
|
||||
@ -313,7 +315,6 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Thierry Thuon (lepiaf)
|
||||
- Ricard Clau (ricardclau)
|
||||
- Mark Challoner (markchalloner)
|
||||
- Gregor Harlan (gharlan)
|
||||
- Gennady Telegin (gtelegin)
|
||||
- Ben Davies (bendavies)
|
||||
- Erin Millard
|
||||
@ -322,7 +323,6 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Magnus Nordlander (magnusnordlander)
|
||||
- alquerci
|
||||
- Francesco Levorato
|
||||
- Rob Frawley 2nd (robfrawley)
|
||||
- Vitaliy Zakharov (zakharovvi)
|
||||
- Tobias Sjösten (tobiassjosten)
|
||||
- Gyula Sallai (salla)
|
||||
@ -339,6 +339,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Thomas Calvet (fancyweb)
|
||||
- Niels Keurentjes (curry684)
|
||||
- JhonnyL
|
||||
- David Badura (davidbadura)
|
||||
- hossein zolfi (ocean)
|
||||
- Clément Gautier (clementgautier)
|
||||
- Eduardo Gulias (egulias)
|
||||
@ -428,7 +429,6 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Christian Wahler
|
||||
- Gintautas Miselis
|
||||
- Rob Bast
|
||||
- David Badura (davidbadura)
|
||||
- Zander Baldwin
|
||||
- Adam Harvey
|
||||
- Maxime Veber (nek-)
|
||||
@ -543,6 +543,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Max Rath (drak3)
|
||||
- Stéphane Escandell (sescandell)
|
||||
- Konstantin S. M. Möllers (ksmmoellers)
|
||||
- James Johnston
|
||||
- Sinan Eldem
|
||||
- Alexandre Dupuy (satchette)
|
||||
- Andre Rømcke (andrerom)
|
||||
@ -591,6 +592,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Ulumuddin Yunus (joenoez)
|
||||
- Luc Vieillescazes (iamluc)
|
||||
- Johann Saunier (prophet777)
|
||||
- Valentin Udaltsov (vudaltsov)
|
||||
- Michael Devery (mickadoo)
|
||||
- Antoine Corcy
|
||||
- Artur Eshenbrener
|
||||
@ -909,6 +911,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Alex Demchenko (pilot)
|
||||
- Tadas Gliaubicas (tadcka)
|
||||
- Benoit Garret
|
||||
- Jakub Sacha
|
||||
- DerManoMann
|
||||
- Olaf Klischat
|
||||
- orlovv
|
||||
@ -1173,6 +1176,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Malte Wunsch
|
||||
- wusuopu
|
||||
- povilas
|
||||
- Gavin Staniforth
|
||||
- Alessandro Tagliapietra (alex88)
|
||||
- Biji (biji)
|
||||
- Gunnar Lium (gunnarlium)
|
||||
@ -1234,6 +1238,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- flack
|
||||
- izzyp
|
||||
- František Bereň
|
||||
- Mike Francis
|
||||
- Christoph Nissle (derstoffel)
|
||||
- Ionel Scutelnicu (ionelscutelnicu)
|
||||
- Nicolas Tallefourtané (nicolab)
|
||||
@ -1244,6 +1249,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- jjanvier
|
||||
- Julius Beckmann
|
||||
- Romain Dorgueil
|
||||
- Christopher Parotat
|
||||
- Grayson Koonce (breerly)
|
||||
- Fabien LUCAS (flucas2)
|
||||
- Indra Gunawan (indragunawan)
|
||||
@ -1535,11 +1541,13 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Ladislav Tánczos
|
||||
- Brian Freytag
|
||||
- Skorney
|
||||
- fmarchalemisys
|
||||
- mieszko4
|
||||
- Steve Preston
|
||||
- Neophy7e
|
||||
- bokonet
|
||||
- Arrilot
|
||||
- Shaun Simmons
|
||||
- Markus Staab
|
||||
- Pierre-Louis LAUNAY
|
||||
- djama
|
||||
@ -1568,6 +1576,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Penny Leach
|
||||
- Richard Trebichavský
|
||||
- g123456789l
|
||||
- Jonathan Vollebregt
|
||||
- oscartv
|
||||
- DanSync
|
||||
- Peter Zwosta
|
||||
@ -1680,7 +1689,6 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Moritz Kraft (userfriendly)
|
||||
- Víctor Mateo (victormateo)
|
||||
- Vincent (vincent1870)
|
||||
- Valentin Udaltsov (vudaltsov)
|
||||
- Eugene Babushkin (warl)
|
||||
- Wouter Sioen (wouter_sioen)
|
||||
- Xavier Amado (xamado)
|
||||
@ -1702,6 +1710,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Sergey Fedotov
|
||||
- Michael
|
||||
- fh-github@fholzhauer.de
|
||||
- AbdElKader Bouadjadja
|
||||
- Jan Emrich
|
||||
- Mark Topper
|
||||
- Xavier REN
|
||||
|
@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Symfony\Bridge\ProxyManager\LazyProxy\Instantiator;
|
||||
|
||||
use ProxyManager\Factory\LazyLoadingValueHolderFactory as BaseFactory;
|
||||
use Symfony\Bridge\ProxyManager\LazyProxy\PhpDumper\LazyLoadingValueHolderGenerator;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class LazyLoadingValueHolderFactoryV1 extends BaseFactory
|
||||
{
|
||||
private $generatorV1;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function getGenerator()
|
||||
{
|
||||
return $this->generatorV1 ?: $this->generatorV1 = new LazyLoadingValueHolderGenerator();
|
||||
}
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Symfony\Bridge\ProxyManager\LazyProxy\Instantiator;
|
||||
|
||||
use ProxyManager\ProxyGenerator\ProxyGeneratorInterface;
|
||||
use ProxyManager\Factory\LazyLoadingValueHolderFactory as BaseFactory;
|
||||
use Symfony\Bridge\ProxyManager\LazyProxy\PhpDumper\LazyLoadingValueHolderGenerator;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class LazyLoadingValueHolderFactoryV2 extends BaseFactory
|
||||
{
|
||||
private $generator;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function getGenerator(): ProxyGeneratorInterface
|
||||
{
|
||||
return $this->generator ?: $this->generator = new LazyLoadingValueHolderGenerator();
|
||||
}
|
||||
}
|
@ -36,7 +36,11 @@ class RuntimeInstantiator implements InstantiatorInterface
|
||||
$config = new Configuration();
|
||||
$config->setGeneratorStrategy(new EvaluatingGeneratorStrategy());
|
||||
|
||||
$this->factory = new LazyLoadingValueHolderFactory($config);
|
||||
if (method_exists('ProxyManager\Version', 'getVersion')) {
|
||||
$this->factory = new LazyLoadingValueHolderFactoryV2($config);
|
||||
} else {
|
||||
$this->factory = new LazyLoadingValueHolderFactoryV1($config);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Symfony\Bridge\ProxyManager\LazyProxy\PhpDumper;
|
||||
|
||||
use ProxyManager\ProxyGenerator\LazyLoadingValueHolderGenerator as BaseGenerator;
|
||||
use Zend\Code\Generator\ClassGenerator;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class LazyLoadingValueHolderGenerator extends BaseGenerator
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function generate(\ReflectionClass $originalClass, ClassGenerator $classGenerator)
|
||||
{
|
||||
parent::generate($originalClass, $classGenerator);
|
||||
|
||||
if ($classGenerator->hasMethod('__destruct')) {
|
||||
$destructor = $classGenerator->getMethod('__destruct');
|
||||
$body = $destructor->getBody();
|
||||
$newBody = preg_replace('/^(\$this->initializer[a-zA-Z0-9]++) && .*;\n\nreturn (\$this->valueHolder)/', '$1 || $2', $body);
|
||||
|
||||
if ($body === $newBody) {
|
||||
throw new \UnexpectedValueException(sprintf('Unexpected lazy-proxy format generated for method %s::__destruct()', $originalClass->name));
|
||||
}
|
||||
|
||||
$destructor->setBody($newBody);
|
||||
}
|
||||
}
|
||||
}
|
@ -13,7 +13,6 @@ namespace Symfony\Bridge\ProxyManager\LazyProxy\PhpDumper;
|
||||
|
||||
use ProxyManager\Generator\ClassGenerator;
|
||||
use ProxyManager\GeneratorStrategy\BaseGeneratorStrategy;
|
||||
use ProxyManager\ProxyGenerator\LazyLoadingValueHolderGenerator;
|
||||
use Symfony\Component\DependencyInjection\Container;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
use Symfony\Component\DependencyInjection\Definition;
|
||||
|
@ -39,6 +39,9 @@ class ContainerBuilderTest extends TestCase
|
||||
/* @var $foo1 \ProxyManager\Proxy\LazyLoadingInterface|\ProxyManager\Proxy\ValueHolderInterface */
|
||||
$foo1 = $builder->get('foo1');
|
||||
|
||||
$foo1->__destruct();
|
||||
$this->assertSame(0, $foo1::$destructorCount);
|
||||
|
||||
$this->assertSame($foo1, $builder->get('foo1'), 'The same proxy is retrieved on multiple subsequent calls');
|
||||
$this->assertInstanceOf('\ProxyManagerBridgeFooClass', $foo1);
|
||||
$this->assertInstanceOf('\ProxyManager\Proxy\LazyLoadingInterface', $foo1);
|
||||
@ -50,5 +53,8 @@ class ContainerBuilderTest extends TestCase
|
||||
$this->assertTrue($foo1->isProxyInitialized());
|
||||
$this->assertInstanceOf('\ProxyManagerBridgeFooClass', $foo1->getWrappedValueHolderValue());
|
||||
$this->assertNotInstanceOf('\ProxyManager\Proxy\LazyLoadingInterface', $foo1->getWrappedValueHolderValue());
|
||||
|
||||
$foo1->__destruct();
|
||||
$this->assertSame(1, $foo1::$destructorCount);
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,8 @@
|
||||
|
||||
class ProxyManagerBridgeFooClass
|
||||
{
|
||||
public static $destructorCount = 0;
|
||||
|
||||
public $foo;
|
||||
public $moo;
|
||||
|
||||
@ -38,4 +40,9 @@ class ProxyManagerBridgeFooClass
|
||||
{
|
||||
$this->bar = $value;
|
||||
}
|
||||
|
||||
public function __destruct()
|
||||
{
|
||||
++self::$destructorCount;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user