Skip to content

Commit e2ed8ce

Browse files
authored
Merge pull request #83 from magento/pre-release
Pre 2.0.0 release improvements and fixes
2 parents f2de49f + 38b7757 commit e2ed8ce

File tree

4 files changed

+46
-2
lines changed

4 files changed

+46
-2
lines changed
+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Rule: array_merge(...) is used in a loop and is a resources greedy construction
2+
3+
## Reason
4+
Merging arrays in a loop is slow and causes high CPU usage.
5+
6+
## How to Fix
7+
Typical example when `array_merge` is being used in the loop:
8+
``` php
9+
$options = [];
10+
foreach ($configurationSources as $source) {
11+
// code here
12+
$options = array_merge($options, $source->getOptions());
13+
}
14+
```
15+
16+
In order to reduce execution time `array_merge` can be called only once:
17+
``` php
18+
$options = [[]];
19+
foreach ($configurationSources as $source) {
20+
// code here
21+
$options[] = $source->getOptions();
22+
}
23+
24+
// PHP 5.6+
25+
$options = array_merge(...$options);
26+
```

Diff for: Magento2/ruleset.xml

+18
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,10 @@
3131
<rule ref="Magento2.Classes.DiscouragedDependencies">
3232
<severity>10</severity>
3333
<type>error</type>
34+
<exclude-pattern>*/_files/*</exclude-pattern>
35+
<exclude-pattern>*/Fixtures/*</exclude-pattern>
3436
<exclude-pattern>*/Test/*</exclude-pattern>
37+
<exclude-pattern>*Test.php</exclude-pattern>
3538
</rule>
3639
<rule ref="Magento2.Legacy.MageEntity">
3740
<severity>10</severity>
@@ -57,17 +60,23 @@
5760
<severity>10</severity>
5861
<type>error</type>
5962
<exclude-pattern>*/_files/*</exclude-pattern>
63+
<exclude-pattern>*/Fixtures/*</exclude-pattern>
64+
<exclude-pattern>*/lib/*</exclude-pattern>
6065
<exclude-pattern>*/Test/*</exclude-pattern>
6166
<exclude-pattern>*Test.php</exclude-pattern>
6267
</rule>
6368
<rule ref="Magento2.Security.LanguageConstruct">
6469
<severity>10</severity>
6570
<type>error</type>
6671
</rule>
72+
<rule ref="Magento2.Security.LanguageConstruct.DirectOutput">
73+
<exclude-pattern>*.phtml</exclude-pattern>
74+
</rule>
6775
<rule ref="Magento2.Security.Superglobal.SuperglobalUsageError">
6876
<severity>10</severity>
6977
<type>error</type>
7078
<exclude-pattern>*/_files/*</exclude-pattern>
79+
<exclude-pattern>*/Fixtures/*</exclude-pattern>
7180
<exclude-pattern>*/lib/*</exclude-pattern>
7281
<exclude-pattern>*/Test/*</exclude-pattern>
7382
<exclude-pattern>*Test.php</exclude-pattern>
@@ -103,6 +112,7 @@
103112
<severity>9</severity>
104113
<type>warning</type>
105114
<exclude-pattern>*/_files/*</exclude-pattern>
115+
<exclude-pattern>*/Fixtures/*</exclude-pattern>
106116
<exclude-pattern>*/lib/*</exclude-pattern>
107117
<exclude-pattern>*/Test/*</exclude-pattern>
108118
<exclude-pattern>*Test.php</exclude-pattern>
@@ -116,6 +126,7 @@
116126
<severity>9</severity>
117127
<type>warning</type>
118128
<exclude-pattern>*/_files/*</exclude-pattern>
129+
<exclude-pattern>*/Fixtures/*</exclude-pattern>
119130
<exclude-pattern>*/lib/*</exclude-pattern>
120131
<exclude-pattern>*/Test/*</exclude-pattern>
121132
<exclude-pattern>*Test.php</exclude-pattern>
@@ -134,6 +145,7 @@
134145
<severity>8</severity>
135146
<type>warning</type>
136147
<exclude-pattern>*/_files/*</exclude-pattern>
148+
<exclude-pattern>*/Fixtures/*</exclude-pattern>
137149
<exclude-pattern>*/Test/*</exclude-pattern>
138150
<exclude-pattern>*Test.php</exclude-pattern>
139151
</rule>
@@ -145,6 +157,7 @@
145157
<severity>8</severity>
146158
<type>warning</type>
147159
<exclude-pattern>*/_files/*</exclude-pattern>
160+
<exclude-pattern>*/Fixtures/*</exclude-pattern>
148161
<exclude-pattern>*/lib/*</exclude-pattern>
149162
<exclude-pattern>*/Test/*</exclude-pattern>
150163
<exclude-pattern>*Test.php</exclude-pattern>
@@ -153,6 +166,7 @@
153166
<severity>8</severity>
154167
<type>warning</type>
155168
<exclude-pattern>*/_files/*</exclude-pattern>
169+
<exclude-pattern>*/Fixtures/*</exclude-pattern>
156170
<exclude-pattern>*/lib/*</exclude-pattern>
157171
<exclude-pattern>*/Setup/*</exclude-pattern>
158172
<exclude-pattern>*/Test/*</exclude-pattern>
@@ -224,6 +238,7 @@
224238
<severity>7</severity>
225239
<type>warning</type>
226240
<exclude-pattern>*/_files/*</exclude-pattern>
241+
<exclude-pattern>*/Fixtures/*</exclude-pattern>
227242
<exclude-pattern>*/Test/*</exclude-pattern>
228243
<exclude-pattern>*Test.php</exclude-pattern>
229244
</rule>
@@ -251,6 +266,7 @@
251266
<severity>7</severity>
252267
<type>warning</type>
253268
<exclude-pattern>*/_files/*</exclude-pattern>
269+
<exclude-pattern>*/Fixtures/*</exclude-pattern>
254270
<exclude-pattern>*/Test/*</exclude-pattern>
255271
<exclude-pattern>*Test.php</exclude-pattern>
256272
</rule>
@@ -266,6 +282,7 @@
266282
<severity>7</severity>
267283
<type>warning</type>
268284
<exclude-pattern>*/_files/*</exclude-pattern>
285+
<exclude-pattern>*/Fixtures/*</exclude-pattern>
269286
<exclude-pattern>*/Test/*</exclude-pattern>
270287
<exclude-pattern>*Test.php</exclude-pattern>
271288
</rule>
@@ -329,6 +346,7 @@
329346
<severity>6</severity>
330347
<type>warning</type>
331348
<exclude-pattern>*/_files/*</exclude-pattern>
349+
<exclude-pattern>*/Fixtures/*</exclude-pattern>
332350
<exclude-pattern>*/Test/*</exclude-pattern>
333351
<exclude-pattern>*Test.php</exclude-pattern>
334352
</rule>

Diff for: composer.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"AFL-3.0"
77
],
88
"type": "phpcodesniffer-standard",
9-
"version": "1.0.2",
9+
"version": "2.0.0",
1010
"require": {
1111
"php": ">=5.6.0",
1212
"squizlabs/php_codesniffer": "^3.4"

Diff for: composer.lock

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)