Completed
Branch dev (97838e)
by
unknown
18:15 queued 10:24
created
core/domain/services/registration/CopyRegistrationService.php 2 patches
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -83,7 +83,7 @@  discard block
 block discarded – undo
83 83
         $reindexed_answers = array();
84 84
         foreach ($answers as $answer) {
85 85
             if ($answer instanceof EE_Answer) {
86
-                $reindexed_answers[ $answer->question_ID() ] = $answer->value();
86
+                $reindexed_answers[$answer->question_ID()] = $answer->value();
87 87
             }
88 88
         }
89 89
         return $reindexed_answers;
@@ -103,8 +103,8 @@  discard block
 block discarded – undo
103 103
         EE_Registration $registration,
104 104
         $previous_answers
105 105
     ) {
106
-        $old_answer_value = isset($previous_answers[ $question->ID() ])
107
-            ? $previous_answers[ $question->ID() ]
106
+        $old_answer_value = isset($previous_answers[$question->ID()])
107
+            ? $previous_answers[$question->ID()]
108 108
             : '';
109 109
         $new_answer = EE_Answer::new_instance(
110 110
             array(
@@ -113,7 +113,7 @@  discard block
 block discarded – undo
113 113
                 'ANS_value' => $old_answer_value,
114 114
             )
115 115
         );
116
-        if (! $new_answer instanceof EE_Answer) {
116
+        if ( ! $new_answer instanceof EE_Answer) {
117 117
             throw new UnexpectedEntityException($new_answer, 'EE_Answer');
118 118
         }
119 119
         $new_answer->save();
@@ -150,7 +150,7 @@  discard block
 block discarded – undo
150 150
                         'RPY_amount' => $payment_amount,
151 151
                     )
152 152
                 );
153
-                if (! $new_registration_payment instanceof EE_Registration_Payment) {
153
+                if ( ! $new_registration_payment instanceof EE_Registration_Payment) {
154 154
                     throw new UnexpectedEntityException($new_registration_payment, 'EE_Registration_Payment');
155 155
                 }
156 156
                 $new_registration_payment->save();
Please login to merge, or discard this patch.
Indentation   +142 added lines, -142 removed lines patch added patch discarded remove patch
@@ -25,152 +25,152 @@
 block discarded – undo
25 25
  */
26 26
 class CopyRegistrationService extends DomainService
27 27
 {
28
-    /**
29
-     * @param EE_Registration $target_registration
30
-     * @param EE_Registration $registration_to_copy
31
-     * @return bool
32
-     * @throws UnexpectedEntityException
33
-     * @throws EntityNotFoundException
34
-     * @throws RuntimeException
35
-     * @throws EE_Error
36
-     */
37
-    public function copyRegistrationDetails(
38
-        EE_Registration $target_registration,
39
-        EE_Registration $registration_to_copy
40
-    ) {
41
-        // copy attendee
42
-        $target_registration->set_attendee_id($registration_to_copy->attendee_ID());
43
-        $target_registration->updateStatusBasedOnTotalPaid(false);
44
-        $target_registration->save();
45
-        // get answers to previous reg questions
46
-        $answers = $this->reindexAnswersByQuestionId($registration_to_copy->answers());
47
-        // get questions to new event reg form
48
-        $new_event = $target_registration->event();
49
-        $field_name = 'Event_Question_Group.'
50
-            . EEM_Event_Question_Group::instance()->fieldNameForContext(
51
-                $registration_to_copy->is_primary_registrant()
52
-            );
53
-        $question_groups = $new_event->question_groups([
54
-                [
55
-                    'Event.EVT_ID' => $new_event->ID(),
56
-                    $field_name => true,
57
-                ],
58
-                'order_by' => ['QSG_order' => 'ASC'],
59
-            ]);
60
-        foreach ($question_groups as $question_group) {
61
-            if ($question_group instanceof \EE_Question_Group) {
62
-                foreach ($question_group->questions() as $question) {
63
-                    if ($question instanceof EE_Question) {
64
-                        $this->generateNewAnswer(
65
-                            $question,
66
-                            $target_registration,
67
-                            $answers
68
-                        );
69
-                    }
70
-                }
71
-            }
72
-        }
73
-        return true;
74
-    }
28
+	/**
29
+	 * @param EE_Registration $target_registration
30
+	 * @param EE_Registration $registration_to_copy
31
+	 * @return bool
32
+	 * @throws UnexpectedEntityException
33
+	 * @throws EntityNotFoundException
34
+	 * @throws RuntimeException
35
+	 * @throws EE_Error
36
+	 */
37
+	public function copyRegistrationDetails(
38
+		EE_Registration $target_registration,
39
+		EE_Registration $registration_to_copy
40
+	) {
41
+		// copy attendee
42
+		$target_registration->set_attendee_id($registration_to_copy->attendee_ID());
43
+		$target_registration->updateStatusBasedOnTotalPaid(false);
44
+		$target_registration->save();
45
+		// get answers to previous reg questions
46
+		$answers = $this->reindexAnswersByQuestionId($registration_to_copy->answers());
47
+		// get questions to new event reg form
48
+		$new_event = $target_registration->event();
49
+		$field_name = 'Event_Question_Group.'
50
+			. EEM_Event_Question_Group::instance()->fieldNameForContext(
51
+				$registration_to_copy->is_primary_registrant()
52
+			);
53
+		$question_groups = $new_event->question_groups([
54
+				[
55
+					'Event.EVT_ID' => $new_event->ID(),
56
+					$field_name => true,
57
+				],
58
+				'order_by' => ['QSG_order' => 'ASC'],
59
+			]);
60
+		foreach ($question_groups as $question_group) {
61
+			if ($question_group instanceof \EE_Question_Group) {
62
+				foreach ($question_group->questions() as $question) {
63
+					if ($question instanceof EE_Question) {
64
+						$this->generateNewAnswer(
65
+							$question,
66
+							$target_registration,
67
+							$answers
68
+						);
69
+					}
70
+				}
71
+			}
72
+		}
73
+		return true;
74
+	}
75 75
 
76 76
 
77
-    /**
78
-     * @param EE_Answer[] $answers
79
-     * @return array
80
-     * @throws EE_Error
81
-     */
82
-    protected function reindexAnswersByQuestionId(array $answers)
83
-    {
84
-        $reindexed_answers = array();
85
-        foreach ($answers as $answer) {
86
-            if ($answer instanceof EE_Answer) {
87
-                $reindexed_answers[ $answer->question_ID() ] = $answer->value();
88
-            }
89
-        }
90
-        return $reindexed_answers;
91
-    }
77
+	/**
78
+	 * @param EE_Answer[] $answers
79
+	 * @return array
80
+	 * @throws EE_Error
81
+	 */
82
+	protected function reindexAnswersByQuestionId(array $answers)
83
+	{
84
+		$reindexed_answers = array();
85
+		foreach ($answers as $answer) {
86
+			if ($answer instanceof EE_Answer) {
87
+				$reindexed_answers[ $answer->question_ID() ] = $answer->value();
88
+			}
89
+		}
90
+		return $reindexed_answers;
91
+	}
92 92
 
93 93
 
94
-    /**
95
-     * @param EE_Question      $question
96
-     * @param EE_Registration  $registration
97
-     * @param                  $previous_answers
98
-     * @return EE_Answer
99
-     * @throws UnexpectedEntityException
100
-     * @throws EE_Error
101
-     */
102
-    protected function generateNewAnswer(
103
-        EE_Question $question,
104
-        EE_Registration $registration,
105
-        $previous_answers
106
-    ) {
107
-        $old_answer_value = isset($previous_answers[ $question->ID() ])
108
-            ? $previous_answers[ $question->ID() ]
109
-            : '';
110
-        $new_answer = EE_Answer::new_instance(
111
-            array(
112
-                'QST_ID'    => $question->ID(),
113
-                'REG_ID'    => $registration->ID(),
114
-                'ANS_value' => $old_answer_value,
115
-            )
116
-        );
117
-        if (! $new_answer instanceof EE_Answer) {
118
-            throw new UnexpectedEntityException($new_answer, 'EE_Answer');
119
-        }
120
-        $new_answer->save();
121
-        return $new_answer;
122
-    }
94
+	/**
95
+	 * @param EE_Question      $question
96
+	 * @param EE_Registration  $registration
97
+	 * @param                  $previous_answers
98
+	 * @return EE_Answer
99
+	 * @throws UnexpectedEntityException
100
+	 * @throws EE_Error
101
+	 */
102
+	protected function generateNewAnswer(
103
+		EE_Question $question,
104
+		EE_Registration $registration,
105
+		$previous_answers
106
+	) {
107
+		$old_answer_value = isset($previous_answers[ $question->ID() ])
108
+			? $previous_answers[ $question->ID() ]
109
+			: '';
110
+		$new_answer = EE_Answer::new_instance(
111
+			array(
112
+				'QST_ID'    => $question->ID(),
113
+				'REG_ID'    => $registration->ID(),
114
+				'ANS_value' => $old_answer_value,
115
+			)
116
+		);
117
+		if (! $new_answer instanceof EE_Answer) {
118
+			throw new UnexpectedEntityException($new_answer, 'EE_Answer');
119
+		}
120
+		$new_answer->save();
121
+		return $new_answer;
122
+	}
123 123
 
124 124
 
125
-    /**
126
-     * @param EE_Registration $target_registration
127
-     * @param EE_Registration $registration_to_copy
128
-     * @return bool
129
-     * @throws RuntimeException
130
-     * @throws UnexpectedEntityException
131
-     * @throws EE_Error
132
-     */
133
-    public function copyPaymentDetails(
134
-        EE_Registration $target_registration,
135
-        EE_Registration $registration_to_copy
136
-    ) {
137
-        $save = false;
138
-        $previous_registration_payments = $registration_to_copy->registration_payments();
139
-        $new_registration_payment_total = 0;
140
-        $registration_to_copy_total = $registration_to_copy->paid();
141
-        foreach ($previous_registration_payments as $previous_registration_payment) {
142
-            if (
143
-                $previous_registration_payment instanceof EE_Registration_Payment
144
-                && $previous_registration_payment->payment() instanceof EE_Payment
145
-                && $previous_registration_payment->payment()->is_approved()
146
-            ) {
147
-                $payment_amount = $previous_registration_payment->amount();
148
-                $new_registration_payment = EE_Registration_Payment::new_instance(
149
-                    array(
150
-                        'REG_ID'     => $target_registration->ID(),
151
-                        'PAY_ID'     => $previous_registration_payment->payment()->ID(),
152
-                        'RPY_amount' => $payment_amount,
153
-                    )
154
-                );
155
-                if (! $new_registration_payment instanceof EE_Registration_Payment) {
156
-                    throw new UnexpectedEntityException($new_registration_payment, 'EE_Registration_Payment');
157
-                }
158
-                $new_registration_payment->save();
159
-                // if new reg payment is good, then set old reg payment amount to zero
160
-                $previous_registration_payment->set_amount(0);
161
-                $previous_registration_payment->save();
162
-                // now  increment/decrement payment amounts
163
-                $new_registration_payment_total += $payment_amount;
164
-                $registration_to_copy_total -= $payment_amount;
165
-                $save = true;
166
-            }
167
-        }
168
-        if ($save) {
169
-            $target_registration->set_paid($new_registration_payment_total);
170
-            $target_registration->save();
171
-            $registration_to_copy->set_paid($registration_to_copy_total);
172
-            $registration_to_copy->save();
173
-        }
174
-        return true;
175
-    }
125
+	/**
126
+	 * @param EE_Registration $target_registration
127
+	 * @param EE_Registration $registration_to_copy
128
+	 * @return bool
129
+	 * @throws RuntimeException
130
+	 * @throws UnexpectedEntityException
131
+	 * @throws EE_Error
132
+	 */
133
+	public function copyPaymentDetails(
134
+		EE_Registration $target_registration,
135
+		EE_Registration $registration_to_copy
136
+	) {
137
+		$save = false;
138
+		$previous_registration_payments = $registration_to_copy->registration_payments();
139
+		$new_registration_payment_total = 0;
140
+		$registration_to_copy_total = $registration_to_copy->paid();
141
+		foreach ($previous_registration_payments as $previous_registration_payment) {
142
+			if (
143
+				$previous_registration_payment instanceof EE_Registration_Payment
144
+				&& $previous_registration_payment->payment() instanceof EE_Payment
145
+				&& $previous_registration_payment->payment()->is_approved()
146
+			) {
147
+				$payment_amount = $previous_registration_payment->amount();
148
+				$new_registration_payment = EE_Registration_Payment::new_instance(
149
+					array(
150
+						'REG_ID'     => $target_registration->ID(),
151
+						'PAY_ID'     => $previous_registration_payment->payment()->ID(),
152
+						'RPY_amount' => $payment_amount,
153
+					)
154
+				);
155
+				if (! $new_registration_payment instanceof EE_Registration_Payment) {
156
+					throw new UnexpectedEntityException($new_registration_payment, 'EE_Registration_Payment');
157
+				}
158
+				$new_registration_payment->save();
159
+				// if new reg payment is good, then set old reg payment amount to zero
160
+				$previous_registration_payment->set_amount(0);
161
+				$previous_registration_payment->save();
162
+				// now  increment/decrement payment amounts
163
+				$new_registration_payment_total += $payment_amount;
164
+				$registration_to_copy_total -= $payment_amount;
165
+				$save = true;
166
+			}
167
+		}
168
+		if ($save) {
169
+			$target_registration->set_paid($new_registration_payment_total);
170
+			$target_registration->save();
171
+			$registration_to_copy->set_paid($registration_to_copy_total);
172
+			$registration_to_copy->save();
173
+		}
174
+		return true;
175
+	}
176 176
 }
Please login to merge, or discard this patch.
vendor/squizlabs/php_codesniffer/src/Util/Standards.php 2 patches
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -71,8 +71,8 @@  discard block
 block discarded – undo
71 71
      * @see    getInstalledStandardPaths()
72 72
      */
73 73
     public static function getInstalledStandardDetails(
74
-        $includeGeneric=false,
75
-        $standardsDir=''
74
+        $includeGeneric = false,
75
+        $standardsDir = ''
76 76
     ) {
77 77
         $rulesets = [];
78 78
 
@@ -156,8 +156,8 @@  discard block
 block discarded – undo
156 156
      * @see    isInstalledStandard()
157 157
      */
158 158
     public static function getInstalledStandards(
159
-        $includeGeneric=false,
160
-        $standardsDir=''
159
+        $includeGeneric = false,
160
+        $standardsDir = ''
161 161
     ) {
162 162
         $installedStandards = [];
163 163
 
Please login to merge, or discard this patch.
Indentation   +314 added lines, -314 removed lines patch added patch discarded remove patch
@@ -15,320 +15,320 @@
 block discarded – undo
15 15
 {
16 16
 
17 17
 
18
-    /**
19
-     * Get a list of paths where standards are installed.
20
-     *
21
-     * Unresolvable relative paths will be excluded from the results.
22
-     *
23
-     * @return array
24
-     */
25
-    public static function getInstalledStandardPaths()
26
-    {
27
-        $ds = DIRECTORY_SEPARATOR;
28
-
29
-        $installedPaths = [dirname(dirname(__DIR__)).$ds.'src'.$ds.'Standards'];
30
-        $configPaths    = Config::getConfigData('installed_paths');
31
-        if ($configPaths !== null) {
32
-            $installedPaths = array_merge($installedPaths, explode(',', $configPaths));
33
-        }
34
-
35
-        $resolvedInstalledPaths = [];
36
-        foreach ($installedPaths as $installedPath) {
37
-            if (substr($installedPath, 0, 1) === '.') {
38
-                $installedPath = Common::realPath(__DIR__.$ds.'..'.$ds.'..'.$ds.$installedPath);
39
-                if ($installedPath === false) {
40
-                    continue;
41
-                }
42
-            }
43
-
44
-            $resolvedInstalledPaths[] = $installedPath;
45
-        }
46
-
47
-        return $resolvedInstalledPaths;
48
-
49
-    }//end getInstalledStandardPaths()
50
-
51
-
52
-    /**
53
-     * Get the details of all coding standards installed.
54
-     *
55
-     * Coding standards are directories located in the
56
-     * CodeSniffer/Standards directory. Valid coding standards
57
-     * include a Sniffs subdirectory.
58
-     *
59
-     * The details returned for each standard are:
60
-     * - path:      the path to the coding standard's main directory
61
-     * - name:      the name of the coding standard, as sourced from the ruleset.xml file
62
-     * - namespace: the namespace used by the coding standard, as sourced from the ruleset.xml file
63
-     *
64
-     * If you only need the paths to the installed standards,
65
-     * use getInstalledStandardPaths() instead as it performs less work to
66
-     * retrieve coding standard names.
67
-     *
68
-     * @param boolean $includeGeneric If true, the special "Generic"
69
-     *                                coding standard will be included
70
-     *                                if installed.
71
-     * @param string  $standardsDir   A specific directory to look for standards
72
-     *                                in. If not specified, PHP_CodeSniffer will
73
-     *                                look in its default locations.
74
-     *
75
-     * @return array
76
-     * @see    getInstalledStandardPaths()
77
-     */
78
-    public static function getInstalledStandardDetails(
79
-        $includeGeneric=false,
80
-        $standardsDir=''
81
-    ) {
82
-        $rulesets = [];
83
-
84
-        if ($standardsDir === '') {
85
-            $installedPaths = self::getInstalledStandardPaths();
86
-        } else {
87
-            $installedPaths = [$standardsDir];
88
-        }
89
-
90
-        foreach ($installedPaths as $standardsDir) {
91
-            // Check if the installed dir is actually a standard itself.
92
-            $csFile = $standardsDir.'/ruleset.xml';
93
-            if (is_file($csFile) === true) {
94
-                $rulesets[] = $csFile;
95
-                continue;
96
-            }
97
-
98
-            if (is_dir($standardsDir) === false) {
99
-                continue;
100
-            }
101
-
102
-            $di = new \DirectoryIterator($standardsDir);
103
-            foreach ($di as $file) {
104
-                if ($file->isDir() === true && $file->isDot() === false) {
105
-                    $filename = $file->getFilename();
106
-
107
-                    // Ignore the special "Generic" standard.
108
-                    if ($includeGeneric === false && $filename === 'Generic') {
109
-                        continue;
110
-                    }
111
-
112
-                    // Valid coding standard dirs include a ruleset.
113
-                    $csFile = $file->getPathname().'/ruleset.xml';
114
-                    if (is_file($csFile) === true) {
115
-                        $rulesets[] = $csFile;
116
-                    }
117
-                }
118
-            }
119
-        }//end foreach
120
-
121
-        $installedStandards = [];
122
-
123
-        foreach ($rulesets as $rulesetPath) {
124
-            $ruleset = @simplexml_load_string(file_get_contents($rulesetPath));
125
-            if ($ruleset === false) {
126
-                continue;
127
-            }
128
-
129
-            $standardName = (string) $ruleset['name'];
130
-            $dirname      = basename(dirname($rulesetPath));
131
-
132
-            if (isset($ruleset['namespace']) === true) {
133
-                $namespace = (string) $ruleset['namespace'];
134
-            } else {
135
-                $namespace = $dirname;
136
-            }
137
-
138
-            $installedStandards[$dirname] = [
139
-                'path'      => dirname($rulesetPath),
140
-                'name'      => $standardName,
141
-                'namespace' => $namespace,
142
-            ];
143
-        }//end foreach
144
-
145
-        return $installedStandards;
146
-
147
-    }//end getInstalledStandardDetails()
148
-
149
-
150
-    /**
151
-     * Get a list of all coding standards installed.
152
-     *
153
-     * Coding standards are directories located in the
154
-     * CodeSniffer/Standards directory. Valid coding standards
155
-     * include a Sniffs subdirectory.
156
-     *
157
-     * @param boolean $includeGeneric If true, the special "Generic"
158
-     *                                coding standard will be included
159
-     *                                if installed.
160
-     * @param string  $standardsDir   A specific directory to look for standards
161
-     *                                in. If not specified, PHP_CodeSniffer will
162
-     *                                look in its default locations.
163
-     *
164
-     * @return array
165
-     * @see    isInstalledStandard()
166
-     */
167
-    public static function getInstalledStandards(
168
-        $includeGeneric=false,
169
-        $standardsDir=''
170
-    ) {
171
-        $installedStandards = [];
172
-
173
-        if ($standardsDir === '') {
174
-            $installedPaths = self::getInstalledStandardPaths();
175
-        } else {
176
-            $installedPaths = [$standardsDir];
177
-        }
178
-
179
-        foreach ($installedPaths as $standardsDir) {
180
-            // Check if the installed dir is actually a standard itself.
181
-            $csFile = $standardsDir.'/ruleset.xml';
182
-            if (is_file($csFile) === true) {
183
-                $installedStandards[] = basename($standardsDir);
184
-                continue;
185
-            }
186
-
187
-            if (is_dir($standardsDir) === false) {
188
-                // Doesn't exist.
189
-                continue;
190
-            }
191
-
192
-            $di = new \DirectoryIterator($standardsDir);
193
-            foreach ($di as $file) {
194
-                if ($file->isDir() === true && $file->isDot() === false) {
195
-                    $filename = $file->getFilename();
196
-
197
-                    // Ignore the special "Generic" standard.
198
-                    if ($includeGeneric === false && $filename === 'Generic') {
199
-                        continue;
200
-                    }
201
-
202
-                    // Valid coding standard dirs include a ruleset.
203
-                    $csFile = $file->getPathname().'/ruleset.xml';
204
-                    if (is_file($csFile) === true) {
205
-                        $installedStandards[] = $filename;
206
-                    }
207
-                }
208
-            }
209
-        }//end foreach
210
-
211
-        return $installedStandards;
212
-
213
-    }//end getInstalledStandards()
214
-
215
-
216
-    /**
217
-     * Determine if a standard is installed.
218
-     *
219
-     * Coding standards are directories located in the
220
-     * CodeSniffer/Standards directory. Valid coding standards
221
-     * include a ruleset.xml file.
222
-     *
223
-     * @param string $standard The name of the coding standard.
224
-     *
225
-     * @return boolean
226
-     * @see    getInstalledStandards()
227
-     */
228
-    public static function isInstalledStandard($standard)
229
-    {
230
-        $path = self::getInstalledStandardPath($standard);
231
-        if ($path !== null && strpos($path, 'ruleset.xml') !== false) {
232
-            return true;
233
-        } else {
234
-            // This could be a custom standard, installed outside our
235
-            // standards directory.
236
-            $standard = Common::realPath($standard);
237
-            if ($standard === false) {
238
-                return false;
239
-            }
240
-
241
-            // Might be an actual ruleset file itUtil.
242
-            // If it has an XML extension, let's at least try it.
243
-            if (is_file($standard) === true
244
-                && (substr(strtolower($standard), -4) === '.xml'
245
-                || substr(strtolower($standard), -9) === '.xml.dist')
246
-            ) {
247
-                return true;
248
-            }
249
-
250
-            // If it is a directory with a ruleset.xml file in it,
251
-            // it is a standard.
252
-            $ruleset = rtrim($standard, ' /\\').DIRECTORY_SEPARATOR.'ruleset.xml';
253
-            if (is_file($ruleset) === true) {
254
-                return true;
255
-            }
256
-        }//end if
257
-
258
-        return false;
259
-
260
-    }//end isInstalledStandard()
261
-
262
-
263
-    /**
264
-     * Return the path of an installed coding standard.
265
-     *
266
-     * Coding standards are directories located in the
267
-     * CodeSniffer/Standards directory. Valid coding standards
268
-     * include a ruleset.xml file.
269
-     *
270
-     * @param string $standard The name of the coding standard.
271
-     *
272
-     * @return string|null
273
-     */
274
-    public static function getInstalledStandardPath($standard)
275
-    {
276
-        if (strpos($standard, '.') !== false) {
277
-            return null;
278
-        }
279
-
280
-        $installedPaths = self::getInstalledStandardPaths();
281
-        foreach ($installedPaths as $installedPath) {
282
-            $standardPath = $installedPath.DIRECTORY_SEPARATOR.$standard;
283
-            if (file_exists($standardPath) === false) {
284
-                if (basename($installedPath) !== $standard) {
285
-                    continue;
286
-                }
287
-
288
-                $standardPath = $installedPath;
289
-            }
290
-
291
-            $path = Common::realpath($standardPath.DIRECTORY_SEPARATOR.'ruleset.xml');
292
-
293
-            if ($path !== false && is_file($path) === true) {
294
-                return $path;
295
-            } else if (Common::isPharFile($standardPath) === true) {
296
-                $path = Common::realpath($standardPath);
297
-                if ($path !== false) {
298
-                    return $path;
299
-                }
300
-            }
301
-        }//end foreach
302
-
303
-        return null;
304
-
305
-    }//end getInstalledStandardPath()
306
-
307
-
308
-    /**
309
-     * Prints out a list of installed coding standards.
310
-     *
311
-     * @return void
312
-     */
313
-    public static function printInstalledStandards()
314
-    {
315
-        $installedStandards = self::getInstalledStandards();
316
-        $numStandards       = count($installedStandards);
317
-
318
-        if ($numStandards === 0) {
319
-            echo 'No coding standards are installed.'.PHP_EOL;
320
-        } else {
321
-            $lastStandard = array_pop($installedStandards);
322
-            if ($numStandards === 1) {
323
-                echo "The only coding standard installed is $lastStandard".PHP_EOL;
324
-            } else {
325
-                $standardList  = implode(', ', $installedStandards);
326
-                $standardList .= ' and '.$lastStandard;
327
-                echo 'The installed coding standards are '.$standardList.PHP_EOL;
328
-            }
329
-        }
330
-
331
-    }//end printInstalledStandards()
18
+	/**
19
+	 * Get a list of paths where standards are installed.
20
+	 *
21
+	 * Unresolvable relative paths will be excluded from the results.
22
+	 *
23
+	 * @return array
24
+	 */
25
+	public static function getInstalledStandardPaths()
26
+	{
27
+		$ds = DIRECTORY_SEPARATOR;
28
+
29
+		$installedPaths = [dirname(dirname(__DIR__)).$ds.'src'.$ds.'Standards'];
30
+		$configPaths    = Config::getConfigData('installed_paths');
31
+		if ($configPaths !== null) {
32
+			$installedPaths = array_merge($installedPaths, explode(',', $configPaths));
33
+		}
34
+
35
+		$resolvedInstalledPaths = [];
36
+		foreach ($installedPaths as $installedPath) {
37
+			if (substr($installedPath, 0, 1) === '.') {
38
+				$installedPath = Common::realPath(__DIR__.$ds.'..'.$ds.'..'.$ds.$installedPath);
39
+				if ($installedPath === false) {
40
+					continue;
41
+				}
42
+			}
43
+
44
+			$resolvedInstalledPaths[] = $installedPath;
45
+		}
46
+
47
+		return $resolvedInstalledPaths;
48
+
49
+	}//end getInstalledStandardPaths()
50
+
51
+
52
+	/**
53
+	 * Get the details of all coding standards installed.
54
+	 *
55
+	 * Coding standards are directories located in the
56
+	 * CodeSniffer/Standards directory. Valid coding standards
57
+	 * include a Sniffs subdirectory.
58
+	 *
59
+	 * The details returned for each standard are:
60
+	 * - path:      the path to the coding standard's main directory
61
+	 * - name:      the name of the coding standard, as sourced from the ruleset.xml file
62
+	 * - namespace: the namespace used by the coding standard, as sourced from the ruleset.xml file
63
+	 *
64
+	 * If you only need the paths to the installed standards,
65
+	 * use getInstalledStandardPaths() instead as it performs less work to
66
+	 * retrieve coding standard names.
67
+	 *
68
+	 * @param boolean $includeGeneric If true, the special "Generic"
69
+	 *                                coding standard will be included
70
+	 *                                if installed.
71
+	 * @param string  $standardsDir   A specific directory to look for standards
72
+	 *                                in. If not specified, PHP_CodeSniffer will
73
+	 *                                look in its default locations.
74
+	 *
75
+	 * @return array
76
+	 * @see    getInstalledStandardPaths()
77
+	 */
78
+	public static function getInstalledStandardDetails(
79
+		$includeGeneric=false,
80
+		$standardsDir=''
81
+	) {
82
+		$rulesets = [];
83
+
84
+		if ($standardsDir === '') {
85
+			$installedPaths = self::getInstalledStandardPaths();
86
+		} else {
87
+			$installedPaths = [$standardsDir];
88
+		}
89
+
90
+		foreach ($installedPaths as $standardsDir) {
91
+			// Check if the installed dir is actually a standard itself.
92
+			$csFile = $standardsDir.'/ruleset.xml';
93
+			if (is_file($csFile) === true) {
94
+				$rulesets[] = $csFile;
95
+				continue;
96
+			}
97
+
98
+			if (is_dir($standardsDir) === false) {
99
+				continue;
100
+			}
101
+
102
+			$di = new \DirectoryIterator($standardsDir);
103
+			foreach ($di as $file) {
104
+				if ($file->isDir() === true && $file->isDot() === false) {
105
+					$filename = $file->getFilename();
106
+
107
+					// Ignore the special "Generic" standard.
108
+					if ($includeGeneric === false && $filename === 'Generic') {
109
+						continue;
110
+					}
111
+
112
+					// Valid coding standard dirs include a ruleset.
113
+					$csFile = $file->getPathname().'/ruleset.xml';
114
+					if (is_file($csFile) === true) {
115
+						$rulesets[] = $csFile;
116
+					}
117
+				}
118
+			}
119
+		}//end foreach
120
+
121
+		$installedStandards = [];
122
+
123
+		foreach ($rulesets as $rulesetPath) {
124
+			$ruleset = @simplexml_load_string(file_get_contents($rulesetPath));
125
+			if ($ruleset === false) {
126
+				continue;
127
+			}
128
+
129
+			$standardName = (string) $ruleset['name'];
130
+			$dirname      = basename(dirname($rulesetPath));
131
+
132
+			if (isset($ruleset['namespace']) === true) {
133
+				$namespace = (string) $ruleset['namespace'];
134
+			} else {
135
+				$namespace = $dirname;
136
+			}
137
+
138
+			$installedStandards[$dirname] = [
139
+				'path'      => dirname($rulesetPath),
140
+				'name'      => $standardName,
141
+				'namespace' => $namespace,
142
+			];
143
+		}//end foreach
144
+
145
+		return $installedStandards;
146
+
147
+	}//end getInstalledStandardDetails()
148
+
149
+
150
+	/**
151
+	 * Get a list of all coding standards installed.
152
+	 *
153
+	 * Coding standards are directories located in the
154
+	 * CodeSniffer/Standards directory. Valid coding standards
155
+	 * include a Sniffs subdirectory.
156
+	 *
157
+	 * @param boolean $includeGeneric If true, the special "Generic"
158
+	 *                                coding standard will be included
159
+	 *                                if installed.
160
+	 * @param string  $standardsDir   A specific directory to look for standards
161
+	 *                                in. If not specified, PHP_CodeSniffer will
162
+	 *                                look in its default locations.
163
+	 *
164
+	 * @return array
165
+	 * @see    isInstalledStandard()
166
+	 */
167
+	public static function getInstalledStandards(
168
+		$includeGeneric=false,
169
+		$standardsDir=''
170
+	) {
171
+		$installedStandards = [];
172
+
173
+		if ($standardsDir === '') {
174
+			$installedPaths = self::getInstalledStandardPaths();
175
+		} else {
176
+			$installedPaths = [$standardsDir];
177
+		}
178
+
179
+		foreach ($installedPaths as $standardsDir) {
180
+			// Check if the installed dir is actually a standard itself.
181
+			$csFile = $standardsDir.'/ruleset.xml';
182
+			if (is_file($csFile) === true) {
183
+				$installedStandards[] = basename($standardsDir);
184
+				continue;
185
+			}
186
+
187
+			if (is_dir($standardsDir) === false) {
188
+				// Doesn't exist.
189
+				continue;
190
+			}
191
+
192
+			$di = new \DirectoryIterator($standardsDir);
193
+			foreach ($di as $file) {
194
+				if ($file->isDir() === true && $file->isDot() === false) {
195
+					$filename = $file->getFilename();
196
+
197
+					// Ignore the special "Generic" standard.
198
+					if ($includeGeneric === false && $filename === 'Generic') {
199
+						continue;
200
+					}
201
+
202
+					// Valid coding standard dirs include a ruleset.
203
+					$csFile = $file->getPathname().'/ruleset.xml';
204
+					if (is_file($csFile) === true) {
205
+						$installedStandards[] = $filename;
206
+					}
207
+				}
208
+			}
209
+		}//end foreach
210
+
211
+		return $installedStandards;
212
+
213
+	}//end getInstalledStandards()
214
+
215
+
216
+	/**
217
+	 * Determine if a standard is installed.
218
+	 *
219
+	 * Coding standards are directories located in the
220
+	 * CodeSniffer/Standards directory. Valid coding standards
221
+	 * include a ruleset.xml file.
222
+	 *
223
+	 * @param string $standard The name of the coding standard.
224
+	 *
225
+	 * @return boolean
226
+	 * @see    getInstalledStandards()
227
+	 */
228
+	public static function isInstalledStandard($standard)
229
+	{
230
+		$path = self::getInstalledStandardPath($standard);
231
+		if ($path !== null && strpos($path, 'ruleset.xml') !== false) {
232
+			return true;
233
+		} else {
234
+			// This could be a custom standard, installed outside our
235
+			// standards directory.
236
+			$standard = Common::realPath($standard);
237
+			if ($standard === false) {
238
+				return false;
239
+			}
240
+
241
+			// Might be an actual ruleset file itUtil.
242
+			// If it has an XML extension, let's at least try it.
243
+			if (is_file($standard) === true
244
+				&& (substr(strtolower($standard), -4) === '.xml'
245
+				|| substr(strtolower($standard), -9) === '.xml.dist')
246
+			) {
247
+				return true;
248
+			}
249
+
250
+			// If it is a directory with a ruleset.xml file in it,
251
+			// it is a standard.
252
+			$ruleset = rtrim($standard, ' /\\').DIRECTORY_SEPARATOR.'ruleset.xml';
253
+			if (is_file($ruleset) === true) {
254
+				return true;
255
+			}
256
+		}//end if
257
+
258
+		return false;
259
+
260
+	}//end isInstalledStandard()
261
+
262
+
263
+	/**
264
+	 * Return the path of an installed coding standard.
265
+	 *
266
+	 * Coding standards are directories located in the
267
+	 * CodeSniffer/Standards directory. Valid coding standards
268
+	 * include a ruleset.xml file.
269
+	 *
270
+	 * @param string $standard The name of the coding standard.
271
+	 *
272
+	 * @return string|null
273
+	 */
274
+	public static function getInstalledStandardPath($standard)
275
+	{
276
+		if (strpos($standard, '.') !== false) {
277
+			return null;
278
+		}
279
+
280
+		$installedPaths = self::getInstalledStandardPaths();
281
+		foreach ($installedPaths as $installedPath) {
282
+			$standardPath = $installedPath.DIRECTORY_SEPARATOR.$standard;
283
+			if (file_exists($standardPath) === false) {
284
+				if (basename($installedPath) !== $standard) {
285
+					continue;
286
+				}
287
+
288
+				$standardPath = $installedPath;
289
+			}
290
+
291
+			$path = Common::realpath($standardPath.DIRECTORY_SEPARATOR.'ruleset.xml');
292
+
293
+			if ($path !== false && is_file($path) === true) {
294
+				return $path;
295
+			} else if (Common::isPharFile($standardPath) === true) {
296
+				$path = Common::realpath($standardPath);
297
+				if ($path !== false) {
298
+					return $path;
299
+				}
300
+			}
301
+		}//end foreach
302
+
303
+		return null;
304
+
305
+	}//end getInstalledStandardPath()
306
+
307
+
308
+	/**
309
+	 * Prints out a list of installed coding standards.
310
+	 *
311
+	 * @return void
312
+	 */
313
+	public static function printInstalledStandards()
314
+	{
315
+		$installedStandards = self::getInstalledStandards();
316
+		$numStandards       = count($installedStandards);
317
+
318
+		if ($numStandards === 0) {
319
+			echo 'No coding standards are installed.'.PHP_EOL;
320
+		} else {
321
+			$lastStandard = array_pop($installedStandards);
322
+			if ($numStandards === 1) {
323
+				echo "The only coding standard installed is $lastStandard".PHP_EOL;
324
+			} else {
325
+				$standardList  = implode(', ', $installedStandards);
326
+				$standardList .= ' and '.$lastStandard;
327
+				echo 'The installed coding standards are '.$standardList.PHP_EOL;
328
+			}
329
+		}
330
+
331
+	}//end printInstalledStandards()
332 332
 
333 333
 
334 334
 }//end class
Please login to merge, or discard this patch.
vendor/squizlabs/php_codesniffer/src/Util/Timing.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -48,7 +48,7 @@
 block discarded – undo
48 48
      *
49 49
      * @return void
50 50
      */
51
-    public static function printRunTime($force=false)
51
+    public static function printRunTime($force = false)
52 52
     {
53 53
         if ($force === false && self::$printed === true) {
54 54
             // A double call.
Please login to merge, or discard this patch.
Indentation   +69 added lines, -69 removed lines patch added patch discarded remove patch
@@ -12,75 +12,75 @@
 block discarded – undo
12 12
 class Timing
13 13
 {
14 14
 
15
-    /**
16
-     * The start time of the run.
17
-     *
18
-     * @var float
19
-     */
20
-    private static $startTime;
21
-
22
-    /**
23
-     * Used to make sure we only print the run time once per run.
24
-     *
25
-     * @var boolean
26
-     */
27
-    private static $printed = false;
28
-
29
-
30
-    /**
31
-     * Start recording time for the run.
32
-     *
33
-     * @return void
34
-     */
35
-    public static function startTiming()
36
-    {
37
-
38
-        self::$startTime = microtime(true);
39
-
40
-    }//end startTiming()
41
-
42
-
43
-    /**
44
-     * Print information about the run.
45
-     *
46
-     * @param boolean $force If TRUE, prints the output even if it has
47
-     *                       already been printed during the run.
48
-     *
49
-     * @return void
50
-     */
51
-    public static function printRunTime($force=false)
52
-    {
53
-        if ($force === false && self::$printed === true) {
54
-            // A double call.
55
-            return;
56
-        }
57
-
58
-        if (self::$startTime === null) {
59
-            // Timing was never started.
60
-            return;
61
-        }
62
-
63
-        $time = ((microtime(true) - self::$startTime) * 1000);
64
-
65
-        if ($time > 60000) {
66
-            $mins = floor($time / 60000);
67
-            $secs = round((fmod($time, 60000) / 1000), 2);
68
-            $time = $mins.' mins';
69
-            if ($secs !== 0) {
70
-                $time .= ", $secs secs";
71
-            }
72
-        } else if ($time > 1000) {
73
-            $time = round(($time / 1000), 2).' secs';
74
-        } else {
75
-            $time = round($time).'ms';
76
-        }
77
-
78
-        $mem = round((memory_get_peak_usage(true) / (1024 * 1024)), 2).'MB';
79
-        echo "Time: $time; Memory: $mem".PHP_EOL.PHP_EOL;
80
-
81
-        self::$printed = true;
82
-
83
-    }//end printRunTime()
15
+	/**
16
+	 * The start time of the run.
17
+	 *
18
+	 * @var float
19
+	 */
20
+	private static $startTime;
21
+
22
+	/**
23
+	 * Used to make sure we only print the run time once per run.
24
+	 *
25
+	 * @var boolean
26
+	 */
27
+	private static $printed = false;
28
+
29
+
30
+	/**
31
+	 * Start recording time for the run.
32
+	 *
33
+	 * @return void
34
+	 */
35
+	public static function startTiming()
36
+	{
37
+
38
+		self::$startTime = microtime(true);
39
+
40
+	}//end startTiming()
41
+
42
+
43
+	/**
44
+	 * Print information about the run.
45
+	 *
46
+	 * @param boolean $force If TRUE, prints the output even if it has
47
+	 *                       already been printed during the run.
48
+	 *
49
+	 * @return void
50
+	 */
51
+	public static function printRunTime($force=false)
52
+	{
53
+		if ($force === false && self::$printed === true) {
54
+			// A double call.
55
+			return;
56
+		}
57
+
58
+		if (self::$startTime === null) {
59
+			// Timing was never started.
60
+			return;
61
+		}
62
+
63
+		$time = ((microtime(true) - self::$startTime) * 1000);
64
+
65
+		if ($time > 60000) {
66
+			$mins = floor($time / 60000);
67
+			$secs = round((fmod($time, 60000) / 1000), 2);
68
+			$time = $mins.' mins';
69
+			if ($secs !== 0) {
70
+				$time .= ", $secs secs";
71
+			}
72
+		} else if ($time > 1000) {
73
+			$time = round(($time / 1000), 2).' secs';
74
+		} else {
75
+			$time = round($time).'ms';
76
+		}
77
+
78
+		$mem = round((memory_get_peak_usage(true) / (1024 * 1024)), 2).'MB';
79
+		echo "Time: $time; Memory: $mem".PHP_EOL.PHP_EOL;
80
+
81
+		self::$printed = true;
82
+
83
+	}//end printRunTime()
84 84
 
85 85
 
86 86
 }//end class
Please login to merge, or discard this patch.
vendor/squizlabs/php_codesniffer/src/Util/Common.php 3 patches
Switch Indentation   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -407,19 +407,19 @@
 block discarded – undo
407 407
         } else {
408 408
             $lowerVarType = strtolower($varType);
409 409
             switch ($lowerVarType) {
410
-            case 'bool':
411
-            case 'boolean':
412
-                return 'boolean';
413
-            case 'double':
414
-            case 'real':
415
-            case 'float':
416
-                return 'float';
417
-            case 'int':
418
-            case 'integer':
419
-                return 'integer';
420
-            case 'array()':
421
-            case 'array':
422
-                return 'array';
410
+            	case 'bool':
411
+            	case 'boolean':
412
+                	return 'boolean';
413
+            	case 'double':
414
+            	case 'real':
415
+            	case 'float':
416
+                	return 'float';
417
+            	case 'int':
418
+            	case 'integer':
419
+                	return 'integer';
420
+            	case 'array()':
421
+            	case 'array':
422
+                	return 'array';
423 423
             }//end switch
424 424
 
425 425
             if (strpos($lowerVarType, 'array(') !== false) {
Please login to merge, or discard this patch.
Indentation   +553 added lines, -553 removed lines patch added patch discarded remove patch
@@ -12,559 +12,559 @@
 block discarded – undo
12 12
 class Common
13 13
 {
14 14
 
15
-    /**
16
-     * An array of variable types for param/var we will check.
17
-     *
18
-     * @var string[]
19
-     */
20
-    public static $allowedTypes = [
21
-        'array',
22
-        'boolean',
23
-        'float',
24
-        'integer',
25
-        'mixed',
26
-        'object',
27
-        'string',
28
-        'resource',
29
-        'callable',
30
-    ];
31
-
32
-
33
-    /**
34
-     * Return TRUE if the path is a PHAR file.
35
-     *
36
-     * @param string $path The path to use.
37
-     *
38
-     * @return mixed
39
-     */
40
-    public static function isPharFile($path)
41
-    {
42
-        if (strpos($path, 'phar://') === 0) {
43
-            return true;
44
-        }
45
-
46
-        return false;
47
-
48
-    }//end isPharFile()
49
-
50
-
51
-    /**
52
-     * Checks if a file is readable.
53
-     *
54
-     * Addresses PHP bug related to reading files from network drives on Windows.
55
-     * e.g. when using WSL2.
56
-     *
57
-     * @param string $path The path to the file.
58
-     *
59
-     * @return boolean
60
-     */
61
-    public static function isReadable($path)
62
-    {
63
-        if (@is_readable($path) === true) {
64
-            return true;
65
-        }
66
-
67
-        if (@file_exists($path) === true && @is_file($path) === true) {
68
-            $f = @fopen($path, 'rb');
69
-            if (fclose($f) === true) {
70
-                return true;
71
-            }
72
-        }
73
-
74
-        return false;
75
-
76
-    }//end isReadable()
77
-
78
-
79
-    /**
80
-     * CodeSniffer alternative for realpath.
81
-     *
82
-     * Allows for PHAR support.
83
-     *
84
-     * @param string $path The path to use.
85
-     *
86
-     * @return mixed
87
-     */
88
-    public static function realpath($path)
89
-    {
90
-        // Support the path replacement of ~ with the user's home directory.
91
-        if (substr($path, 0, 2) === '~/') {
92
-            $homeDir = getenv('HOME');
93
-            if ($homeDir !== false) {
94
-                $path = $homeDir.substr($path, 1);
95
-            }
96
-        }
97
-
98
-        // Check for process substitution.
99
-        if (strpos($path, '/dev/fd') === 0) {
100
-            return str_replace('/dev/fd', 'php://fd', $path);
101
-        }
102
-
103
-        // No extra work needed if this is not a phar file.
104
-        if (self::isPharFile($path) === false) {
105
-            return realpath($path);
106
-        }
107
-
108
-        // Before trying to break down the file path,
109
-        // check if it exists first because it will mostly not
110
-        // change after running the below code.
111
-        if (file_exists($path) === true) {
112
-            return $path;
113
-        }
114
-
115
-        $phar  = \Phar::running(false);
116
-        $extra = str_replace('phar://'.$phar, '', $path);
117
-        $path  = realpath($phar);
118
-        if ($path === false) {
119
-            return false;
120
-        }
121
-
122
-        $path = 'phar://'.$path.$extra;
123
-        if (file_exists($path) === true) {
124
-            return $path;
125
-        }
126
-
127
-        return false;
128
-
129
-    }//end realpath()
130
-
131
-
132
-    /**
133
-     * Removes a base path from the front of a file path.
134
-     *
135
-     * @param string $path     The path of the file.
136
-     * @param string $basepath The base path to remove. This should not end
137
-     *                         with a directory separator.
138
-     *
139
-     * @return string
140
-     */
141
-    public static function stripBasepath($path, $basepath)
142
-    {
143
-        if (empty($basepath) === true) {
144
-            return $path;
145
-        }
146
-
147
-        $basepathLen = strlen($basepath);
148
-        if (substr($path, 0, $basepathLen) === $basepath) {
149
-            $path = substr($path, $basepathLen);
150
-        }
151
-
152
-        $path = ltrim($path, DIRECTORY_SEPARATOR);
153
-        if ($path === '') {
154
-            $path = '.';
155
-        }
156
-
157
-        return $path;
158
-
159
-    }//end stripBasepath()
160
-
161
-
162
-    /**
163
-     * Detects the EOL character being used in a string.
164
-     *
165
-     * @param string $contents The contents to check.
166
-     *
167
-     * @return string
168
-     */
169
-    public static function detectLineEndings($contents)
170
-    {
171
-        if (preg_match("/\r\n?|\n/", $contents, $matches) !== 1) {
172
-            // Assume there are no newlines.
173
-            $eolChar = "\n";
174
-        } else {
175
-            $eolChar = $matches[0];
176
-        }
177
-
178
-        return $eolChar;
179
-
180
-    }//end detectLineEndings()
181
-
182
-
183
-    /**
184
-     * Check if STDIN is a TTY.
185
-     *
186
-     * @return boolean
187
-     */
188
-    public static function isStdinATTY()
189
-    {
190
-        // The check is slow (especially calling `tty`) so we static
191
-        // cache the result.
192
-        static $isTTY = null;
193
-
194
-        if ($isTTY !== null) {
195
-            return $isTTY;
196
-        }
197
-
198
-        if (defined('STDIN') === false) {
199
-            return false;
200
-        }
201
-
202
-        // If PHP has the POSIX extensions we will use them.
203
-        if (function_exists('posix_isatty') === true) {
204
-            $isTTY = (posix_isatty(STDIN) === true);
205
-            return $isTTY;
206
-        }
207
-
208
-        // Next try is detecting whether we have `tty` installed and use that.
209
-        if (defined('PHP_WINDOWS_VERSION_PLATFORM') === true) {
210
-            $devnull = 'NUL';
211
-            $which   = 'where';
212
-        } else {
213
-            $devnull = '/dev/null';
214
-            $which   = 'which';
215
-        }
216
-
217
-        $tty = trim(shell_exec("$which tty 2> $devnull"));
218
-        if (empty($tty) === false) {
219
-            exec("tty -s 2> $devnull", $output, $returnValue);
220
-            $isTTY = ($returnValue === 0);
221
-            return $isTTY;
222
-        }
223
-
224
-        // Finally we will use fstat.  The solution borrowed from
225
-        // https://stackoverflow.com/questions/11327367/detect-if-a-php-script-is-being-run-interactively-or-not
226
-        // This doesn't work on Mingw/Cygwin/... using Mintty but they
227
-        // have `tty` installed.
228
-        $type = [
229
-            'S_IFMT'  => 0170000,
230
-            'S_IFIFO' => 0010000,
231
-        ];
232
-
233
-        $stat  = fstat(STDIN);
234
-        $mode  = ($stat['mode'] & $type['S_IFMT']);
235
-        $isTTY = ($mode !== $type['S_IFIFO']);
236
-
237
-        return $isTTY;
238
-
239
-    }//end isStdinATTY()
240
-
241
-
242
-    /**
243
-     * Escape a path to a system command.
244
-     *
245
-     * @param string $cmd The path to the system command.
246
-     *
247
-     * @return string
248
-     */
249
-    public static function escapeshellcmd($cmd)
250
-    {
251
-        $cmd = escapeshellcmd($cmd);
252
-
253
-        if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
254
-            // Spaces are not escaped by escapeshellcmd on Windows, but need to be
255
-            // for the command to be able to execute.
256
-            $cmd = preg_replace('`(?<!^) `', '^ ', $cmd);
257
-        }
258
-
259
-        return $cmd;
260
-
261
-    }//end escapeshellcmd()
262
-
263
-
264
-    /**
265
-     * Prepares token content for output to screen.
266
-     *
267
-     * Replaces invisible characters so they are visible. On non-Windows
268
-     * operating systems it will also colour the invisible characters.
269
-     *
270
-     * @param string   $content The content to prepare.
271
-     * @param string[] $exclude A list of characters to leave invisible.
272
-     *                          Can contain \r, \n, \t and a space.
273
-     *
274
-     * @return string
275
-     */
276
-    public static function prepareForOutput($content, $exclude=[])
277
-    {
278
-        if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
279
-            if (in_array("\r", $exclude, true) === false) {
280
-                $content = str_replace("\r", '\r', $content);
281
-            }
282
-
283
-            if (in_array("\n", $exclude, true) === false) {
284
-                $content = str_replace("\n", '\n', $content);
285
-            }
286
-
287
-            if (in_array("\t", $exclude, true) === false) {
288
-                $content = str_replace("\t", '\t', $content);
289
-            }
290
-        } else {
291
-            if (in_array("\r", $exclude, true) === false) {
292
-                $content = str_replace("\r", "\033[30;1m\\r\033[0m", $content);
293
-            }
294
-
295
-            if (in_array("\n", $exclude, true) === false) {
296
-                $content = str_replace("\n", "\033[30;1m\\n\033[0m", $content);
297
-            }
298
-
299
-            if (in_array("\t", $exclude, true) === false) {
300
-                $content = str_replace("\t", "\033[30;1m\\t\033[0m", $content);
301
-            }
302
-
303
-            if (in_array(' ', $exclude, true) === false) {
304
-                $content = str_replace(' ', "\033[30;1m·\033[0m", $content);
305
-            }
306
-        }//end if
307
-
308
-        return $content;
309
-
310
-    }//end prepareForOutput()
311
-
312
-
313
-    /**
314
-     * Returns true if the specified string is in the camel caps format.
315
-     *
316
-     * @param string  $string      The string the verify.
317
-     * @param boolean $classFormat If true, check to see if the string is in the
318
-     *                             class format. Class format strings must start
319
-     *                             with a capital letter and contain no
320
-     *                             underscores.
321
-     * @param boolean $public      If true, the first character in the string
322
-     *                             must be an a-z character. If false, the
323
-     *                             character must be an underscore. This
324
-     *                             argument is only applicable if $classFormat
325
-     *                             is false.
326
-     * @param boolean $strict      If true, the string must not have two capital
327
-     *                             letters next to each other. If false, a
328
-     *                             relaxed camel caps policy is used to allow
329
-     *                             for acronyms.
330
-     *
331
-     * @return boolean
332
-     */
333
-    public static function isCamelCaps(
334
-        $string,
335
-        $classFormat=false,
336
-        $public=true,
337
-        $strict=true
338
-    ) {
339
-        // Check the first character first.
340
-        if ($classFormat === false) {
341
-            $legalFirstChar = '';
342
-            if ($public === false) {
343
-                $legalFirstChar = '[_]';
344
-            }
345
-
346
-            if ($strict === false) {
347
-                // Can either start with a lowercase letter, or multiple uppercase
348
-                // in a row, representing an acronym.
349
-                $legalFirstChar .= '([A-Z]{2,}|[a-z])';
350
-            } else {
351
-                $legalFirstChar .= '[a-z]';
352
-            }
353
-        } else {
354
-            $legalFirstChar = '[A-Z]';
355
-        }
356
-
357
-        if (preg_match("/^$legalFirstChar/", $string) === 0) {
358
-            return false;
359
-        }
360
-
361
-        // Check that the name only contains legal characters.
362
-        $legalChars = 'a-zA-Z0-9';
363
-        if (preg_match("|[^$legalChars]|", substr($string, 1)) > 0) {
364
-            return false;
365
-        }
366
-
367
-        if ($strict === true) {
368
-            // Check that there are not two capital letters next to each other.
369
-            $length          = strlen($string);
370
-            $lastCharWasCaps = $classFormat;
371
-
372
-            for ($i = 1; $i < $length; $i++) {
373
-                $ascii = ord($string[$i]);
374
-                if ($ascii >= 48 && $ascii <= 57) {
375
-                    // The character is a number, so it cant be a capital.
376
-                    $isCaps = false;
377
-                } else {
378
-                    if (strtoupper($string[$i]) === $string[$i]) {
379
-                        $isCaps = true;
380
-                    } else {
381
-                        $isCaps = false;
382
-                    }
383
-                }
384
-
385
-                if ($isCaps === true && $lastCharWasCaps === true) {
386
-                    return false;
387
-                }
388
-
389
-                $lastCharWasCaps = $isCaps;
390
-            }
391
-        }//end if
392
-
393
-        return true;
394
-
395
-    }//end isCamelCaps()
396
-
397
-
398
-    /**
399
-     * Returns true if the specified string is in the underscore caps format.
400
-     *
401
-     * @param string $string The string to verify.
402
-     *
403
-     * @return boolean
404
-     */
405
-    public static function isUnderscoreName($string)
406
-    {
407
-        // If there are space in the name, it can't be valid.
408
-        if (strpos($string, ' ') !== false) {
409
-            return false;
410
-        }
411
-
412
-        $validName = true;
413
-        $nameBits  = explode('_', $string);
414
-
415
-        if (preg_match('|^[A-Z]|', $string) === 0) {
416
-            // Name does not begin with a capital letter.
417
-            $validName = false;
418
-        } else {
419
-            foreach ($nameBits as $bit) {
420
-                if ($bit === '') {
421
-                    continue;
422
-                }
423
-
424
-                if ($bit[0] !== strtoupper($bit[0])) {
425
-                    $validName = false;
426
-                    break;
427
-                }
428
-            }
429
-        }
430
-
431
-        return $validName;
432
-
433
-    }//end isUnderscoreName()
434
-
435
-
436
-    /**
437
-     * Returns a valid variable type for param/var tags.
438
-     *
439
-     * If type is not one of the standard types, it must be a custom type.
440
-     * Returns the correct type name suggestion if type name is invalid.
441
-     *
442
-     * @param string $varType The variable type to process.
443
-     *
444
-     * @return string
445
-     */
446
-    public static function suggestType($varType)
447
-    {
448
-        if ($varType === '') {
449
-            return '';
450
-        }
451
-
452
-        if (in_array($varType, self::$allowedTypes, true) === true) {
453
-            return $varType;
454
-        } else {
455
-            $lowerVarType = strtolower($varType);
456
-            switch ($lowerVarType) {
457
-            case 'bool':
458
-            case 'boolean':
459
-                return 'boolean';
460
-            case 'double':
461
-            case 'real':
462
-            case 'float':
463
-                return 'float';
464
-            case 'int':
465
-            case 'integer':
466
-                return 'integer';
467
-            case 'array()':
468
-            case 'array':
469
-                return 'array';
470
-            }//end switch
471
-
472
-            if (strpos($lowerVarType, 'array(') !== false) {
473
-                // Valid array declaration:
474
-                // array, array(type), array(type1 => type2).
475
-                $matches = [];
476
-                $pattern = '/^array\(\s*([^\s^=^>]*)(\s*=>\s*(.*))?\s*\)/i';
477
-                if (preg_match($pattern, $varType, $matches) !== 0) {
478
-                    $type1 = '';
479
-                    if (isset($matches[1]) === true) {
480
-                        $type1 = $matches[1];
481
-                    }
482
-
483
-                    $type2 = '';
484
-                    if (isset($matches[3]) === true) {
485
-                        $type2 = $matches[3];
486
-                    }
487
-
488
-                    $type1 = self::suggestType($type1);
489
-                    $type2 = self::suggestType($type2);
490
-                    if ($type2 !== '') {
491
-                        $type2 = ' => '.$type2;
492
-                    }
493
-
494
-                    return "array($type1$type2)";
495
-                } else {
496
-                    return 'array';
497
-                }//end if
498
-            } else if (in_array($lowerVarType, self::$allowedTypes, true) === true) {
499
-                // A valid type, but not lower cased.
500
-                return $lowerVarType;
501
-            } else {
502
-                // Must be a custom type name.
503
-                return $varType;
504
-            }//end if
505
-        }//end if
506
-
507
-    }//end suggestType()
508
-
509
-
510
-    /**
511
-     * Given a sniff class name, returns the code for the sniff.
512
-     *
513
-     * @param string $sniffClass The fully qualified sniff class name.
514
-     *
515
-     * @return string
516
-     */
517
-    public static function getSniffCode($sniffClass)
518
-    {
519
-        $parts = explode('\\', $sniffClass);
520
-        $sniff = array_pop($parts);
521
-
522
-        if (substr($sniff, -5) === 'Sniff') {
523
-            // Sniff class name.
524
-            $sniff = substr($sniff, 0, -5);
525
-        } else {
526
-            // Unit test class name.
527
-            $sniff = substr($sniff, 0, -8);
528
-        }
529
-
530
-        $category = array_pop($parts);
531
-        $sniffDir = array_pop($parts);
532
-        $standard = array_pop($parts);
533
-        $code     = $standard.'.'.$category.'.'.$sniff;
534
-        return $code;
535
-
536
-    }//end getSniffCode()
537
-
538
-
539
-    /**
540
-     * Removes project-specific information from a sniff class name.
541
-     *
542
-     * @param string $sniffClass The fully qualified sniff class name.
543
-     *
544
-     * @return string
545
-     */
546
-    public static function cleanSniffClass($sniffClass)
547
-    {
548
-        $newName = strtolower($sniffClass);
549
-
550
-        $sniffPos = strrpos($newName, '\sniffs\\');
551
-        if ($sniffPos === false) {
552
-            // Nothing we can do as it isn't in a known format.
553
-            return $newName;
554
-        }
555
-
556
-        $end   = (strlen($newName) - $sniffPos + 1);
557
-        $start = strrpos($newName, '\\', ($end * -1));
558
-
559
-        if ($start === false) {
560
-            // Nothing needs to be cleaned.
561
-            return $newName;
562
-        }
563
-
564
-        $newName = substr($newName, ($start + 1));
565
-        return $newName;
566
-
567
-    }//end cleanSniffClass()
15
+	/**
16
+	 * An array of variable types for param/var we will check.
17
+	 *
18
+	 * @var string[]
19
+	 */
20
+	public static $allowedTypes = [
21
+		'array',
22
+		'boolean',
23
+		'float',
24
+		'integer',
25
+		'mixed',
26
+		'object',
27
+		'string',
28
+		'resource',
29
+		'callable',
30
+	];
31
+
32
+
33
+	/**
34
+	 * Return TRUE if the path is a PHAR file.
35
+	 *
36
+	 * @param string $path The path to use.
37
+	 *
38
+	 * @return mixed
39
+	 */
40
+	public static function isPharFile($path)
41
+	{
42
+		if (strpos($path, 'phar://') === 0) {
43
+			return true;
44
+		}
45
+
46
+		return false;
47
+
48
+	}//end isPharFile()
49
+
50
+
51
+	/**
52
+	 * Checks if a file is readable.
53
+	 *
54
+	 * Addresses PHP bug related to reading files from network drives on Windows.
55
+	 * e.g. when using WSL2.
56
+	 *
57
+	 * @param string $path The path to the file.
58
+	 *
59
+	 * @return boolean
60
+	 */
61
+	public static function isReadable($path)
62
+	{
63
+		if (@is_readable($path) === true) {
64
+			return true;
65
+		}
66
+
67
+		if (@file_exists($path) === true && @is_file($path) === true) {
68
+			$f = @fopen($path, 'rb');
69
+			if (fclose($f) === true) {
70
+				return true;
71
+			}
72
+		}
73
+
74
+		return false;
75
+
76
+	}//end isReadable()
77
+
78
+
79
+	/**
80
+	 * CodeSniffer alternative for realpath.
81
+	 *
82
+	 * Allows for PHAR support.
83
+	 *
84
+	 * @param string $path The path to use.
85
+	 *
86
+	 * @return mixed
87
+	 */
88
+	public static function realpath($path)
89
+	{
90
+		// Support the path replacement of ~ with the user's home directory.
91
+		if (substr($path, 0, 2) === '~/') {
92
+			$homeDir = getenv('HOME');
93
+			if ($homeDir !== false) {
94
+				$path = $homeDir.substr($path, 1);
95
+			}
96
+		}
97
+
98
+		// Check for process substitution.
99
+		if (strpos($path, '/dev/fd') === 0) {
100
+			return str_replace('/dev/fd', 'php://fd', $path);
101
+		}
102
+
103
+		// No extra work needed if this is not a phar file.
104
+		if (self::isPharFile($path) === false) {
105
+			return realpath($path);
106
+		}
107
+
108
+		// Before trying to break down the file path,
109
+		// check if it exists first because it will mostly not
110
+		// change after running the below code.
111
+		if (file_exists($path) === true) {
112
+			return $path;
113
+		}
114
+
115
+		$phar  = \Phar::running(false);
116
+		$extra = str_replace('phar://'.$phar, '', $path);
117
+		$path  = realpath($phar);
118
+		if ($path === false) {
119
+			return false;
120
+		}
121
+
122
+		$path = 'phar://'.$path.$extra;
123
+		if (file_exists($path) === true) {
124
+			return $path;
125
+		}
126
+
127
+		return false;
128
+
129
+	}//end realpath()
130
+
131
+
132
+	/**
133
+	 * Removes a base path from the front of a file path.
134
+	 *
135
+	 * @param string $path     The path of the file.
136
+	 * @param string $basepath The base path to remove. This should not end
137
+	 *                         with a directory separator.
138
+	 *
139
+	 * @return string
140
+	 */
141
+	public static function stripBasepath($path, $basepath)
142
+	{
143
+		if (empty($basepath) === true) {
144
+			return $path;
145
+		}
146
+
147
+		$basepathLen = strlen($basepath);
148
+		if (substr($path, 0, $basepathLen) === $basepath) {
149
+			$path = substr($path, $basepathLen);
150
+		}
151
+
152
+		$path = ltrim($path, DIRECTORY_SEPARATOR);
153
+		if ($path === '') {
154
+			$path = '.';
155
+		}
156
+
157
+		return $path;
158
+
159
+	}//end stripBasepath()
160
+
161
+
162
+	/**
163
+	 * Detects the EOL character being used in a string.
164
+	 *
165
+	 * @param string $contents The contents to check.
166
+	 *
167
+	 * @return string
168
+	 */
169
+	public static function detectLineEndings($contents)
170
+	{
171
+		if (preg_match("/\r\n?|\n/", $contents, $matches) !== 1) {
172
+			// Assume there are no newlines.
173
+			$eolChar = "\n";
174
+		} else {
175
+			$eolChar = $matches[0];
176
+		}
177
+
178
+		return $eolChar;
179
+
180
+	}//end detectLineEndings()
181
+
182
+
183
+	/**
184
+	 * Check if STDIN is a TTY.
185
+	 *
186
+	 * @return boolean
187
+	 */
188
+	public static function isStdinATTY()
189
+	{
190
+		// The check is slow (especially calling `tty`) so we static
191
+		// cache the result.
192
+		static $isTTY = null;
193
+
194
+		if ($isTTY !== null) {
195
+			return $isTTY;
196
+		}
197
+
198
+		if (defined('STDIN') === false) {
199
+			return false;
200
+		}
201
+
202
+		// If PHP has the POSIX extensions we will use them.
203
+		if (function_exists('posix_isatty') === true) {
204
+			$isTTY = (posix_isatty(STDIN) === true);
205
+			return $isTTY;
206
+		}
207
+
208
+		// Next try is detecting whether we have `tty` installed and use that.
209
+		if (defined('PHP_WINDOWS_VERSION_PLATFORM') === true) {
210
+			$devnull = 'NUL';
211
+			$which   = 'where';
212
+		} else {
213
+			$devnull = '/dev/null';
214
+			$which   = 'which';
215
+		}
216
+
217
+		$tty = trim(shell_exec("$which tty 2> $devnull"));
218
+		if (empty($tty) === false) {
219
+			exec("tty -s 2> $devnull", $output, $returnValue);
220
+			$isTTY = ($returnValue === 0);
221
+			return $isTTY;
222
+		}
223
+
224
+		// Finally we will use fstat.  The solution borrowed from
225
+		// https://stackoverflow.com/questions/11327367/detect-if-a-php-script-is-being-run-interactively-or-not
226
+		// This doesn't work on Mingw/Cygwin/... using Mintty but they
227
+		// have `tty` installed.
228
+		$type = [
229
+			'S_IFMT'  => 0170000,
230
+			'S_IFIFO' => 0010000,
231
+		];
232
+
233
+		$stat  = fstat(STDIN);
234
+		$mode  = ($stat['mode'] & $type['S_IFMT']);
235
+		$isTTY = ($mode !== $type['S_IFIFO']);
236
+
237
+		return $isTTY;
238
+
239
+	}//end isStdinATTY()
240
+
241
+
242
+	/**
243
+	 * Escape a path to a system command.
244
+	 *
245
+	 * @param string $cmd The path to the system command.
246
+	 *
247
+	 * @return string
248
+	 */
249
+	public static function escapeshellcmd($cmd)
250
+	{
251
+		$cmd = escapeshellcmd($cmd);
252
+
253
+		if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
254
+			// Spaces are not escaped by escapeshellcmd on Windows, but need to be
255
+			// for the command to be able to execute.
256
+			$cmd = preg_replace('`(?<!^) `', '^ ', $cmd);
257
+		}
258
+
259
+		return $cmd;
260
+
261
+	}//end escapeshellcmd()
262
+
263
+
264
+	/**
265
+	 * Prepares token content for output to screen.
266
+	 *
267
+	 * Replaces invisible characters so they are visible. On non-Windows
268
+	 * operating systems it will also colour the invisible characters.
269
+	 *
270
+	 * @param string   $content The content to prepare.
271
+	 * @param string[] $exclude A list of characters to leave invisible.
272
+	 *                          Can contain \r, \n, \t and a space.
273
+	 *
274
+	 * @return string
275
+	 */
276
+	public static function prepareForOutput($content, $exclude=[])
277
+	{
278
+		if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
279
+			if (in_array("\r", $exclude, true) === false) {
280
+				$content = str_replace("\r", '\r', $content);
281
+			}
282
+
283
+			if (in_array("\n", $exclude, true) === false) {
284
+				$content = str_replace("\n", '\n', $content);
285
+			}
286
+
287
+			if (in_array("\t", $exclude, true) === false) {
288
+				$content = str_replace("\t", '\t', $content);
289
+			}
290
+		} else {
291
+			if (in_array("\r", $exclude, true) === false) {
292
+				$content = str_replace("\r", "\033[30;1m\\r\033[0m", $content);
293
+			}
294
+
295
+			if (in_array("\n", $exclude, true) === false) {
296
+				$content = str_replace("\n", "\033[30;1m\\n\033[0m", $content);
297
+			}
298
+
299
+			if (in_array("\t", $exclude, true) === false) {
300
+				$content = str_replace("\t", "\033[30;1m\\t\033[0m", $content);
301
+			}
302
+
303
+			if (in_array(' ', $exclude, true) === false) {
304
+				$content = str_replace(' ', "\033[30;1m·\033[0m", $content);
305
+			}
306
+		}//end if
307
+
308
+		return $content;
309
+
310
+	}//end prepareForOutput()
311
+
312
+
313
+	/**
314
+	 * Returns true if the specified string is in the camel caps format.
315
+	 *
316
+	 * @param string  $string      The string the verify.
317
+	 * @param boolean $classFormat If true, check to see if the string is in the
318
+	 *                             class format. Class format strings must start
319
+	 *                             with a capital letter and contain no
320
+	 *                             underscores.
321
+	 * @param boolean $public      If true, the first character in the string
322
+	 *                             must be an a-z character. If false, the
323
+	 *                             character must be an underscore. This
324
+	 *                             argument is only applicable if $classFormat
325
+	 *                             is false.
326
+	 * @param boolean $strict      If true, the string must not have two capital
327
+	 *                             letters next to each other. If false, a
328
+	 *                             relaxed camel caps policy is used to allow
329
+	 *                             for acronyms.
330
+	 *
331
+	 * @return boolean
332
+	 */
333
+	public static function isCamelCaps(
334
+		$string,
335
+		$classFormat=false,
336
+		$public=true,
337
+		$strict=true
338
+	) {
339
+		// Check the first character first.
340
+		if ($classFormat === false) {
341
+			$legalFirstChar = '';
342
+			if ($public === false) {
343
+				$legalFirstChar = '[_]';
344
+			}
345
+
346
+			if ($strict === false) {
347
+				// Can either start with a lowercase letter, or multiple uppercase
348
+				// in a row, representing an acronym.
349
+				$legalFirstChar .= '([A-Z]{2,}|[a-z])';
350
+			} else {
351
+				$legalFirstChar .= '[a-z]';
352
+			}
353
+		} else {
354
+			$legalFirstChar = '[A-Z]';
355
+		}
356
+
357
+		if (preg_match("/^$legalFirstChar/", $string) === 0) {
358
+			return false;
359
+		}
360
+
361
+		// Check that the name only contains legal characters.
362
+		$legalChars = 'a-zA-Z0-9';
363
+		if (preg_match("|[^$legalChars]|", substr($string, 1)) > 0) {
364
+			return false;
365
+		}
366
+
367
+		if ($strict === true) {
368
+			// Check that there are not two capital letters next to each other.
369
+			$length          = strlen($string);
370
+			$lastCharWasCaps = $classFormat;
371
+
372
+			for ($i = 1; $i < $length; $i++) {
373
+				$ascii = ord($string[$i]);
374
+				if ($ascii >= 48 && $ascii <= 57) {
375
+					// The character is a number, so it cant be a capital.
376
+					$isCaps = false;
377
+				} else {
378
+					if (strtoupper($string[$i]) === $string[$i]) {
379
+						$isCaps = true;
380
+					} else {
381
+						$isCaps = false;
382
+					}
383
+				}
384
+
385
+				if ($isCaps === true && $lastCharWasCaps === true) {
386
+					return false;
387
+				}
388
+
389
+				$lastCharWasCaps = $isCaps;
390
+			}
391
+		}//end if
392
+
393
+		return true;
394
+
395
+	}//end isCamelCaps()
396
+
397
+
398
+	/**
399
+	 * Returns true if the specified string is in the underscore caps format.
400
+	 *
401
+	 * @param string $string The string to verify.
402
+	 *
403
+	 * @return boolean
404
+	 */
405
+	public static function isUnderscoreName($string)
406
+	{
407
+		// If there are space in the name, it can't be valid.
408
+		if (strpos($string, ' ') !== false) {
409
+			return false;
410
+		}
411
+
412
+		$validName = true;
413
+		$nameBits  = explode('_', $string);
414
+
415
+		if (preg_match('|^[A-Z]|', $string) === 0) {
416
+			// Name does not begin with a capital letter.
417
+			$validName = false;
418
+		} else {
419
+			foreach ($nameBits as $bit) {
420
+				if ($bit === '') {
421
+					continue;
422
+				}
423
+
424
+				if ($bit[0] !== strtoupper($bit[0])) {
425
+					$validName = false;
426
+					break;
427
+				}
428
+			}
429
+		}
430
+
431
+		return $validName;
432
+
433
+	}//end isUnderscoreName()
434
+
435
+
436
+	/**
437
+	 * Returns a valid variable type for param/var tags.
438
+	 *
439
+	 * If type is not one of the standard types, it must be a custom type.
440
+	 * Returns the correct type name suggestion if type name is invalid.
441
+	 *
442
+	 * @param string $varType The variable type to process.
443
+	 *
444
+	 * @return string
445
+	 */
446
+	public static function suggestType($varType)
447
+	{
448
+		if ($varType === '') {
449
+			return '';
450
+		}
451
+
452
+		if (in_array($varType, self::$allowedTypes, true) === true) {
453
+			return $varType;
454
+		} else {
455
+			$lowerVarType = strtolower($varType);
456
+			switch ($lowerVarType) {
457
+			case 'bool':
458
+			case 'boolean':
459
+				return 'boolean';
460
+			case 'double':
461
+			case 'real':
462
+			case 'float':
463
+				return 'float';
464
+			case 'int':
465
+			case 'integer':
466
+				return 'integer';
467
+			case 'array()':
468
+			case 'array':
469
+				return 'array';
470
+			}//end switch
471
+
472
+			if (strpos($lowerVarType, 'array(') !== false) {
473
+				// Valid array declaration:
474
+				// array, array(type), array(type1 => type2).
475
+				$matches = [];
476
+				$pattern = '/^array\(\s*([^\s^=^>]*)(\s*=>\s*(.*))?\s*\)/i';
477
+				if (preg_match($pattern, $varType, $matches) !== 0) {
478
+					$type1 = '';
479
+					if (isset($matches[1]) === true) {
480
+						$type1 = $matches[1];
481
+					}
482
+
483
+					$type2 = '';
484
+					if (isset($matches[3]) === true) {
485
+						$type2 = $matches[3];
486
+					}
487
+
488
+					$type1 = self::suggestType($type1);
489
+					$type2 = self::suggestType($type2);
490
+					if ($type2 !== '') {
491
+						$type2 = ' => '.$type2;
492
+					}
493
+
494
+					return "array($type1$type2)";
495
+				} else {
496
+					return 'array';
497
+				}//end if
498
+			} else if (in_array($lowerVarType, self::$allowedTypes, true) === true) {
499
+				// A valid type, but not lower cased.
500
+				return $lowerVarType;
501
+			} else {
502
+				// Must be a custom type name.
503
+				return $varType;
504
+			}//end if
505
+		}//end if
506
+
507
+	}//end suggestType()
508
+
509
+
510
+	/**
511
+	 * Given a sniff class name, returns the code for the sniff.
512
+	 *
513
+	 * @param string $sniffClass The fully qualified sniff class name.
514
+	 *
515
+	 * @return string
516
+	 */
517
+	public static function getSniffCode($sniffClass)
518
+	{
519
+		$parts = explode('\\', $sniffClass);
520
+		$sniff = array_pop($parts);
521
+
522
+		if (substr($sniff, -5) === 'Sniff') {
523
+			// Sniff class name.
524
+			$sniff = substr($sniff, 0, -5);
525
+		} else {
526
+			// Unit test class name.
527
+			$sniff = substr($sniff, 0, -8);
528
+		}
529
+
530
+		$category = array_pop($parts);
531
+		$sniffDir = array_pop($parts);
532
+		$standard = array_pop($parts);
533
+		$code     = $standard.'.'.$category.'.'.$sniff;
534
+		return $code;
535
+
536
+	}//end getSniffCode()
537
+
538
+
539
+	/**
540
+	 * Removes project-specific information from a sniff class name.
541
+	 *
542
+	 * @param string $sniffClass The fully qualified sniff class name.
543
+	 *
544
+	 * @return string
545
+	 */
546
+	public static function cleanSniffClass($sniffClass)
547
+	{
548
+		$newName = strtolower($sniffClass);
549
+
550
+		$sniffPos = strrpos($newName, '\sniffs\\');
551
+		if ($sniffPos === false) {
552
+			// Nothing we can do as it isn't in a known format.
553
+			return $newName;
554
+		}
555
+
556
+		$end   = (strlen($newName) - $sniffPos + 1);
557
+		$start = strrpos($newName, '\\', ($end * -1));
558
+
559
+		if ($start === false) {
560
+			// Nothing needs to be cleaned.
561
+			return $newName;
562
+		}
563
+
564
+		$newName = substr($newName, ($start + 1));
565
+		return $newName;
566
+
567
+	}//end cleanSniffClass()
568 568
 
569 569
 
570 570
 }//end class
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -273,7 +273,7 @@  discard block
 block discarded – undo
273 273
      *
274 274
      * @return string
275 275
      */
276
-    public static function prepareForOutput($content, $exclude=[])
276
+    public static function prepareForOutput($content, $exclude = [])
277 277
     {
278 278
         if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
279 279
             if (in_array("\r", $exclude, true) === false) {
@@ -332,9 +332,9 @@  discard block
 block discarded – undo
332 332
      */
333 333
     public static function isCamelCaps(
334 334
         $string,
335
-        $classFormat=false,
336
-        $public=true,
337
-        $strict=true
335
+        $classFormat = false,
336
+        $public = true,
337
+        $strict = true
338 338
     ) {
339 339
         // Check the first character first.
340 340
         if ($classFormat === false) {
Please login to merge, or discard this patch.
src/Standards/Squiz/Tests/NamingConventions/ValidFunctionNameUnitTest.php 1 patch
Indentation   +39 added lines, -39 removed lines patch added patch discarded remove patch
@@ -15,45 +15,45 @@
 block discarded – undo
15 15
 {
16 16
 
17 17
 
18
-    /**
19
-     * Returns the lines where errors should occur.
20
-     *
21
-     * The key of the array should represent the line number and the value
22
-     * should represent the number of errors that should occur on that line.
23
-     *
24
-     * @return array<int, int>
25
-     */
26
-    public function getErrorList()
27
-    {
28
-        return [
29
-            4  => 1,
30
-            5  => 1,
31
-            6  => 1,
32
-            7  => 1,
33
-            8  => 1,
34
-            9  => 1,
35
-            11 => 1,
36
-            12 => 1,
37
-            13 => 1,
38
-            14 => 2,
39
-        ];
40
-
41
-    }//end getErrorList()
42
-
43
-
44
-    /**
45
-     * Returns the lines where warnings should occur.
46
-     *
47
-     * The key of the array should represent the line number and the value
48
-     * should represent the number of warnings that should occur on that line.
49
-     *
50
-     * @return array<int, int>
51
-     */
52
-    public function getWarningList()
53
-    {
54
-        return [];
55
-
56
-    }//end getWarningList()
18
+	/**
19
+	 * Returns the lines where errors should occur.
20
+	 *
21
+	 * The key of the array should represent the line number and the value
22
+	 * should represent the number of errors that should occur on that line.
23
+	 *
24
+	 * @return array<int, int>
25
+	 */
26
+	public function getErrorList()
27
+	{
28
+		return [
29
+			4  => 1,
30
+			5  => 1,
31
+			6  => 1,
32
+			7  => 1,
33
+			8  => 1,
34
+			9  => 1,
35
+			11 => 1,
36
+			12 => 1,
37
+			13 => 1,
38
+			14 => 2,
39
+		];
40
+
41
+	}//end getErrorList()
42
+
43
+
44
+	/**
45
+	 * Returns the lines where warnings should occur.
46
+	 *
47
+	 * The key of the array should represent the line number and the value
48
+	 * should represent the number of warnings that should occur on that line.
49
+	 *
50
+	 * @return array<int, int>
51
+	 */
52
+	public function getWarningList()
53
+	{
54
+		return [];
55
+
56
+	}//end getWarningList()
57 57
 
58 58
 
59 59
 }//end class
Please login to merge, or discard this patch.
src/Standards/Squiz/Tests/NamingConventions/ValidFunctionNameUnitTest.inc 2 patches
Indentation   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -21,7 +21,7 @@
 block discarded – undo
21 21
 /* @codingStandardsIgnoreStart */
22 22
 class MyClass
23 23
 {
24
-    /* @codingStandardsIgnoreEnd */
25
-    public function __construct() {}
24
+	/* @codingStandardsIgnoreEnd */
25
+	public function __construct() {}
26 26
 }
27 27
 ?>
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@
 block discarded – undo
16 16
 function XMLParser() {}
17 17
 function xmlParser() {}
18 18
 
19
-echo preg_replace_callback('~-([a-z])~', function ($match) { return strtoupper($match[1]); }, 'hello-world');
19
+echo preg_replace_callback('~-([a-z])~', function($match) { return strtoupper($match[1]); }, 'hello-world');
20 20
 
21 21
 /* @codingStandardsIgnoreStart */
22 22
 class MyClass
Please login to merge, or discard this patch.
squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EvalUnitTest.php 1 patch
Indentation   +31 added lines, -31 removed lines patch added patch discarded remove patch
@@ -15,37 +15,37 @@
 block discarded – undo
15 15
 {
16 16
 
17 17
 
18
-    /**
19
-     * Returns the lines where errors should occur.
20
-     *
21
-     * The key of the array should represent the line number and the value
22
-     * should represent the number of errors that should occur on that line.
23
-     *
24
-     * @return array<int, int>
25
-     */
26
-    public function getErrorList()
27
-    {
28
-        return [];
29
-
30
-    }//end getErrorList()
31
-
32
-
33
-    /**
34
-     * Returns the lines where warnings should occur.
35
-     *
36
-     * The key of the array should represent the line number and the value
37
-     * should represent the number of warnings that should occur on that line.
38
-     *
39
-     * @return array<int, int>
40
-     */
41
-    public function getWarningList()
42
-    {
43
-        return [
44
-            2 => 1,
45
-            4 => 1,
46
-        ];
47
-
48
-    }//end getWarningList()
18
+	/**
19
+	 * Returns the lines where errors should occur.
20
+	 *
21
+	 * The key of the array should represent the line number and the value
22
+	 * should represent the number of errors that should occur on that line.
23
+	 *
24
+	 * @return array<int, int>
25
+	 */
26
+	public function getErrorList()
27
+	{
28
+		return [];
29
+
30
+	}//end getErrorList()
31
+
32
+
33
+	/**
34
+	 * Returns the lines where warnings should occur.
35
+	 *
36
+	 * The key of the array should represent the line number and the value
37
+	 * should represent the number of warnings that should occur on that line.
38
+	 *
39
+	 * @return array<int, int>
40
+	 */
41
+	public function getWarningList()
42
+	{
43
+		return [
44
+			2 => 1,
45
+			4 => 1,
46
+		];
47
+
48
+	}//end getWarningList()
49 49
 
50 50
 
51 51
 }//end class
Please login to merge, or discard this patch.
src/Standards/Squiz/Tests/PHP/NonExecutableCodeUnitTest.1.inc 4 patches
Switch Indentation   +34 added lines, -34 removed lines patch added patch discarded remove patch
@@ -49,13 +49,13 @@  discard block
 block discarded – undo
49 49
 }
50 50
 
51 51
 switch ($lowerVarType) {
52
-    case 'bool':
53
-        return 'boolean';
54
-        echo 'hi';
55
-    case 'double':
56
-    case 'real':
57
-        return 'float';
58
-        echo 'hi';
52
+    	case 'bool':
53
+        	return 'boolean';
54
+        	echo 'hi';
55
+    	case 'double':
56
+    	case 'real':
57
+        	return 'float';
58
+        	echo 'hi';
59 59
 }
60 60
 
61 61
 while ($line=fgets($fp,2*1024*1024))
@@ -66,14 +66,14 @@  discard block
 block discarded – undo
66 66
 }
67 67
 
68 68
 switch ($var) {
69
-    case 1:
70
-        echo '1';
71
-    break;
72
-
73
-        echo 'non-executable';
74
-    default:
75
-        echo '2';
76
-    break;
69
+    	case 1:
70
+        	echo '1';
71
+    	break;
72
+
73
+        	echo 'non-executable';
74
+    	default:
75
+        	echo '2';
76
+    	break;
77 77
 }
78 78
 
79 79
 switch (0) {
@@ -124,13 +124,13 @@  discard block
 block discarded – undo
124 124
 }//end myFunction()
125 125
 
126 126
 switch ($var) {
127
-    case 1: {
128
-        return '1';
129
-    }
127
+    	case 1: {
128
+        	return '1';
129
+    	}
130 130
 
131
-    case 2: {
132
-        return '2';
133
-    }
131
+    	case 2: {
132
+        	return '2';
133
+    	}
134 134
 }
135 135
 
136 136
 defined('FOO') or die('error');
@@ -202,12 +202,12 @@  discard block
 block discarded – undo
202 202
 }
203 203
 
204 204
 switch ($foo) {
205
-    case 'foo':
206
-        if ($foo)
207
-            return $foo;
208
-        return $bar;
209
-    default:
210
-        return $bar;
205
+    	case 'foo':
206
+        	if ($foo)
207
+            	return $foo;
208
+        	return $bar;
209
+    	default:
210
+        	return $bar;
211 211
 }
212 212
 
213 213
 function foo()
@@ -216,13 +216,13 @@  discard block
 block discarded – undo
216 216
 }
217 217
 
218 218
 switch (true) {
219
-    case 1:
220
-        return foo(
221
-            function () {
222
-                $foo = $bar;  // when this is removed it works ok
223
-                return false; // from here on it reports unreachable
224
-            }
225
-        );
219
+    	case 1:
220
+        	return foo(
221
+            	function () {
222
+                	$foo = $bar;  // when this is removed it works ok
223
+                	return false; // from here on it reports unreachable
224
+            	}
225
+        	);
226 226
 }
227 227
 
228 228
 for($i=0,$j=50; $i<100; $i++) {
Please login to merge, or discard this patch.
Braces   +16 added lines, -12 removed lines patch added patch discarded remove patch
@@ -60,8 +60,9 @@  discard block
 block discarded – undo
60 60
 
61 61
 while ($line=fgets($fp,2*1024*1024))
62 62
 {
63
-    if (!preg_match("/^<([a-z0-9_]+)/",$line,$matches))
64
-    continue;
63
+    if (!preg_match("/^<([a-z0-9_]+)/",$line,$matches)) {
64
+        continue;
65
+    }
65 66
     print $line;
66 67
 }
67 68
 
@@ -183,19 +184,21 @@  discard block
 block discarded – undo
183 184
 function test(){
184 185
     switch($a) {
185 186
         case 1:
186
-            if (empty($b))
187
-                return 0;
187
+            if (empty($b)) {
188
+                            return 0;
189
+            }
188 190
             break;
189 191
         default:
190 192
             return 2;
191 193
     }
192 194
 
193
-    if (empty($a))
194
-        echo '1';
195
-    elseif ($empty($b))
196
-        return 0;
197
-    else
198
-        return 1;
195
+    if (empty($a)) {
196
+            echo '1';
197
+    } elseif ($empty($b)) {
198
+            return 0;
199
+    } else {
200
+            return 1;
201
+    }
199 202
 
200 203
     echo "oi";
201 204
     return 1;
@@ -203,8 +206,9 @@  discard block
 block discarded – undo
203 206
 
204 207
 switch ($foo) {
205 208
     case 'foo':
206
-        if ($foo)
207
-            return $foo;
209
+        if ($foo) {
210
+                    return $foo;
211
+        }
208 212
         return $bar;
209 213
     default:
210 214
         return $bar;
Please login to merge, or discard this patch.
Indentation   +196 added lines, -196 removed lines patch added patch discarded remove patch
@@ -1,110 +1,110 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 switch ($var) {
3
-    case '1':
4
-        return;
5
-        echo 'hi';
6
-
7
-    case '2':
8
-    case '3':
9
-        if ($something === true) {
10
-            break;
11
-            echo 'hi';
12
-        }
13
-    break;
14
-    default:
15
-        return;
16
-
17
-        if ($something === true) {
18
-            break;
19
-            echo 'hi';
20
-        }
3
+	case '1':
4
+		return;
5
+		echo 'hi';
6
+
7
+	case '2':
8
+	case '3':
9
+		if ($something === true) {
10
+			break;
11
+			echo 'hi';
12
+		}
13
+	break;
14
+	default:
15
+		return;
16
+
17
+		if ($something === true) {
18
+			break;
19
+			echo 'hi';
20
+		}
21 21
 
22 22
 }
23 23
 
24 24
 function myFunction($var)
25 25
 {
26
-    if ($something === TRUE) {
27
-        return;
28
-        echo 'hi';
29
-    }
26
+	if ($something === TRUE) {
27
+		return;
28
+		echo 'hi';
29
+	}
30 30
 
31
-    return;
32
-    return FALSE;
33
-    if ($something === TRUE) {
34
-        return TRUE;
35
-    }
31
+	return;
32
+	return FALSE;
33
+	if ($something === TRUE) {
34
+		return TRUE;
35
+	}
36 36
 
37 37
 }//end myFunction()
38 38
 
39 39
 foreach ($vars as $var) {
40
-    if ($something === TRUE) {
41
-        continue;
42
-        break;
43
-    } else {
44
-        continue;
45
-        echo 'hi';
46
-    }
47
-
48
-    echo $var."\n";
40
+	if ($something === TRUE) {
41
+		continue;
42
+		break;
43
+	} else {
44
+		continue;
45
+		echo 'hi';
46
+	}
47
+
48
+	echo $var."\n";
49 49
 }
50 50
 
51 51
 switch ($lowerVarType) {
52
-    case 'bool':
53
-        return 'boolean';
54
-        echo 'hi';
55
-    case 'double':
56
-    case 'real':
57
-        return 'float';
58
-        echo 'hi';
52
+	case 'bool':
53
+		return 'boolean';
54
+		echo 'hi';
55
+	case 'double':
56
+	case 'real':
57
+		return 'float';
58
+		echo 'hi';
59 59
 }
60 60
 
61 61
 while ($line=fgets($fp,2*1024*1024))
62 62
 {
63
-    if (!preg_match("/^<([a-z0-9_]+)/",$line,$matches))
64
-    continue;
65
-    print $line;
63
+	if (!preg_match("/^<([a-z0-9_]+)/",$line,$matches))
64
+	continue;
65
+	print $line;
66 66
 }
67 67
 
68 68
 switch ($var) {
69
-    case 1:
70
-        echo '1';
71
-    break;
72
-
73
-        echo 'non-executable';
74
-    default:
75
-        echo '2';
76
-    break;
69
+	case 1:
70
+		echo '1';
71
+	break;
72
+
73
+		echo 'non-executable';
74
+	default:
75
+		echo '2';
76
+	break;
77 77
 }
78 78
 
79 79
 switch (0) {
80
-    case 1:
81
-        return '1';
80
+	case 1:
81
+		return '1';
82 82
 
83
-        echo 'non-executable';
84
-    default:
85
-    break;
83
+		echo 'non-executable';
84
+	default:
85
+	break;
86 86
 }
87 87
 
88 88
 function myFunction()
89 89
 {
90
-    if ($something === TRUE) {
91
-        return;
92
-    }
90
+	if ($something === TRUE) {
91
+		return;
92
+	}
93 93
 
94
-    echo 'foo';
95
-    return;
94
+	echo 'foo';
95
+	return;
96 96
 
97 97
 }//end myFunction()
98 98
 
99 99
 function myFunction()
100 100
 {
101
-    return uksort(
102
-        $array,
103
-        function() {
104
-            return mt_rand(-1, 1);
105
-            echo 'done';
106
-        }
107
-    );
101
+	return uksort(
102
+		$array,
103
+		function() {
104
+			return mt_rand(-1, 1);
105
+			echo 'done';
106
+		}
107
+	);
108 108
 
109 109
 }//end myFunction()
110 110
 
@@ -115,119 +115,119 @@  discard block
 block discarded – undo
115 115
 
116 116
 function myFunction()
117 117
 {
118
-    if ($something === TRUE) {
119
-        throw new Exception('exception');
120
-    }
118
+	if ($something === TRUE) {
119
+		throw new Exception('exception');
120
+	}
121 121
 
122
-    throw new Exception('exception');
123
-    echo 'non-executable';
122
+	throw new Exception('exception');
123
+	echo 'non-executable';
124 124
 }//end myFunction()
125 125
 
126 126
 switch ($var) {
127
-    case 1: {
128
-        return '1';
129
-    }
127
+	case 1: {
128
+		return '1';
129
+	}
130 130
 
131
-    case 2: {
132
-        return '2';
133
-    }
131
+	case 2: {
132
+		return '2';
133
+	}
134 134
 }
135 135
 
136 136
 defined('FOO') or die('error');
137 137
 defined('FOO') || die('error');
138 138
 interface myInterface {
139
-    function myFunc();
139
+	function myFunc();
140 140
 }
141 141
 echo 'hello';
142 142
 
143 143
 function foo($color) {
144
-    switch ($color) {
145
-        case 'red':
146
-            return 'yuck';
147
-            break;
148
-        case 'blue':
149
-            return 'yuck';
150
-            break;
151
-        case 'orange':
152
-            return 'yay';
153
-            break;
154
-        default:
155
-            return 'boring';
156
-    }
144
+	switch ($color) {
145
+		case 'red':
146
+			return 'yuck';
147
+			break;
148
+		case 'blue':
149
+			return 'yuck';
150
+			break;
151
+		case 'orange':
152
+			return 'yay';
153
+			break;
154
+		default:
155
+			return 'boring';
156
+	}
157 157
 }
158 158
 
159 159
 function returnOverMultipleLines($color) {
160
-    switch ($color) {
161
-        case 'red':
162
-            return someFunction(
163
-                'multiple',
164
-                'arguments'
165
-            );
166
-            echo $foo;
167
-        default:
168
-            return array(
169
-                'multiline',
170
-                'array'
171
-            );
172
-    }
160
+	switch ($color) {
161
+		case 'red':
162
+			return someFunction(
163
+				'multiple',
164
+				'arguments'
165
+			);
166
+			echo $foo;
167
+		default:
168
+			return array(
169
+				'multiline',
170
+				'array'
171
+			);
172
+	}
173 173
 }
174 174
 
175 175
 function test() {
176
-    return array(
177
-                'multiline',
178
-                'array'
179
-            );
180
-    echo $foo;
176
+	return array(
177
+				'multiline',
178
+				'array'
179
+			);
180
+	echo $foo;
181 181
 }
182 182
 
183 183
 function test(){
184
-    switch($a) {
185
-        case 1:
186
-            if (empty($b))
187
-                return 0;
188
-            break;
189
-        default:
190
-            return 2;
191
-    }
192
-
193
-    if (empty($a))
194
-        echo '1';
195
-    elseif ($empty($b))
196
-        return 0;
197
-    else
198
-        return 1;
199
-
200
-    echo "oi";
201
-    return 1;
184
+	switch($a) {
185
+		case 1:
186
+			if (empty($b))
187
+				return 0;
188
+			break;
189
+		default:
190
+			return 2;
191
+	}
192
+
193
+	if (empty($a))
194
+		echo '1';
195
+	elseif ($empty($b))
196
+		return 0;
197
+	else
198
+		return 1;
199
+
200
+	echo "oi";
201
+	return 1;
202 202
 }
203 203
 
204 204
 switch ($foo) {
205
-    case 'foo':
206
-        if ($foo)
207
-            return $foo;
208
-        return $bar;
209
-    default:
210
-        return $bar;
205
+	case 'foo':
206
+		if ($foo)
207
+			return $foo;
208
+		return $bar;
209
+	default:
210
+		return $bar;
211 211
 }
212 212
 
213 213
 function foo()
214 214
 {
215
-    return $bar->{$action . 'JsonAction'}();
215
+	return $bar->{$action . 'JsonAction'}();
216 216
 }
217 217
 
218 218
 switch (true) {
219
-    case 1:
220
-        return foo(
221
-            function () {
222
-                $foo = $bar;  // when this is removed it works ok
223
-                return false; // from here on it reports unreachable
224
-            }
225
-        );
219
+	case 1:
220
+		return foo(
221
+			function () {
222
+				$foo = $bar;  // when this is removed it works ok
223
+				return false; // from here on it reports unreachable
224
+			}
225
+		);
226 226
 }
227 227
 
228 228
 for($i=0,$j=50; $i<100; $i++) {
229 229
   while($j--) {
230
-    if($j==17) {
230
+	if($j==17) {
231 231
 		goto end;
232 232
 		echo 'unreachable';
233 233
 	}
@@ -235,24 +235,24 @@  discard block
 block discarded – undo
235 235
 }
236 236
 
237 237
 switch ($var) {
238
-    case '1':
239
-        goto end;
240
-        echo 'hi';
241
-
242
-    case '2':
243
-    case '3':
244
-        if ($something === true) {
245
-            goto end;
246
-            echo 'hi';
247
-        }
248
-    break;
249
-    default:
250
-        goto end;
251
-
252
-        if ($something === true) {
253
-            goto end;
254
-            echo 'hi';
255
-        }
238
+	case '1':
239
+		goto end;
240
+		echo 'hi';
241
+
242
+	case '2':
243
+	case '3':
244
+		if ($something === true) {
245
+			goto end;
246
+			echo 'hi';
247
+		}
248
+	break;
249
+	default:
250
+		goto end;
251
+
252
+		if ($something === true) {
253
+			goto end;
254
+			echo 'hi';
255
+		}
256 256
 }
257 257
 
258 258
 end:
@@ -261,37 +261,37 @@  discard block
 block discarded – undo
261 261
 // Issue 2512.
262 262
 class TestAlternativeControlStructures {
263 263
 
264
-    public function alternative_switch_in_function( $var ) {
265
-
266
-        switch ( $var ) :
267
-            case 'value1':
268
-                do_something();
269
-                break;
270
-
271
-            default:
272
-            case 'value2':
273
-                do_something_else();
274
-                break;
275
-        endswitch;
276
-    }
277
-
278
-    public function various_alternative_control_structures() {
279
-        $_while = 1;
280
-
281
-        for ( $a = 0; $a++ < 1; ) :
282
-            foreach ( [ 1 ] as $b ) :
283
-                while ( $_while-- ) :
284
-                    if ( 1 ) :
285
-                        switch ( 1 ) :
286
-                            default:
287
-                                echo 'yay, we made it!';
288
-                                break;
289
-                        endswitch;
290
-                    endif;
291
-                endwhile;
292
-            endforeach;
293
-        endfor;
294
-    }
264
+	public function alternative_switch_in_function( $var ) {
265
+
266
+		switch ( $var ) :
267
+			case 'value1':
268
+				do_something();
269
+				break;
270
+
271
+			default:
272
+			case 'value2':
273
+				do_something_else();
274
+				break;
275
+		endswitch;
276
+	}
277
+
278
+	public function various_alternative_control_structures() {
279
+		$_while = 1;
280
+
281
+		for ( $a = 0; $a++ < 1; ) :
282
+			foreach ( [ 1 ] as $b ) :
283
+				while ( $_while-- ) :
284
+					if ( 1 ) :
285
+						switch ( 1 ) :
286
+							default:
287
+								echo 'yay, we made it!';
288
+								break;
289
+						endswitch;
290
+					endif;
291
+				endwhile;
292
+			endforeach;
293
+		endfor;
294
+	}
295 295
 }
296 296
 
297 297
 $var_after_class_in_global_space = 1;
Please login to merge, or discard this patch.
Spacing   +18 added lines, -18 removed lines patch added patch discarded remove patch
@@ -58,9 +58,9 @@  discard block
 block discarded – undo
58 58
         echo 'hi';
59 59
 }
60 60
 
61
-while ($line=fgets($fp,2*1024*1024))
61
+while ($line = fgets($fp, 2 * 1024 * 1024))
62 62
 {
63
-    if (!preg_match("/^<([a-z0-9_]+)/",$line,$matches))
63
+    if ( ! preg_match("/^<([a-z0-9_]+)/", $line, $matches))
64 64
     continue;
65 65
     print $line;
66 66
 }
@@ -109,7 +109,7 @@  discard block
 block discarded – undo
109 109
 }//end myFunction()
110 110
 
111 111
 public static function thisCausesAnError() {
112
-return new foo(function() {return $foo;}
112
+return new foo(function() {return $foo; }
113 113
 );
114 114
 }
115 115
 
@@ -180,8 +180,8 @@  discard block
 block discarded – undo
180 180
     echo $foo;
181 181
 }
182 182
 
183
-function test(){
184
-    switch($a) {
183
+function test() {
184
+    switch ($a) {
185 185
         case 1:
186 186
             if (empty($b))
187 187
                 return 0;
@@ -212,22 +212,22 @@  discard block
 block discarded – undo
212 212
 
213 213
 function foo()
214 214
 {
215
-    return $bar->{$action . 'JsonAction'}();
215
+    return $bar->{$action.'JsonAction'}();
216 216
 }
217 217
 
218 218
 switch (true) {
219 219
     case 1:
220 220
         return foo(
221
-            function () {
222
-                $foo = $bar;  // when this is removed it works ok
221
+            function() {
222
+                $foo = $bar; // when this is removed it works ok
223 223
                 return false; // from here on it reports unreachable
224 224
             }
225 225
         );
226 226
 }
227 227
 
228
-for($i=0,$j=50; $i<100; $i++) {
229
-  while($j--) {
230
-    if($j==17) {
228
+for ($i = 0, $j = 50; $i < 100; $i++) {
229
+  while ($j--) {
230
+    if ($j == 17) {
231 231
 		goto end;
232 232
 		echo 'unreachable';
233 233
 	}
@@ -261,9 +261,9 @@  discard block
 block discarded – undo
261 261
 // Issue 2512.
262 262
 class TestAlternativeControlStructures {
263 263
 
264
-    public function alternative_switch_in_function( $var ) {
264
+    public function alternative_switch_in_function($var) {
265 265
 
266
-        switch ( $var ) :
266
+        switch ($var) :
267 267
             case 'value1':
268 268
                 do_something();
269 269
                 break;
@@ -278,11 +278,11 @@  discard block
 block discarded – undo
278 278
     public function various_alternative_control_structures() {
279 279
         $_while = 1;
280 280
 
281
-        for ( $a = 0; $a++ < 1; ) :
282
-            foreach ( [ 1 ] as $b ) :
283
-                while ( $_while-- ) :
284
-                    if ( 1 ) :
285
-                        switch ( 1 ) :
281
+        for ($a = 0; $a++ < 1;) :
282
+            foreach ([1] as $b) :
283
+                while ($_while--) :
284
+                    if (1) :
285
+                        switch (1) :
286 286
                             default:
287 287
                                 echo 'yay, we made it!';
288 288
                                 break;
Please login to merge, or discard this patch.
src/Standards/Squiz/Tests/PHP/DisallowBooleanStatementUnitTest.php 1 patch
Indentation   +33 added lines, -33 removed lines patch added patch discarded remove patch
@@ -15,39 +15,39 @@
 block discarded – undo
15 15
 {
16 16
 
17 17
 
18
-    /**
19
-     * Returns the lines where errors should occur.
20
-     *
21
-     * The key of the array should represent the line number and the value
22
-     * should represent the number of errors that should occur on that line.
23
-     *
24
-     * @return array<int, int>
25
-     */
26
-    public function getErrorList()
27
-    {
28
-        return [
29
-            3  => 1,
30
-            8  => 1,
31
-            13 => 1,
32
-            15 => 1,
33
-        ];
34
-
35
-    }//end getErrorList()
36
-
37
-
38
-    /**
39
-     * Returns the lines where warnings should occur.
40
-     *
41
-     * The key of the array should represent the line number and the value
42
-     * should represent the number of warnings that should occur on that line.
43
-     *
44
-     * @return array<int, int>
45
-     */
46
-    public function getWarningList()
47
-    {
48
-        return [];
49
-
50
-    }//end getWarningList()
18
+	/**
19
+	 * Returns the lines where errors should occur.
20
+	 *
21
+	 * The key of the array should represent the line number and the value
22
+	 * should represent the number of errors that should occur on that line.
23
+	 *
24
+	 * @return array<int, int>
25
+	 */
26
+	public function getErrorList()
27
+	{
28
+		return [
29
+			3  => 1,
30
+			8  => 1,
31
+			13 => 1,
32
+			15 => 1,
33
+		];
34
+
35
+	}//end getErrorList()
36
+
37
+
38
+	/**
39
+	 * Returns the lines where warnings should occur.
40
+	 *
41
+	 * The key of the array should represent the line number and the value
42
+	 * should represent the number of warnings that should occur on that line.
43
+	 *
44
+	 * @return array<int, int>
45
+	 */
46
+	public function getWarningList()
47
+	{
48
+		return [];
49
+
50
+	}//end getWarningList()
51 51
 
52 52
 
53 53
 }//end class
Please login to merge, or discard this patch.