diff --git a/CHANGELOG-5.2.md b/CHANGELOG-5.2.md index b77697fd01f15..68a57b4be09f1 100644 --- a/CHANGELOG-5.2.md +++ b/CHANGELOG-5.2.md @@ -7,6 +7,17 @@ in 5.2 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/v5.2.0...v5.2.1 +* 5.2.5 (2021-03-10) + + * bug #40415 Fix `ConstraintViolation#getPropertyPath()` to always return `string` (Ocramius) + * bug #40421 [FrameworkBundle] fix XSD (nicolas-grekas) + * bug #39685 [Mailer][Mime][TwigBridge][Validator] Allow egulias/email-validator 3.x (derrabus) + * bug #40398 [FrameworkBundle] : Fix method name compare in ResolveControllerNameSubscriber (glensc) + * bug #39733 [TwigBridge] Render email once (jderusse) + * bug #40386 [DependencyInjection][Security] Backport psr/container 1.1/2.0 compatibility (derrabus) + * bug #40376 [Messenger] Don't lock tables or start transactions (Nyholm) + * bug #40378 Changing ZulipTransportFactory tag to prevent the exception UnsupportedSchemeException (big-r81) + * 5.2.4 (2021-03-04) * bug #40336 [Messenger] Doctrine setup with migrations (Nyholm) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index b64aa797a5b14..09e940bebd83c 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -4,17 +4,14 @@ CONTRIBUTORS Symfony is the result of the work of many people who made the code better. The Symfony Connect username in parenthesis allows to get more information -about contributors (like https://connect.symfony.com/profile/fabpot). See -https://symfony.com/contributors for more information. - - Fabien Potencier (fabpot) - Nicolas Grekas (nicolas-grekas) - Christian Flothmann (xabbuh) - Bernhard Schussek (bschussek) - Tobias Schultze (tobion) - Robin Chalas (chalas_r) - - Christophe Coevoet (stof) - Alexander M. Turek (derrabus) + - Christophe Coevoet (stof) - Kévin Dunglas (dunglas) - Maxime Steinhausser (ogizanagi) - Jordi Boggiano (seldaek) @@ -26,12 +23,12 @@ https://symfony.com/contributors for more information. - Jakub Zalas (jakubzalas) - Johannes S (johannes) - Kris Wallsmith (kriswallsmith) - - Wouter de Jong (wouterj) + - Wouter De Jong (wouterj) - Jérémy DERUSSÉ (jderusse) - Thomas Calvet (fancyweb) - - Yonel Ceruto (yonelceruto) + - Yonel Ceruto González (yonelceruto) - Hugo Hamon (hhamon) - - Abdellatif Ait boudad (aitboudad) + - Ait Boudad Abdellatif (aitboudad) - Samuel ROZE (sroze) - Romain Neutron (romain) - Pascal Borreli (pborreli) @@ -39,20 +36,20 @@ https://symfony.com/contributors for more information. - Karma Dordrak (drak) - Jules Pietri (heah) - Lukas Kahwe Smith (lsmith) - - Martin Hasoň (hason) - - Hamza Amrouche (simperfit) - Tobias Nyholm (tobias) + - Martin Hasoň (hason) + - Amrouche Hamza (simperfit) - Jeremy Mikola (jmikola) + - Oskar Stark (oskarstark) - Jean-François Simon (jfsimon) - Benjamin Eberlei (beberlei) - Igor Wiedler (igorw) - - Oskar Stark (oskarstark) - Eriksen Costa (eriksencosta) - - Guilhem Niot (energetick) + - Ener-Getick (energetick) - Sarah Khalil (saro0h) - Jan Schädlich (jschaedl) - Jonathan Wage (jwage) - - Lynn van der Berg (kjarli) + - Iltar van der Berg (kjarli) - Pierre du Plessis (pierredup) - Matthias Pigulla (mpdude) - Diego Saint Esteben (dosten) @@ -70,7 +67,7 @@ https://symfony.com/contributors for more information. - Bulat Shakirzyanov (avalanche123) - Saša Stamenković (umpirsky) - Peter Rehm (rpet) - - Gabriel Ostrolucký (gadelat) + - gadelat (gadelat) - Titouan Galopin (tgalopin) - David Maicher (dmaicher) - Gábor Egyed (1ed) @@ -90,14 +87,14 @@ https://symfony.com/contributors for more information. - Eric Clemmons (ericclemmons) - Charles Sarrazin (csarrazi) - Douglas Greenshields (shieldo) + - Jérôme Tamarelle (gromnan) - Laurent VOULLEMIER (lvo) - Arnout Boks (aboks) - Graham Campbell (graham) - - Jérôme Tamarelle (gromnan) + - David Buchmann (dbu) - Deni - Henrik Westphal (snc) - Dariusz Górecki (canni) - - David Buchmann (dbu) - Dariusz Ruminski - Fran Moreno (franmomu) - Lee McDermott @@ -130,6 +127,7 @@ https://symfony.com/contributors for more information. - Massimiliano Arione (garak) - Włodzimierz Gajda (gajdaw) - Adrien Brault (adrienbrault) + - Antoine M (amakdessi) - Jacob Dreesen (jdreesen) - Florian Voutzinos (florianv) - Teoh Han Hui (teohhanhui) @@ -137,21 +135,21 @@ https://symfony.com/contributors for more information. - Colin Frei - Javier Spagnoletti (phansys) - Joshua Thijssen - - Antoine Makdessi (amakdessi) - Daniel Wehner (dawehner) - Tugdual Saunier (tucksaun) + - Julien Falque (julienfalque) - excelwebzone - Gordon Franke (gimler) - Joel Wurtz (brouznouf) - Fabien Pennequin (fabienpennequin) - - Julien Falque (julienfalque) - Théo FIDRY (theofidry) - Eric GELOEN (gelo) - Jannik Zschiesche (apfelbox) - - jeremyFreeAgent (jeremyfreeagent) + - Jérémy Romey (jeremyfreeagent) - Robert Schönthal (digitalkaoz) - Gregor Harlan (gharlan) - Florian Lonqueu-Brochard (florianlb) + - Tigran Azatyan (tigranazatyan) - Gabriel Caruso (carusogabriel) - Stefano Sala (stefano.sala) - Yanick Witschi (toflar) @@ -159,7 +157,6 @@ https://symfony.com/contributors for more information. - Vincent AUBERT (vincent) - Juti Noppornpitak (shiroyuki) - Anthony MARTIN (xurudragon) - - Tigran Azatyan (tigranazatyan) - Sebastian Hörl (blogsh) - Daniel Gomes (danielcsgomes) - Hidenori Goto (hidenorigoto) @@ -176,13 +173,14 @@ https://symfony.com/contributors for more information. - François-Xavier de Guillebon (de-gui_f) - Oleg Voronkovich - Tomas Norkūnas (norkunas) - - Philipp Wahala (hifi) + - hacfi (hifi) - Rafael Dohms (rdohms) - jwdeitch - Ahmed TAILOULOUTE (ahmedtai) - Mathias Arlaud (mtarld) - Mikael Pajunen - Gary PEGEOT (gary-p) + - HypeMC (hypemc) - Arman Hosseini (arman) - Niels Keurentjes (curry684) - Vyacheslav Pavlov @@ -195,7 +193,6 @@ https://symfony.com/contributors for more information. - Ben Davies (bendavies) - Andreas Schempp (aschempp) - Clemens Tolboom - - HypeMC (hypemc) - Helmer Aaviksoo - Hiromi Hishida (77web) - Matthieu Ouellette-Vachon (maoueh) @@ -203,6 +200,7 @@ https://symfony.com/contributors for more information. - Dawid Nowak - Maxime Helias (maxhelias) - Amal Raghav (kertz) + - Albert Casademont (acasademont) - Jonathan Ingram (jonathaningram) - Artur Kotyrba - Tyson Andre @@ -210,7 +208,7 @@ https://symfony.com/contributors for more information. - Samuel NELA (snela) - Olivier Dolbeau (odolbeau) - Fabien Bourigault (fbourigault) - - Saif (╯°□°)╯ (azjezz) + - Saif Eddin Gmati (azjezz) - James Halsall (jaitsu) - Florent Mata (fmata) - Warnar Boekkooi (boekkooi) @@ -224,7 +222,7 @@ https://symfony.com/contributors for more information. - Michaël Perrin (michael.perrin) - Sergey Linnik (linniksa) - Richard Miller (mr_r_miller) - - Albert Casademont (acasademont) + - Ruud Kamphuis (ruudk) - Wouter J - Mario A. Alvarez Garcia (nomack84) - Dennis Benkert (denderello) @@ -238,7 +236,7 @@ https://symfony.com/contributors for more information. - Benjamin Dulau (dbenjamin) - Jan Rosier (rosier) - Mathieu Lemoine (lemoinem) - - Rémon van de Kamp (rpkamp) + - Remon van de Kamp (rpkamp) - Christian Schmidt - Andreas Hucks (meandmymonkey) - Tom Van Looy (tvlooy) @@ -263,6 +261,7 @@ https://symfony.com/contributors for more information. - Hidde Wieringa (hiddewie) - Jeremy Livingston (jeremylivingston) - Michael Lee (zerustech) + - Timo Bakx (timobakx) - Dmitrii Poddubnyi (karser) - Matthieu Auger (matthieuauger) - Leszek Prabucki (l3l0) @@ -279,6 +278,7 @@ https://symfony.com/contributors for more information. - Maxime Veber (nek-) - Rui Marinho (ruimarinho) - Eugene Wissner + - Andreas Möller (localheinz) - Edi Modrić (emodric) - Pascal Montoya - Julien Brochet (mewt) @@ -287,7 +287,6 @@ https://symfony.com/contributors for more information. - Victor Bocharsky (bocharsky_bw) - Marcel Beerta (mazen) - Christopher Hertel (chertel) - - Ruud Kamphuis (ruudk) - Chi-teck - Pavel Batanov (scaytrase) - Mantis Development @@ -300,7 +299,6 @@ https://symfony.com/contributors for more information. - julien pauli (jpauli) - Lorenz Schori - Sébastien Lavoie (lavoiesl) - - Timo Bakx (timobakx) - Dariusz - Farhad Safarov (safarov) - Michael Babker (mbabker) @@ -348,7 +346,7 @@ https://symfony.com/contributors for more information. - Joseph Rouff (rouffj) - Félix Labrecque (woodspire) - GordonsLondon - - Quynh Xuan Nguyen (xuanquynh) + - Nguyen Xuan Quynh (xuanquynh) - Jan Sorgalla (jsor) - Ray - Chekote @@ -362,10 +360,11 @@ https://symfony.com/contributors for more information. - Nikita Konstantinov - Wodor Wodorski - Joe Bennett (kralos) + - Simon Berger - soyuka - Giorgio Premi - renanbr - - Alex Rock (pierstoval) + - Alex Rock Ancelet (pierstoval) - Beau Simensen (simensen) - Michael Hirschler (mvhirsch) - Robert Kiss (kepten) @@ -431,6 +430,7 @@ https://symfony.com/contributors for more information. - Julien Galenski (ruian) - Thomas Landauer (thomas-landauer) - Bongiraud Dominique + - Kyle - janschoenherr - Emanuele Gaspari (inmarelibero) - Dariusz Rumiński @@ -442,7 +442,6 @@ https://symfony.com/contributors for more information. - Mark Challoner (markchalloner) - ivan - Karoly Gossler (connorhu) - - Simon Berger - Ahmed Raafat - Philippe Segatori - Gennady Telegin (gtelegin) @@ -469,6 +468,7 @@ https://symfony.com/contributors for more information. - Sylvain Fabre (sylfabre) - Artur Eshenbrener - Harm van Tilborg (hvt) + - Malte Schlüter (maltemaltesich) - Thomas Perez (scullwm) - Felix Labrecque - Yaroslav Kiliba @@ -494,7 +494,7 @@ https://symfony.com/contributors for more information. - ShinDarth - Stéphane PY (steph_py) - Philipp Kräutli (pkraeutli) - - Grzegorz (Greg) Zdanowski (kiler129) + - Grzegorz Zdanowski (kiler129) - Dimitri Gritsajuk (ottaviano) - Kirill chEbba Chebunin (chebba) - @@ -576,6 +576,7 @@ https://symfony.com/contributors for more information. - Mihai Stancu - Ivan Nikolaev (destillat) - Gildas Quéméner (gquemener) + - BoShurik - Laurent Masforné (heisenberg) - Claude Khedhiri (ck-developer) - Desjardins Jérôme (jewome62) @@ -593,7 +594,6 @@ https://symfony.com/contributors for more information. - Asier Illarramendi (doup) - Martijn Cuppens - Vlad Gregurco (vgregurco) - - Malte Schlüter (maltemaltesich) - Boris Vujicic (boris.vujicic) - Artem Lopata - Judicaël RUFFIEUX (axanagor) @@ -624,6 +624,7 @@ https://symfony.com/contributors for more information. - Tavo Nieves J - Luc Vieillescazes (iamluc) - Lukáš Holeczy (holicz) + - Erik Saunier (snickers) - franek (franek) - Raulnet - Christian Wahler @@ -658,6 +659,7 @@ https://symfony.com/contributors for more information. - Nathan Dench (ndenc2) - Sebastian Bergmann - Miroslav Sustek + - Michał (bambucha15) - Pablo Díez (pablodip) - Kevin McBride - Sergio Santoro @@ -666,6 +668,7 @@ https://symfony.com/contributors for more information. - Manuel de Ruiter (manuel) - Nathanael Noblet (gnat) - nikos.sotiropoulos + - BENOIT POLASZEK (bpolaszek) - Eduardo Oliveira (entering) - Oleksii Zhurbytskyi - Ilya Antipenko (aivus) @@ -752,7 +755,6 @@ https://symfony.com/contributors for more information. - Michiel Boeckaert (milio) - Geoffrey Tran (geoff) - Pablo Lozano (arkadis) - - Kyle - Jan Behrens - Mantas Var (mvar) - Terje Bråten @@ -794,7 +796,6 @@ https://symfony.com/contributors for more information. - James Johnston - Noémi Salaün (noemi-salaun) - Sinan Eldem - - BoShurik - Alexandre Dupuy (satchette) - Michel Hunziker - Malte Blättermann @@ -848,7 +849,7 @@ https://symfony.com/contributors for more information. - adev - Stefan Warman - Tristan Maindron (tmaindron) - - Behnoush Norouzali (behnoush) + - Behnoush norouzali (behnoush) - Marko H. Tamminen (gzumba) - Wesley Lancel - Xavier Briand (xavierbriand) @@ -871,6 +872,7 @@ https://symfony.com/contributors for more information. - Ivan Grigoriev - Johann Saunier (prophet777) - Sergey (upyx) + - Fabien Salles (blacked) - Andreas Erhard - Michael Devery (mickadoo) - Antoine Corcy @@ -929,7 +931,6 @@ https://symfony.com/contributors for more information. - Michel Roca (mroca) - Reedy - Arturas Smorgun (asarturas) - - Michał (bambucha15) - Alexander Volochnev (exelenz) - Michael Piecko - Toni Peric (tperic) @@ -980,8 +981,10 @@ https://symfony.com/contributors for more information. - Andrew Tchircoff (andrewtch) - michaelwilliams - Martin Kirilov + - Alexandre Parent - 1emming - Nykopol (nykopol) + - Piotr Kugla (piku235) - Jordan Deitch - Casper Valdemar Poulsen - Josiah (josiah) @@ -990,9 +993,9 @@ https://symfony.com/contributors for more information. - John Bohn (jbohn) - Marc Morera (mmoreram) - Jason Tan - - BENOIT POLASZEK (bpolaszek) - Julien Pauli - Mathieu Rochette (mathroc) + - Jérôme Tanghe (deuchnord) - Andrew Hilobok (hilobok) - Noah Heck (myesain) - Christian Soronellas (theunic) @@ -1045,7 +1048,6 @@ https://symfony.com/contributors for more information. - Rafał Wrzeszcz (rafalwrzeszcz) - Vincent CHALAMON (vincentchalamon) - Reen Lokum - - Andreas Möller (localheinz) - Dennis Langen (nijusan) - Martin Parsiegla (spea) - Manuel Alejandro Paz Cetina @@ -1174,7 +1176,6 @@ https://symfony.com/contributors for more information. - Benoît Merlet (trompette) - Koen Kuipers - datibbaw - - Erik Saunier (snickers) - Thiago Cordeiro (thiagocordeiro) - Rootie - Bernd Stellwag @@ -1219,6 +1220,7 @@ https://symfony.com/contributors for more information. - Christin Gruber (christingruber) - Phan Thanh Ha (haphan) - Chris Jones (leek) + - James Hemery - neghmurken - xaav - Mahmoud Mostafa (mahmoud) @@ -1547,6 +1549,7 @@ https://symfony.com/contributors for more information. - Jorge Vahldick (jvahldick) - Frederic Godfrin - Paul Matthews + - Xesxen - Jakub Kisielewski - Vacheslav Silyutin - Aleksandr Dankovtsev @@ -1618,6 +1621,7 @@ https://symfony.com/contributors for more information. - Lars Ambrosius Wallenborn (larsborn) - Oriol Mangas Abellan (oriolman) - Sebastian Göttschkes (sgoettschkes) + - Frankie Wittevrongel - Tatsuya Tsuruoka - Ross Tuck - Gerben Oolbekkink @@ -1649,7 +1653,6 @@ https://symfony.com/contributors for more information. - Sebastian Utz - Adrien Gallou (agallou) - Andrea Sprega (asprega) - - Fabien Salles (blacked) - Maks Rafalko (bornfree) - Karol Sójko (karolsojko) - sl_toto (sl_toto) @@ -1670,7 +1673,6 @@ https://symfony.com/contributors for more information. - Cédric Lahouste (rapotor) - Samuel Vogel (samuelvogel) - Osayawe Ogbemudia Terry (terdia) - - Alexandre Parent - Berat Doğan - Guillaume LECERF - Juanmi Rodriguez Cerón @@ -1701,6 +1703,7 @@ https://symfony.com/contributors for more information. - Łukasz Makuch - George Giannoulopoulos - Alexander Pasichnick + - Ilya Ch. (ilya0) - Luis Ramirez (luisdeimos) - Daniel Richter (richtermeister) - ChrisC @@ -1735,6 +1738,7 @@ https://symfony.com/contributors for more information. - Fabien S (bafs) - Daniel Rotter (danrot) - Frédéric Bouchery (fbouchery) + - kylekatarnls (kylekatarnls) - Patrick Daley (padrig) - Max Summe - WedgeSama @@ -1858,6 +1862,7 @@ https://symfony.com/contributors for more information. - Dominik Piekarski (dompie) - Andrew (drew) - kor3k kor3k (kor3k) + - Rares Sebastian Moldovan (raresmldvn) - Stelian Mocanita (stelian) - Justin (wackymole) - Flavian (2much) @@ -1865,6 +1870,7 @@ https://symfony.com/contributors for more information. - mike - Gilbertsoft - tadas + - Bastien Picharles - Kirk Madera - Keith Maika - Mephistofeles @@ -1901,10 +1907,10 @@ https://symfony.com/contributors for more information. - wusuopu - povilas - Gavin Staniforth + - bahram - Alessandro Tagliapietra (alex88) - Andy Palmer (andyexeter) - Biji (biji) - - Jérôme Tanghe (deuchnord) - Alex Teterin (errogaht) - Gunnar Lium (gunnarlium) - Tiago Garcia (tiagojsag) @@ -2210,6 +2216,7 @@ https://symfony.com/contributors for more information. - Ahmed Hannachi (tiecoders) - Vincent LEFORT (vlefort) - Walid BOUGHDIRI (walidboughdiri) + - wicliff wolda (wickedone) - Wim Molenberghs (wimm) - Darryl Hein (xmmedia) - Sadicov Vladimir (xtech) @@ -2252,10 +2259,12 @@ https://symfony.com/contributors for more information. - Götz Gottwald - Veres Lajos - Ernest Hymel + - LoginovIlya - Nick Chiu - grifx - Robert Campbell - Matt Lehner + - carlos-ea - Helmut Januschka - Jérémy Benoist - Hein Zaw Htet™ @@ -2272,6 +2281,7 @@ https://symfony.com/contributors for more information. - Marin Nicolae - Alessandro Loffredo - Ian Phillips + - Carlos Tasada - Haritz - Matthieu Prat - Grummfy @@ -2465,6 +2475,7 @@ https://symfony.com/contributors for more information. - Matt Fields - Olatunbosun Egberinde - Andras Debreczeni + - Knallcharge - Vladimir Sazhin - Michel Bardelmeijer - Tomas Kmieliauskas @@ -2513,6 +2524,7 @@ https://symfony.com/contributors for more information. - Alexis BOYER - Kaipi Yann - adam-mospan + - Steve Hyde - Sam Williams - Guillaume Aveline - Adrian Philipp @@ -2624,6 +2636,7 @@ https://symfony.com/contributors for more information. - sualko - Molkobain - Bilge + - Yendric - ADmad - Nicolas Roudaire - Matthias Meyer @@ -2779,6 +2792,7 @@ https://symfony.com/contributors for more information. - Michael - fh-github@fholzhauer.de - AbdElKader Bouadjadja + - ddegentesh - DSeemiller - Jan Emrich - Mark Topper diff --git a/composer.json b/composer.json index 667c2dee04081..fc7535421b83b 100644 --- a/composer.json +++ b/composer.json @@ -145,7 +145,7 @@ "predis/predis": "~1.1", "psr/http-client": "^1.0", "psr/simple-cache": "^1.0", - "egulias/email-validator": "^2.1.10", + "egulias/email-validator": "^2.1.10|^3.1", "symfony/phpunit-bridge": "^5.2", "symfony/security-acl": "~2.8|~3.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", @@ -155,6 +155,7 @@ }, "conflict": { "doctrine/dbal": "<2.10", + "egulias/email-validator": "~3.0.0", "masterminds/html5": "<2.6", "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", diff --git a/src/Symfony/Bridge/Doctrine/Tests/Security/User/EntityUserProviderTest.php b/src/Symfony/Bridge/Doctrine/Tests/Security/User/EntityUserProviderTest.php index 49914454569e3..845515b901155 100644 --- a/src/Symfony/Bridge/Doctrine/Tests/Security/User/EntityUserProviderTest.php +++ b/src/Symfony/Bridge/Doctrine/Tests/Security/User/EntityUserProviderTest.php @@ -234,4 +234,7 @@ abstract class UserLoaderRepository implements ObjectRepository, UserLoaderInter abstract class PasswordUpgraderRepository implements ObjectRepository, PasswordUpgraderInterface { + public function upgradePassword(UserInterface $user, string $newEncodedPassword): void + { + } } diff --git a/src/Symfony/Bridge/Monolog/Command/ServerLogCommand.php b/src/Symfony/Bridge/Monolog/Command/ServerLogCommand.php index bf3433e154be0..f2ad907d76978 100644 --- a/src/Symfony/Bridge/Monolog/Command/ServerLogCommand.php +++ b/src/Symfony/Bridge/Monolog/Command/ServerLogCommand.php @@ -60,7 +60,7 @@ protected function configure() ->addOption('format', null, InputOption::VALUE_REQUIRED, 'The line format', ConsoleFormatter::SIMPLE_FORMAT) ->addOption('date-format', null, InputOption::VALUE_REQUIRED, 'The date format', ConsoleFormatter::SIMPLE_DATE) ->addOption('filter', null, InputOption::VALUE_REQUIRED, 'An expression to filter log. Example: "level > 200 or channel in [\'app\', \'doctrine\']"') - ->setDescription('Starts a log server that displays logs in real time') + ->setDescription('Start a log server that displays logs in real time') ->setHelp(<<<'EOF' %command.name% starts a log server to display in real time the log messages generated by your application: diff --git a/src/Symfony/Bridge/Twig/Command/DebugCommand.php b/src/Symfony/Bridge/Twig/Command/DebugCommand.php index 8962a41dd366e..1b1bf7a7c34b2 100644 --- a/src/Symfony/Bridge/Twig/Command/DebugCommand.php +++ b/src/Symfony/Bridge/Twig/Command/DebugCommand.php @@ -60,7 +60,7 @@ protected function configure() new InputOption('filter', null, InputOption::VALUE_REQUIRED, 'Show details for all entries matching this filter'), new InputOption('format', null, InputOption::VALUE_REQUIRED, 'The output format (text or json)', 'text'), ]) - ->setDescription('Shows a list of twig functions, filters, globals and tests') + ->setDescription('Show a list of twig functions, filters, globals and tests') ->setHelp(<<<'EOF' The %command.name% command outputs a list of twig functions, filters, globals and tests. diff --git a/src/Symfony/Bridge/Twig/Command/LintCommand.php b/src/Symfony/Bridge/Twig/Command/LintCommand.php index 505f05959bb68..00c31def64b73 100644 --- a/src/Symfony/Bridge/Twig/Command/LintCommand.php +++ b/src/Symfony/Bridge/Twig/Command/LintCommand.php @@ -48,7 +48,7 @@ public function __construct(Environment $twig) protected function configure() { $this - ->setDescription('Lints a template and outputs encountered errors') + ->setDescription('Lint a template and outputs encountered errors') ->addOption('format', null, InputOption::VALUE_REQUIRED, 'The output format', 'txt') ->addOption('show-deprecations', null, InputOption::VALUE_NONE, 'Show deprecations as errors') ->addArgument('filename', InputArgument::IS_ARRAY, 'A file, a directory or "-" for reading from STDIN') diff --git a/src/Symfony/Bridge/Twig/Mime/BodyRenderer.php b/src/Symfony/Bridge/Twig/Mime/BodyRenderer.php index b19bc9be852b8..e26c2d5986e83 100644 --- a/src/Symfony/Bridge/Twig/Mime/BodyRenderer.php +++ b/src/Symfony/Bridge/Twig/Mime/BodyRenderer.php @@ -46,6 +46,14 @@ public function render(Message $message): void } $messageContext = $message->getContext(); + + $previousRenderingKey = $messageContext[__CLASS__] ?? null; + unset($messageContext[__CLASS__]); + $currentRenderingKey = md5(serialize([$messageContext, $message->getTextTemplate(), $message->getHtmlTemplate()])); + if ($previousRenderingKey === $currentRenderingKey) { + return; + } + if (isset($messageContext['email'])) { throw new InvalidArgumentException(sprintf('A "%s" context cannot have an "email" entry as this is a reserved variable.', get_debug_type($message))); } @@ -66,6 +74,7 @@ public function render(Message $message): void if (!$message->getTextBody() && null !== $html = $message->getHtmlBody()) { $message->text($this->convertHtmlToText(\is_resource($html) ? stream_get_contents($html) : $html)); } + $message->context($message->getContext() + [__CLASS__ => $currentRenderingKey]); } private function convertHtmlToText(string $html): string diff --git a/src/Symfony/Bridge/Twig/Tests/Mime/BodyRendererTest.php b/src/Symfony/Bridge/Twig/Tests/Mime/BodyRendererTest.php index 316d41c159989..f13ab213c3c4f 100644 --- a/src/Symfony/Bridge/Twig/Tests/Mime/BodyRendererTest.php +++ b/src/Symfony/Bridge/Twig/Tests/Mime/BodyRendererTest.php @@ -79,6 +79,27 @@ public function testRenderWithContextReservedEmailEntry() $this->prepareEmail('Text', '', ['email' => 'reserved!']); } + public function testRenderedOnce() + { + $twig = new Environment(new ArrayLoader([ + 'text' => 'Text', + ])); + $renderer = new BodyRenderer($twig); + $email = (new TemplatedEmail()) + ->to('fabien@symfony.com') + ->from('helene@symfony.com') + ; + $email->textTemplate('text'); + + $renderer->render($email); + $this->assertEquals('Text', $email->getTextBody()); + + $email->text('reset'); + + $renderer->render($email); + $this->assertEquals('reset', $email->getTextBody()); + } + private function prepareEmail(?string $text, ?string $html, array $context = []): TemplatedEmail { $twig = new Environment(new ArrayLoader([ diff --git a/src/Symfony/Bridge/Twig/composer.json b/src/Symfony/Bridge/Twig/composer.json index 1a1f364eb9a85..f167ccd927f43 100644 --- a/src/Symfony/Bridge/Twig/composer.json +++ b/src/Symfony/Bridge/Twig/composer.json @@ -22,7 +22,7 @@ "twig/twig": "^2.13|^3.0.4" }, "require-dev": { - "egulias/email-validator": "^2.1.10", + "egulias/email-validator": "^2.1.10|^3", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", "symfony/asset": "^4.4|^5.0", "symfony/dependency-injection": "^4.4|^5.0", diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/AboutCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/AboutCommand.php index 4c9f968736c59..279ef5062faaa 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/AboutCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/AboutCommand.php @@ -37,7 +37,7 @@ class AboutCommand extends Command protected function configure() { $this - ->setDescription('Displays information about the current project') + ->setDescription('Display information about the current project') ->setHelp(<<<'EOT' The %command.name% command displays information about the current Symfony project. diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/AssetsInstallCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/AssetsInstallCommand.php index 70ad92343eb25..d333fcaf29327 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/AssetsInstallCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/AssetsInstallCommand.php @@ -61,10 +61,10 @@ protected function configure() ->setDefinition([ new InputArgument('target', InputArgument::OPTIONAL, 'The target directory', null), ]) - ->addOption('symlink', null, InputOption::VALUE_NONE, 'Symlinks the assets instead of copying it') + ->addOption('symlink', null, InputOption::VALUE_NONE, 'Symlink the assets instead of copying them') ->addOption('relative', null, InputOption::VALUE_NONE, 'Make relative symlinks') ->addOption('no-cleanup', null, InputOption::VALUE_NONE, 'Do not remove the assets of the bundles that no longer exist') - ->setDescription('Installs bundles web assets under a public directory') + ->setDescription('Install bundle\'s web assets under a public directory') ->setHelp(<<<'EOT' The %command.name% command installs bundle assets into a given directory (e.g. the public directory). diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php index b9a829471f098..dbd93818c7dd6 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php @@ -58,7 +58,7 @@ protected function configure() new InputOption('no-warmup', '', InputOption::VALUE_NONE, 'Do not warm up the cache'), new InputOption('no-optional-warmers', '', InputOption::VALUE_NONE, 'Skip optional cache warmers (faster)'), ]) - ->setDescription('Clears the cache') + ->setDescription('Clear the cache') ->setHelp(<<<'EOF' The %command.name% command clears the application cache for a given environment and debug mode: diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolClearCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolClearCommand.php index 50aacd9bbd73d..123617e58b189 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolClearCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolClearCommand.php @@ -47,7 +47,7 @@ protected function configure() ->setDefinition([ new InputArgument('pools', InputArgument::IS_ARRAY | InputArgument::REQUIRED, 'A list of cache pools or cache pool clearers'), ]) - ->setDescription('Clears cache pools') + ->setDescription('Clear cache pools') ->setHelp(<<<'EOF' The %command.name% command clears the given cache pools or cache pool clearers. diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolDeleteCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolDeleteCommand.php index 2a7a2fe513040..922ec2dd7e94b 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolDeleteCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolDeleteCommand.php @@ -46,7 +46,7 @@ protected function configure() new InputArgument('pool', InputArgument::REQUIRED, 'The cache pool from which to delete an item'), new InputArgument('key', InputArgument::REQUIRED, 'The cache key to delete from the pool'), ]) - ->setDescription('Deletes an item from a cache pool') + ->setDescription('Delete an item from a cache pool') ->setHelp(<<<'EOF' The %command.name% deletes an item from a given cache pool. diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolPruneCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolPruneCommand.php index 65f3ff6b5802e..fb9af73064cb4 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolPruneCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/CachePoolPruneCommand.php @@ -44,7 +44,7 @@ public function __construct(iterable $pools) protected function configure() { $this - ->setDescription('Prunes cache pools') + ->setDescription('Prune cache pools') ->setHelp(<<<'EOF' The %command.name% command deletes all expired items from all pruneable pools. diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/CacheWarmupCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/CacheWarmupCommand.php index 8feb2dd9c51b2..0d410858ad7af 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/CacheWarmupCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/CacheWarmupCommand.php @@ -48,7 +48,7 @@ protected function configure() ->setDefinition([ new InputOption('no-optional-warmers', '', InputOption::VALUE_NONE, 'Skip optional cache warmers (faster)'), ]) - ->setDescription('Warms up an empty cache') + ->setDescription('Warm up an empty cache') ->setHelp(<<<'EOF' The %command.name% command warms up the cache. diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/ConfigDebugCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/ConfigDebugCommand.php index c68f17e120bbd..1b39ea160bb81 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/ConfigDebugCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/ConfigDebugCommand.php @@ -44,7 +44,7 @@ protected function configure() new InputArgument('name', InputArgument::OPTIONAL, 'The bundle name or the extension alias'), new InputArgument('path', InputArgument::OPTIONAL, 'The configuration option path'), ]) - ->setDescription('Dumps the current configuration for an extension') + ->setDescription('Dump the current configuration for an extension') ->setHelp(<<<'EOF' The %command.name% command dumps the current configuration for an extension/bundle. diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/ConfigDumpReferenceCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/ConfigDumpReferenceCommand.php index 62dcc856e0f56..f4b5439b6211b 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/ConfigDumpReferenceCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/ConfigDumpReferenceCommand.php @@ -48,7 +48,7 @@ protected function configure() new InputArgument('path', InputArgument::OPTIONAL, 'The configuration option path'), new InputOption('format', null, InputOption::VALUE_REQUIRED, 'The output format (yaml or xml)', 'yaml'), ]) - ->setDescription('Dumps the default configuration for an extension') + ->setDescription('Dump the default configuration for an extension') ->setHelp(<<<'EOF' The %command.name% command dumps the default configuration for an extension/bundle. diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/ContainerDebugCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/ContainerDebugCommand.php index 7c330dbdf4f85..e5532df079871 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/ContainerDebugCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/ContainerDebugCommand.php @@ -44,20 +44,20 @@ protected function configure() $this ->setDefinition([ new InputArgument('name', InputArgument::OPTIONAL, 'A service name (foo)'), - new InputOption('show-arguments', null, InputOption::VALUE_NONE, 'Used to show arguments in services'), - new InputOption('show-hidden', null, InputOption::VALUE_NONE, 'Used to show hidden (internal) services'), - new InputOption('tag', null, InputOption::VALUE_REQUIRED, 'Shows all services with a specific tag'), - new InputOption('tags', null, InputOption::VALUE_NONE, 'Displays tagged services for an application'), - new InputOption('parameter', null, InputOption::VALUE_REQUIRED, 'Displays a specific parameter for an application'), - new InputOption('parameters', null, InputOption::VALUE_NONE, 'Displays parameters for an application'), - new InputOption('types', null, InputOption::VALUE_NONE, 'Displays types (classes/interfaces) available in the container'), - new InputOption('env-var', null, InputOption::VALUE_REQUIRED, 'Displays a specific environment variable used in the container'), - new InputOption('env-vars', null, InputOption::VALUE_NONE, 'Displays environment variables used in the container'), + new InputOption('show-arguments', null, InputOption::VALUE_NONE, 'Show arguments in services'), + new InputOption('show-hidden', null, InputOption::VALUE_NONE, 'Show hidden (internal) services'), + new InputOption('tag', null, InputOption::VALUE_REQUIRED, 'Show all services with a specific tag'), + new InputOption('tags', null, InputOption::VALUE_NONE, 'Display tagged services for an application'), + new InputOption('parameter', null, InputOption::VALUE_REQUIRED, 'Display a specific parameter for an application'), + new InputOption('parameters', null, InputOption::VALUE_NONE, 'Display parameters for an application'), + new InputOption('types', null, InputOption::VALUE_NONE, 'Display types (classes/interfaces) available in the container'), + new InputOption('env-var', null, InputOption::VALUE_REQUIRED, 'Display a specific environment variable used in the container'), + new InputOption('env-vars', null, InputOption::VALUE_NONE, 'Display environment variables used in the container'), new InputOption('format', null, InputOption::VALUE_REQUIRED, 'The output format (txt, xml, json, or md)', 'txt'), new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw description'), - new InputOption('deprecations', null, InputOption::VALUE_NONE, 'Displays deprecations generated when compiling and warming up the container'), + new InputOption('deprecations', null, InputOption::VALUE_NONE, 'Display deprecations generated when compiling and warming up the container'), ]) - ->setDescription('Displays current services for an application') + ->setDescription('Display current services for an application') ->setHelp(<<<'EOF' The %command.name% command displays all configured public services: diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/ContainerLintCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/ContainerLintCommand.php index f059df1ee62fe..18930c1655b82 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/ContainerLintCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/ContainerLintCommand.php @@ -42,7 +42,7 @@ final class ContainerLintCommand extends Command protected function configure() { $this - ->setDescription('Ensures that arguments injected into services match type declarations') + ->setDescription('Ensure that arguments injected into services match type declarations') ->setHelp('This command parses service definitions and ensures that injected values match the type declarations of each services\' class.') ; } diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/DebugAutowiringCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/DebugAutowiringCommand.php index 32bd630f32516..79ac2dd8f8c98 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/DebugAutowiringCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/DebugAutowiringCommand.php @@ -50,7 +50,7 @@ protected function configure() new InputArgument('search', InputArgument::OPTIONAL, 'A search filter'), new InputOption('all', null, InputOption::VALUE_NONE, 'Show also services that are not aliased'), ]) - ->setDescription('Lists classes/interfaces you can use for autowiring') + ->setDescription('List classes/interfaces you can use for autowiring') ->setHelp(<<<'EOF' The %command.name% command displays the classes and interfaces that you can use as type-hints for autowiring: diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/EventDispatcherDebugCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/EventDispatcherDebugCommand.php index ad49cdeeaa87f..fd0a1ccb800e7 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/EventDispatcherDebugCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/EventDispatcherDebugCommand.php @@ -50,7 +50,7 @@ protected function configure() new InputOption('format', null, InputOption::VALUE_REQUIRED, 'The output format (txt, xml, json, or md)', 'txt'), new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw description'), ]) - ->setDescription('Displays configured listeners for an application') + ->setDescription('Display configured listeners for an application') ->setHelp(<<<'EOF' The %command.name% command displays all configured listeners: diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/RouterDebugCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/RouterDebugCommand.php index 16acf7a7db9c4..f8c871970e8af 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/RouterDebugCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/RouterDebugCommand.php @@ -59,7 +59,7 @@ protected function configure() new InputOption('format', null, InputOption::VALUE_REQUIRED, 'The output format (txt, xml, json, or md)', 'txt'), new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw route(s)'), ]) - ->setDescription('Displays current routes for an application') + ->setDescription('Display current routes for an application') ->setHelp(<<<'EOF' The %command.name% displays the configured routes: diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/RouterMatchCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/RouterMatchCommand.php index 1e2fefbbacb26..58f177b5e8e5b 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/RouterMatchCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/RouterMatchCommand.php @@ -51,11 +51,11 @@ protected function configure() $this ->setDefinition([ new InputArgument('path_info', InputArgument::REQUIRED, 'A path info'), - new InputOption('method', null, InputOption::VALUE_REQUIRED, 'Sets the HTTP method'), - new InputOption('scheme', null, InputOption::VALUE_REQUIRED, 'Sets the URI scheme (usually http or https)'), - new InputOption('host', null, InputOption::VALUE_REQUIRED, 'Sets the URI host'), + new InputOption('method', null, InputOption::VALUE_REQUIRED, 'Set the HTTP method'), + new InputOption('scheme', null, InputOption::VALUE_REQUIRED, 'Set the URI scheme (usually http or https)'), + new InputOption('host', null, InputOption::VALUE_REQUIRED, 'Set the URI host'), ]) - ->setDescription('Helps debug routes by simulating a path info match') + ->setDescription('Help debug routes by simulating a path info match') ->setHelp(<<<'EOF' The %command.name% shows which routes match a given request and which don't and for what reason: diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/SecretsDecryptToLocalCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/SecretsDecryptToLocalCommand.php index 1571c7f1b7c79..72757fe7f360b 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/SecretsDecryptToLocalCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/SecretsDecryptToLocalCommand.php @@ -42,8 +42,8 @@ public function __construct(AbstractVault $vault, AbstractVault $localVault = nu protected function configure() { $this - ->setDescription('Decrypts all secrets and stores them in the local vault') - ->addOption('force', 'f', InputOption::VALUE_NONE, 'Forces overriding of secrets that already exist in the local vault') + ->setDescription('Decrypt all secrets and stores them in the local vault') + ->addOption('force', 'f', InputOption::VALUE_NONE, 'Force overriding of secrets that already exist in the local vault') ->setHelp(<<<'EOF' The %command.name% command decrypts all secrets and copies them in the local vault. diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/SecretsEncryptFromLocalCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/SecretsEncryptFromLocalCommand.php index e1c8904c698b5..47b9162c0bb61 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/SecretsEncryptFromLocalCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/SecretsEncryptFromLocalCommand.php @@ -41,7 +41,7 @@ public function __construct(AbstractVault $vault, AbstractVault $localVault = nu protected function configure() { $this - ->setDescription('Encrypts all local secrets to the vault') + ->setDescription('Encrypt all local secrets to the vault') ->setHelp(<<<'EOF' The %command.name% command encrypts all locally overridden secrets to the vault. diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/SecretsGenerateKeysCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/SecretsGenerateKeysCommand.php index 18dba29ac9797..14b6eaec0afe8 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/SecretsGenerateKeysCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/SecretsGenerateKeysCommand.php @@ -44,9 +44,9 @@ public function __construct(AbstractVault $vault, AbstractVault $localVault = nu protected function configure() { $this - ->setDescription('Generates new encryption keys') - ->addOption('local', 'l', InputOption::VALUE_NONE, 'Updates the local vault.') - ->addOption('rotate', 'r', InputOption::VALUE_NONE, 'Re-encrypts existing secrets with the newly generated keys.') + ->setDescription('Generate new encryption keys') + ->addOption('local', 'l', InputOption::VALUE_NONE, 'Update the local vault.') + ->addOption('rotate', 'r', InputOption::VALUE_NONE, 'Re-encrypt existing secrets with the newly generated keys.') ->setHelp(<<<'EOF' The %command.name% command generates a new encryption key. diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/SecretsListCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/SecretsListCommand.php index 9848ab993331e..96112e9abaccb 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/SecretsListCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/SecretsListCommand.php @@ -45,7 +45,7 @@ public function __construct(AbstractVault $vault, AbstractVault $localVault = nu protected function configure() { $this - ->setDescription('Lists all secrets') + ->setDescription('List all secrets') ->addOption('reveal', 'r', InputOption::VALUE_NONE, 'Display decrypted values alongside names') ->setHelp(<<<'EOF' The %command.name% command list all stored secrets. diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/SecretsRemoveCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/SecretsRemoveCommand.php index 2f06cb4592545..3a1f843c4b68d 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/SecretsRemoveCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/SecretsRemoveCommand.php @@ -44,9 +44,9 @@ public function __construct(AbstractVault $vault, AbstractVault $localVault = nu protected function configure() { $this - ->setDescription('Removes a secret from the vault') + ->setDescription('Remove a secret from the vault') ->addArgument('name', InputArgument::REQUIRED, 'The name of the secret') - ->addOption('local', 'l', InputOption::VALUE_NONE, 'Updates the local vault.') + ->addOption('local', 'l', InputOption::VALUE_NONE, 'Update the local vault.') ->setHelp(<<<'EOF' The %command.name% command removes a secret from the vault. diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/SecretsSetCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/SecretsSetCommand.php index 95b8f6a0f622b..5d2662232a5f0 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/SecretsSetCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/SecretsSetCommand.php @@ -45,11 +45,11 @@ public function __construct(AbstractVault $vault, AbstractVault $localVault = nu protected function configure() { $this - ->setDescription('Sets a secret in the vault') + ->setDescription('Set a secret in the vault') ->addArgument('name', InputArgument::REQUIRED, 'The name of the secret') ->addArgument('file', InputArgument::OPTIONAL, 'A file where to read the secret from or "-" for reading from STDIN') - ->addOption('local', 'l', InputOption::VALUE_NONE, 'Updates the local vault.') - ->addOption('random', 'r', InputOption::VALUE_OPTIONAL, 'Generates a random value.', false) + ->addOption('local', 'l', InputOption::VALUE_NONE, 'Update the local vault.') + ->addOption('random', 'r', InputOption::VALUE_OPTIONAL, 'Generate a random value.', false) ->setHelp(<<<'EOF' The %command.name% command stores a secret in the vault. diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/TranslationDebugCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/TranslationDebugCommand.php index ec17387d9b078..a3fb878b1639e 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/TranslationDebugCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/TranslationDebugCommand.php @@ -79,11 +79,11 @@ protected function configure() new InputArgument('locale', InputArgument::REQUIRED, 'The locale'), new InputArgument('bundle', InputArgument::OPTIONAL, 'The bundle name or directory where to load the messages'), new InputOption('domain', null, InputOption::VALUE_OPTIONAL, 'The messages domain'), - new InputOption('only-missing', null, InputOption::VALUE_NONE, 'Displays only missing messages'), - new InputOption('only-unused', null, InputOption::VALUE_NONE, 'Displays only unused messages'), + new InputOption('only-missing', null, InputOption::VALUE_NONE, 'Display only missing messages'), + new InputOption('only-unused', null, InputOption::VALUE_NONE, 'Display only unused messages'), new InputOption('all', null, InputOption::VALUE_NONE, 'Load messages from all registered bundles'), ]) - ->setDescription('Displays translation messages information') + ->setDescription('Display translation messages information') ->setHelp(<<<'EOF' The %command.name% command helps finding unused or missing translation messages and comparing them with the fallback ones by inspecting the diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/TranslationUpdateCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/TranslationUpdateCommand.php index 392541e656848..e9fc30580bbc7 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/TranslationUpdateCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/TranslationUpdateCommand.php @@ -85,7 +85,7 @@ protected function configure() new InputOption('sort', null, InputOption::VALUE_OPTIONAL, 'Return list of messages sorted alphabetically', 'asc'), new InputOption('as-tree', null, InputOption::VALUE_OPTIONAL, 'Dump the messages as a tree-like structure: The given value defines the level where to switch to inline YAML'), ]) - ->setDescription('Updates the translation file') + ->setDescription('Update the translation file') ->setHelp(<<<'EOF' The %command.name% command extracts translation strings from templates of a given bundle or the default translations directory. It can display them or merge diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/WorkflowDumpCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/WorkflowDumpCommand.php index cec930da1c0da..ecdca7cb39452 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/WorkflowDumpCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/WorkflowDumpCommand.php @@ -40,7 +40,7 @@ protected function configure() ->setDefinition([ new InputArgument('name', InputArgument::REQUIRED, 'A workflow name'), new InputArgument('marking', InputArgument::IS_ARRAY, 'A marking (a list of places)'), - new InputOption('label', 'l', InputOption::VALUE_REQUIRED, 'Labels a graph'), + new InputOption('label', 'l', InputOption::VALUE_REQUIRED, 'Label a graph'), new InputOption('dump-format', null, InputOption::VALUE_REQUIRED, 'The dump format [dot|puml]', 'dot'), ]) ->setDescription('Dump a workflow') diff --git a/src/Symfony/Bundle/FrameworkBundle/Console/Application.php b/src/Symfony/Bundle/FrameworkBundle/Console/Application.php index d1a4682b50ab5..0ce23600686dc 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Console/Application.php +++ b/src/Symfony/Bundle/FrameworkBundle/Console/Application.php @@ -41,7 +41,7 @@ public function __construct(KernelInterface $kernel) $inputDefinition = $this->getDefinition(); $inputDefinition->addOption(new InputOption('--env', '-e', InputOption::VALUE_REQUIRED, 'The Environment name.', $kernel->getEnvironment())); - $inputDefinition->addOption(new InputOption('--no-debug', null, InputOption::VALUE_NONE, 'Switches off debug mode.')); + $inputDefinition->addOption(new InputOption('--no-debug', null, InputOption::VALUE_NONE, 'Switch off debug mode.')); } /** diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/notifier_transports.php b/src/Symfony/Bundle/FrameworkBundle/Resources/config/notifier_transports.php index be40329cc9ebc..50ce737e81533 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/notifier_transports.php +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/notifier_transports.php @@ -89,7 +89,7 @@ ->set('notifier.transport_factory.zulip', ZulipTransportFactory::class) ->parent('notifier.transport_factory.abstract') - ->tag('texter.transport_factory') + ->tag('chatter.transport_factory') ->set('notifier.transport_factory.infobip', InfobipTransportFactory::class) ->parent('notifier.transport_factory.abstract') diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd b/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd index 61410d874cd05..7be0646353499 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd @@ -171,7 +171,7 @@ - + @@ -182,7 +182,7 @@ - + diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Console/ApplicationTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/Console/ApplicationTest.php index 9feafee82fbcb..0dae2d3180653 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/Console/ApplicationTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Console/ApplicationTest.php @@ -205,7 +205,7 @@ public function testRunOnlyWarnsOnUnregistrableCommandAtTheEnd() $tester->run(['command' => 'list']); $this->assertSame(0, $tester->getStatusCode()); - $display = explode('Lists commands', $tester->getDisplay()); + $display = explode('List commands', $tester->getDisplay()); $this->assertStringContainsString(trim('[WARNING] Some commands could not be registered:'), trim($display[1])); } diff --git a/src/Symfony/Bundle/FrameworkBundle/composer.json b/src/Symfony/Bundle/FrameworkBundle/composer.json index 09c00ea6a16d6..41306489dadfa 100644 --- a/src/Symfony/Bundle/FrameworkBundle/composer.json +++ b/src/Symfony/Bundle/FrameworkBundle/composer.json @@ -76,7 +76,7 @@ "phpunit/phpunit": "<5.4.3", "symfony/asset": "<5.1", "symfony/browser-kit": "<4.4", - "symfony/console": "<5.2", + "symfony/console": "<5.2.5", "symfony/dotenv": "<5.1", "symfony/dom-crawler": "<4.4", "symfony/http-client": "<4.4", diff --git a/src/Symfony/Bundle/SecurityBundle/Command/UserPasswordEncoderCommand.php b/src/Symfony/Bundle/SecurityBundle/Command/UserPasswordEncoderCommand.php index de23fdd618a11..02190215f3aa7 100644 --- a/src/Symfony/Bundle/SecurityBundle/Command/UserPasswordEncoderCommand.php +++ b/src/Symfony/Bundle/SecurityBundle/Command/UserPasswordEncoderCommand.php @@ -52,7 +52,7 @@ public function __construct(EncoderFactoryInterface $encoderFactory, array $user protected function configure() { $this - ->setDescription('Encodes a password') + ->setDescription('Encode a password') ->addArgument('password', InputArgument::OPTIONAL, 'The plain password to encode.') ->addArgument('user-class', InputArgument::OPTIONAL, 'The User entity class path associated with the encoder used to encode the password.') ->addOption('empty-salt', null, InputOption::VALUE_NONE, 'Do not generate a salt or let the encoder generate one.') diff --git a/src/Symfony/Component/Console/Command/HelpCommand.php b/src/Symfony/Component/Console/Command/HelpCommand.php index e704b9b2a0097..9bcd7764d7b55 100644 --- a/src/Symfony/Component/Console/Command/HelpCommand.php +++ b/src/Symfony/Component/Console/Command/HelpCommand.php @@ -40,7 +40,7 @@ protected function configure() new InputOption('format', null, InputOption::VALUE_REQUIRED, 'The output format (txt, xml, json, or md)', 'txt'), new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw command help'), ]) - ->setDescription('Displays help for a command') + ->setDescription('Display help for a command') ->setHelp(<<<'EOF' The %command.name% command displays help for a given command: diff --git a/src/Symfony/Component/Console/Command/ListCommand.php b/src/Symfony/Component/Console/Command/ListCommand.php index 284ddb5fea53a..36a5344b311b6 100644 --- a/src/Symfony/Component/Console/Command/ListCommand.php +++ b/src/Symfony/Component/Console/Command/ListCommand.php @@ -36,7 +36,7 @@ protected function configure() new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw command list'), new InputOption('format', null, InputOption::VALUE_REQUIRED, 'The output format (txt, xml, json, or md)', 'txt'), ]) - ->setDescription('Lists commands') + ->setDescription('List commands') ->setHelp(<<<'EOF' The %command.name% command lists all commands: diff --git a/src/Symfony/Component/Console/Tests/Command/ListCommandTest.php b/src/Symfony/Component/Console/Tests/Command/ListCommandTest.php index a5d6653ad8186..869952f537cfc 100644 --- a/src/Symfony/Component/Console/Tests/Command/ListCommandTest.php +++ b/src/Symfony/Component/Console/Tests/Command/ListCommandTest.php @@ -23,7 +23,7 @@ public function testExecuteListsCommands() $commandTester = new CommandTester($command = $application->get('list')); $commandTester->execute(['command' => $command->getName()], ['decorated' => false]); - $this->assertMatchesRegularExpression('/help\s{2,}Displays help for a command/', $commandTester->getDisplay(), '->execute() returns a list of available commands'); + $this->assertMatchesRegularExpression('/help\s{2,}Display help for a command/', $commandTester->getDisplay(), '->execute() returns a list of available commands'); } public function testExecuteListsCommandsWithXmlOption() @@ -40,8 +40,8 @@ public function testExecuteListsCommandsWithRawOption() $commandTester = new CommandTester($command = $application->get('list')); $commandTester->execute(['command' => $command->getName(), '--raw' => true]); $output = <<<'EOF' -help Displays help for a command -list Lists commands +help Display help for a command +list List commands EOF; @@ -86,8 +86,8 @@ public function testExecuteListsCommandsOrder() -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug Available commands: - help Displays help for a command - list Lists commands + help Display help for a command + list List commands 0foo 0foo:bar 0foo:bar command EOF; @@ -103,8 +103,8 @@ public function testExecuteListsCommandsOrderRaw() $commandTester = new CommandTester($command = $application->get('list')); $commandTester->execute(['command' => $command->getName(), '--raw' => true]); $output = <<<'EOF' -help Displays help for a command -list Lists commands +help Display help for a command +list List commands 0foo:bar 0foo:bar command EOF; diff --git a/src/Symfony/Component/Console/Tests/Fixtures/application_1.json b/src/Symfony/Component/Console/Tests/Fixtures/application_1.json index bb1eab28ed4c1..e1985fb0fd840 100644 --- a/src/Symfony/Component/Console/Tests/Fixtures/application_1.json +++ b/src/Symfony/Component/Console/Tests/Fixtures/application_1.json @@ -6,7 +6,7 @@ "usage": [ "help [--format FORMAT] [--raw] [--] []" ], - "description": "Displays help for a command", + "description": "Display help for a command", "help": "The help<\/info> command displays help for a given command:\n\n app\/console help list<\/info>\n\nYou can also output the help in other formats by using the --format<\/comment> option:\n\n app\/console help --format=xml list<\/info>\n\nTo display the list of available commands, please use the list<\/info> command.", "definition": { "arguments": { @@ -109,7 +109,7 @@ "usage": [ "list [--raw] [--format FORMAT] [--] []" ], - "description": "Lists commands", + "description": "List commands", "help": "The list<\/info> command lists all commands:\n\n app\/console list<\/info>\n\nYou can also display the commands for a specific namespace:\n\n app\/console list test<\/info>\n\nYou can also output the information in other formats by using the --format<\/comment> option:\n\n app\/console list --format=xml<\/info>\n\nIt's also possible to get raw list of commands (useful for embedding command runner):\n\n app\/console list --raw<\/info>", "definition": { "arguments": { diff --git a/src/Symfony/Component/Console/Tests/Fixtures/application_1.md b/src/Symfony/Component/Console/Tests/Fixtures/application_1.md index 38c84e4e232b9..afee6ea8d96f4 100644 --- a/src/Symfony/Component/Console/Tests/Fixtures/application_1.md +++ b/src/Symfony/Component/Console/Tests/Fixtures/application_1.md @@ -7,7 +7,7 @@ Console Tool `help` ------ -Displays help for a command +Display help for a command ### Usage @@ -119,7 +119,7 @@ Do not ask any interactive question `list` ------ -Lists commands +List commands ### Usage diff --git a/src/Symfony/Component/Console/Tests/Fixtures/application_1.txt b/src/Symfony/Component/Console/Tests/Fixtures/application_1.txt index cc55447241368..b09764840b485 100644 --- a/src/Symfony/Component/Console/Tests/Fixtures/application_1.txt +++ b/src/Symfony/Component/Console/Tests/Fixtures/application_1.txt @@ -13,5 +13,5 @@ Console Tool -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug Available commands: - help Displays help for a command - list Lists commands + help Display help for a command + list List commands diff --git a/src/Symfony/Component/Console/Tests/Fixtures/application_1.xml b/src/Symfony/Component/Console/Tests/Fixtures/application_1.xml index 5b6a906c5a2a2..0dc09563fb9ed 100644 --- a/src/Symfony/Component/Console/Tests/Fixtures/application_1.xml +++ b/src/Symfony/Component/Console/Tests/Fixtures/application_1.xml @@ -5,7 +5,7 @@ help [--format FORMAT] [--raw] [--] [<command_name>] - Displays help for a command + Display help for a command The <info>help</info> command displays help for a given command: <info>app/console help list</info> @@ -60,7 +60,7 @@ list [--raw] [--format FORMAT] [--] [<namespace>] - Lists commands + List commands The <info>list</info> command lists all commands: <info>app/console list</info> diff --git a/src/Symfony/Component/Console/Tests/Fixtures/application_2.json b/src/Symfony/Component/Console/Tests/Fixtures/application_2.json index ef8c99746bd62..2c42070ec9cdf 100644 --- a/src/Symfony/Component/Console/Tests/Fixtures/application_2.json +++ b/src/Symfony/Component/Console/Tests/Fixtures/application_2.json @@ -10,7 +10,7 @@ "usage": [ "help [--format FORMAT] [--raw] [--] []" ], - "description": "Displays help for a command", + "description": "Display help for a command", "help": "The help<\/info> command displays help for a given command:\n\n app\/console help list<\/info>\n\nYou can also output the help in other formats by using the --format<\/comment> option:\n\n app\/console help --format=xml list<\/info>\n\nTo display the list of available commands, please use the list<\/info> command.", "definition": { "arguments": { @@ -113,7 +113,7 @@ "usage": [ "list [--raw] [--format FORMAT] [--] []" ], - "description": "Lists commands", + "description": "List commands", "help": "The list<\/info> command lists all commands:\n\n app\/console list<\/info>\n\nYou can also display the commands for a specific namespace:\n\n app\/console list test<\/info>\n\nYou can also output the information in other formats by using the --format<\/comment> option:\n\n app\/console list --format=xml<\/info>\n\nIt's also possible to get raw list of commands (useful for embedding command runner):\n\n app\/console list --raw<\/info>", "definition": { "arguments": { diff --git a/src/Symfony/Component/Console/Tests/Fixtures/application_2.md b/src/Symfony/Component/Console/Tests/Fixtures/application_2.md index 5f957da376474..5785f272da985 100644 --- a/src/Symfony/Component/Console/Tests/Fixtures/application_2.md +++ b/src/Symfony/Component/Console/Tests/Fixtures/application_2.md @@ -20,7 +20,7 @@ My Symfony application v1.0 `help` ------ -Displays help for a command +Display help for a command ### Usage @@ -132,7 +132,7 @@ Do not ask any interactive question `list` ------ -Lists commands +List commands ### Usage diff --git a/src/Symfony/Component/Console/Tests/Fixtures/application_2.txt b/src/Symfony/Component/Console/Tests/Fixtures/application_2.txt index 0aab070b08797..e314eeb070f0a 100644 --- a/src/Symfony/Component/Console/Tests/Fixtures/application_2.txt +++ b/src/Symfony/Component/Console/Tests/Fixtures/application_2.txt @@ -13,8 +13,8 @@ My Symfony application v1.0 -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug Available commands: - help Displays help for a command - list Lists commands + help Display help for a command + list List commands descriptor descriptor:command1 [alias1|alias2] command 1 description descriptor:command2 command 2 description diff --git a/src/Symfony/Component/Console/Tests/Fixtures/application_2.xml b/src/Symfony/Component/Console/Tests/Fixtures/application_2.xml index 4ec76624a7592..926c49b289365 100644 --- a/src/Symfony/Component/Console/Tests/Fixtures/application_2.xml +++ b/src/Symfony/Component/Console/Tests/Fixtures/application_2.xml @@ -5,7 +5,7 @@ help [--format FORMAT] [--raw] [--] [<command_name>] - Displays help for a command + Display help for a command The <info>help</info> command displays help for a given command: <info>app/console help list</info> @@ -60,7 +60,7 @@ list [--raw] [--format FORMAT] [--] [<namespace>] - Lists commands + List commands The <info>list</info> command lists all commands: <info>app/console list</info> diff --git a/src/Symfony/Component/Console/Tests/Fixtures/application_mbstring.md b/src/Symfony/Component/Console/Tests/Fixtures/application_mbstring.md index 5d9b0881d31f4..74ac56ed206aa 100644 --- a/src/Symfony/Component/Console/Tests/Fixtures/application_mbstring.md +++ b/src/Symfony/Component/Console/Tests/Fixtures/application_mbstring.md @@ -11,7 +11,7 @@ MbString åpplicätion `help` ------ -Displays help for a command +Display help for a command ### Usage @@ -123,7 +123,7 @@ Do not ask any interactive question `list` ------ -Lists commands +List commands ### Usage diff --git a/src/Symfony/Component/Console/Tests/Fixtures/application_mbstring.txt b/src/Symfony/Component/Console/Tests/Fixtures/application_mbstring.txt index b3948eabd0232..b1e9d8f475430 100644 --- a/src/Symfony/Component/Console/Tests/Fixtures/application_mbstring.txt +++ b/src/Symfony/Component/Console/Tests/Fixtures/application_mbstring.txt @@ -13,7 +13,7 @@ MbString åpplicätion -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug Available commands: - help Displays help for a command - list Lists commands + help Display help for a command + list List commands descriptor descriptor:åèä command åèä description diff --git a/src/Symfony/Component/Console/Tests/Fixtures/application_run1.txt b/src/Symfony/Component/Console/Tests/Fixtures/application_run1.txt index 8cbcf7a7a0dcd..1255d4f142e96 100644 --- a/src/Symfony/Component/Console/Tests/Fixtures/application_run1.txt +++ b/src/Symfony/Component/Console/Tests/Fixtures/application_run1.txt @@ -13,5 +13,5 @@ Options: -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug Available commands: - help Displays help for a command - list Lists commands + help Display help for a command + list List commands diff --git a/src/Symfony/Component/Console/Tests/Fixtures/application_run2.txt b/src/Symfony/Component/Console/Tests/Fixtures/application_run2.txt index b1b2e665ce398..8f1cbbf7ad1f9 100644 --- a/src/Symfony/Component/Console/Tests/Fixtures/application_run2.txt +++ b/src/Symfony/Component/Console/Tests/Fixtures/application_run2.txt @@ -1,5 +1,5 @@ Description: - Lists commands + List commands Usage: list [options] [--] [] diff --git a/src/Symfony/Component/Console/Tests/Fixtures/application_run3.txt b/src/Symfony/Component/Console/Tests/Fixtures/application_run3.txt index b1b2e665ce398..8f1cbbf7ad1f9 100644 --- a/src/Symfony/Component/Console/Tests/Fixtures/application_run3.txt +++ b/src/Symfony/Component/Console/Tests/Fixtures/application_run3.txt @@ -1,5 +1,5 @@ Description: - Lists commands + List commands Usage: list [options] [--] [] diff --git a/src/Symfony/Component/Console/Tests/Fixtures/application_run5.txt b/src/Symfony/Component/Console/Tests/Fixtures/application_run5.txt index 1cf8d1f8b63b7..d4bc28e1db421 100644 --- a/src/Symfony/Component/Console/Tests/Fixtures/application_run5.txt +++ b/src/Symfony/Component/Console/Tests/Fixtures/application_run5.txt @@ -1,5 +1,5 @@ Description: - Displays help for a command + Display help for a command Usage: help [options] [--] [] diff --git a/src/Symfony/Component/DependencyInjection/Compiler/AutowirePass.php b/src/Symfony/Component/DependencyInjection/Compiler/AutowirePass.php index d201b58b987aa..cb6e8bc4ed1b3 100644 --- a/src/Symfony/Component/DependencyInjection/Compiler/AutowirePass.php +++ b/src/Symfony/Component/DependencyInjection/Compiler/AutowirePass.php @@ -146,7 +146,7 @@ private function autowireCalls(\ReflectionClass $reflectionClass, bool $isRoot): $this->decoratedClass = null; $this->getPreviousValue = null; - if ($isRoot && ($definition = $this->container->getDefinition($this->currentId)) && $this->container->has($this->decoratedId = $definition->innerServiceId)) { + if ($isRoot && ($definition = $this->container->getDefinition($this->currentId)) && null !== ($this->decoratedId = $definition->innerServiceId) && $this->container->has($this->decoratedId)) { $this->decoratedClass = $this->container->findDefinition($this->decoratedId)->getClass(); } diff --git a/src/Symfony/Component/Form/Command/DebugCommand.php b/src/Symfony/Component/Form/Command/DebugCommand.php index 4150feaf8ce85..3ee7609725105 100644 --- a/src/Symfony/Component/Form/Command/DebugCommand.php +++ b/src/Symfony/Component/Form/Command/DebugCommand.php @@ -64,7 +64,7 @@ protected function configure() new InputOption('show-deprecated', null, InputOption::VALUE_NONE, 'Display deprecated options in form types'), new InputOption('format', null, InputOption::VALUE_REQUIRED, 'The output format (txt or json)', 'txt'), ]) - ->setDescription('Displays form type information') + ->setDescription('Display form type information') ->setHelp(<<<'EOF' The %command.name% command displays information about form types. diff --git a/src/Symfony/Component/Form/Resources/translations/validators.uz.xlf b/src/Symfony/Component/Form/Resources/translations/validators.uz.xlf new file mode 100644 index 0000000000000..58591d69e9539 --- /dev/null +++ b/src/Symfony/Component/Form/Resources/translations/validators.uz.xlf @@ -0,0 +1,139 @@ + + + + + + This form should not contain extra fields. + Ushbu fo'rmada qo'shimcha maydonlar bo'lmasligi kerak. + + + The uploaded file was too large. Please try to upload a smaller file. + Yuklab olingan fayl juda katta. Iltimos, kichikroq faylni yuklashga harakat qiling. + + + The CSRF token is invalid. Please try to resubmit the form. + CSRF qiymati yaroqsiz. Fo'rmani qayta yuborishga harakat qiling. + + + This value is not a valid HTML5 color. + Qiymat noto'g'ri, HTML5 rangi emas. + + + Please enter a valid birthdate. + Iltimos, tug'ilgan kuningizni to'g'ri kiriting. + + + The selected choice is invalid. + Tanlangan parametr noto'g'ri. + + + The collection is invalid. + Kolleksiya noto'g'ri + + + Please select a valid color. + Iltimos, to'g'ri rang tanlang. + + + Please select a valid country. + Iltimos, to'g'ri mamlakatni tanlang. + + + Please select a valid currency. + Iltimos, to'g'ri valyutani tanlang. + + + Please choose a valid date interval. + Iltimos, to'g'ri sana oralig'ini tanlang. + + + Please enter a valid date and time. + Iltimos, to'g'ri sana va vaqtni kiriting. + + + Please enter a valid date. + Iltimos, to'g'ri sanani kiriting. + + + Please select a valid file. + Iltimos, to'g'ri faylni tanlang. + + + The hidden field is invalid. + Yashirin maydon qiymati yaroqsiz. + + + Please enter an integer. + Iltimos, butun son kiriting. + + + Please select a valid language. + Iltimos, to'g'ri tilni tanlang. + + + Please select a valid locale. + Iltimos, to'g'ri localni tanlang. + + + Please enter a valid money amount. + Iltimos, tegishli miqdordagi pulni kiriting. + + + Please enter a number. + Iltimos, raqam kiriting. + + + The password is invalid. + Parol noto'g'ri. + + + Please enter a percentage value. + Iltimos, foyizli qiymat kiriting. + + + The values do not match. + Qiymatlar mos kelmaydi. + + + Please enter a valid time. + Iltimos, to'g'ri vaqtni tanlang. + + + Please select a valid timezone. + Iltimos, to'g'ri vaqt zonasini tanlang. + + + Please enter a valid URL. + Iltimos, to'g'ri URL kiriting. + + + Please enter a valid search term. + Iltimos, to'g'ri qidiruv so'zini kiriting. + + + Please provide a valid phone number. + Iltimos, to'g'ri telefon raqamini kiriting. + + + The checkbox has an invalid value. + Belgilash katagida yaroqsiz qiymat mavjud. + + + Please enter a valid email address. + Iltimos, to'g'ri email kiriting. + + + Please select a valid option. + Iltimos, yaroqli variantni tanlang. + + + Please select a valid range. + Iltimos, yaroqli oraliqni tanlang. + + + Please enter a valid week. + Iltimos, haqiqiy haftani kiriting. + + + + diff --git a/src/Symfony/Component/HttpKernel/Kernel.php b/src/Symfony/Component/HttpKernel/Kernel.php index 7c8b33d77c6bc..24573ec5aba7a 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -74,11 +74,11 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl private static $freshCache = []; - public const VERSION = '5.2.4'; - public const VERSION_ID = 50204; + public const VERSION = '5.2.5'; + public const VERSION_ID = 50205; public const MAJOR_VERSION = 5; public const MINOR_VERSION = 2; - public const RELEASE_VERSION = 4; + public const RELEASE_VERSION = 5; public const EXTRA_VERSION = ''; public const END_OF_MAINTENANCE = '07/2021'; diff --git a/src/Symfony/Component/Mailer/composer.json b/src/Symfony/Component/Mailer/composer.json index 0794346413c15..673b00167df79 100644 --- a/src/Symfony/Component/Mailer/composer.json +++ b/src/Symfony/Component/Mailer/composer.json @@ -17,7 +17,7 @@ ], "require": { "php": ">=7.2.5", - "egulias/email-validator": "^2.1.10", + "egulias/email-validator": "^2.1.10|^3", "psr/log": "~1.0", "symfony/event-dispatcher": "^4.4|^5.0", "symfony/mime": "^5.2", diff --git a/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/PostgreSqlConnectionTest.php b/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/PostgreSqlConnectionTest.php index 7b17e41af8d68..9fc3f6b527659 100644 --- a/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/PostgreSqlConnectionTest.php +++ b/src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/PostgreSqlConnectionTest.php @@ -51,16 +51,10 @@ public function testGetExtraSetupSql() $table->addOption('_symfony_messenger_table_name', 'queue_table'); $sql = implode("\n", $connection->getExtraSetupSqlForTable($table)); - /* - * We need to start a transaction for the following commands to work properly: - * doctrine:schema:create - * messenger:setup-transports - * doctrine:migrations:diff and doctrine:migrations:migrate - */ - $this->assertStringContainsString('BEGIN;', $sql); $this->assertStringContainsString('CREATE TRIGGER', $sql); - // We MUST NOT commit, that will mess with the PDO in PHP 8 + // We MUST NOT use transaction, that will mess with the PDO in PHP 8 + $this->assertStringNotContainsString('BEGIN;', $sql); $this->assertStringNotContainsString('COMMIT;', $sql); } diff --git a/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/PostgreSqlConnection.php b/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/PostgreSqlConnection.php index eede0d9262502..5be0ae9773c2b 100644 --- a/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/PostgreSqlConnection.php +++ b/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/PostgreSqlConnection.php @@ -109,8 +109,6 @@ public function getExtraSetupSqlForTable(Table $createdTable): array private function getTriggerSql(): array { return [ - 'BEGIN;', - sprintf('LOCK TABLE %s;', $this->configuration['table_name']), // create trigger function sprintf(<<<'SQL' CREATE OR REPLACE FUNCTION notify_%1$s() RETURNS TRIGGER AS $$ diff --git a/src/Symfony/Component/Messenger/Command/ConsumeMessagesCommand.php b/src/Symfony/Component/Messenger/Command/ConsumeMessagesCommand.php index 03320b6f66e15..8357978be1f5d 100644 --- a/src/Symfony/Component/Messenger/Command/ConsumeMessagesCommand.php +++ b/src/Symfony/Component/Messenger/Command/ConsumeMessagesCommand.php @@ -71,7 +71,7 @@ protected function configure(): void new InputOption('sleep', null, InputOption::VALUE_REQUIRED, 'Seconds to sleep before asking for new messages after no messages were found', 1), new InputOption('bus', 'b', InputOption::VALUE_REQUIRED, 'Name of the bus to which received messages should be dispatched (if not passed, bus is determined automatically)'), ]) - ->setDescription('Consumes messages') + ->setDescription('Consume messages') ->setHelp(<<<'EOF' The %command.name% command consumes messages and dispatches them to the message bus. diff --git a/src/Symfony/Component/Messenger/Command/DebugCommand.php b/src/Symfony/Component/Messenger/Command/DebugCommand.php index 31b19d0bff948..d24f7299df4f5 100644 --- a/src/Symfony/Component/Messenger/Command/DebugCommand.php +++ b/src/Symfony/Component/Messenger/Command/DebugCommand.php @@ -43,7 +43,7 @@ protected function configure() { $this ->addArgument('bus', InputArgument::OPTIONAL, sprintf('The bus id (one of "%s")', implode('", "', array_keys($this->mapping)))) - ->setDescription('Lists messages you can dispatch using the message buses') + ->setDescription('List messages you can dispatch using the message buses') ->setHelp(<<<'EOF' The %command.name% command displays all messages that can be dispatched using the message buses: diff --git a/src/Symfony/Component/Messenger/Command/FailedMessagesRetryCommand.php b/src/Symfony/Component/Messenger/Command/FailedMessagesRetryCommand.php index 87426edd9dbaa..448f04443aebf 100644 --- a/src/Symfony/Component/Messenger/Command/FailedMessagesRetryCommand.php +++ b/src/Symfony/Component/Messenger/Command/FailedMessagesRetryCommand.php @@ -59,7 +59,7 @@ protected function configure(): void new InputArgument('id', InputArgument::IS_ARRAY, 'Specific message id(s) to retry'), new InputOption('force', null, InputOption::VALUE_NONE, 'Force action without confirmation'), ]) - ->setDescription('Retries one or more messages from the failure transport') + ->setDescription('Retry one or more messages from the failure transport') ->setHelp(<<<'EOF' The %command.name% retries message in the failure transport. diff --git a/src/Symfony/Component/Messenger/Command/FailedMessagesShowCommand.php b/src/Symfony/Component/Messenger/Command/FailedMessagesShowCommand.php index bf8a72f906367..b626f59f17e00 100644 --- a/src/Symfony/Component/Messenger/Command/FailedMessagesShowCommand.php +++ b/src/Symfony/Component/Messenger/Command/FailedMessagesShowCommand.php @@ -39,7 +39,7 @@ protected function configure(): void new InputArgument('id', InputArgument::OPTIONAL, 'Specific message id to show'), new InputOption('max', null, InputOption::VALUE_REQUIRED, 'Maximum number of messages to list', 50), ]) - ->setDescription('Shows one or more messages from the failure transport') + ->setDescription('Show one or more messages from the failure transport') ->setHelp(<<<'EOF' The %command.name% shows message that are pending in the failure transport. diff --git a/src/Symfony/Component/Messenger/Command/SetupTransportsCommand.php b/src/Symfony/Component/Messenger/Command/SetupTransportsCommand.php index 84395892fdf9b..4157a911f4902 100644 --- a/src/Symfony/Component/Messenger/Command/SetupTransportsCommand.php +++ b/src/Symfony/Component/Messenger/Command/SetupTransportsCommand.php @@ -41,7 +41,7 @@ protected function configure() { $this ->addArgument('transport', InputArgument::OPTIONAL, 'Name of the transport to setup', null) - ->setDescription('Prepares the required infrastructure for the transport') + ->setDescription('Prepare the required infrastructure for the transport') ->setHelp(<<%command.name% command setups the transports: diff --git a/src/Symfony/Component/Messenger/Command/StopWorkersCommand.php b/src/Symfony/Component/Messenger/Command/StopWorkersCommand.php index 7df9b9d2014f0..646ea5e87e151 100644 --- a/src/Symfony/Component/Messenger/Command/StopWorkersCommand.php +++ b/src/Symfony/Component/Messenger/Command/StopWorkersCommand.php @@ -42,7 +42,7 @@ protected function configure(): void { $this ->setDefinition([]) - ->setDescription('Stops workers after their current message') + ->setDescription('Stop workers after their current message') ->setHelp(<<<'EOF' The %command.name% command sends a signal to stop any messenger:consume processes that are running. diff --git a/src/Symfony/Component/Mime/Address.php b/src/Symfony/Component/Mime/Address.php index ea17f716a590a..3ef967dd73231 100644 --- a/src/Symfony/Component/Mime/Address.php +++ b/src/Symfony/Component/Mime/Address.php @@ -12,6 +12,7 @@ namespace Symfony\Component\Mime; use Egulias\EmailValidator\EmailValidator; +use Egulias\EmailValidator\Validation\MessageIDValidation; use Egulias\EmailValidator\Validation\RFCValidation; use Symfony\Component\Mime\Encoder\IdnAddressEncoder; use Symfony\Component\Mime\Exception\InvalidArgumentException; @@ -51,7 +52,7 @@ public function __construct(string $address, string $name = '') $this->address = trim($address); $this->name = trim(str_replace(["\n", "\r"], '', $name)); - if (!self::$validator->isValid($this->address, new RFCValidation())) { + if (!self::$validator->isValid($this->address, class_exists(MessageIDValidation::class) ? new MessageIDValidation() : new RFCValidation())) { throw new RfcComplianceException(sprintf('Email "%s" does not comply with addr-spec of RFC 2822.', $address)); } } diff --git a/src/Symfony/Component/Mime/composer.json b/src/Symfony/Component/Mime/composer.json index a00c0678b3766..22ba0ee046ec6 100644 --- a/src/Symfony/Component/Mime/composer.json +++ b/src/Symfony/Component/Mime/composer.json @@ -23,7 +23,7 @@ "symfony/polyfill-php80": "^1.15" }, "require-dev": { - "egulias/email-validator": "^2.1.10", + "egulias/email-validator": "^2.1.10|^3.1", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", "symfony/dependency-injection": "^4.4|^5.0", "symfony/property-access": "^4.4|^5.1", @@ -31,6 +31,7 @@ "symfony/serializer": "^5.2" }, "conflict": { + "egulias/email-validator": "~3.0.0", "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", "symfony/mailer": "<4.4" diff --git a/src/Symfony/Component/Security/Core/Resources/translations/security.uz.xlf b/src/Symfony/Component/Security/Core/Resources/translations/security.uz.xlf new file mode 100644 index 0000000000000..4f031976c1aad --- /dev/null +++ b/src/Symfony/Component/Security/Core/Resources/translations/security.uz.xlf @@ -0,0 +1,75 @@ + + + + + + An authentication exception occurred. + Autentifikatsiyada xatolik. + + + Authentication credentials could not be found. + Autentifikatsiya ma'lumotlari topilmadi. + + + Authentication request could not be processed due to a system problem. + Tizimdagi muammo tufayli autentifikatsiya so'rovi bajarilmadi. + + + Invalid credentials. + Noto'g'ri ma'lumot. + + + Cookie has already been used by someone else. + Cookie faylini allaqachon kimdir ishlatgan. + + + Not privileged to request the resource. + Sizda ushbu manbani talab qilishga ruxsat yo'q.. + + + Invalid CSRF token. + Noto'g'ri CSRF belgisi. + + + No authentication provider found to support the authentication token. + Haqiqiylikni tasdiqlovchi belgini qo'llab-quvvatlovchi biron bir autentifikatsiya provayderi topilmadi. + + + No session available, it either timed out or cookies are not enabled. + Sessiya topilmadi, muddati tugamadi yoki cookie-fayllar yoqilmagan. + + + No token could be found. + To'ken topilmadi. + + + Username could not be found. + Foydalanuvchi nomi topilmadi. + + + Account has expired. + Akkunt muddati tugagan. + + + Credentials have expired. + Autentifikatsiya ma'lumotlari muddati tugagan. + + + Account is disabled. + Akkunt o'chirilgan. + + + Account is locked. + Akkunt bloklangan. + + + Too many failed login attempts, please try again later. + Kirish urinishlari muvaffaqiyatsiz tugadi, keyinroq qayta urinib ko'ring. + + + Invalid or expired login link. + Kirish havolasi yaroqsiz yoki muddati tugagan. + + + + diff --git a/src/Symfony/Component/Security/Core/composer.json b/src/Symfony/Component/Security/Core/composer.json index 3d74c1c73dcea..177896a4e84eb 100644 --- a/src/Symfony/Component/Security/Core/composer.json +++ b/src/Symfony/Component/Security/Core/composer.json @@ -23,7 +23,7 @@ "symfony/deprecation-contracts": "^2.1" }, "require-dev": { - "psr/container": "^1.0", + "psr/container": "^1.0|^2.0", "symfony/event-dispatcher": "^4.4|^5.0", "symfony/expression-language": "^4.4|^5.0", "symfony/http-foundation": "^4.4|^5.0", diff --git a/src/Symfony/Component/Security/Http/Tests/EventListener/PasswordMigratingListenerTest.php b/src/Symfony/Component/Security/Http/Tests/EventListener/PasswordMigratingListenerTest.php index 39a62e0f69d68..dea08f0186023 100644 --- a/src/Symfony/Component/Security/Http/Tests/EventListener/PasswordMigratingListenerTest.php +++ b/src/Symfony/Component/Security/Http/Tests/EventListener/PasswordMigratingListenerTest.php @@ -110,7 +110,7 @@ public function testUpgradeWithoutUpgrader() private function createPasswordUpgrader() { - return $this->createMock(PasswordUpgraderInterface::class); + return $this->createMock(MigratingUserProvider::class); } private function createEvent(PassportInterface $passport) @@ -121,4 +121,7 @@ private function createEvent(PassportInterface $passport) abstract class MigratingUserProvider implements UserProviderInterface, PasswordUpgraderInterface { + public function upgradePassword(UserInterface $user, string $newEncodedPassword): void + { + } } diff --git a/src/Symfony/Component/Translation/Command/XliffLintCommand.php b/src/Symfony/Component/Translation/Command/XliffLintCommand.php index c487e82e1ed49..122f859b2f616 100644 --- a/src/Symfony/Component/Translation/Command/XliffLintCommand.php +++ b/src/Symfony/Component/Translation/Command/XliffLintCommand.php @@ -53,7 +53,7 @@ public function __construct(string $name = null, callable $directoryIteratorProv protected function configure() { $this - ->setDescription('Lints an XLIFF file and outputs encountered errors') + ->setDescription('Lint an XLIFF file and outputs encountered errors') ->addArgument('filename', InputArgument::IS_ARRAY, 'A file, a directory or "-" for reading from STDIN') ->addOption('format', null, InputOption::VALUE_REQUIRED, 'The output format', 'txt') ->setHelp(<<addArgument('class', InputArgument::REQUIRED, 'A fully qualified class name or a path') ->addOption('show-all', null, InputOption::VALUE_NONE, 'Show all classes even if they have no validation constraints') - ->setDescription('Displays validation constraints for classes') + ->setDescription('Display validation constraints for classes') ->setHelp(<<<'EOF' The %command.name% 'App\Entity\Dummy' command dumps the validators for the dummy class. diff --git a/src/Symfony/Component/Validator/ConstraintViolation.php b/src/Symfony/Component/Validator/ConstraintViolation.php index 982ebe275950a..2004745fe238d 100644 --- a/src/Symfony/Component/Validator/ConstraintViolation.php +++ b/src/Symfony/Component/Validator/ConstraintViolation.php @@ -140,7 +140,7 @@ public function getRoot() */ public function getPropertyPath() { - return $this->propertyPath; + return (string) $this->propertyPath; } /** diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.uz.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.uz.xlf new file mode 100644 index 0000000000000..31e5d5444d0c9 --- /dev/null +++ b/src/Symfony/Component/Validator/Resources/translations/validators.uz.xlf @@ -0,0 +1,391 @@ + + + + + + This value should be false. + Qiymat noto'g'ri bo'lishi kerak. + + + This value should be true. + Qiymat to'g'ri bo'lishi kerak. + + + This value should be of type {{ type }}. + Qiymat turi {{ type }} bo'lishi kerak. + + + This value should be blank. + Qiymat bo'sh bo'lishi kerak. + + + The value you selected is not a valid choice. + Tanlangan qiymat to'g'ri emas. + + + You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices. + Siz hech bo'lmaganda {{ limit }} ta qiymat tanlashingiz kerak.|Siz kamida {{ limit }} ta qiymat tanlashingiz kerak. + + + You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices. + Siz {{ limit }} ta qiymatni tanlashingiz kerak.|Siz {{ limit }} dan ortiq qiymat tanlashingiz kerak. + + + One or more of the given values is invalid. + Belgilangan qiymatlarning bir yoki bir nechtasi noto'g'ri. + + + This field was not expected. + Ushbu maydon kutilmagan edi. + + + This field is missing. + Bu maydon majvud emas. + + + This value is not a valid date. + Ushbu sana noto'g'ri. + + + This value is not a valid datetime. + Sana va vaqt qiymati noto'g'ri. + + + This value is not a valid email address. + Elektron pochta manzili noto'g'ri. + + + The file could not be found. + Fayl topilmadi. + + + The file is not readable. + Faylni o'qib bo'lmadi. + + + The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}. + Fayl hajmi katta ({{ size }} {{ suffix }}). Maksimal ruxsat etilgan hajim {{ limit }} {{ suffix }}. + + + The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}. + Faylning MIME turi noto'g'ri ({{ type }}). Ruxsat etilgan MIME turlar {{ types }}. + + + This value should be {{ limit }} or less. + Qiymat {{ limit }} ga teng yoki kam bo'lishi kerak. + + + This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less. + Qiymat juda uzun. {{ limit }} ga teng yoki kam bo'lishi kerak.|Qiymat juda uzun. {{ limit }} yoki undan kam belgidan iborat bo'lishi kerak. + + + This value should be {{ limit }} or more. + Qiymat {{ limit }} yoki undan ortiq bo'lishi kerak. + + + This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more. + Qiymat juda qisqa. {{ limit }} ta yoki undan ortiq belgidan iborat bo'lishi kerak.|Qiymat juda qisqa. {{ limit }} yoki undan ko'p belgidan iborat bo'lishi kerak + + + This value should not be blank. + Qiymatni bo'sh kirtish mumkin emas. + + + This value should not be null. + Qiymat null bo'lmasligi kerak. + + + This value should be null. + Qiymat null bo'lishi kerak. + + + This value is not valid. + Qiymat noto'g'ri. + + + This value is not a valid time. + Vaqt noto'g'ri. + + + This value is not a valid URL. + URL noto'g'ri + + + The two values should be equal. + Ikkala qiymat ham bir xil bo'lishi kerak. + + + The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}. + Fayl hajmi katta. Maksimal ruxsat berilgan hajim {{ limit }} {{ suffix }}. + + + The file is too large. + Fayl hajmi katta. + + + The file could not be uploaded. + Faylni yuklab bo'lmadi. + + + This value should be a valid number. + Qiymat raqam bo'lishi kerak. + + + This value is not a valid country. + Mamlakat qiymati noto'g'ri. + + + This file is not a valid image. + Fayl yaroqli rasm formati emas. + + + This is not a valid IP address. + Ip manzil noto'g'ri. + + + This value is not a valid language. + Noto'g'ri til. + + + This value is not a valid locale. + Ushbu qiymat mahalliy qiymat emas. + + + This value is already used. + Ushbu qiymat allaqachon ishlatilgan. + + + The size of the image could not be detected. + Rasm o'lchamini aniqlab bo'lmadi. + + + The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px. + Rasm kengligi juda katta ({{ width }}px). Maksimal ruxsat etilgan kenglik {{ max_width }}px. + + + The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px. + Rasm kengligi juda kichkina ({{ width }}px). Minimal ruxsat etilgan kenglik {{ min_width }}px. + + + The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px. + Rasm bo'yi juda katta ({{ height }}px). Maksimal ruxsat etilgan balandlik {{ max_height }}px. + + + The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px. + Rasm bo'yi juda kichkina ({{ height }}px). Minimal ruxsat etilgan balandlik {{ min_height }}px. + + + This value should be the user's current password. + Qiymat joriy foydalanuvchi paroli bo'lishi kerak. + + + This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters. + Qiymat {{ limit }} ta belgidan iborat bo'lishi kerak.|Qiymat {{ limit }} belgidan iborat bo'lishi kerak. + + + The file was only partially uploaded. + Fayl faqat qisman yuklangan. + + + No file was uploaded. + Fayl yuklanmagan. + + + No temporary folder was configured in php.ini. + php.ini da vaqtinchalik katalog sozlanmagan. + + + Cannot write temporary file to disk. + Diskka vaqtinchalik faylni yozib bo'lmadi. + + + A PHP extension caused the upload to fail. + PHP kengaytmasi yuklash paytida xatolik yuz berdi. + + + This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more. + Ushbu to'plam {{ limit }} ta yoki undan ko'p narsalarni o'z ichiga olishi kerak.|Ushbu to'plam {{ limit }} yoki undan ortiq narsalarni o'z ichiga olishi kerak. + + + This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less. + Ushbu to'plam {{ limit }} ta yoki undan kam narsalarni o'z ichiga olishi kerak.|Ushbu to'plamda {{ limit }} yoki undan kam element bo'lishi kerak. + + + This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements. + Ushbu to'plam to'liq {{ limit }} narsani o'z ichiga olishi kerak.|Ushbu to'plamda to'liq {{ limit }} ta ma'lumotlar bo'lishi kerak. + + + Invalid card number. + Kata raqami noto'g'ri. + + + Unsupported card type or invalid card number. + Qo'llab-quvvatlanmaydigan karta turi yoki yaroqsiz karta raqami. + + + This is not a valid International Bank Account Number (IBAN). + Qiymat haqiqiy xalqaro hisob raqamining raqami (IBAN) emas. + + + This value is not a valid ISBN-10. + Qiymat to'g'ri ISBN-10 formatida emas. + + + This value is not a valid ISBN-13. + Qiymat to'g'ri ISBN-13 formatida emas. + + + This value is neither a valid ISBN-10 nor a valid ISBN-13. + Qiymat ISBN-10 va ISBN-13 formatlariga mos kelmaydi. + + + This value is not a valid ISSN. + Qiymat ISSN formatiga mos kelmaydi. + + + This value is not a valid currency. + Noto'g'ri valyuta formati. + + + This value should be equal to {{ compared_value }}. + Qiymat {{ compared_value }} ga teng bo'lishi shart. + + + This value should be greater than {{ compared_value }}. + Qiymat {{ compared_value }} dan katta bo'lishi shart. + + + This value should be greater than or equal to {{ compared_value }}. + Qiymat {{ compared_value }} dan katta yoki teng bo'lishi shart. + + + This value should be identical to {{ compared_value_type }} {{ compared_value }}. + Значение должно быть идентичным {{ compared_value_type }} {{ compared_value }}. + + + This value should be less than {{ compared_value }}. + Qiymat bir xil bo'lishi kerak {{ compared_value }}. + + + This value should be less than or equal to {{ compared_value }}. + Qiymat {{ compared_value }} dan kichik yoki teng bo'lishi shart. + + + This value should not be equal to {{ compared_value }}. + Qiymat {{ compared_value }} ga teng bo'lmasligi kerak. + + + This value should not be identical to {{ compared_value_type }} {{ compared_value }}. + Qiymat bir xil bo'lishi kerak emas {{ compared_value_type }} {{ compared_value }}. + + + The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}. + Rasmning tomonlari nisbati juda katta ({{ ratio }}). Maksimal tomonlar nisbati {{ max_ratio }}. + + + The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}. + Rasmning format nisbati juda kichik ({{ ratio }}). Minimal tomonlar nisbati {{ min_ratio }}. + + + The image is square ({{ width }}x{{ height }}px). Square images are not allowed. + Rasm kvadrat shaklida ({{ width }}x{{ height }}px). Kvadrat shaklida tasvirlarga ruxsat berilmaydi. + + + The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed. + Landshaft tasvir ({{ width }}x{{ height }}px). Landshaft rasmlarga ruxsat berilmaydi. + + + The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed. + Portret rasm ({{ width }}x{{ height }}px). Portretlarga ruxsat berilmaydi. + + + An empty file is not allowed. + Bo'sh fayllarga ruxsat berilmagan. + + + The host could not be resolved. + Xost nomini nomiga ruxsat berilmagan. + + + This value does not match the expected {{ charset }} charset. + Qiymat kutilgan {{ charset }} kodlashiga mos kelmaydi. + + + This is not a valid Business Identifier Code (BIC). + Qiymat BIC formatida emas. + + + Error + Xatolik + + + This is not a valid UUID. + Qiymat UUID formatida emas. + + + This value should be a multiple of {{ compared_value }}. + Qiymat {{ compared_value }} ning ko'paytmasi bo'lishi kerak. + + + This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}. + Ushbu BIC IBAN {{ iban }} bilan bog'liq emas.. + + + This value should be valid JSON. + Qiymat to'g'ri JSON bo'lishi kerak. + + + This collection should contain only unique elements. + Ushbu kolleksiyada takroriy elementlar bo'lmasligi kerak. + + + This value should be positive. + Qiymat musbat bo'lishi kerak. + + + This value should be either positive or zero. + Qiymat musbat yoki 0 ga teng bo'lishi kerak. + + + This value should be negative. + Qiymat manfiy bo'lishi kerak. + + + This value should be either negative or zero. + Qiymat manfiy yoki 0 ga teng bo'lishi kerak. + + + This value is not a valid timezone. + Qiymat to'g'ri vaqt zonasi emas. + + + This password has been leaked in a data breach, it must not be used. Please use another password. + Ushbu parol ma'lumotlarning tarqalishi tufayli buzilgan va uni ishlatmaslik kerak. Boshqa paroldan foydalaning. + + + This value should be between {{ min }} and {{ max }}. + Qiymat {{ min }} va {{ max }} oralig'ida bo'lishi shart. + + + This value is not a valid hostname. + Qiymat to'g'ri xost nomi emas. + + + The number of elements in this collection should be a multiple of {{ compared_value }}. + Ushbu to'plamdagi narsalar soni {{ compared_value }} dan ko'p bo'lishi kerak. + + + This value should satisfy at least one of the following constraints: + Qiymat quyidagi cheklovlardan kamida bittasiga javob berishi kerak: + + + Each element of this collection should satisfy its own set of constraints. + Ushbu to'plamdagi har bir narsa o'ziga xos cheklovlarni qondirishi kerak. + + + This value is not a valid International Securities Identification Number (ISIN). + Qiymat Qimmatli qog'ozlarning xalqaro identifikatsiya raqami (ISIN) ga mos emas. + + + + diff --git a/src/Symfony/Component/Validator/Tests/ConstraintViolationTest.php b/src/Symfony/Component/Validator/Tests/ConstraintViolationTest.php index eb5810dafbd89..a7734635aacff 100644 --- a/src/Symfony/Component/Validator/Tests/ConstraintViolationTest.php +++ b/src/Symfony/Component/Validator/Tests/ConstraintViolationTest.php @@ -156,4 +156,19 @@ public function testMessageObjectMustBeStringable() null ); } + + public function testRetrievedPropertyPathIsAStringEvenIfNotSet() + { + self::assertSame( + '', + (new ConstraintViolation( + 'irrelevant', + '', + [], + 'irrelevant', + null, + null + ))->getPropertyPath() + ); + } } diff --git a/src/Symfony/Component/Validator/Tests/Constraints/EmailValidatorTest.php b/src/Symfony/Component/Validator/Tests/Constraints/EmailValidatorTest.php index ce5bec6034c6b..08456bd567e19 100644 --- a/src/Symfony/Component/Validator/Tests/Constraints/EmailValidatorTest.php +++ b/src/Symfony/Component/Validator/Tests/Constraints/EmailValidatorTest.php @@ -197,7 +197,7 @@ public function testModeStrict() { $constraint = new Email(['mode' => Email::VALIDATION_MODE_STRICT]); - $this->validator->validate('example@localhost', $constraint); + $this->validator->validate('example@mywebsite.tld', $constraint); $this->assertNoViolation(); } diff --git a/src/Symfony/Component/Validator/composer.json b/src/Symfony/Component/Validator/composer.json index a84291927d18f..acf7f485f0efe 100644 --- a/src/Symfony/Component/Validator/composer.json +++ b/src/Symfony/Component/Validator/composer.json @@ -42,7 +42,7 @@ "symfony/translation": "^4.4|^5.0", "doctrine/annotations": "^1.10.4", "doctrine/cache": "~1.0", - "egulias/email-validator": "^2.1.10" + "egulias/email-validator": "^2.1.10|^3" }, "conflict": { "doctrine/lexer": "<1.0.2", diff --git a/src/Symfony/Component/VarDumper/Command/ServerDumpCommand.php b/src/Symfony/Component/VarDumper/Command/ServerDumpCommand.php index c8a61da98c5b6..3ec8353aff6fa 100644 --- a/src/Symfony/Component/VarDumper/Command/ServerDumpCommand.php +++ b/src/Symfony/Component/VarDumper/Command/ServerDumpCommand.php @@ -58,7 +58,7 @@ protected function configure() $this ->addOption('format', null, InputOption::VALUE_REQUIRED, sprintf('The output format (%s)', $availableFormats), 'cli') - ->setDescription('Starts a dump server that collects and displays dumps in a single place') + ->setDescription('Start a dump server that collects and displays dumps in a single place') ->setHelp(<<<'EOF' %command.name% starts a dump server that collects and displays dumps in a single place for debugging you application: diff --git a/src/Symfony/Component/WebLink/Link.php b/src/Symfony/Component/WebLink/Link.php index a43028443c62c..c0402c6dc0952 100644 --- a/src/Symfony/Component/WebLink/Link.php +++ b/src/Symfony/Component/WebLink/Link.php @@ -99,7 +99,6 @@ public function withHref($href) { $that = clone $this; $that->href = $href; - $that->templated = $this->hrefIsTemplated($href); return $that; } diff --git a/src/Symfony/Component/Yaml/Command/LintCommand.php b/src/Symfony/Component/Yaml/Command/LintCommand.php index 83f36a93839d2..1745603bb3bd7 100644 --- a/src/Symfony/Component/Yaml/Command/LintCommand.php +++ b/src/Symfony/Component/Yaml/Command/LintCommand.php @@ -53,7 +53,7 @@ public function __construct(string $name = null, callable $directoryIteratorProv protected function configure() { $this - ->setDescription('Lints a file and outputs encountered errors') + ->setDescription('Lint a file and outputs encountered errors') ->addArgument('filename', InputArgument::IS_ARRAY, 'A file, a directory or "-" for reading from STDIN') ->addOption('format', null, InputOption::VALUE_REQUIRED, 'The output format', 'txt') ->addOption('parse-tags', null, InputOption::VALUE_NONE, 'Parse custom tags')