Merge branch '2.3' into 2.4

* 2.3:
  bumped Symfony version to 2.3.14
  updated VERSION for 2.3.13
  update CONTRIBUTORS for 2.3.13
  updated CHANGELOG for 2.3.13
  [Console] Fixed the rendering of exceptions on HHVM with a terminal width
  [WebProfilerBundle ] Fixed an edge case on WDT loading
  fixed typo
  [Process] Disable TTY mode on Windows platform
  [Validator] added missing ANNOTATION config to @Target annotation
  [Finder] Fix ignoring of unreadable dirs in the RecursiveDirectoryIterator.

Conflicts:
	src/Symfony/Component/HttpKernel/Kernel.php
	src/Symfony/Component/Validator/Constraints/Callback.php
This commit is contained in:
Fabien Potencier 2014-04-27 15:34:57 +02:00
commit 8003cfe801
14 changed files with 105 additions and 27 deletions

View File

@ -7,6 +7,29 @@ in 2.3 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.3.0...v2.3.1
* 2.3.13 (2014-04-27)
* bug #10789 [Console] Fixed the rendering of exceptions on HHVM with a terminal width (stof)
* bug #10773 [WebProfilerBundle ] Fixed an edge case on WDT loading (tucksaun)
* bug #10763 [Process] Disable TTY mode on Windows platform (romainneutron)
* bug #10772 [Finder] Fix ignoring of unreadable dirs in the RecursiveDirectoryIterator (jakzal)
* bug #10757 [Process] Setting STDIN while running should not be possible (romainneutron)
* bug #10749 Fixed incompatibility of x509 auth with nginx (alcaeus)
* bug #10735 [Translation] [PluralizationRules] Little correction for case 'ar' (klyk50)
* bug #10720 [HttpFoundation] Fix DbalSessionHandler (Tobion)
* bug #10721 [HttpFoundation] status 201 is allowed to have a body (Tobion)
* bug #10728 [Process] Fix #10681, process are failing on Windows Server 2003 (romainneutron)
* bug #10733 [DomCrawler] Textarea value should default to empty string instead of null. (Berdir)
* bug #10723 [Security] fix DBAL connection typehint (Tobion)
* bug #10700 Fixes various inconsistencies in the code (fabpot)
* bug #10697 [Translation] Make IcuDatFileLoader/IcuResFileLoader::load invalid resource compatible with HHVM. (idn2104)
* bug #10652 [HttpFoundation] fix PDO session handler under high concurrency (Tobion)
* bug #10669 [Profiler] Prevent throwing fatal errors when searching timestamps or invalid dates (stloyd)
* bug #10670 [Templating] PhpEngine should propagate charset to its helpers (stloyd)
* bug #10665 [DependencyInjection] Fix ticket #10663 - Added setCharset method call to PHP templating engine (koku)
* bug #10654 Changed the typehint of the EsiFragmentRenderer to the interface (stof)
* bug #10649 [BrowserKit] Fix #10641 : BrowserKit is broken when using ip as host (romainneutron)
* 2.3.12 (2014-04-03)
* bug #10586 Fixes URL validator to accept single part urls (merk)

View File

@ -23,9 +23,9 @@ Symfony2 is the result of the work of many people who made the code better
- Benjamin Eberlei (beberlei)
- Igor Wiedler (igorw)
- Hugo Hamon (hhamon)
- Romain Neutron (romain)
- Eriksen Costa (eriksencosta)
- Martin Hasoň (hason)
- Romain Neutron (romain)
- Jonathan Wage (jwage)
- Alexandre Salomé (alexandresalome)
- William Durand (couac)
@ -48,49 +48,49 @@ Symfony2 is the result of the work of many people who made the code better
- Dariusz Górecki (canni)
- Andrej Hudec (pulzarraider)
- Arnout Boks (aboks)
- Michel Weimerskirch (mweimerskirch)
- Lee McDermott
- Brandon Turner
- Douglas Greenshields (shieldo)
- Daniel Holmes (dholmes)
- Jordan Alliot (jalliot)
- Christian Raue
- Douglas Greenshields (shieldo)
- John Wards (johnwards)
- Fran Moreno (franmomu)
- Bart van den Burg (burgov)
- Antoine Hérault (herzult)
- Toni Uebernickel (havvg)
- Michel Weimerskirch (mweimerskirch)
- Arnaud Le Blanc (arnaud-lb)
- Brice BERNARD (brikou)
- Luis Cordova (cordoval)
- Tim Nagel (merk)
- Kevin Bond (kbond)
- marc.weistroff
- lenar
- Tim Nagel (merk)
- Włodzimierz Gajda (gajdaw)
- Colin Frei
- excelwebzone
- Fabien Pennequin (fabienpennequin)
- Jacob Dreesen (jdreesen)
- Adrien Brault (adrienbrault)
- Gábor Egyed (1ed)
- Michal Piotrowski (eventhorizon)
- Florian Voutzinos (florianv)
- Robert Schönthal (digitalkaoz)
- Juti Noppornpitak (shiroyuki)
- Sebastian Hörl (blogsh)
- Hidenori Goto (hidenorigoto)
- Gábor Egyed (1ed)
- Daniel Gomes (danielcsgomes)
- Peter Kokot (maastermedia)
- Jérémie Augustin (jaugustin)
- David Buchmann (dbu)
- Ait Boudad Abdellatif (aitboudad)
- Peter Kokot (maastermedia)
- Jérôme Tamarelle (gromnan)
- Tigran Azatyan (tigranazatyan)
- Javier Eguiluz (javier.eguiluz)
- Rafael Dohms (rdohms)
- Richard Shank (iampersistent)
- Gordon Franke (gimler)
- Jérôme Tamarelle (gromnan)
- Helmer Aaviksoo
- Sebastiaan Stok (sstok)
- Matthieu Ouellette-Vachon (maoueh)
@ -99,6 +99,7 @@ Symfony2 is the result of the work of many people who made the code better
- Jonathan Ingram (jonathaningram)
- Artur Kotyrba
- Guilherme Blanco (guilhermeblanco)
- Nicolas Grekas (nicolas-grekas)
- Pablo Godel (pgodel)
- Eric GELOEN (gelo)
- Dmitrii Chekaliuk (lazyhammer)
@ -122,7 +123,6 @@ Symfony2 is the result of the work of many people who made the code better
- fivestar
- Dominique Bongiraud
- Leszek Prabucki (l3l0)
- Nicolas Grekas (nicolas-grekas)
- François Zaninotto (fzaninotto)
- Dustin Whittle (dustinwhittle)
- jeff
@ -228,6 +228,7 @@ Symfony2 is the result of the work of many people who made the code better
- Xavier HAUSHERR
- Albert Jessurum (ajessu)
- Laszlo Korte
- Miha Vrhovnik
- Alessandro Desantis
- hubert lecorche (hlecorche)
- Eugene Leonovich (rybakit)
@ -259,11 +260,13 @@ Symfony2 is the result of the work of many people who made the code better
- Vitaliy Tverdokhlib (vitaliytv)
- Dirk Pahl (dirkaholic)
- cedric lombardot (cedriclombardot)
- Charles Sarrazin (csarrazi)
- Jonas Flodén (flojon)
- Marcin Sikoń (marphi)
- franek (franek)
- Adam Harvey
- Robbert Klarenbeek (robbertkl)
- François-Xavier de Guillebon (de-gui_f)
- boombatower
- Fabrice Bernhard (fabriceb)
- Fabian Lange (codingfabian)
@ -285,6 +288,7 @@ Symfony2 is the result of the work of many people who made the code better
- Maks Slesarenko
- Markus Lanthaler (lanthaler)
- Vicent Soria Durá (vicentgodella)
- Ioan Negulescu
- Andrew Udvare (audvare)
- alexpods
- Erik Trapman (eriktrapman)
@ -312,10 +316,10 @@ Symfony2 is the result of the work of many people who made the code better
- Aurélien Fredouelle
- Karoly Negyesi (chx)
- Pavel Campr (pcampr)
- Miha Vrhovnik
- Geoffrey Tran (geoff)
- Jan Behrens
- Thomas Lallement (raziel057)
- alcaeus
- vitaliytv
- Markus Bachmann (baachi)
- aubx
@ -349,8 +353,8 @@ Symfony2 is the result of the work of many people who made the code better
- Chris Heng (gigablah)
- Ulumuddin Yunus (joenoez)
- Antoine Corcy
- Sascha Grossenbacher
- Ben Davies (bendavies)
- François-Xavier de Guillebon (de-gui_f)
- Hossein Bukhamsin
- Paweł Wacławczyk (pwc)
- Oleg Zinchenko (cystbear)
@ -387,6 +391,7 @@ Symfony2 is the result of the work of many people who made the code better
- Casper Valdemar Poulsen
- Josiah (josiah)
- John Bohn (jbohn)
- Jakub Škvára (jskvara)
- Andrew Hilobok (hilobok)
- Christian Soronellas (theunic)
- Jérôme Vieilledent (lolautruche)
@ -400,6 +405,7 @@ Symfony2 is the result of the work of many people who made the code better
- Jayson Xu (superjavason)
- Jaik Dean (jaikdean)
- Jan Prieser
- Issei Murasawa (issei_m)
- James Michael DuPont
- Tom Klingenberg
- Christopher Hall (mythmakr)
@ -458,13 +464,14 @@ Symfony2 is the result of the work of many people who made the code better
- Robert Gruendler (pulse00)
- Simon Terrien (sterrien)
- Benoît Merlet (trompette)
- Koen Kuipers
- Raul Fraile (raulfraile)
- sensio
- Patrick Kaufmann
- alcaeus
- Ben Ramsey (ramsey)
- Christian Jul Jensen
- The Whole Life to Learn
- Liverbool (liverbool)
- Phan Thanh Ha (haphan)
- Chris Jones (leek)
- Colin O'Dell (colinodell)
@ -506,7 +513,6 @@ Symfony2 is the result of the work of many people who made the code better
- Catalin Dan
- Piotr Antosik (antek88)
- Artem Lopata
- Sascha Grossenbacher
- Marcos Quesada (marcos_quesada)
- Dan Finnie
- Ken Marfilla (marfillaster)
@ -570,6 +576,7 @@ Symfony2 is the result of the work of many people who made the code better
- heccjj
- Alexandre Melard
- Sergey Yuferev
- Mario Young
- Mo Di (modi)
- Jeroen van den Enden (stoefke)
- Quique Porta (quiqueporta)
@ -623,7 +630,6 @@ Symfony2 is the result of the work of many people who made the code better
- WedgeSama
- Beth Binkovitz
- Romain Geissler
- Charles Sarrazin (csarrazi)
- Marcus Stöhr (dafish)
- Emmanuel Vella (emmanuel.vella)
- Carsten Nielsen (phreaknerd)
@ -674,7 +680,6 @@ Symfony2 is the result of the work of many people who made the code better
- Olivier
- pscheit
- Ramon Kleiss (akathos)
- Jakub Škvára (jskvara)
- Nicolas Badey (nico-b)
- Shane Preece (shane)
- povilas
@ -698,6 +703,7 @@ Symfony2 is the result of the work of many people who made the code better
- 2manypeople
- Wing
- Thomas Bibb
- catch
- Alexandre Segura
- Josef Cech
- Matthew Foster (mfoster)
@ -748,6 +754,7 @@ Symfony2 is the result of the work of many people who made the code better
- Jordi Llonch (jordillonch)
- Cédric Dugat (ph3nol)
- Philip Dahlstrøm (phidah)
- Loick Piera (pyrech)
- Rénald Casagraude (rcasagraude)
- Robin Duval (robin-duval)
- Artem Lopata (bumz)
@ -814,6 +821,7 @@ Symfony2 is the result of the work of many people who made the code better
- Alex
- Klaas Naaijkens
- Rafał
- Adria Lopez (adlpz)
- Masao Maeda (brtriver)
- Dave Hulbert (dave1010)
- Dave Marshall (davedevelopment)
@ -861,6 +869,7 @@ Symfony2 is the result of the work of many people who made the code better
- Myke79
- Brian Debuire
- Sylvain Lorinet
- klyk50
- jc
- BenjaminBeck
- Aurelijus Rožėnas
@ -948,6 +957,7 @@ Symfony2 is the result of the work of many people who made the code better
- Yohan Giarelli (frequence-web)
- Massimiliano Arione (garak)
- Ghazy Ben Ahmed (ghazy)
- ibasaw (ibasaw)
- Vladislav Krupenkin (ideea)
- joris de wit (jdewit)
- Jérémy CROMBEZ (jeremy)
@ -992,6 +1002,7 @@ Symfony2 is the result of the work of many people who made the code better
- Gustavo Adrian
- Michael
- fh-github@fholzhauer.de
- Mark Topper
- Xavier REN
- Philipp Scheit
- max

View File

@ -17,7 +17,7 @@ use Symfony\Component\Validator\Constraint;
* Constraint for the Unique Entity validator
*
* @Annotation
* @Target("CLASS")
* @Target({"CLASS", "ANNOTATION"})
*
* @author Benjamin Eberlei <kontakt@beberlei.de>
*/

View File

@ -239,7 +239,7 @@ class ProfilerController
$this->profiler->disable();
if (!$profile = $this->profiler->loadProfile($token)) {
return new Response('', 200, array('Content-Type' => 'text/html'));
return new Response('', 404, array('Content-Type' => 'text/html'));
}
// the toolbar position (top, bottom, normal, or null -- use the configuration)

View File

@ -9,12 +9,26 @@
request = function(url, onSuccess, onError, payload, options) {
var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
options = options || {};
options.maxTries = options.maxTries || 0;
xhr.open(options.method || 'GET', url, true);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.onreadystatechange = function(state) {
if (4 === xhr.readyState && 200 === xhr.status) {
if (4 !== xhr.readyState) {
return null;
}
if (xhr.status == 404 && options.maxTries > 1) {
setTimeout(function(){
options.maxTries--;
request(url, onSuccess, onError, payload, options);
}, 500);
return null;
}
if (200 === xhr.status) {
(onSuccess || noop)(xhr);
} else if (4 === xhr.readyState && xhr.status != 200) {
} else {
(onError || noop)(xhr);
}
};
@ -75,6 +89,7 @@
(onSuccess || noop)(xhr, el);
},
function(xhr) { (onError || noop)(xhr, el); },
'',
options
);
}

View File

@ -34,7 +34,8 @@
if (xhr.status !== 0) {
confirm('An error occurred while loading the web debug toolbar (' + xhr.status + ': ' + xhr.statusText + ').\n\nDo you want to open the profiler?') && (window.location = '{{ path("_profiler", { "token": token }) }}');
}
}
},
{'maxTries': 5}
);
})();
/*]]>*/</script>

View File

@ -695,8 +695,11 @@ class Application
do {
$title = sprintf(' [%s] ', get_class($e));
$len = $strlen($title);
$width = $this->getTerminalWidth() ? $this->getTerminalWidth() - 1 : PHP_INT_MAX;
// HHVM only accepts 32 bits integer in str_split, even when PHP_INT_MAX is a 64 bit integer: https://github.com/facebook/hhvm/issues/1327
$width = $this->getTerminalWidth() ? $this->getTerminalWidth() - 1 : (defined('HHVM_VERSION') ? 1 << 31 : PHP_INT_MAX);
if (defined('HHVM_VERSION') && $width > 1 << 31) {
$width = 1 << 31;
}
$formatter = $output->getFormatter();
$lines = array();
foreach (preg_split('/\r?\n/', $e->getMessage()) as $line) {

View File

@ -68,7 +68,14 @@ class RecursiveDirectoryIterator extends \RecursiveDirectoryIterator
public function getChildren()
{
try {
return parent::getChildren();
$children = parent::getChildren();
if ($children instanceof self) {
// parent method will call the constructor with default arguments, so unreadable dirs won't be ignored anymore
$children->ignoreUnreadableDirs = $this->ignoreUnreadableDirs;
}
return $children;
} catch (\UnexpectedValueException $e) {
if ($this->ignoreUnreadableDirs) {
// If directory is unreadable and finder is set to ignore it, a fake empty content is returned.

View File

@ -824,9 +824,15 @@ class Process
* @param bool $tty True to enabled and false to disable
*
* @return self The current Process instance
*
* @throws RuntimeException In case the TTY mode is not supported
*/
public function setTty($tty)
{
if (defined('PHP_WINDOWS_VERSION_BUILD') && $tty) {
throw new RuntimeException('TTY mode is not supported on Windows platform.');
}
$this->tty = (bool) $tty;
return $this;

View File

@ -285,7 +285,7 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
}
$process = $this->getProcess('echo "foo" >> /dev/null && php -r "usleep(100000);"');
$process->setTTY(true);
$process->setTty(true);
$process->start();
$this->assertTrue($process->isRunning());
$process->wait();
@ -300,12 +300,24 @@ abstract class AbstractProcessTest extends \PHPUnit_Framework_TestCase
}
$process = $this->getProcess('echo "foo" >> /dev/null');
$process->setTTY(true);
$process->setTty(true);
$process->run();
$this->assertTrue($process->isSuccessful());
}
public function testTTYInWindowsEnvironment()
{
if (!defined('PHP_WINDOWS_VERSION_BUILD')) {
$this->markTestSkipped('This test is for Windows platform only');
}
$process = $this->getProcess('echo "foo" >> /dev/null');
$process->setTty(false);
$this->setExpectedException('Symfony\Component\Process\Exception\RuntimeException', 'TTY mode is not supported on Windows platform.');
$process->setTty(true);
}
public function testExitCodeTextIsNullWhenExitCodeIsNull()
{
$process = $this->getProcess('');

View File

@ -15,7 +15,7 @@ use Symfony\Component\Validator\Constraint;
/**
* @Annotation
* @Target({"PROPERTY", "METHOD", "ANNOTATION"})
* @Target({"CLASS", "PROPERTY", "METHOD", "ANNOTATION"})
*
* @author Bernhard Schussek <bschussek@gmail.com>
*

View File

@ -15,7 +15,7 @@ namespace Symfony\Component\Validator\Constraints;
* Annotation for group sequences
*
* @Annotation
* @Target("CLASS")
* @Target({"CLASS", "ANNOTATION"})
*
* @author Bernhard Schussek <bschussek@gmail.com>
*

View File

@ -15,7 +15,7 @@ namespace Symfony\Component\Validator\Constraints;
* Annotation to define a group sequence provider
*
* @Annotation
* @Target("CLASS")
* @Target({"CLASS", "ANNOTATION"})
*/
class GroupSequenceProvider
{

View File

@ -180,7 +180,7 @@
</trans-unit>
<trans-unit id="48">
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>این مقدار می بایست دقیفا {{ limit }} کاراکتر داشته باشد.|این مقدرا می بایشت دقیقا {{ limit }} کاراکتر داشته باشد.</target>
<target> این مقدار می بایست دقیقا {{ limit }} کاراکتر داشته باشد.| این مقدار می بایست دقیقا {{ limit }} کاراکتر داشته باشد.</target>
</trans-unit>
<trans-unit id="49">
<source>The file was only partially uploaded.</source>