Skip to content

Commit 48b4abf

Browse files
authored
Merge pull request #33 from Deepress/fix-symfony-bc-break
Fix symfony bc break
2 parents c3bd5b7 + 16ea21f commit 48b4abf

File tree

6 files changed

+42
-54
lines changed

6 files changed

+42
-54
lines changed

.travis.yml

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,39 +7,18 @@ cache:
77
- $HOME/.composer/cache
88

99
php:
10-
- 5.4
11-
- 5.5
12-
- 5.6
13-
- 7.0
1410
- 7.1
1511
- 7.2
1612

1713
env:
1814
matrix:
1915
- NETTE=nette-2.4-dev
2016
- NETTE=nette-2.4
21-
- NETTE=nette-2.3
2217

2318
matrix:
2419
include:
25-
- php: 5.6
26-
env: NETTE=nette-2.3 COMPOSER_EXTRA_ARGS="--prefer-lowest --prefer-stable"
27-
- php: 7.0
28-
env: NETTE=nette-2.4 COVERAGE="--coverage ./coverage.xml --coverage-src ./src" TESTER_RUNTIME="phpdbg"
2920
exclude:
30-
- php: 5.4
31-
env: NETTE=nette-2.4-dev
32-
- php: 5.4
33-
env: NETTE=nette-2.4
34-
- php: 5.5
35-
env: NETTE=nette-2.4-dev
36-
- php: 5.5
37-
env: NETTE=nette-2.4
38-
- php: 7.2
39-
env: NETTE=nette-2.3
4021
allow_failures:
41-
- php: 7.0
42-
env: NETTE=nette-2.4 COVERAGE="--coverage ./coverage.xml --coverage-src ./src" TESTER_RUNTIME="phpdbg"
4322

4423
before_install:
4524
- travis_retry composer self-update

composer.json

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -24,37 +24,38 @@
2424
"issues": "https://github.com/kdyby/validator/issues"
2525
},
2626
"require": {
27-
"nette/di": "~2.3@dev",
28-
"nette/utils": "~2.3@dev",
27+
"php": "^7.1",
28+
"nette/di": "~2.4@dev",
29+
"nette/utils": "~2.4@dev",
2930

30-
"symfony/validator": ">=2.5.3",
31+
"symfony/validator": ">=4.1.0",
3132
"kdyby/doctrine-cache": "~2.4@dev",
3233
"kdyby/translation": "~2.2@dev"
3334
},
3435
"require-dev": {
3536
"kdyby/annotations": "~2.2@dev",
3637
"symfony/yaml": "^2.8|^3.0",
37-
"nette/application": "~2.3@dev",
38-
"nette/bootstrap": "~2.3@dev",
39-
"nette/caching": "~2.3@dev",
40-
"nette/component-model": "~2.2@dev",
41-
"nette/database": "~2.3@dev",
42-
"nette/deprecated": "~2.2@dev",
43-
"nette/di": "~2.3@dev",
44-
"nette/finder": "~2.3@dev",
45-
"nette/forms": "~2.3@dev",
46-
"nette/http": "~2.3@dev",
47-
"nette/mail": "~2.3@dev",
48-
"nette/neon": "~2.3@dev",
49-
"nette/php-generator": "~2.3@dev",
50-
"nette/reflection": "~2.3@dev",
51-
"nette/robot-loader": "~2.3@dev",
38+
"nette/application": "~2.4@dev",
39+
"nette/bootstrap": "~2.4@dev",
40+
"nette/caching": "~2.4@dev",
41+
"nette/component-model": "~2.4@dev",
42+
"nette/database": "~2.4@dev",
43+
"nette/deprecated": "~2.4@dev",
44+
"nette/di": "~2.4@dev",
45+
"nette/finder": "~2.4@dev",
46+
"nette/forms": "~2.4@dev",
47+
"nette/http": "~2.4@dev",
48+
"nette/mail": "~2.4@dev",
49+
"nette/neon": "~2.4@dev",
50+
"nette/php-generator": "~2.4@dev",
51+
"nette/reflection": "~2.4@dev",
52+
"nette/robot-loader": "~2.4@dev",
5253
"nette/safe-stream": "~2.3@dev",
53-
"nette/security": "~2.3@dev",
54-
"nette/tokenizer": "~2.2@dev",
55-
"nette/utils": "~2.3@dev",
56-
"latte/latte": "~2.3@dev",
57-
"tracy/tracy": "~2.3@dev",
54+
"nette/security": "~2.4@dev",
55+
"nette/tokenizer": "~2.3@dev",
56+
"nette/utils": "~2.4@dev",
57+
"latte/latte": "~2.4@dev",
58+
"tracy/tracy": "~2.4@dev",
5859

5960
"nette/tester": "~1.3@rc"
6061
},

src/DI/ValidatorExtension.php

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
use Nette;
1717
use Nette\DI\Compiler;
1818
use Nette\Utils\Validators;
19-
19+
use Symfony\Component\Validator\Constraints\Email;
2020

2121

2222
/**
@@ -37,7 +37,8 @@ class ValidatorExtension extends Nette\DI\CompilerExtension implements ITranslat
3737
'cache' => 'default',
3838
'translationDomain' => NULL,
3939
'debug' => '%debugMode%',
40-
'strictEmail' => FALSE,
40+
'strictEmail' => NULL,
41+
'emailValidationMode' => Email::VALIDATION_MODE_LOOSE,
4142
];
4243

4344

@@ -80,12 +81,17 @@ public function loadConfiguration()
8081
->setClass('Symfony\Component\Validator\Validator\ValidatorInterface')
8182
->setFactory('Symfony\Component\Validator\Validator\RecursiveValidator');
8283

83-
Validators::assertField($config, 'strictEmail', 'boolean');
84+
if ($config['strictEmail'] !== NULL) {
85+
Validators::assertField($config, 'strictEmail', 'boolean');
86+
trigger_error('`strictEmail` configuration option is deprecated, use `emailValidationMode` instead.', E_USER_DEPRECATED);;
87+
}
88+
89+
Validators::assertField($config, 'emailValidationMode', 'string');
8490

8591
$builder->addDefinition($this->prefix('constraint.email'))
8692
->setClass('Symfony\Component\Validator\Constraints\EmailValidator')
8793
->setArguments([
88-
'strict' => $config['strictEmail'],
94+
'defaultMode' => $config['emailValidationMode'],
8995
])
9096
->addTag(self::TAG_CONSTRAINT_VALIDATOR);
9197

tests/KdybyTests/Validator/Extension.phpt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ use KdybyTests\ValidatorMocks\ArticleMock;
1515
use Nette;
1616
use Symfony;
1717
use Tester;
18+
use Symfony\Component\Validator\Constraints\Email;
1819

1920
require_once __DIR__ . '/../bootstrap.php';
2021

@@ -118,9 +119,9 @@ class ExtensionTest extends Tester\TestCase
118119
public function strictEmailDataProvider()
119120
{
120121
return [
121-
[[], FALSE],
122-
[[__DIR__ . '/config/strict-email.neon'], TRUE],
123-
[[__DIR__ . '/config/non-strict-email.neon'], FALSE],
122+
[[], Email::VALIDATION_MODE_LOOSE],
123+
[[__DIR__ . '/config/strict-email.neon'], Email::VALIDATION_MODE_STRICT],
124+
[[__DIR__ . '/config/non-strict-email.neon'], Email::VALIDATION_MODE_LOOSE],
124125
];
125126
}
126127

@@ -138,7 +139,8 @@ class ExtensionTest extends Tester\TestCase
138139
$validator = $factory->getInstance(new \Symfony\Component\Validator\Constraints\Email());
139140
Tester\Assert::type('Symfony\Component\Validator\Constraints\EmailValidator', $validator);
140141

141-
$property = new \ReflectionProperty('Symfony\Component\Validator\Constraints\EmailValidator', 'isStrict');
142+
$property = new \ReflectionProperty('Symfony\Component\Validator\Constraints\EmailValidator', 'defaultMode');
143+
142144
$property->setAccessible(TRUE);
143145
Tester\Assert::same($strict, $property->getValue($validator));
144146
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
validator:
2-
strictEmail: false
2+
emailValidationMode: 'loose'
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
validator:
2-
strictEmail: true
2+
emailValidationMode: 'strict'

0 commit comments

Comments
 (0)