diff --git a/.travis.yml b/.travis.yml
index fe993abbd2..e43e311d88 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -225,7 +225,7 @@ install:
export SYMFONY_DEPRECATIONS_HELPER=weak &&
cp composer.json composer.json.orig &&
echo -e '{\n"require":{'"$(grep phpunit-bridge composer.json)"'"php":"*"},"minimum-stability":"dev"}' > composer.json &&
- php .github/build-packages.php HEAD^ $(find src/Symfony -mindepth 3 -type f -name composer.json -printf '%h\n' | sort) &&
+ php .github/build-packages.php HEAD^ $(find src/Symfony -mindepth 2 -type f -name composer.json -printf '%h\n' | sort) &&
mv composer.json composer.json.phpunit &&
mv composer.json.orig composer.json
fi
@@ -249,7 +249,7 @@ install:
- |
# Skip the phpunit-bridge on bugfix-only branches when $deps is empty
if [[ ! $deps && ! $TRAVIS_BRANCH = *.x ]]; then
- export COMPONENTS=$(find src/Symfony -mindepth 3 -type f -name phpunit.xml.dist -not -wholename '*/Bridge/PhpUnit/*' -printf '%h\n' | sort)
+ export COMPONENTS=$(find src/Symfony -mindepth 2 -type f -name phpunit.xml.dist -not -wholename '*/Bridge/PhpUnit/*' -printf '%h\n' | sort)
fi
- |
diff --git a/phpunit b/phpunit
index af8cc7f752..71915eecb2 100755
--- a/phpunit
+++ b/phpunit
@@ -24,5 +24,8 @@ if (!getenv('SYMFONY_PHPUNIT_VERSION')) {
if (!getenv('SYMFONY_PATCH_TYPE_DECLARATIONS')) {
putenv('SYMFONY_PATCH_TYPE_DECLARATIONS=deprecations=1');
}
+if (getcwd() === realpath(__DIR__.'/src/Symfony/Bridge/PhpUnit')) {
+ putenv('SYMFONY_DEPRECATIONS_HELPER=disabled');
+}
putenv('SYMFONY_PHPUNIT_DIR='.__DIR__.'/.phpunit');
require __DIR__.'/vendor/symfony/phpunit-bridge/bin/simple-phpunit';
diff --git a/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit.php b/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit.php
index c03a4c2962..554851ad8a 100644
--- a/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit.php
+++ b/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit.php
@@ -265,11 +265,11 @@ if (!class_exists('SymfonyExcludeListPhpunit', false)) {
if (method_exists('PHPUnit\Util\ExcludeList', 'addDirectory')) {
(new PHPUnit\Util\Excludelist())->getExcludedDirectories();
PHPUnit\Util\ExcludeList::addDirectory(\dirname((new \ReflectionClass('SymfonyExcludeListPhpunit'))->getFileName()));
- PHPUnit\Util\ExcludeList::addDirectory(\dirname((new \ReflectionClass('SymfonyExcludeListSimplePhpunit'))->getFileName()));
+ class_exists('SymfonyExcludeListSimplePhpunit', false) && PHPUnit\Util\ExcludeList::addDirectory(\dirname((new \ReflectionClass('SymfonyExcludeListSimplePhpunit'))->getFileName()));
} elseif (method_exists('PHPUnit\Util\Blacklist', 'addDirectory')) {
(new PHPUnit\Util\BlackList())->getBlacklistedDirectories();
PHPUnit\Util\Blacklist::addDirectory(\dirname((new \ReflectionClass('SymfonyExcludeListPhpunit'))->getFileName()));
- PHPUnit\Util\Blacklist::addDirectory(\dirname((new \ReflectionClass('SymfonyExcludeListSimplePhpunit'))->getFileName()));
+ class_exists('SymfonyExcludeListSimplePhpunit', false) && PHPUnit\Util\Blacklist::addDirectory(\dirname((new \ReflectionClass('SymfonyExcludeListSimplePhpunit'))->getFileName()));
} else {
PHPUnit\Util\Blacklist::$blacklistedClassNames['SymfonyExcludeListPhpunit'] = 1;
PHPUnit\Util\Blacklist::$blacklistedClassNames['SymfonyExcludeListSimplePhpunit'] = 1;
diff --git a/src/Symfony/Component/Cache/Marshaller/DefaultMarshaller.php b/src/Symfony/Component/Cache/Marshaller/DefaultMarshaller.php
index e00c8f4845..7a02a96237 100644
--- a/src/Symfony/Component/Cache/Marshaller/DefaultMarshaller.php
+++ b/src/Symfony/Component/Cache/Marshaller/DefaultMarshaller.php
@@ -25,9 +25,9 @@ class DefaultMarshaller implements MarshallerInterface
public function __construct(bool $useIgbinarySerialize = null)
{
if (null === $useIgbinarySerialize) {
- $useIgbinarySerialize = \extension_loaded('igbinary') && (\PHP_VERSION_ID < 70400 || version_compare('3.1.0', phpversion('igbinary'), '<='));
- } elseif ($useIgbinarySerialize && (!\extension_loaded('igbinary') || (\PHP_VERSION_ID >= 70400 && version_compare('3.1.0', phpversion('igbinary'), '>')))) {
- throw new CacheException(\extension_loaded('igbinary') && \PHP_VERSION_ID >= 70400 ? 'Please upgrade the "igbinary" PHP extension to v3.1 or higher.' : 'The "igbinary" PHP extension is not loaded.');
+ $useIgbinarySerialize = \extension_loaded('igbinary') && (\PHP_VERSION_ID < 70400 || version_compare('3.1.6', phpversion('igbinary'), '<='));
+ } elseif ($useIgbinarySerialize && (!\extension_loaded('igbinary') || (\PHP_VERSION_ID >= 70400 && version_compare('3.1.6', phpversion('igbinary'), '>')))) {
+ throw new CacheException(\extension_loaded('igbinary') && \PHP_VERSION_ID >= 70400 ? 'Please upgrade the "igbinary" PHP extension to v3.1.6 or higher.' : 'The "igbinary" PHP extension is not loaded.');
}
$this->useIgbinarySerialize = $useIgbinarySerialize;
}
@@ -66,7 +66,7 @@ class DefaultMarshaller implements MarshallerInterface
return null;
}
static $igbinaryNull;
- if ($value === ($igbinaryNull ?? $igbinaryNull = \extension_loaded('igbinary') && (\PHP_VERSION_ID < 70400 || version_compare('3.1.0', phpversion('igbinary'), '<=')) ? igbinary_serialize(null) : false)) {
+ if ($value === ($igbinaryNull ?? $igbinaryNull = \extension_loaded('igbinary') ? igbinary_serialize(null) : false)) {
return null;
}
$unserializeCallbackHandler = ini_set('unserialize_callback_func', __CLASS__.'::handleUnserializeCallback');
diff --git a/src/Symfony/Component/Cache/Tests/Marshaller/DefaultMarshallerTest.php b/src/Symfony/Component/Cache/Tests/Marshaller/DefaultMarshallerTest.php
index aaef04610e..050aab4207 100644
--- a/src/Symfony/Component/Cache/Tests/Marshaller/DefaultMarshallerTest.php
+++ b/src/Symfony/Component/Cache/Tests/Marshaller/DefaultMarshallerTest.php
@@ -24,7 +24,7 @@ class DefaultMarshallerTest extends TestCase
'b' => function () {},
];
- $expected = ['a' => \extension_loaded('igbinary') && (\PHP_VERSION_ID < 70400 || version_compare('3.1.0', phpversion('igbinary'), '<=')) ? igbinary_serialize(123) : serialize(123)];
+ $expected = ['a' => \extension_loaded('igbinary') && (\PHP_VERSION_ID < 70400 || version_compare('3.1.6', phpversion('igbinary'), '<=')) ? igbinary_serialize(123) : serialize(123)];
$this->assertSame($expected, $marshaller->marshall($values, $failed));
$this->assertSame(['b'], $failed);
}
@@ -43,7 +43,7 @@ class DefaultMarshallerTest extends TestCase
*/
public function testIgbinaryUnserialize()
{
- if (\PHP_VERSION_ID >= 70400 && version_compare('3.1.0', phpversion('igbinary'), '>')) {
+ if (\PHP_VERSION_ID >= 70400 && version_compare('3.1.6', phpversion('igbinary'), '>')) {
$this->markTestSkipped('igbinary is not compatible with PHP 7.4.');
}
@@ -67,7 +67,7 @@ class DefaultMarshallerTest extends TestCase
*/
public function testIgbinaryUnserializeNotFoundClass()
{
- if (\PHP_VERSION_ID >= 70400 && version_compare('3.1.0', phpversion('igbinary'), '>')) {
+ if (\PHP_VERSION_ID >= 70400 && version_compare('3.1.6', phpversion('igbinary'), '>')) {
$this->markTestSkipped('igbinary is not compatible with PHP 7.4.');
}
@@ -95,7 +95,7 @@ class DefaultMarshallerTest extends TestCase
*/
public function testIgbinaryUnserializeInvalid()
{
- if (\PHP_VERSION_ID >= 70400 && version_compare('3.1.0', phpversion('igbinary'), '>')) {
+ if (\PHP_VERSION_ID >= 70400 && version_compare('3.1.6', phpversion('igbinary'), '>')) {
$this->markTestSkipped('igbinary is not compatible with PHP 7.4.');
}
diff --git a/src/Symfony/Component/Form/Resources/translations/validators.bs.xlf b/src/Symfony/Component/Form/Resources/translations/validators.bs.xlf
new file mode 100644
index 0000000000..cfe681e3b0
--- /dev/null
+++ b/src/Symfony/Component/Form/Resources/translations/validators.bs.xlf
@@ -0,0 +1,119 @@
+
+
+
+
+
+ This form should not contain extra fields.
+ Ovaj obrazac ne bi trebalo da sadrži dodatna polja.
+
+
+ The uploaded file was too large. Please try to upload a smaller file.
+ Prenijeta (uploaded) datoteka je prevelika. Molim pokušajte prenijeti manju datoteku.
+
+
+ The CSRF token is invalid. Please try to resubmit the form.
+ CSRF vrijednost nije ispravna. Molim pokušajte ponovo da pošaljete obrazac.
+
+
+ This value is not a valid HTML5 color.
+ Ova vrijednost nije ispravna HTML5 boja.
+
+
+ Please enter a valid birthdate.
+ Molim upišite ispravan datum rođenja.
+
+
+ The selected choice is invalid.
+ Odabrani izbor nije ispravan.
+
+
+ The collection is invalid.
+ Ova kolekcija nije ispravna.
+
+
+ Please select a valid color.
+ Molim izaberite ispravnu boju.
+
+
+ Please select a valid country.
+ Molim izaberite ispravnu državu.
+
+
+ Please select a valid currency.
+ Molim izaberite ispravnu valutu.
+
+
+ Please choose a valid date interval.
+ Molim izaberite ispravan datumski interval.
+
+
+ Please enter a valid date and time.
+ Molim upišite ispravan datum i vrijeme.
+
+
+ Please enter a valid date.
+ Molim upišite ispravan datum.
+
+
+ Please select a valid file.
+ Molim izaberite ispravnu datoteku.
+
+
+ The hidden field is invalid.
+ Skriveno polje nije ispravno.
+
+
+ Please enter an integer.
+ Molim upišite cijeli broj (integer).
+
+
+ Please select a valid language.
+ Molim izaberite ispravan jezik.
+
+
+ Please select a valid locale.
+ Molim izaberite ispravnu lokalizaciju.
+
+
+ Please enter a valid money amount.
+ Molim upišite ispravnu količinu novca.
+
+
+ Please enter a number.
+ Molim upišite broj.
+
+
+ The password is invalid.
+ Ova lozinka nije ispravna.
+
+
+ Please enter a percentage value.
+ Molim upišite procentualnu vrijednost.
+
+
+ The values do not match.
+ Date vrijednosti se ne poklapaju.
+
+
+ Please enter a valid time.
+ Molim upišite ispravno vrijeme.
+
+
+ Please select a valid timezone.
+ Molim izaberite ispravnu vremensku zonu.
+
+
+ Please enter a valid URL.
+ Molim upišite ispravan URL.
+
+
+ Please enter a valid search term.
+ Molim upišite ispravan termin za pretragu.
+
+
+ Please provide a valid phone number.
+ Molim navedite ispravan broj telefona.
+
+
+
+
diff --git a/src/Symfony/Component/Form/Resources/translations/validators.pt_BR.xlf b/src/Symfony/Component/Form/Resources/translations/validators.pt_BR.xlf
index 9ae4d71912..3e79f391ad 100644
--- a/src/Symfony/Component/Form/Resources/translations/validators.pt_BR.xlf
+++ b/src/Symfony/Component/Form/Resources/translations/validators.pt_BR.xlf
@@ -14,6 +14,106 @@
The CSRF token is invalid. Please try to resubmit the form.O token CSRF é inválido. Por favor, tente reenviar o formulário.
+
+ This value is not a valid HTML5 color.
+ Este valor não é uma cor HTML5 válida.
+
+
+ Please enter a valid birthdate.
+ Por favor, informe uma data de nascimento válida.
+
+
+ The selected choice is invalid.
+ A escolha selecionada é inválida.
+
+
+ The collection is invalid.
+ A coleção é inválida.
+
+
+ Please select a valid color.
+ Por favor, selecione uma cor válida.
+
+
+ Please select a valid country.
+ Por favor, selecione um país válido.
+
+
+ Please select a valid currency.
+ Por favor, selecione uma moeda válida.
+
+
+ Please choose a valid date interval.
+ Por favor, escolha um intervalo de datas válido.
+
+
+ Please enter a valid date and time.
+ Por favor, informe uma data e horário válidos.
+
+
+ Please enter a valid date.
+ Por favor, informe uma data válida.
+
+
+ Please select a valid file.
+ Por favor, selecione um arquivo válido.
+
+
+ The hidden field is invalid.
+ O campo oculto é inválido.
+
+
+ Please enter an integer.
+ Por favor, informe um número inteiro.
+
+
+ Please select a valid language.
+ Por favor, selecione um idioma válido.
+
+
+ Please select a valid locale.
+ Por favor, selecione uma configuração de local válida.
+
+
+ Please enter a valid money amount.
+ Por favor, informe um valor monetário válido.
+
+
+ Please enter a number.
+ Por favor, informe um número.
+
+
+ The password is invalid.
+ A senha é inválida.
+
+
+ Please enter a percentage value.
+ Por favor, informe um valor percentual.
+
+
+ The values do not match.
+ Os valores não conferem.
+
+
+ Please enter a valid time.
+ Por favor, informe um horário válido.
+
+
+ Please select a valid timezone.
+ Por favor, selecione um fuso horário válido.
+
+
+ Please enter a valid URL.
+ Por favor, informe uma URL válida.
+
+
+ Please enter a valid search term.
+ Por favor, informe um termo de busca válido.
+
+
+ Please provide a valid phone number.
+ Por favor, informe um telefone válido.
+