Completed
Push — master ( 615e6d...66f2c7 )
by Владислав
90:08 queued 84:42
created
src/core/DeCaptchaWiki.php 1 patch
Spacing   +139 added lines, -139 removed lines patch added patch discarded remove patch
@@ -29,211 +29,211 @@  discard block
 block discarded – undo
29 29
             'recognize_file'                            => true,
30 30
             'recognize_data_file'                       => 'http://site.com/captcha.jpg',
31 31
             'recognize_data'                            => [],
32
-            'field_main_name_'.$class::ACTION_FIELD_KEY => [
32
+            'field_main_name_' . $class::ACTION_FIELD_KEY => [
33 33
                 'ru' => 'Ключ',
34 34
                 'en' => 'Key',
35 35
             ],
36
-            'field_main_desc_'.$class::ACTION_FIELD_KEY => [
36
+            'field_main_desc_' . $class::ACTION_FIELD_KEY => [
37 37
                 'ru' => 'Ключ от учетной записи',
38 38
                 'en' => 'Key account',
39 39
             ],
40
-            'field_main_name_'.$class::ACTION_FIELD_LANGUAGE => [
40
+            'field_main_name_' . $class::ACTION_FIELD_LANGUAGE => [
41 41
                 'ru' => 'Язык',
42 42
                 'en' => 'Language',
43 43
             ],
44
-            'field_main_desc_'.$class::ACTION_FIELD_LANGUAGE => [
44
+            'field_main_desc_' . $class::ACTION_FIELD_LANGUAGE => [
45 45
                 'ru' => 'На каком языке текст на капче',
46 46
                 'en' => 'What language the text on the captcha',
47 47
             ],
48
-            'field_main_name_'.$class::ACTION_FIELD_FILE => [
48
+            'field_main_name_' . $class::ACTION_FIELD_FILE => [
49 49
                 'ru' => 'Картинка',
50 50
                 'en' => 'Picture',
51 51
             ],
52
-            'field_main_desc_'.$class::ACTION_FIELD_FILE => [
52
+            'field_main_desc_' . $class::ACTION_FIELD_FILE => [
53 53
                 'ru' => 'Путь на файл с картинкой или ссылка на него',
54 54
                 'en' => 'The path to the picture file or link to it',
55 55
             ],
56
-            'field_main_name_'.$class::ACTION_FIELD_PHRASE => [
56
+            'field_main_name_' . $class::ACTION_FIELD_PHRASE => [
57 57
                 'ru' => 'Несколько слов',
58 58
                 'en' => 'A few words',
59 59
             ],
60
-            'field_main_desc_'.$class::ACTION_FIELD_PHRASE => [
60
+            'field_main_desc_' . $class::ACTION_FIELD_PHRASE => [
61 61
                 'ru' => 'Работник должен ввести текст с одним или несколькими пробелами',
62 62
                 'en' => 'The worker must enter text with one or more spaces',
63 63
             ],
64
-            'field_main_name_'.$class::ACTION_FIELD_REGSENSE => [
64
+            'field_main_name_' . $class::ACTION_FIELD_REGSENSE => [
65 65
                 'ru' => 'Регистр',
66 66
                 'en' => 'Register',
67 67
             ],
68
-            'field_main_desc_'.$class::ACTION_FIELD_REGSENSE => [
68
+            'field_main_desc_' . $class::ACTION_FIELD_REGSENSE => [
69 69
                 'ru' => 'Работник должен ввести ответ с учетом регистра',
70 70
                 'en' => 'The worker must enter the answer case sensitive',
71 71
             ],
72
-            'field_main_name_'.$class::ACTION_FIELD_NUMERIC => [
72
+            'field_main_name_' . $class::ACTION_FIELD_NUMERIC => [
73 73
                 'ru' => 'Символы',
74 74
                 'en' => 'Characters',
75 75
             ],
76
-            'field_main_desc_'.$class::ACTION_FIELD_NUMERIC => [
76
+            'field_main_desc_' . $class::ACTION_FIELD_NUMERIC => [
77 77
                 'ru' => 'Какие символы используется в капче',
78 78
                 'en' => 'What are the symbols used in captcha',
79 79
             ],
80
-            'field_main_name_'.$class::ACTION_FIELD_CALC => [
80
+            'field_main_name_' . $class::ACTION_FIELD_CALC => [
81 81
                 'ru' => 'Вычисление',
82 82
                 'en' => 'Calculation',
83 83
             ],
84
-            'field_main_desc_'.$class::ACTION_FIELD_CALC => [
84
+            'field_main_desc_' . $class::ACTION_FIELD_CALC => [
85 85
                 'ru' => 'На капче изображенно математичекая выражение и её необходимо решить',
86 86
                 'en' => 'The captcha shows matematicheskaya expression and must be addressed',
87 87
             ],
88
-            'field_main_name_'.$class::ACTION_FIELD_MIN_LEN => [
88
+            'field_main_name_' . $class::ACTION_FIELD_MIN_LEN => [
89 89
                 'ru' => 'Длина min',
90 90
                 'en' => 'Length min',
91 91
             ],
92
-            'field_main_desc_'.$class::ACTION_FIELD_MIN_LEN => [
92
+            'field_main_desc_' . $class::ACTION_FIELD_MIN_LEN => [
93 93
                 'ru' => 'Минимальная длина капчи',
94 94
                 'en' => 'The minimum length of captcha',
95 95
             ],
96
-            'field_main_name_'.$class::ACTION_FIELD_MAX_LEN => [
96
+            'field_main_name_' . $class::ACTION_FIELD_MAX_LEN => [
97 97
                 'ru' => 'Длина max',
98 98
                 'en' => 'Length max',
99 99
             ],
100
-            'field_main_desc_'.$class::ACTION_FIELD_MAX_LEN => [
100
+            'field_main_desc_' . $class::ACTION_FIELD_MAX_LEN => [
101 101
                 'ru' => 'Максимальная длина капчи',
102 102
                 'en' => 'The maximum length of the captcha',
103 103
             ],
104
-            'field_main_name_'.$class::ACTION_FIELD_QUESTION => [
104
+            'field_main_name_' . $class::ACTION_FIELD_QUESTION => [
105 105
                 'ru' => 'Вопрос',
106 106
                 'en' => 'Question',
107 107
             ],
108
-            'field_main_desc_'.$class::ACTION_FIELD_QUESTION => [
108
+            'field_main_desc_' . $class::ACTION_FIELD_QUESTION => [
109 109
                 'ru' => 'На изображении задан вопрос, работник должен написать ответ',
110 110
                 'en' => 'The image asked, the employee must write the answer',
111 111
             ],
112
-            'field_main_name_'.$class::ACTION_FIELD_IS_RUSSIAN => [
112
+            'field_main_name_' . $class::ACTION_FIELD_IS_RUSSIAN => [
113 113
                 'ru' => 'Кириллица',
114 114
                 'en' => 'Cyrillic',
115 115
             ],
116
-            'field_main_desc_'.$class::ACTION_FIELD_IS_RUSSIAN => [
116
+            'field_main_desc_' . $class::ACTION_FIELD_IS_RUSSIAN => [
117 117
                 'ru' => 'На изображении присутствуют русские символы',
118 118
                 'en' => 'In the image there are Russian characters',
119 119
             ],
120
-            'field_main_name_'.$class::ACTION_FIELD_LANGUAGE => [
120
+            'field_main_name_' . $class::ACTION_FIELD_LANGUAGE => [
121 121
                 'ru' => 'Язык',
122 122
                 'en' => 'Language',
123 123
             ],
124
-            'field_main_desc_'.$class::ACTION_FIELD_LANGUAGE => [
124
+            'field_main_desc_' . $class::ACTION_FIELD_LANGUAGE => [
125 125
                 'ru' => 'Символы какого языка размещенны на капче',
126 126
                 'en' => 'The symbols of the language posted on the captcha',
127 127
             ],
128
-            'field_main_name_'.$class::ACTION_FIELD_HEADER_ACAO => [
128
+            'field_main_name_' . $class::ACTION_FIELD_HEADER_ACAO => [
129 129
                 'ru' => 'Кросс-доменный',
130 130
                 'en' => 'Cross-domain',
131 131
             ],
132
-            'field_main_desc_'.$class::ACTION_FIELD_HEADER_ACAO => [
132
+            'field_main_desc_' . $class::ACTION_FIELD_HEADER_ACAO => [
133 133
                 'ru' => 'Необходимо для кросс-доменных AJAX запросов в браузерных приложениях.',
134 134
                 'en' => 'Need for cross-domain AJAX requests in browser-based applications.',
135 135
             ],
136
-            'field_main_name_'.$class::ACTION_FIELD_INSTRUCTIONS => [
136
+            'field_main_name_' . $class::ACTION_FIELD_INSTRUCTIONS => [
137 137
                 'ru' => 'Инструкция',
138 138
                 'en' => 'Manual',
139 139
             ],
140
-            'field_main_desc_'.$class::ACTION_FIELD_INSTRUCTIONS => [
140
+            'field_main_desc_' . $class::ACTION_FIELD_INSTRUCTIONS => [
141 141
                 'ru' => 'Текстовая капча или инструкция для прохождения капчи.',
142 142
                 'en' => 'Text captcha or manual to pass the captcha.',
143 143
             ],
144
-            'field_main_name_'.$class::ACTION_FIELD_PINGBACK => [
144
+            'field_main_name_' . $class::ACTION_FIELD_PINGBACK => [
145 145
                 'ru' => 'Ответ на',
146 146
                 'en' => 'Response to',
147 147
             ],
148
-            'field_main_desc_'.$class::ACTION_FIELD_PINGBACK => [
148
+            'field_main_desc_' . $class::ACTION_FIELD_PINGBACK => [
149 149
                 'ru' => 'Указание для сервера, что после распознания изображения, нужно отправить ответ на указанный адрес.',
150 150
                 'en' => 'Note to server, after recognizing the image, you need to send a reply to the specified address.',
151 151
             ],
152
-            'field_main_name_'.$class::ACTION_FIELD_LABEL => [
152
+            'field_main_name_' . $class::ACTION_FIELD_LABEL => [
153 153
                 'ru' => 'От куда',
154 154
                 'en' => 'From where',
155 155
             ],
156
-            'field_main_desc_'.$class::ACTION_FIELD_LABEL => [
156
+            'field_main_desc_' . $class::ACTION_FIELD_LABEL => [
157 157
                 'ru' => 'Пояснение от куда пришла капча ("vk", "google", "recaptcha", "yandex", "mailru", "yahoo" и т.д.).',
158 158
                 'en' => 'Clarification from where came the captcha ("vk", "google", "recaptcha", "yandex", "Google", "yahoo", etc.).',
159 159
             ],
160
-            'field_main_name_'.$class::ACTION_FIELD_PAGEURL => [
160
+            'field_main_name_' . $class::ACTION_FIELD_PAGEURL => [
161 161
                 'ru' => 'Адрес',
162 162
                 'en' => 'Link',
163 163
             ],
164
-            'field_main_desc_'.$class::ACTION_FIELD_PAGEURL => [
164
+            'field_main_desc_' . $class::ACTION_FIELD_PAGEURL => [
165 165
                 'ru' => 'Адрес страницы на которой решается капча.',
166 166
                 'en' => 'The address of the page where the captcha is solved.',
167 167
             ],
168
-            'field_main_name_'.$class::ACTION_FIELD_GOOGLEKEY => [
168
+            'field_main_name_' . $class::ACTION_FIELD_GOOGLEKEY => [
169 169
                 'ru' => 'Google key',
170 170
                 'en' => 'Google key',
171 171
             ],
172
-            'field_main_desc_'.$class::ACTION_FIELD_GOOGLEKEY => [
172
+            'field_main_desc_' . $class::ACTION_FIELD_GOOGLEKEY => [
173 173
                 'ru' => 'Ключ-индентификатор рекапчи на целевой странице. <div class="g-recaptcha" data-sitekey="ВОТ_ЭТОТ"></div>',
174 174
                 'en' => 'Key-the identifier of the recaptcha on the landing page. <div class="g-recaptcha" data-sitekey="THIS"></div>',
175 175
             ],
176
-            'field_main_name_'.$class::ACTION_FIELD_GOOGLETOKEN => [
176
+            'field_main_name_' . $class::ACTION_FIELD_GOOGLETOKEN => [
177 177
                 'ru' => 'Google token',
178 178
                 'en' => 'Google token',
179 179
             ],
180
-            'field_main_desc_'.$class::ACTION_FIELD_GOOGLETOKEN => [
180
+            'field_main_desc_' . $class::ACTION_FIELD_GOOGLETOKEN => [
181 181
                 'ru' => 'Секретный токен для предыдущей версии рекапчи. В большинстве случаев сайты используют новую версию и этот токен не требуется. Секретный токен генерируется на сервере Google и вставляется на страницу в атрибуте data-stoken. Выглядит это примерно так: <script type="text/javascript" src="...." data-type="normal"  data-ray="..." async data-sitekey="..." data-stoken="ВОТ_ЭТОТ"></script> Токен действует пару минут после генерации, затем нужно снова зайти на страницу и получить его.',
182 182
                 'en' => 'The secret token for the previous version of recaptcha. In most cases, sites use the new version and this token is not required. The secret token is generated on a Google server and inserted into the page in the attribute data-stoken. It looks like this: <script type="text/javascript" src="...." data-type="normal" data-ray="..." async data-sitekey="..." data-stoken="THIS"></script> the Token is valid a few minutes after generation, then you need to go back to the page and get it.',
183 183
             ],
184
-            'field_main_name_'.$class::ACTION_FIELD_PROXYTYPE => [
184
+            'field_main_name_' . $class::ACTION_FIELD_PROXYTYPE => [
185 185
                 'ru' => 'Тип прокси',
186 186
                 'en' => 'The proxy type',
187 187
             ],
188
-            'field_main_desc_'.$class::ACTION_FIELD_PROXYTYPE => [
188
+            'field_main_desc_' . $class::ACTION_FIELD_PROXYTYPE => [
189 189
                 'ru' => 'Тип прокси (http, socks4, ...)',
190 190
                 'en' => 'The proxy type (http, socks4, ...)',
191 191
             ],
192
-            'field_main_name_'.$class::ACTION_FIELD_PROXY => [
192
+            'field_main_name_' . $class::ACTION_FIELD_PROXY => [
193 193
                 'ru' => 'Адрес прокси',
194 194
                 'en' => 'The proxy address',
195 195
             ],
196
-            'field_main_desc_'.$class::ACTION_FIELD_PROXY => [
196
+            'field_main_desc_' . $class::ACTION_FIELD_PROXY => [
197 197
                 'ru' => 'IP адрес прокси ipv4/ipv6.',
198 198
                 'en' => 'IP address of the proxy ipv4/ipv6.',
199 199
             ],
200
-            'field_main_name_'.$class::ACTION_FIELD_PROXYPORT => [
200
+            'field_main_name_' . $class::ACTION_FIELD_PROXYPORT => [
201 201
                 'ru' => 'Порт прокси',
202 202
                 'en' => 'Proxy port',
203 203
             ],
204
-            'field_main_desc_'.$class::ACTION_FIELD_PROXYPORT => [
204
+            'field_main_desc_' . $class::ACTION_FIELD_PROXYPORT => [
205 205
                 'ru' => 'Порт прокси.',
206 206
                 'en' => 'Proxy port.',
207 207
             ],
208
-            'field_main_name_'.$class::ACTION_FIELD_PROXYLOGIN => [
208
+            'field_main_name_' . $class::ACTION_FIELD_PROXYLOGIN => [
209 209
                 'ru' => 'Логин прокси',
210 210
                 'en' => 'Login proxy',
211 211
             ],
212
-            'field_main_desc_'.$class::ACTION_FIELD_PROXYLOGIN => [
212
+            'field_main_desc_' . $class::ACTION_FIELD_PROXYLOGIN => [
213 213
                 'ru' => 'Логин от прокси-сервера.',
214 214
                 'en' => 'Login from proxy server.',
215 215
             ],
216
-            'field_main_name_'.$class::ACTION_FIELD_PROXYPASS => [
216
+            'field_main_name_' . $class::ACTION_FIELD_PROXYPASS => [
217 217
                 'ru' => 'Пароль прокси',
218 218
                 'en' => 'Password proxy',
219 219
             ],
220
-            'field_main_desc_'.$class::ACTION_FIELD_PROXYPASS => [
220
+            'field_main_desc_' . $class::ACTION_FIELD_PROXYPASS => [
221 221
                 'ru' => 'Пароль от прокси-сервера.',
222 222
                 'en' => 'The password for the proxy server.',
223 223
             ],
224
-            'field_main_name_'.$class::ACTION_FIELD_USERAGENT => [
224
+            'field_main_name_' . $class::ACTION_FIELD_USERAGENT => [
225 225
                 'ru' => 'User-Agent браузера',
226 226
                 'en' => 'User-Agent browser',
227 227
             ],
228
-            'field_main_desc_'.$class::ACTION_FIELD_USERAGENT => [
228
+            'field_main_desc_' . $class::ACTION_FIELD_USERAGENT => [
229 229
                 'ru' => 'User-Agent браузера, используемый в эмуляции. Необходимо использовать подпись современного браузера, иначе Google будет возвращать ошибку, требуя обновить браузер.',
230 230
                 'en' => 'User-Agent browser used in emulation. You must use the signature modern browser, otherwise Google will return an error requiring you to upgrade your browser.',
231 231
             ],
232
-            'field_main_name_'.$class::ACTION_FIELD_COOKIES => [
232
+            'field_main_name_' . $class::ACTION_FIELD_COOKIES => [
233 233
                 'ru' => 'Куки',
234 234
                 'en' => 'Cookies',
235 235
             ],
236
-            'field_main_desc_'.$class::ACTION_FIELD_COOKIES => [
236
+            'field_main_desc_' . $class::ACTION_FIELD_COOKIES => [
237 237
                 'ru' => 'Дополнительные cookies которые мы должны использовать во время взаимодействия с целевой страницей.',
238 238
                 'en' => 'Additional cookies which we should use during the interaction with the target page.',
239 239
             ],
@@ -404,7 +404,7 @@  discard block
 block discarded – undo
404 404
      */
405 405
     public function getText($name, $separator = '; ')
406 406
     {
407
-        $getResult = function ($name, $texts) {
407
+        $getResult = function($name, $texts) {
408 408
             if (is_array($name)) {
409 409
                 $name = implode('_', $name);
410 410
             }
@@ -433,17 +433,17 @@  discard block
 block discarded – undo
433 433
 
434 434
     protected function viewInstall()
435 435
     {
436
-        $str = "{$this->getText(['install', 'preferred'])} [composer](http://getcomposer.org/download/).".PHP_EOL;
436
+        $str = "{$this->getText(['install', 'preferred'])} [composer](http://getcomposer.org/download/)." . PHP_EOL;
437 437
         $str .= PHP_EOL;
438
-        $str .= "{$this->getText(['install', 'start'])}".PHP_EOL;
439
-        $str .= '```'.PHP_EOL;
440
-        $str .= 'php composer.phar require --prefer-dist jumper423/decaptcha "*"'.PHP_EOL;
441
-        $str .= '```'.PHP_EOL;
442
-        $str .= "{$this->getText(['install', 'add'])}".PHP_EOL;
443
-        $str .= '```'.PHP_EOL;
444
-        $str .= '"jumper423/decaptcha": "*"'.PHP_EOL;
445
-        $str .= '```'.PHP_EOL;
446
-        $str .= "{$this->getText(['install', 'add', 'file'])} `composer.json`.".PHP_EOL;
438
+        $str .= "{$this->getText(['install', 'start'])}" . PHP_EOL;
439
+        $str .= '```' . PHP_EOL;
440
+        $str .= 'php composer.phar require --prefer-dist jumper423/decaptcha "*"' . PHP_EOL;
441
+        $str .= '```' . PHP_EOL;
442
+        $str .= "{$this->getText(['install', 'add'])}" . PHP_EOL;
443
+        $str .= '```' . PHP_EOL;
444
+        $str .= '"jumper423/decaptcha": "*"' . PHP_EOL;
445
+        $str .= '```' . PHP_EOL;
446
+        $str .= "{$this->getText(['install', 'add', 'file'])} `composer.json`." . PHP_EOL;
447 447
 
448 448
         return $str;
449 449
     }
@@ -453,12 +453,12 @@  discard block
 block discarded – undo
453 453
         $class = $this->class;
454 454
         $rc = (new \ReflectionClass($class));
455 455
 
456
-        $str = "####{$this->getText(['example', 'initialization'])}".PHP_EOL;
457
-        $str .= "{$this->getText(['example', 'initialization', 'desc'])}".PHP_EOL;
458
-        $str .= '```'.PHP_EOL;
459
-        $str .= "use {$rc->getName()};".PHP_EOL;
460
-        $str .= ''.PHP_EOL;
461
-        $str .= '$captcha = new '.$rc->getShortName().'(['.PHP_EOL;
456
+        $str = "####{$this->getText(['example', 'initialization'])}" . PHP_EOL;
457
+        $str .= "{$this->getText(['example', 'initialization', 'desc'])}" . PHP_EOL;
458
+        $str .= '```' . PHP_EOL;
459
+        $str .= "use {$rc->getName()};" . PHP_EOL;
460
+        $str .= '' . PHP_EOL;
461
+        $str .= '$captcha = new ' . $rc->getShortName() . '([' . PHP_EOL;
462 462
         foreach ($this->texts['constructor_data'] as $key => $val) {
463 463
             $str .= "    {$rc->getShortName()}::{$this->getNameConst('ACTION_FIELD_', $key)} => ";
464 464
             if (is_string($val)) {
@@ -466,66 +466,66 @@  discard block
 block discarded – undo
466 466
             } else {
467 467
                 $str .= "{$val}";
468 468
             }
469
-            $str .= ','.PHP_EOL;
469
+            $str .= ',' . PHP_EOL;
470 470
         }
471
-        $str .= ']);'.PHP_EOL;
472
-        $str .= '```'.PHP_EOL;
471
+        $str .= ']);' . PHP_EOL;
472
+        $str .= '```' . PHP_EOL;
473 473
 
474
-        $str .= "####{$this->getText(['example', 'recognize'])}".PHP_EOL;
475
-        $str .= "{$this->getText(['example', 'recognize', 'desc'])}".PHP_EOL;
476
-        $str .= '```'.PHP_EOL;
474
+        $str .= "####{$this->getText(['example', 'recognize'])}" . PHP_EOL;
475
+        $str .= "{$this->getText(['example', 'recognize', 'desc'])}" . PHP_EOL;
476
+        $str .= '```' . PHP_EOL;
477 477
         $str .= 'if ($captcha->recognize(';
478 478
         if ($this->texts['recognize_file']) {
479 479
             $str .= "'{$this->getText(['recognize', 'data', 'file'])}'";
480 480
         }
481 481
         $str .= $this->getRecognizeData();
482
-        $str .= ')) {'.PHP_EOL;
483
-        $str .= '    $code = $captcha->getCode();'.PHP_EOL;
484
-        $str .= '} else {'.PHP_EOL;
485
-        $str .= '    $error = $captcha->getError();'.PHP_EOL;
486
-        $str .= '}'.PHP_EOL;
487
-        $str .= '```'.PHP_EOL;
482
+        $str .= ')) {' . PHP_EOL;
483
+        $str .= '    $code = $captcha->getCode();' . PHP_EOL;
484
+        $str .= '} else {' . PHP_EOL;
485
+        $str .= '    $error = $captcha->getError();' . PHP_EOL;
486
+        $str .= '}' . PHP_EOL;
487
+        $str .= '```' . PHP_EOL;
488 488
 
489 489
         if (in_array('notTrue', get_class_methods($class))) {
490
-            $str .= "####{$this->getText(['example', 'nottrue'])}".PHP_EOL;
491
-            $str .= "{$this->getText(['example', 'nottrue', 'desc'])}".PHP_EOL;
492
-            $str .= '```'.PHP_EOL;
493
-            $str .= '$captcha->notTrue();'.PHP_EOL;
494
-            $str .= '```'.PHP_EOL;
490
+            $str .= "####{$this->getText(['example', 'nottrue'])}" . PHP_EOL;
491
+            $str .= "{$this->getText(['example', 'nottrue', 'desc'])}" . PHP_EOL;
492
+            $str .= '```' . PHP_EOL;
493
+            $str .= '$captcha->notTrue();' . PHP_EOL;
494
+            $str .= '```' . PHP_EOL;
495 495
         }
496 496
 
497 497
         if (in_array('getBalance', get_class_methods($class))) {
498
-            $str .= "####{$this->getText(['example', 'balance'])}".PHP_EOL;
499
-            $str .= '```'.PHP_EOL;
500
-            $str .= '$balance = $captcha->getBalance();'.PHP_EOL;
501
-            $str .= '```'.PHP_EOL;
498
+            $str .= "####{$this->getText(['example', 'balance'])}" . PHP_EOL;
499
+            $str .= '```' . PHP_EOL;
500
+            $str .= '$balance = $captcha->getBalance();' . PHP_EOL;
501
+            $str .= '```' . PHP_EOL;
502 502
         }
503 503
 
504 504
         if ($this->getText(['example', 'error', 'lang', 'if'])) {
505
-            $str .= "####{$this->getText(['example', 'error', 'lang'])}".PHP_EOL;
506
-            $str .= "{$this->getText(['example', 'error', 'lang', 'desc'])}".PHP_EOL;
507
-            $str .= '```'.PHP_EOL;
508
-            $str .= '$captcha->setErrorLang(\jumper423\decaptcha\core\DeCaptchaErrors::LANG_RU);'.PHP_EOL;
509
-            $str .= '```'.PHP_EOL;
505
+            $str .= "####{$this->getText(['example', 'error', 'lang'])}" . PHP_EOL;
506
+            $str .= "{$this->getText(['example', 'error', 'lang', 'desc'])}" . PHP_EOL;
507
+            $str .= '```' . PHP_EOL;
508
+            $str .= '$captcha->setErrorLang(\jumper423\decaptcha\core\DeCaptchaErrors::LANG_RU);' . PHP_EOL;
509
+            $str .= '```' . PHP_EOL;
510 510
         }
511 511
 
512
-        $str .= "####{$this->getText(['example', 'error', 'interception'])}".PHP_EOL;
513
-        $str .= "{$this->getText(['example', 'error', 'interception', 'desc'])}".PHP_EOL;
514
-        $str .= '```'.PHP_EOL;
515
-        $str .= '$captcha->setCauseAnError(true);'.PHP_EOL;
512
+        $str .= "####{$this->getText(['example', 'error', 'interception'])}" . PHP_EOL;
513
+        $str .= "{$this->getText(['example', 'error', 'interception', 'desc'])}" . PHP_EOL;
514
+        $str .= '```' . PHP_EOL;
515
+        $str .= '$captcha->setCauseAnError(true);' . PHP_EOL;
516 516
         $str .= PHP_EOL;
517
-        $str .= 'try {'.PHP_EOL;
517
+        $str .= 'try {' . PHP_EOL;
518 518
         $str .= '    $captcha->recognize(';
519 519
         if ($this->texts['recognize_file']) {
520 520
             $str .= "'{$this->getText(['recognize', 'data', 'file'])}'";
521 521
         }
522 522
         $str .= $this->getRecognizeData();
523
-        $str .= ');'.PHP_EOL;
524
-        $str .= '    $code = $captcha->getCode();'.PHP_EOL;
525
-        $str .= '} catch (\jumper423\decaptcha\core\DeCaptchaErrors $e) {'.PHP_EOL;
526
-        $str .= '    ...'.PHP_EOL;
527
-        $str .= '}'.PHP_EOL;
528
-        $str .= '```'.PHP_EOL;
523
+        $str .= ');' . PHP_EOL;
524
+        $str .= '    $code = $captcha->getCode();' . PHP_EOL;
525
+        $str .= '} catch (\jumper423\decaptcha\core\DeCaptchaErrors $e) {' . PHP_EOL;
526
+        $str .= '    ...' . PHP_EOL;
527
+        $str .= '}' . PHP_EOL;
528
+        $str .= '```' . PHP_EOL;
529 529
 
530 530
         return $str;
531 531
     }
@@ -539,7 +539,7 @@  discard block
 block discarded – undo
539 539
             if ($this->texts['recognize_file']) {
540 540
                 $str .= ', ';
541 541
             }
542
-            $str .= '['.PHP_EOL;
542
+            $str .= '[' . PHP_EOL;
543 543
             foreach ($this->texts['recognize_data'] as $key => $val) {
544 544
                 $str .= "       {$rc->getShortName()}::{$this->getNameConst('ACTION_FIELD_', $key)} => ";
545 545
                 if (is_string($val)) {
@@ -547,7 +547,7 @@  discard block
 block discarded – undo
547 547
                 } else {
548 548
                     $str .= "{$val}";
549 549
                 }
550
-                $str .= ','.PHP_EOL;
550
+                $str .= ',' . PHP_EOL;
551 551
             }
552 552
             $str .= '    ]';
553 553
         }
@@ -558,8 +558,8 @@  discard block
 block discarded – undo
558 558
     protected function viewFields()
559 559
     {
560 560
         $class = $this->class;
561
-        $str = " {$this->getText(['table', 'th', 'name'])} | {$this->getText(['table', 'th', 'code'])} | {$this->getText(['table', 'th', 'type'])} | {$this->getText(['table', 'th', 'req'])} | {$this->getText(['table', 'th', 'def'])} | {$this->getText(['table', 'th', 'enum'])} | {$this->getText(['table', 'th', 'desc'])} ".PHP_EOL;
562
-        $str .= ' --- | --- | --- | --- | --- | --- | --- '.PHP_EOL;
561
+        $str = " {$this->getText(['table', 'th', 'name'])} | {$this->getText(['table', 'th', 'code'])} | {$this->getText(['table', 'th', 'type'])} | {$this->getText(['table', 'th', 'req'])} | {$this->getText(['table', 'th', 'def'])} | {$this->getText(['table', 'th', 'enum'])} | {$this->getText(['table', 'th', 'desc'])} " . PHP_EOL;
562
+        $str .= ' --- | --- | --- | --- | --- | --- | --- ' . PHP_EOL;
563 563
         foreach ($this->class->actions[$class::ACTION_RECOGNIZE][$class::ACTION_FIELDS] as $param => $setting) {
564 564
             if (array_key_exists($class::ACTION_FIELDS, $setting) && is_array($setting[$class::ACTION_FIELDS])) {
565 565
                 foreach ($setting[$class::ACTION_FIELDS] as $param1 => $setting1) {
@@ -583,9 +583,9 @@  discard block
 block discarded – undo
583 583
         $class = $this->class;
584 584
         $str = " {$this->getText(['field', 'main', 'name', $param])} |";
585 585
         $str .= " {$this->getNameConst('ACTION_FIELD_', $param)} |";
586
-        $str .= ' '.substr($this->getNameConst('PARAM_FIELD_TYPE_', $setting[$class::PARAM_SLUG_TYPE]), 17).' |';
587
-        $str .= ' '.(array_key_exists($class::PARAM_SLUG_REQUIRE, $setting) ? '+' : '-').' |';
588
-        $str .= ' '.(array_key_exists($class::PARAM_SLUG_DEFAULT, $setting) ? $setting[$class::PARAM_SLUG_DEFAULT] : '').' |';
586
+        $str .= ' ' . substr($this->getNameConst('PARAM_FIELD_TYPE_', $setting[$class::PARAM_SLUG_TYPE]), 17) . ' |';
587
+        $str .= ' ' . (array_key_exists($class::PARAM_SLUG_REQUIRE, $setting) ? '+' : '-') . ' |';
588
+        $str .= ' ' . (array_key_exists($class::PARAM_SLUG_DEFAULT, $setting) ? $setting[$class::PARAM_SLUG_DEFAULT] : '') . ' |';
589 589
         $str .= " {$this->getText(['field', 'slug', $class::PARAM_SLUG_ENUM, $param])} |";
590 590
         $str .= " {$this->getText(['field', 'main', 'desc', $param])} |";
591 591
         $str .= PHP_EOL;
@@ -595,9 +595,9 @@  discard block
 block discarded – undo
595 595
 
596 596
     protected function viewMenu()
597 597
     {
598
-        $str = "+ [{$this->getText(['slug', 'menu', 'main'])}](../docs/README-{$this->lang}.md)".PHP_EOL;
599
-        $str .= "+ [{$this->getText(['slug', 'menu', 'another'])}](../docs/".$this->getFileName($this->lang == 'ru' ? 'en' : 'ru').')'.PHP_EOL;
600
-        $str .= "+ {$this->getText(['slug', 'menu', 'anchor'])}".PHP_EOL;
598
+        $str = "+ [{$this->getText(['slug', 'menu', 'main'])}](../docs/README-{$this->lang}.md)" . PHP_EOL;
599
+        $str .= "+ [{$this->getText(['slug', 'menu', 'another'])}](../docs/" . $this->getFileName($this->lang == 'ru' ? 'en' : 'ru') . ')' . PHP_EOL;
600
+        $str .= "+ {$this->getText(['slug', 'menu', 'anchor'])}" . PHP_EOL;
601 601
         foreach ([
602 602
                      ['slug', 'link'],
603 603
                      ['slug', 'service', 'desc'],
@@ -607,14 +607,14 @@  discard block
 block discarded – undo
607 607
                      ['example'],
608 608
                      ['slug', 'fields', 'desc'],
609 609
                  ] as $anchor) {
610
-            $str .= "  + [{$this->getText($anchor)}](#".implode('-', explode(' ', ($this->lang === 'en' ? mb_strtolower($this->getText($anchor)) : $this->getText($anchor)))).')'.PHP_EOL;
610
+            $str .= "  + [{$this->getText($anchor)}](#" . implode('-', explode(' ', ($this->lang === 'en' ? mb_strtolower($this->getText($anchor)) : $this->getText($anchor)))) . ')' . PHP_EOL;
611 611
         }
612 612
         if ($this->getText(['menu', 'from_service'])) {
613
-            $str .= "+ {$this->getText(['slug', 'menu', 'from_service'])}".PHP_EOL;
613
+            $str .= "+ {$this->getText(['slug', 'menu', 'from_service'])}" . PHP_EOL;
614 614
             foreach ($this->texts['menu_from_service'] as $fromServiceClass) {
615 615
                 $fromServiceObject = new $fromServiceClass([]);
616 616
                 $fromServiceObjectWiki = $fromServiceObject->getWiki($this->lang);
617
-                $str .= "  + [{$fromServiceObjectWiki->getText(['service', 'name'])}](../docs/{$fromServiceObjectWiki->getFileName()})".PHP_EOL;
617
+                $str .= "  + [{$fromServiceObjectWiki->getText(['service', 'name'])}](../docs/{$fromServiceObjectWiki->getFileName()})" . PHP_EOL;
618 618
             }
619 619
         }
620 620
 
@@ -636,24 +636,24 @@  discard block
 block discarded – undo
636 636
 
637 637
     public function view()
638 638
     {
639
-        $str = $this->getText(['service', 'name']).PHP_EOL;
640
-        $str .= '=============='.PHP_EOL;
641
-        $str .= "###{$this->getText(['slug', 'menu'])}".PHP_EOL;
642
-        $str .= $this->viewMenu().PHP_EOL.PHP_EOL;
643
-        $str .= "###{$this->getText(['slug', 'link'])}".PHP_EOL;
644
-        $str .= "[{$this->getText(['slug', 'link', 'to_service'])} {$this->getText(['service', 'name'])}]({$this->getText(['service', 'href'])})".PHP_EOL.PHP_EOL;
645
-        $str .= "###{$this->getText(['slug', 'service', 'desc'])}".PHP_EOL;
646
-        $str .= "{$this->getText(['service', 'desc'])}".PHP_EOL.PHP_EOL;
647
-        $str .= "###{$this->getText(['slug', 'price'])}".PHP_EOL;
648
-        $str .= "{$this->getText(['recognize', 'price'])}".PHP_EOL.PHP_EOL;
649
-        $str .= "###{$this->getText(['slug', 'recognize', 'desc'])}".PHP_EOL;
650
-        $str .= "{$this->getText(['recognize', 'desc'])}".PHP_EOL.PHP_EOL;
651
-        $str .= "###{$this->getText(['install'])}".PHP_EOL;
652
-        $str .= "{$this->viewInstall()}".PHP_EOL.PHP_EOL;
653
-        $str .= "###{$this->getText(['example'])}".PHP_EOL;
654
-        $str .= "{$this->viewExamples()}".PHP_EOL.PHP_EOL;
655
-        $str .= "###{$this->getText(['slug', 'fields', 'desc'])}".PHP_EOL;
656
-        $str .= $this->viewFields().PHP_EOL;
639
+        $str = $this->getText(['service', 'name']) . PHP_EOL;
640
+        $str .= '==============' . PHP_EOL;
641
+        $str .= "###{$this->getText(['slug', 'menu'])}" . PHP_EOL;
642
+        $str .= $this->viewMenu() . PHP_EOL . PHP_EOL;
643
+        $str .= "###{$this->getText(['slug', 'link'])}" . PHP_EOL;
644
+        $str .= "[{$this->getText(['slug', 'link', 'to_service'])} {$this->getText(['service', 'name'])}]({$this->getText(['service', 'href'])})" . PHP_EOL . PHP_EOL;
645
+        $str .= "###{$this->getText(['slug', 'service', 'desc'])}" . PHP_EOL;
646
+        $str .= "{$this->getText(['service', 'desc'])}" . PHP_EOL . PHP_EOL;
647
+        $str .= "###{$this->getText(['slug', 'price'])}" . PHP_EOL;
648
+        $str .= "{$this->getText(['recognize', 'price'])}" . PHP_EOL . PHP_EOL;
649
+        $str .= "###{$this->getText(['slug', 'recognize', 'desc'])}" . PHP_EOL;
650
+        $str .= "{$this->getText(['recognize', 'desc'])}" . PHP_EOL . PHP_EOL;
651
+        $str .= "###{$this->getText(['install'])}" . PHP_EOL;
652
+        $str .= "{$this->viewInstall()}" . PHP_EOL . PHP_EOL;
653
+        $str .= "###{$this->getText(['example'])}" . PHP_EOL;
654
+        $str .= "{$this->viewExamples()}" . PHP_EOL . PHP_EOL;
655
+        $str .= "###{$this->getText(['slug', 'fields', 'desc'])}" . PHP_EOL;
656
+        $str .= $this->viewFields() . PHP_EOL;
657 657
 
658 658
         return $str;
659 659
     }
@@ -665,11 +665,11 @@  discard block
 block discarded – undo
665 665
         }
666 666
         $class = $this->class;
667 667
 
668
-        return (new \ReflectionClass($class))->getShortName().'-'.$lang.'.md';
668
+        return (new \ReflectionClass($class))->getShortName() . '-' . $lang . '.md';
669 669
     }
670 670
 
671 671
     public function save()
672 672
     {
673
-        file_put_contents(__DIR__.'/../../docs/'.$this->getFileName(), $this->view());
673
+        file_put_contents(__DIR__ . '/../../docs/' . $this->getFileName(), $this->view());
674 674
     }
675 675
 }
Please login to merge, or discard this patch.