Skip to content

Commit 662852b

Browse files
sreichelCopilot
andauthored
Replace Zend_Validate with symfony/validator (#4612)
* added respect/validation * replaced Zend_Validate:: * replaced Zend_Validate_File_Extension * doc * phpstan * test symfony * use symfony (not tested) * phpstan baseline * some fixes * some updates * added test * added test * fix file cannot be empty * renaming * update * update * test * updated test * updated test * updated test * updated test * update * updated test * typo * added test * update * fix + test * update * skip valid data, to not send email * update * updated tests * rector * rector * updated tests * updated tests -. fix * updated tests * split unit tests * test * fix later * updated tests - thanks @Hanmac * typo * updated tests * baseline phpunit * merge tests from main * simplified for now * phpstan * composer update * updated tests * updated tests * refactor * refactor * fixed installer * phpcsfixer * phpmd * phpstorm meta * phpstan * tests * phpstan * refactor * typo * remove file * typo * cleanup * cleanup * typo * naming * cleanup * test * phpstan * tests * Update app/code/core/Mage/Core/Helper/Validate.php Co-authored-by: Copilot <[email protected]> * Update app/code/core/Mage/Admin/Model/User.php Co-authored-by: Copilot <[email protected]> * Update app/code/core/Mage/Newsletter/Model/Template.php Co-authored-by: Copilot <[email protected]> * updated tests * added helper methods, suggested by @Hanmac * updated message * fix * updated composer.lock * minor * phpunit * updated cypress tests * rector * phpcsfixer --------- Co-authored-by: Copilot <[email protected]>
1 parent f4c09f4 commit 662852b

File tree

79 files changed

+2516
-838
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+2516
-838
lines changed

.phpstan.dist.baseline.neon

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -570,12 +570,6 @@ parameters:
570570
count: 1
571571
path: app/code/core/Mage/Api2/Model/Resource/Validator/Eav.php
572572

573-
-
574-
rawMessage: 'Call to an undefined method Zend_Validate_Interface::setMessage().'
575-
identifier: method.notFound
576-
count: 1
577-
path: app/code/core/Mage/Api2/Model/Resource/Validator/Fields.php
578-
579573
-
580574
rawMessage: 'Parameter #1 $request (Mage_Api2_Model_Request) of method Mage_Api2_Model_Route_Abstract::match() should be compatible with parameter $path (string) of method Zend_Controller_Router_Route::match()'
581575
identifier: method.childParameterType

.phpstorm.meta.php/magento_helpers.meta.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@
103103
'core/unserializeArray' => \Mage_Core_Helper_UnserializeArray::class,
104104
'core/url' => \Mage_Core_Helper_Url::class,
105105
'core/url_rewrite' => \Mage_Core_Helper_Url_Rewrite::class,
106+
'core/validate' => \Mage_Core_Helper_Validate::class,
107+
'core/validate_abstract' => \Mage_Core_Helper_Validate_Abstract::class,
106108
'csp' => \Mage_Csp_Helper_Data::class,
107109
'csp/data' => \Mage_Csp_Helper_Data::class,
108110
'currencysymbol' => \Mage_CurrencySymbol_Helper_Data::class,

.phpstorm.meta.php/magento_helpers_methods.meta.php

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@
103103
'core/unserializeArray' => \Mage_Core_Helper_UnserializeArray::class,
104104
'core/url' => \Mage_Core_Helper_Url::class,
105105
'core/url_rewrite' => \Mage_Core_Helper_Url_Rewrite::class,
106+
'core/validate' => \Mage_Core_Helper_Validate::class,
107+
'core/validate_abstract' => \Mage_Core_Helper_Validate_Abstract::class,
106108
'csp' => \Mage_Csp_Helper_Data::class,
107109
'csp/data' => \Mage_Csp_Helper_Data::class,
108110
'currencysymbol' => \Mage_CurrencySymbol_Helper_Data::class,
@@ -302,6 +304,8 @@
302304
'core/unserializeArray' => \Mage_Core_Helper_UnserializeArray::class,
303305
'core/url' => \Mage_Core_Helper_Url::class,
304306
'core/url_rewrite' => \Mage_Core_Helper_Url_Rewrite::class,
307+
'core/validate' => \Mage_Core_Helper_Validate::class,
308+
'core/validate_abstract' => \Mage_Core_Helper_Validate_Abstract::class,
305309
'csp' => \Mage_Csp_Helper_Data::class,
306310
'csp/data' => \Mage_Csp_Helper_Data::class,
307311
'currencysymbol' => \Mage_CurrencySymbol_Helper_Data::class,
@@ -501,6 +505,8 @@
501505
'core/unserializeArray' => \Mage_Core_Helper_UnserializeArray::class,
502506
'core/url' => \Mage_Core_Helper_Url::class,
503507
'core/url_rewrite' => \Mage_Core_Helper_Url_Rewrite::class,
508+
'core/validate' => \Mage_Core_Helper_Validate::class,
509+
'core/validate_abstract' => \Mage_Core_Helper_Validate_Abstract::class,
504510
'csp' => \Mage_Csp_Helper_Data::class,
505511
'csp/data' => \Mage_Csp_Helper_Data::class,
506512
'currencysymbol' => \Mage_CurrencySymbol_Helper_Data::class,
@@ -700,6 +706,8 @@
700706
'core/unserializeArray' => \Mage_Core_Helper_UnserializeArray::class,
701707
'core/url' => \Mage_Core_Helper_Url::class,
702708
'core/url_rewrite' => \Mage_Core_Helper_Url_Rewrite::class,
709+
'core/validate' => \Mage_Core_Helper_Validate::class,
710+
'core/validate_abstract' => \Mage_Core_Helper_Validate_Abstract::class,
703711
'csp' => \Mage_Csp_Helper_Data::class,
704712
'csp/data' => \Mage_Csp_Helper_Data::class,
705713
'currencysymbol' => \Mage_CurrencySymbol_Helper_Data::class,
@@ -899,6 +907,8 @@
899907
'core/unserializeArray' => \Mage_Core_Helper_UnserializeArray::class,
900908
'core/url' => \Mage_Core_Helper_Url::class,
901909
'core/url_rewrite' => \Mage_Core_Helper_Url_Rewrite::class,
910+
'core/validate' => \Mage_Core_Helper_Validate::class,
911+
'core/validate_abstract' => \Mage_Core_Helper_Validate_Abstract::class,
902912
'csp' => \Mage_Csp_Helper_Data::class,
903913
'csp/data' => \Mage_Csp_Helper_Data::class,
904914
'currencysymbol' => \Mage_CurrencySymbol_Helper_Data::class,
@@ -1098,6 +1108,8 @@
10981108
'core/unserializeArray' => \Mage_Core_Helper_UnserializeArray::class,
10991109
'core/url' => \Mage_Core_Helper_Url::class,
11001110
'core/url_rewrite' => \Mage_Core_Helper_Url_Rewrite::class,
1111+
'core/validate' => \Mage_Core_Helper_Validate::class,
1112+
'core/validate_abstract' => \Mage_Core_Helper_Validate_Abstract::class,
11011113
'csp' => \Mage_Csp_Helper_Data::class,
11021114
'csp/data' => \Mage_Csp_Helper_Data::class,
11031115
'currencysymbol' => \Mage_CurrencySymbol_Helper_Data::class,
@@ -1297,6 +1309,8 @@
12971309
'core/unserializeArray' => \Mage_Core_Helper_UnserializeArray::class,
12981310
'core/url' => \Mage_Core_Helper_Url::class,
12991311
'core/url_rewrite' => \Mage_Core_Helper_Url_Rewrite::class,
1312+
'core/validate' => \Mage_Core_Helper_Validate::class,
1313+
'core/validate_abstract' => \Mage_Core_Helper_Validate_Abstract::class,
13001314
'csp' => \Mage_Csp_Helper_Data::class,
13011315
'csp/data' => \Mage_Csp_Helper_Data::class,
13021316
'currencysymbol' => \Mage_CurrencySymbol_Helper_Data::class,
@@ -1496,6 +1510,8 @@
14961510
'core/unserializeArray' => \Mage_Core_Helper_UnserializeArray::class,
14971511
'core/url' => \Mage_Core_Helper_Url::class,
14981512
'core/url_rewrite' => \Mage_Core_Helper_Url_Rewrite::class,
1513+
'core/validate' => \Mage_Core_Helper_Validate::class,
1514+
'core/validate_abstract' => \Mage_Core_Helper_Validate_Abstract::class,
14991515
'csp' => \Mage_Csp_Helper_Data::class,
15001516
'csp/data' => \Mage_Csp_Helper_Data::class,
15011517
'currencysymbol' => \Mage_CurrencySymbol_Helper_Data::class,
@@ -1695,6 +1711,8 @@
16951711
'core/unserializeArray' => \Mage_Core_Helper_UnserializeArray::class,
16961712
'core/url' => \Mage_Core_Helper_Url::class,
16971713
'core/url_rewrite' => \Mage_Core_Helper_Url_Rewrite::class,
1714+
'core/validate' => \Mage_Core_Helper_Validate::class,
1715+
'core/validate_abstract' => \Mage_Core_Helper_Validate_Abstract::class,
16981716
'csp' => \Mage_Csp_Helper_Data::class,
16991717
'csp/data' => \Mage_Csp_Helper_Data::class,
17001718
'currencysymbol' => \Mage_CurrencySymbol_Helper_Data::class,
@@ -1894,6 +1912,8 @@
18941912
'core/unserializeArray' => \Mage_Core_Helper_UnserializeArray::class,
18951913
'core/url' => \Mage_Core_Helper_Url::class,
18961914
'core/url_rewrite' => \Mage_Core_Helper_Url_Rewrite::class,
1915+
'core/validate' => \Mage_Core_Helper_Validate::class,
1916+
'core/validate_abstract' => \Mage_Core_Helper_Validate_Abstract::class,
18971917
'csp' => \Mage_Csp_Helper_Data::class,
18981918
'csp/data' => \Mage_Csp_Helper_Data::class,
18991919
'currencysymbol' => \Mage_CurrencySymbol_Helper_Data::class,
@@ -2093,6 +2113,8 @@
20932113
'core/unserializeArray' => \Mage_Core_Helper_UnserializeArray::class,
20942114
'core/url' => \Mage_Core_Helper_Url::class,
20952115
'core/url_rewrite' => \Mage_Core_Helper_Url_Rewrite::class,
2116+
'core/validate' => \Mage_Core_Helper_Validate::class,
2117+
'core/validate_abstract' => \Mage_Core_Helper_Validate_Abstract::class,
20962118
'csp' => \Mage_Csp_Helper_Data::class,
20972119
'csp/data' => \Mage_Csp_Helper_Data::class,
20982120
'currencysymbol' => \Mage_CurrencySymbol_Helper_Data::class,
@@ -2292,6 +2314,8 @@
22922314
'core/unserializeArray' => \Mage_Core_Helper_UnserializeArray::class,
22932315
'core/url' => \Mage_Core_Helper_Url::class,
22942316
'core/url_rewrite' => \Mage_Core_Helper_Url_Rewrite::class,
2317+
'core/validate' => \Mage_Core_Helper_Validate::class,
2318+
'core/validate_abstract' => \Mage_Core_Helper_Validate_Abstract::class,
22952319
'csp' => \Mage_Csp_Helper_Data::class,
22962320
'csp/data' => \Mage_Csp_Helper_Data::class,
22972321
'currencysymbol' => \Mage_CurrencySymbol_Helper_Data::class,
@@ -2491,6 +2515,8 @@
24912515
'core/unserializeArray' => \Mage_Core_Helper_UnserializeArray::class,
24922516
'core/url' => \Mage_Core_Helper_Url::class,
24932517
'core/url_rewrite' => \Mage_Core_Helper_Url_Rewrite::class,
2518+
'core/validate' => \Mage_Core_Helper_Validate::class,
2519+
'core/validate_abstract' => \Mage_Core_Helper_Validate_Abstract::class,
24942520
'csp' => \Mage_Csp_Helper_Data::class,
24952521
'csp/data' => \Mage_Csp_Helper_Data::class,
24962522
'currencysymbol' => \Mage_CurrencySymbol_Helper_Data::class,
@@ -2690,6 +2716,8 @@
26902716
'core/unserializeArray' => \Mage_Core_Helper_UnserializeArray::class,
26912717
'core/url' => \Mage_Core_Helper_Url::class,
26922718
'core/url_rewrite' => \Mage_Core_Helper_Url_Rewrite::class,
2719+
'core/validate' => \Mage_Core_Helper_Validate::class,
2720+
'core/validate_abstract' => \Mage_Core_Helper_Validate_Abstract::class,
26932721
'csp' => \Mage_Csp_Helper_Data::class,
26942722
'csp/data' => \Mage_Csp_Helper_Data::class,
26952723
'currencysymbol' => \Mage_CurrencySymbol_Helper_Data::class,
@@ -2889,6 +2917,8 @@
28892917
'core/unserializeArray' => \Mage_Core_Helper_UnserializeArray::class,
28902918
'core/url' => \Mage_Core_Helper_Url::class,
28912919
'core/url_rewrite' => \Mage_Core_Helper_Url_Rewrite::class,
2920+
'core/validate' => \Mage_Core_Helper_Validate::class,
2921+
'core/validate_abstract' => \Mage_Core_Helper_Validate_Abstract::class,
28922922
'csp' => \Mage_Csp_Helper_Data::class,
28932923
'csp/data' => \Mage_Csp_Helper_Data::class,
28942924
'currencysymbol' => \Mage_CurrencySymbol_Helper_Data::class,
@@ -3088,6 +3118,8 @@
30883118
'core/unserializeArray' => \Mage_Core_Helper_UnserializeArray::class,
30893119
'core/url' => \Mage_Core_Helper_Url::class,
30903120
'core/url_rewrite' => \Mage_Core_Helper_Url_Rewrite::class,
3121+
'core/validate' => \Mage_Core_Helper_Validate::class,
3122+
'core/validate_abstract' => \Mage_Core_Helper_Validate_Abstract::class,
30913123
'csp' => \Mage_Csp_Helper_Data::class,
30923124
'csp/data' => \Mage_Csp_Helper_Data::class,
30933125
'currencysymbol' => \Mage_CurrencySymbol_Helper_Data::class,

.phpunit.dist.xml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,9 @@
8282
<testsuite name="Mage_Newsletter">
8383
<directory>tests/unit/Mage/Newsletter</directory>
8484
</testsuite>
85+
<testsuite name="Mage_Oauth">
86+
<directory>tests/unit/Mage/Oauth</directory>
87+
</testsuite>
8588
<testsuite name="Mage_Page">
8689
<directory>tests/unit/Mage/Page</directory>
8790
</testsuite>
@@ -122,13 +125,12 @@
122125
processUncoveredFiles="false"
123126
>
124127
<include>
128+
<file>Mage.php</file>
125129
<directory suffix=".php">app/code</directory>
126130
<directory suffix=".php">lib</directory>
127131
</include>
128132
<exclude>
129133
<file>app/bootstrap.php</file>
130-
<file>app/code/core/Mage/Admin/Model/Acl/Assert/Ip.php</file>
131-
<file>app/code/core/Mage/Admin/Model/Acl/Assert/Time.php</file>
132134
<directory>app/code/community</directory>
133135
<directory>app/code/local/</directory>
134136
<directory>app/code/core/Mage/*/data</directory>

app/code/core/Mage/Admin/Model/Block.php

Lines changed: 29 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
*/
2222
class Mage_Admin_Model_Block extends Mage_Core_Model_Abstract
2323
{
24+
public const BLOCK_NAME_REGEX = '/^[-_a-zA-Z0-9]+\/[-_a-zA-Z0-9\/]+$/';
25+
2426
/**
2527
* Initialize variable model
2628
*/
@@ -32,34 +34,44 @@ protected function _construct()
3234
/**
3335
* @return array|true
3436
* @throws Exception
35-
* @throws Zend_Validate_Exception
3637
*/
3738
public function validate()
3839
{
39-
$errors = [];
40+
$validator = $this->getValidationHelper();
41+
$violations = new ArrayObject();
4042

41-
if (!Zend_Validate::is($this->getBlockName(), 'NotEmpty')) {
42-
$errors[] = Mage::helper('adminhtml')->__('Block Name is required field.');
43-
}
43+
$blockName = $this->getBlockName();
4444

45-
$disallowedBlockNames = Mage::helper('admin/block')->getDisallowedBlockNames();
46-
if (in_array($this->getBlockName(), $disallowedBlockNames)) {
47-
$errors[] = Mage::helper('adminhtml')->__('Block Name is disallowed.');
48-
}
45+
$violations->append($validator->validateNotEmpty(
46+
value: $blockName,
47+
message: Mage::helper('adminhtml')->__('Block Name is required field.'),
48+
));
4949

50-
if (!Zend_Validate::is($this->getBlockName(), 'Regex', ['/^[-_a-zA-Z0-9]+\/[-_a-zA-Z0-9\/]+$/'])) {
51-
$errors[] = Mage::helper('adminhtml')->__('Block Name is incorrect.');
52-
}
50+
$violations->append($validator->validateChoice(
51+
value: $blockName,
52+
choices: Mage::helper('admin/block')->getDisallowedBlockNames(),
53+
message: Mage::helper('adminhtml')->__('Block Name is disallowed.'),
54+
match: false,
55+
));
5356

54-
if (!in_array($this->getIsAllowed(), ['0', '1'])) {
55-
$errors[] = Mage::helper('adminhtml')->__('Is Allowed is required field.');
56-
}
57+
$violations->append($validator->validateRegex(
58+
value: $blockName,
59+
pattern: self::BLOCK_NAME_REGEX,
60+
message: Mage::helper('adminhtml')->__('Block Name is incorrect.'),
61+
));
62+
63+
$violations->append($validator->validateChoice(
64+
value: $this->getIsAllowed(),
65+
choices: ['0', '1'],
66+
message: Mage::helper('adminhtml')->__('Is Allowed is required field.'),
67+
));
5768

58-
if (empty($errors)) {
69+
$errors = $validator->getErrorMessages($violations);
70+
if (!$errors) {
5971
return true;
6072
}
6173

62-
return $errors;
74+
return (array) $errors;
6375
}
6476

6577
/**

0 commit comments

Comments
 (0)