Passed
Push — master ( 28e45a...c362dd )
by Domenico
08:09 queued 05:21
created
src/XliffReplacer/XliffSAXTranslationReplacer.php 1 patch
Spacing   +206 added lines, -206 removed lines patch added patch discarded remove patch
@@ -31,17 +31,17 @@  discard block
 block discarded – undo
31 31
     ];
32 32
 
33 33
     public function replaceTranslation() {
34
-        fwrite( $this->outputFP, '<?xml version="1.0" encoding="UTF-8"?>' );
34
+        fwrite($this->outputFP, '<?xml version="1.0" encoding="UTF-8"?>');
35 35
 
36 36
         //create Sax parser
37 37
         $xmlParser = $this->initSaxParser();
38 38
 
39
-        while ( $this->currentBuffer = fread( $this->originalFP, 4096 ) ) {
39
+        while ($this->currentBuffer = fread($this->originalFP, 4096)) {
40 40
             /*
41 41
                preprocess file
42 42
              */
43 43
             // obfuscate entities because sax automatically does html_entity_decode
44
-            $temporary_check_buffer = preg_replace( "/&(.*?);/", self::$INTERNAL_TAG_PLACEHOLDER . '$1' . self::$INTERNAL_TAG_PLACEHOLDER, $this->currentBuffer );
44
+            $temporary_check_buffer = preg_replace("/&(.*?);/", self::$INTERNAL_TAG_PLACEHOLDER . '$1' . self::$INTERNAL_TAG_PLACEHOLDER, $this->currentBuffer);
45 45
 
46 46
             //avoid cutting entities in half:
47 47
             //the last fread could have truncated an entity (say, '&lt;' in '&l'), thus invalidating the escaping
@@ -53,84 +53,84 @@  discard block
 block discarded – undo
53 53
             // add 9 Bytes and substitute the entities, if the & is present, and it is not at the end
54 54
             //it can't be an entity, exit the loop
55 55
 
56
-            while ( true ) {
57
-                $_ampPos = strpos( $temporary_check_buffer, '&' );
56
+            while (true) {
57
+                $_ampPos = strpos($temporary_check_buffer, '&');
58 58
 
59 59
                 //check for real entity or escape it to safely exit from the loop!!!
60
-                if ( $_ampPos === false || strlen( substr( $temporary_check_buffer, $_ampPos ) ) > 9 ) {
60
+                if ($_ampPos === false || strlen(substr($temporary_check_buffer, $_ampPos)) > 9) {
61 61
                     $escape_AMP = true;
62 62
                     break;
63 63
                 }
64 64
 
65 65
                 //if an entity is still present, fetch some more and repeat the escaping
66
-                $this->currentBuffer    .= fread( $this->originalFP, 9 );
67
-                $temporary_check_buffer = preg_replace( "/&(.*?);/", self::$INTERNAL_TAG_PLACEHOLDER . '$1' . self::$INTERNAL_TAG_PLACEHOLDER, $this->currentBuffer );
66
+                $this->currentBuffer .= fread($this->originalFP, 9);
67
+                $temporary_check_buffer = preg_replace("/&(.*?);/", self::$INTERNAL_TAG_PLACEHOLDER . '$1' . self::$INTERNAL_TAG_PLACEHOLDER, $this->currentBuffer);
68 68
             }
69 69
 
70 70
             //free stuff outside the loop
71
-            unset( $temporary_check_buffer );
71
+            unset($temporary_check_buffer);
72 72
 
73
-            $this->currentBuffer = preg_replace( "/&(.*?);/", self::$INTERNAL_TAG_PLACEHOLDER . '$1' . self::$INTERNAL_TAG_PLACEHOLDER, $this->currentBuffer );
74
-            if ( $escape_AMP ) {
75
-                $this->currentBuffer = str_replace( "&", self::$INTERNAL_TAG_PLACEHOLDER . 'amp' . self::$INTERNAL_TAG_PLACEHOLDER, $this->currentBuffer );
73
+            $this->currentBuffer = preg_replace("/&(.*?);/", self::$INTERNAL_TAG_PLACEHOLDER . '$1' . self::$INTERNAL_TAG_PLACEHOLDER, $this->currentBuffer);
74
+            if ($escape_AMP) {
75
+                $this->currentBuffer = str_replace("&", self::$INTERNAL_TAG_PLACEHOLDER . 'amp' . self::$INTERNAL_TAG_PLACEHOLDER, $this->currentBuffer);
76 76
             }
77 77
 
78 78
             //get length of chunk
79
-            $this->len = strlen( $this->currentBuffer );
79
+            $this->len = strlen($this->currentBuffer);
80 80
 
81 81
             //parse chunk of text
82
-            if ( !xml_parse( $xmlParser, $this->currentBuffer, feof( $this->originalFP ) ) ) {
82
+            if (!xml_parse($xmlParser, $this->currentBuffer, feof($this->originalFP))) {
83 83
                 //if unable, raise an exception
84
-                throw new RuntimeException( sprintf(
84
+                throw new RuntimeException(sprintf(
85 85
                         "XML error: %s at line %d",
86
-                        xml_error_string( xml_get_error_code( $xmlParser ) ),
87
-                        xml_get_current_line_number( $xmlParser )
88
-                ) );
86
+                        xml_error_string(xml_get_error_code($xmlParser)),
87
+                        xml_get_current_line_number($xmlParser)
88
+                ));
89 89
             }
90 90
             //get accumulated this->offset in document: as long as SAX pointer advances, we keep track of total bytes it has seen so far; this way, we can translate its global pointer in an address local to the current buffer of text to retrieve last char of tag
91 91
             $this->offset += $this->len;
92 92
         }
93 93
 
94 94
         // close Sax parser
95
-        $this->closeSaxParser( $xmlParser );
95
+        $this->closeSaxParser($xmlParser);
96 96
 
97 97
     }
98 98
 
99 99
     /**
100 100
      * @inheritDoc
101 101
      */
102
-    protected function tagOpen( $parser, $name, $attr ) {
102
+    protected function tagOpen($parser, $name, $attr) {
103 103
         // check if we are entering into a <trans-unit> (xliff v1.*) or <unit> (xliff v2.*)
104
-        if ( $this->tuTagName === $name ) {
104
+        if ($this->tuTagName === $name) {
105 105
             $this->inTU = true;
106 106
 
107 107
             // get id
108 108
             // trim to first 100 characters because this is the limit on Matecat's DB
109
-            $this->currentTransUnitId = substr( $attr[ 'id' ], 0, 100 );
109
+            $this->currentTransUnitId = substr($attr['id'], 0, 100);
110 110
 
111 111
             // `translate` attribute can be only yes or no
112
-            if ( isset( $attr[ 'translate' ] ) && $attr[ 'translate' ] === 'no' ) {
113
-                $attr[ 'translate' ] = 'no';
112
+            if (isset($attr['translate']) && $attr['translate'] === 'no') {
113
+                $attr['translate'] = 'no';
114 114
             } else {
115
-                $attr[ 'translate' ] = 'yes';
115
+                $attr['translate'] = 'yes';
116 116
             }
117 117
 
118 118
             // current 'translate' attribute of the current trans-unit
119
-            $this->currentTransUnitTranslate = $attr[ 'translate' ];
119
+            $this->currentTransUnitTranslate = $attr['translate'];
120 120
         }
121 121
 
122
-        if ( 'source' === $name ) {
122
+        if ('source' === $name) {
123 123
             $this->sourceAttributes = $attr;
124 124
         }
125 125
 
126
-        if ( 'mda:metadata' === $name ) {
126
+        if ('mda:metadata' === $name) {
127 127
             $this->unitContainsMda = true;
128 128
         }
129 129
 
130 130
         // check if we are entering into a <target>
131
-        if ( 'target' === $name ) {
131
+        if ('target' === $name) {
132 132
 
133
-            if ( $this->currentTransUnitTranslate === 'no' ) {
133
+            if ($this->currentTransUnitTranslate === 'no') {
134 134
                 $this->inTarget = false;
135 135
             } else {
136 136
                 $this->inTarget = true;
@@ -139,7 +139,7 @@  discard block
 block discarded – undo
139 139
 
140 140
         // check if we are inside a <target>, obviously this happen only if there are targets inside the trans-unit
141 141
         // <target> must be stripped to be replaced, so this check avoids <target> reconstruction
142
-        if ( !$this->inTarget ) {
142
+        if (!$this->inTarget) {
143 143
 
144 144
             $tag = '';
145 145
 
@@ -161,8 +161,8 @@  discard block
 block discarded – undo
161 161
             //
162 162
             // http://docs.oasis-open.org/xliff/xliff-core/v2.0/os/xliff-core-v2.0-os.html#unit
163 163
             //
164
-            if ( $this->xliffVersion === 2 && ( $name === 'notes' || $name === 'originalData' || $name === 'segment' || $name === 'ignorable' ) && $this->unitContainsMda === false ) {
165
-                if ( isset( $this->transUnits[ $this->currentTransUnitId ] ) && !empty( $this->transUnits[ $this->currentTransUnitId ] ) && !$this->hasWrittenCounts ) {
164
+            if ($this->xliffVersion === 2 && ($name === 'notes' || $name === 'originalData' || $name === 'segment' || $name === 'ignorable') && $this->unitContainsMda === false) {
165
+                if (isset($this->transUnits[$this->currentTransUnitId]) && !empty($this->transUnits[$this->currentTransUnitId]) && !$this->hasWrittenCounts) {
166 166
 
167 167
                     // we need to update counts here
168 168
                     $this->updateCounts();
@@ -179,90 +179,90 @@  discard block
 block discarded – undo
179 179
             $lastMrkState = null;
180 180
             $stateProp    = '';
181 181
 
182
-            foreach ( $attr as $k => $v ) {
182
+            foreach ($attr as $k => $v) {
183 183
 
184 184
                 //if tag name is file, we must replace the target-language attribute
185
-                if ( $name === 'file' && $k === 'target-language' && !empty( $this->targetLang ) ) {
185
+                if ($name === 'file' && $k === 'target-language' && !empty($this->targetLang)) {
186 186
                     //replace Target language with job language provided from constructor
187 187
                     $tag .= "$k=\"$this->targetLang\" ";
188 188
                 } else {
189 189
                     $pos = 0;
190
-                    if ( $this->currentTransUnitId and isset($this->transUnits[ $this->currentTransUnitId ])) {
191
-                        $pos = current( $this->transUnits[ $this->currentTransUnitId ] );
190
+                    if ($this->currentTransUnitId and isset($this->transUnits[$this->currentTransUnitId])) {
191
+                        $pos = current($this->transUnits[$this->currentTransUnitId]);
192 192
                     }
193 193
 
194
-                    if ( $name === $this->tuTagName and isset($this->segments[ $pos ]) and isset($this->segments[ $pos ][ 'sid' ]) ) {
194
+                    if ($name === $this->tuTagName and isset($this->segments[$pos]) and isset($this->segments[$pos]['sid'])) {
195 195
 
196
-                        $sid = $this->segments[ $pos ][ 'sid' ];
196
+                        $sid = $this->segments[$pos]['sid'];
197 197
 
198 198
                         // add `help-id` to xliff v.1*
199 199
                         // add `mtc:segment-id` to xliff v.2*
200
-                        if ( $this->xliffVersion === 1 && strpos( $tag, 'help-id' ) === false ) {
201
-                            if ( !empty( $sid ) ) {
200
+                        if ($this->xliffVersion === 1 && strpos($tag, 'help-id') === false) {
201
+                            if (!empty($sid)) {
202 202
                                 $tag .= "help-id=\"$sid\" ";
203 203
                             }
204
-                        } elseif ( $this->xliffVersion === 2 && strpos( $tag, 'mtc:segment-id' ) === false ) {
205
-                            if ( !empty( $sid ) ) {
204
+                        } elseif ($this->xliffVersion === 2 && strpos($tag, 'mtc:segment-id') === false) {
205
+                            if (!empty($sid)) {
206 206
                                 $tag .= "mtc:segment-id=\"$sid\" ";
207 207
                             }
208 208
                         }
209 209
 
210
-                    } elseif ( 'segment' === $name && $this->xliffVersion === 2 ) { // add state to segment in Xliff v2
211
-                        list( $stateProp, $lastMrkState ) = $this->setTransUnitState( $this->segments[ $pos ], $stateProp, $lastMrkState );
212
-                    } elseif ( 'target' === $name && $this->xliffVersion === 1 ) { // add state to target in Xliff v1
213
-                        list( $stateProp, $lastMrkState ) = $this->setTransUnitState( $this->segments[ $pos ], $stateProp, $lastMrkState );
210
+                    } elseif ('segment' === $name && $this->xliffVersion === 2) { // add state to segment in Xliff v2
211
+                        list($stateProp, $lastMrkState) = $this->setTransUnitState($this->segments[$pos], $stateProp, $lastMrkState);
212
+                    } elseif ('target' === $name && $this->xliffVersion === 1) { // add state to target in Xliff v1
213
+                        list($stateProp, $lastMrkState) = $this->setTransUnitState($this->segments[$pos], $stateProp, $lastMrkState);
214 214
                     }
215 215
 
216 216
                     //normal tag flux, put attributes in it
217 217
                     $tag .= "$k=\"$v\" ";
218 218
 
219 219
                     // replace state for xliff v2
220
-                    if ( $stateProp ) {
220
+                    if ($stateProp) {
221 221
                         $pattern = '/state=\"(.*)\"/i';
222
-                        $tag     = preg_replace( $pattern, $stateProp, $tag );
222
+                        $tag     = preg_replace($pattern, $stateProp, $tag);
223 223
                     }
224 224
                 }
225 225
             }
226 226
 
227 227
             // add oasis xliff 20 namespace
228
-            if ( $this->xliffVersion === 2 && $name === 'xliff' && !array_key_exists( 'xmlns:mda', $attr ) ) {
228
+            if ($this->xliffVersion === 2 && $name === 'xliff' && !array_key_exists('xmlns:mda', $attr)) {
229 229
                 $tag .= 'xmlns:mda="urn:oasis:names:tc:xliff:metadata:2.0"';
230 230
             }
231 231
 
232 232
             // add MateCat specific namespace, we want maybe add non-XLIFF attributes
233
-            if ( $name === 'xliff' && !array_key_exists( 'xmlns:mtc', $attr ) ) {
233
+            if ($name === 'xliff' && !array_key_exists('xmlns:mtc', $attr)) {
234 234
                 $tag .= ' xmlns:mtc="https://www.matecat.com" ';
235 235
             }
236 236
 
237 237
             // trgLang
238
-            if ( $name === 'xliff' ) {
239
-                $tag = preg_replace( '/trgLang="(.*?)"/', 'trgLang="' . $this->targetLang . '"', $tag );
238
+            if ($name === 'xliff') {
239
+                $tag = preg_replace('/trgLang="(.*?)"/', 'trgLang="' . $this->targetLang . '"', $tag);
240 240
             }
241 241
 
242 242
             //this logic helps detecting empty tags
243 243
             //get current position of SAX pointer in all the stream of data is has read so far:
244 244
             //it points at the end of current tag
245
-            $idx = xml_get_current_byte_index( $parser );
245
+            $idx = xml_get_current_byte_index($parser);
246 246
 
247 247
             //check whether the bounds of current tag are entirely in current buffer or the end of the current tag
248 248
             //is outside current buffer (in the latter case, it's in next buffer to be read by the while loop);
249 249
             //this check is necessary because we may have truncated a tag in half with current read,
250 250
             //and the other half may be encountered in the next buffer it will be passed
251
-            if ( isset( $this->currentBuffer[ $idx - $this->offset ] ) ) {
251
+            if (isset($this->currentBuffer[$idx - $this->offset])) {
252 252
                 //if this tag entire lenght fitted in the buffer, the last char must be the last
253 253
                 //symbol before the '>'; if it's an empty tag, it is assumed that it's a '/'
254
-                $lastChar = $this->currentBuffer[ $idx - $this->offset ];
254
+                $lastChar = $this->currentBuffer[$idx - $this->offset];
255 255
             } else {
256 256
                 //if it's out, simple use the last character of the chunk
257
-                $lastChar = $this->currentBuffer[ $this->len - 1 ];
257
+                $lastChar = $this->currentBuffer[$this->len - 1];
258 258
             }
259 259
 
260 260
             //trim last space
261
-            $tag = rtrim( $tag );
261
+            $tag = rtrim($tag);
262 262
 
263 263
             //detect empty tag
264
-            $this->isEmpty = ( $lastChar == '/' || $name == 'x' );
265
-            if ( $this->isEmpty ) {
264
+            $this->isEmpty = ($lastChar == '/' || $name == 'x');
265
+            if ($this->isEmpty) {
266 266
                 $tag .= '/';
267 267
             }
268 268
 
@@ -270,30 +270,30 @@  discard block
 block discarded – undo
270 270
             $tag .= ">";
271 271
 
272 272
             //set a a Buffer for the segSource Source tag
273
-            if ( $this->bufferIsActive || in_array( $name, $this->nodesToCopy ) ) { // we are opening a critical CDATA section
273
+            if ($this->bufferIsActive || in_array($name, $this->nodesToCopy)) { // we are opening a critical CDATA section
274 274
 
275 275
                 //WARNING BECAUSE SOURCE AND SEG-SOURCE TAGS CAN BE EMPTY IN SOME CASES!!!!!
276 276
                 //so check for isEmpty also in conjunction with name
277
-                if ( $this->isEmpty && ( 'source' === $name || 'seg-source' === $name ) ) {
278
-                    $this->postProcAndFlush( $this->outputFP, $tag );
277
+                if ($this->isEmpty && ('source' === $name || 'seg-source' === $name)) {
278
+                    $this->postProcAndFlush($this->outputFP, $tag);
279 279
                 } else {
280 280
                     //these are NOT source/seg-source/value empty tags, THERE IS A CONTENT, write it in buffer
281 281
                     $this->bufferIsActive = true;
282
-                    $this->CDATABuffer    .= $tag;
282
+                    $this->CDATABuffer .= $tag;
283 283
                 }
284 284
             } else {
285
-                $this->postProcAndFlush( $this->outputFP, $tag );
285
+                $this->postProcAndFlush($this->outputFP, $tag);
286 286
             }
287 287
         }
288 288
 
289 289
         // update segmentPositionInTu
290 290
 
291
-        if ( $this->xliffVersion === 1 && $this->inTU && $name === 'source' ) {
291
+        if ($this->xliffVersion === 1 && $this->inTU && $name === 'source') {
292 292
             $asdasdsa = $attr;
293 293
             $this->segmentPositionInTu++;
294 294
         }
295 295
 
296
-        if ( $this->xliffVersion === 2 && $this->inTU && $name === 'segment' ) {
296
+        if ($this->xliffVersion === 2 && $this->inTU && $name === 'segment') {
297 297
             $asdasdsa = $attr;
298 298
             $this->segmentPositionInTu++;
299 299
         }
@@ -302,7 +302,7 @@  discard block
 block discarded – undo
302 302
     /**
303 303
      * @inheritDoc
304 304
      */
305
-    protected function tagClose( $parser, $name ) {
305
+    protected function tagClose($parser, $name) {
306 306
         $tag = '';
307 307
 
308 308
         /**
@@ -311,26 +311,26 @@  discard block
 block discarded – undo
311 311
          *
312 312
          * self::tagOpen method
313 313
          */
314
-        if ( !$this->isEmpty && !( $this->inTarget && $name !== 'target' ) ) {
314
+        if (!$this->isEmpty && !($this->inTarget && $name !== 'target')) {
315 315
 
316
-            if ( !$this->inTarget ) {
316
+            if (!$this->inTarget) {
317 317
                 $tag = "</$name>";
318 318
             }
319 319
 
320
-            if ( 'target' == $name ) {
320
+            if ('target' == $name) {
321 321
 
322
-                if ( $this->currentTransUnitTranslate === 'no' ) {
322
+                if ($this->currentTransUnitTranslate === 'no') {
323 323
                     // do nothing
324
-                } elseif ( isset( $this->transUnits[ $this->currentTransUnitId ] ) ) {
324
+                } elseif (isset($this->transUnits[$this->currentTransUnitId])) {
325 325
 
326 326
                     // get translation of current segment, by indirect indexing: id -> positional index -> segment
327 327
                     // actually there may be more that one segment to that ID if there are two mrk of the same source segment
328 328
 
329
-                    $listOfSegmentsIds = $this->transUnits[ $this->currentTransUnitId ];
329
+                    $listOfSegmentsIds = $this->transUnits[$this->currentTransUnitId];
330 330
 
331 331
                     // $currentSegmentId
332
-                    if ( !empty( $listOfSegmentsIds ) ) {
333
-                        $this->setCurrentSegmentArray( $listOfSegmentsIds );
332
+                    if (!empty($listOfSegmentsIds)) {
333
+                        $this->setCurrentSegmentArray($listOfSegmentsIds);
334 334
                     }
335 335
 
336 336
                     /*
@@ -347,12 +347,12 @@  discard block
 block discarded – undo
347 347
                     $this->lastTransUnit = [];
348 348
 
349 349
                     $last_value    = null;
350
-                    $segmentsCount = count( $listOfSegmentsIds );
351
-                    for ( $i = 0; $i < $segmentsCount; $i++ ) {
352
-                        $id = $listOfSegmentsIds[ $i ];
353
-                        if ( isset( $this->segments[ $id ] ) && ( $i == 0 || $last_value + 1 == $listOfSegmentsIds[ $i ] ) ) {
354
-                            $last_value            = $listOfSegmentsIds[ $i ];
355
-                            $this->lastTransUnit[] = $this->segments[ $id ];
350
+                    $segmentsCount = count($listOfSegmentsIds);
351
+                    for ($i = 0; $i < $segmentsCount; $i++) {
352
+                        $id = $listOfSegmentsIds[$i];
353
+                        if (isset($this->segments[$id]) && ($i == 0 || $last_value + 1 == $listOfSegmentsIds[$i])) {
354
+                            $last_value            = $listOfSegmentsIds[$i];
355
+                            $this->lastTransUnit[] = $this->segments[$id];
356 356
                         }
357 357
                     }
358 358
 
@@ -364,27 +364,27 @@  discard block
 block discarded – undo
364 364
                     // we must reset the lastMrkId found because this is a new segment.
365 365
                     $lastMrkId = -1;
366 366
 
367
-                    if ( $this->xliffVersion === 2 ) {
368
-                        $seg = $this->segments[ $this->currentSegmentArray[ 'sid' ] ];
367
+                    if ($this->xliffVersion === 2) {
368
+                        $seg = $this->segments[$this->currentSegmentArray['sid']];
369 369
 
370 370
                         // update counts
371
-                        if ( !$this->hasWrittenCounts && !empty( $seg ) ) {
372
-                            $this->updateSegmentCounts( $seg );
371
+                        if (!$this->hasWrittenCounts && !empty($seg)) {
372
+                            $this->updateSegmentCounts($seg);
373 373
                         }
374 374
 
375 375
                         // delete translations so the prepareSegment
376 376
                         // will put source content in target tag
377
-                        if ( $this->sourceInTarget ) {
378
-                            $seg[ 'translation' ] = '';
377
+                        if ($this->sourceInTarget) {
378
+                            $seg['translation'] = '';
379 379
                             $this->resetCounts();
380 380
                         }
381 381
 
382 382
                         // append $translation
383
-                        $translation = $this->prepareTranslation( $seg, $translation );
383
+                        $translation = $this->prepareTranslation($seg, $translation);
384 384
 
385
-                        list( $stateProp, $lastMrkState ) = $this->setTransUnitState( $seg, $stateProp, $lastMrkState );
385
+                        list($stateProp, $lastMrkState) = $this->setTransUnitState($seg, $stateProp, $lastMrkState);
386 386
                     } else {
387
-                        foreach ( $listOfSegmentsIds as $pos => $id ) {
387
+                        foreach ($listOfSegmentsIds as $pos => $id) {
388 388
 
389 389
                             /*
390 390
                              * This routine works to respect the positional orders of markers.
@@ -397,8 +397,8 @@  discard block
 block discarded – undo
397 397
                              * pre-assign zero to the new mrk if this is the first one ( in this segment )
398 398
                              * If it is null leave it NULL
399 399
                              */
400
-                            if ( (int)$this->segments[ $id ][ "mrk_id" ] < 0 && $this->segments[ $id ][ "mrk_id" ] !== null ) {
401
-                                $this->segments[ $id ][ "mrk_id" ] = 0;
400
+                            if ((int)$this->segments[$id]["mrk_id"] < 0 && $this->segments[$id]["mrk_id"] !== null) {
401
+                                $this->segments[$id]["mrk_id"] = 0;
402 402
                             }
403 403
 
404 404
                             /*
@@ -407,65 +407,65 @@  discard block
 block discarded – undo
407 407
                              * ( null <= -1 ) === true
408 408
                              * so, cast to int
409 409
                              */
410
-                            if ( (int)$this->segments[ $id ][ "mrk_id" ] <= $lastMrkId ) {
410
+                            if ((int)$this->segments[$id]["mrk_id"] <= $lastMrkId) {
411 411
                                 break;
412 412
                             }
413 413
 
414 414
                             // set $this->currentSegment
415
-                            $seg = $this->segments[ $id ];
415
+                            $seg = $this->segments[$id];
416 416
 
417 417
                             // update counts
418
-                            if ( !empty( $seg ) ) {
419
-                                $this->updateSegmentCounts( $seg );
418
+                            if (!empty($seg)) {
419
+                                $this->updateSegmentCounts($seg);
420 420
                             }
421 421
 
422 422
                             // delete translations so the prepareSegment
423 423
                             // will put source content in target tag
424
-                            if ( $this->sourceInTarget ) {
425
-                                $seg[ 'translation' ] = '';
424
+                            if ($this->sourceInTarget) {
425
+                                $seg['translation'] = '';
426 426
                                 $this->resetCounts();
427 427
                             }
428 428
 
429 429
                             // append $translation
430
-                            $translation = $this->prepareTranslation( $seg, $translation );
430
+                            $translation = $this->prepareTranslation($seg, $translation);
431 431
 
432 432
                             // for xliff 2 we need $this->transUnits[ $this->currentId ] [ $pos ] for populating metadata
433 433
 
434
-                            unset( $this->transUnits[ $this->currentTransUnitId ] [ $pos ] );
434
+                            unset($this->transUnits[$this->currentTransUnitId] [$pos]);
435 435
 
436
-                            $lastMrkId = $this->segments[ $id ][ "mrk_id" ];
436
+                            $lastMrkId = $this->segments[$id]["mrk_id"];
437 437
 
438
-                            list( $stateProp, $lastMrkState ) = $this->setTransUnitState( $seg, $stateProp, $lastMrkState );
438
+                            list($stateProp, $lastMrkState) = $this->setTransUnitState($seg, $stateProp, $lastMrkState);
439 439
                         }
440 440
                     }
441 441
 
442 442
                     //append translation
443 443
                     $targetLang = '';
444
-                    if ( $this->xliffVersion === 1 ) {
444
+                    if ($this->xliffVersion === 1) {
445 445
                         $targetLang = ' xml:lang="' . $this->targetLang . '"';
446 446
                     }
447 447
 
448
-                    $tag = $this->buildTranslateTag( $targetLang, $stateProp, $translation, $this->counts[ 'raw_word_count' ], $this->counts[ 'eq_word_count' ] );
448
+                    $tag = $this->buildTranslateTag($targetLang, $stateProp, $translation, $this->counts['raw_word_count'], $this->counts['eq_word_count']);
449 449
                 }
450 450
 
451 451
                 // signal we are leaving a target
452 452
                 $this->targetWasWritten = true;
453 453
                 $this->inTarget         = false;
454
-                $this->postProcAndFlush( $this->outputFP, $tag, $treatAsCDATA = true );
455
-            } elseif ( in_array( $name, $this->nodesToCopy ) ) { // we are closing a critical CDATA section
454
+                $this->postProcAndFlush($this->outputFP, $tag, $treatAsCDATA = true);
455
+            } elseif (in_array($name, $this->nodesToCopy)) { // we are closing a critical CDATA section
456 456
 
457 457
                 $this->bufferIsActive = false;
458 458
 
459 459
                 // only for Xliff 2.*
460 460
                 // write here <mda:metaGroup> and <mda:meta> if already present in the <unit>
461
-                if ( 'mda:metadata' === $name && $this->unitContainsMda && $this->xliffVersion === 2 && !$this->hasWrittenCounts ) {
461
+                if ('mda:metadata' === $name && $this->unitContainsMda && $this->xliffVersion === 2 && !$this->hasWrittenCounts) {
462 462
 
463 463
                     // we need to update counts here
464 464
                     $this->updateCounts();
465 465
                     $this->hasWrittenCounts = true;
466 466
 
467 467
                     $tag = $this->CDATABuffer;
468
-                    $tag .= $this->getWordCountGroupForXliffV2( false );
468
+                    $tag .= $this->getWordCountGroupForXliffV2(false);
469 469
                     $tag .= "    </mda:metadata>";
470 470
 
471 471
                 } else {
@@ -475,59 +475,59 @@  discard block
 block discarded – undo
475 475
                 $this->CDATABuffer = "";
476 476
 
477 477
                 //flush to pointer
478
-                $this->postProcAndFlush( $this->outputFP, $tag );
479
-            } elseif ( 'segment' === $name ) {
478
+                $this->postProcAndFlush($this->outputFP, $tag);
479
+            } elseif ('segment' === $name) {
480 480
 
481 481
                 // only for Xliff 2.*
482 482
                 // if segment has no <target> add it BEFORE </segment>
483
-                if ( $this->xliffVersion === 2 && !$this->targetWasWritten ) {
483
+                if ($this->xliffVersion === 2 && !$this->targetWasWritten) {
484 484
 
485 485
                     $seg = $this->getCurrentSegment();
486 486
 
487 487
                     // copy attr from <source>
488 488
                     $tag = '<target';
489
-                    foreach ( $this->sourceAttributes as $k => $v ) {
489
+                    foreach ($this->sourceAttributes as $k => $v) {
490 490
                         $tag .= " $k=\"$v\"";
491 491
                     }
492 492
 
493
-                    $tag .= '>' . $seg[ 'translation' ] . '</target></segment>';
493
+                    $tag .= '>' . $seg['translation'] . '</target></segment>';
494 494
                 }
495 495
 
496
-                $this->postProcAndFlush( $this->outputFP, $tag );
496
+                $this->postProcAndFlush($this->outputFP, $tag);
497 497
 
498 498
                 // we are leaving <segment>, reset $segmentHasTarget
499 499
                 $this->targetWasWritten = false;
500 500
 
501
-            } elseif ( $name === 'trans-unit' ) {
501
+            } elseif ($name === 'trans-unit') {
502 502
 
503 503
                 // only for Xliff 1.*
504 504
                 // handling </trans-unit> closure
505
-                if ( !$this->targetWasWritten ) {
505
+                if (!$this->targetWasWritten) {
506 506
                     $seg          = $this->getCurrentSegment();
507 507
                     $lastMrkState = null;
508 508
                     $stateProp    = '';
509 509
                     $tag          = '';
510 510
 
511 511
                     // if there is translation available insert <target> BEFORE </trans-unit>
512
-                    if ( isset( $seg[ 'translation' ] ) ) {
513
-                        list( $stateProp, $lastMrkState ) = $this->setTransUnitState( $seg, $stateProp, $lastMrkState );
514
-                        $tag .= $this->createTargetTag( $seg[ 'translation' ], $stateProp );
512
+                    if (isset($seg['translation'])) {
513
+                        list($stateProp, $lastMrkState) = $this->setTransUnitState($seg, $stateProp, $lastMrkState);
514
+                        $tag .= $this->createTargetTag($seg['translation'], $stateProp);
515 515
                     }
516 516
 
517 517
                     $tag .= '</trans-unit>';
518
-                    $this->postProcAndFlush( $this->outputFP, $tag );
518
+                    $this->postProcAndFlush($this->outputFP, $tag);
519 519
                 } else {
520
-                    $this->postProcAndFlush( $this->outputFP, '</trans-unit>' );
520
+                    $this->postProcAndFlush($this->outputFP, '</trans-unit>');
521 521
                 }
522
-            } elseif ( $this->bufferIsActive ) { // this is a tag ( <g | <mrk ) inside a seg or seg-source tag
522
+            } elseif ($this->bufferIsActive) { // this is a tag ( <g | <mrk ) inside a seg or seg-source tag
523 523
                 $this->CDATABuffer .= "</$name>";
524 524
                 // Do NOT Flush
525 525
             } else { //generic tag closure do Nothing
526 526
                 // flush to pointer
527
-                $this->postProcAndFlush( $this->outputFP, $tag );
527
+                $this->postProcAndFlush($this->outputFP, $tag);
528 528
             }
529
-        } elseif ( $this->CDATABuffer === '<note/>' && $this->bufferIsActive === true ) {
530
-            $this->postProcAndFlush( $this->outputFP, '<note/>' );
529
+        } elseif ($this->CDATABuffer === '<note/>' && $this->bufferIsActive === true) {
530
+            $this->postProcAndFlush($this->outputFP, '<note/>');
531 531
             $this->bufferIsActive = false;
532 532
             $this->CDATABuffer    = '';
533 533
             $this->isEmpty        = false;
@@ -537,7 +537,7 @@  discard block
 block discarded – undo
537 537
         }
538 538
 
539 539
         // check if we are leaving a <trans-unit> (xliff v1.*) or <unit> (xliff v2.*)
540
-        if ( $this->tuTagName === $name ) {
540
+        if ($this->tuTagName === $name) {
541 541
             $this->currentTransUnitTranslate = null;
542 542
             $this->inTU                      = false;
543 543
             $this->segmentPositionInTu       = -1;
@@ -554,21 +554,21 @@  discard block
 block discarded – undo
554 554
      *
555 555
      * @param array $listOfSegmentsIds
556 556
      */
557
-    private function setCurrentSegmentArray( array $listOfSegmentsIds = [] ) {
557
+    private function setCurrentSegmentArray(array $listOfSegmentsIds = []) {
558 558
         // $currentSegmentId
559
-        if ( empty( $this->currentSegmentArray ) ) {
559
+        if (empty($this->currentSegmentArray)) {
560 560
             $this->currentSegmentArray = [
561
-                    'sid' => $listOfSegmentsIds[ 0 ],
561
+                    'sid' => $listOfSegmentsIds[0],
562 562
                     'tid' => $this->currentTransUnitId,
563 563
             ];
564 564
         } else {
565
-            if ( $this->currentSegmentArray[ 'tid' ] === $this->currentTransUnitId ) {
566
-                $key                                = array_search( $this->currentSegmentArray[ 'sid' ], $listOfSegmentsIds );
567
-                $this->currentSegmentArray[ 'sid' ] = $listOfSegmentsIds[ $key + 1 ];
568
-                $this->currentSegmentArray[ 'tid' ] = $this->currentTransUnitId;
565
+            if ($this->currentSegmentArray['tid'] === $this->currentTransUnitId) {
566
+                $key                                = array_search($this->currentSegmentArray['sid'], $listOfSegmentsIds);
567
+                $this->currentSegmentArray['sid'] = $listOfSegmentsIds[$key + 1];
568
+                $this->currentSegmentArray['tid'] = $this->currentTransUnitId;
569 569
             } else {
570 570
                 $this->currentSegmentArray = [
571
-                        'sid' => $listOfSegmentsIds[ 0 ],
571
+                        'sid' => $listOfSegmentsIds[0],
572 572
                         'tid' => $this->currentTransUnitId,
573 573
                 ];
574 574
             }
@@ -580,23 +580,23 @@  discard block
 block discarded – undo
580 580
      */
581 581
     private function updateCounts() {
582 582
         // populate counts
583
-        $listOfSegmentsIds = $this->transUnits[ $this->currentTransUnitId ];
583
+        $listOfSegmentsIds = $this->transUnits[$this->currentTransUnitId];
584 584
 
585 585
         // $currentSegmentId
586
-        if ( !empty( $listOfSegmentsIds ) ) {
587
-            $this->setCurrentSegmentArray( $listOfSegmentsIds );
586
+        if (!empty($listOfSegmentsIds)) {
587
+            $this->setCurrentSegmentArray($listOfSegmentsIds);
588 588
         }
589 589
 
590
-        if ( $this->xliffVersion === 2 ) {
591
-            $seg = $this->segments[ $this->currentSegmentArray[ 'sid' ] ];
592
-            if ( !empty( $seg ) ) {
593
-                $this->updateSegmentCounts( $seg );
590
+        if ($this->xliffVersion === 2) {
591
+            $seg = $this->segments[$this->currentSegmentArray['sid']];
592
+            if (!empty($seg)) {
593
+                $this->updateSegmentCounts($seg);
594 594
             }
595 595
         } else {
596
-            foreach ( $listOfSegmentsIds as $pos => $id ) {
597
-                $seg = $this->segments[ $id ];
598
-                if ( !empty( $seg ) ) {
599
-                    $this->updateSegmentCounts( $seg );
596
+            foreach ($listOfSegmentsIds as $pos => $id) {
597
+                $seg = $this->segments[$id];
598
+                if (!empty($seg)) {
599
+                    $this->updateSegmentCounts($seg);
600 600
                 }
601 601
             }
602 602
         }
@@ -607,27 +607,27 @@  discard block
 block discarded – undo
607 607
     /**
608 608
      * @param array $seg
609 609
      */
610
-    private function updateSegmentCounts( array $seg = [] ) {
610
+    private function updateSegmentCounts(array $seg = []) {
611 611
 
612
-        $raw_word_count = $seg[ 'raw_word_count' ];
613
-        $eq_word_count = ( floor( $seg[ 'eq_word_count' ] * 100 ) / 100 );
612
+        $raw_word_count = $seg['raw_word_count'];
613
+        $eq_word_count = (floor($seg['eq_word_count'] * 100) / 100);
614 614
 
615 615
 
616
-        $listOfSegmentsIds = $this->transUnits[ $this->currentTransUnitId ];
616
+        $listOfSegmentsIds = $this->transUnits[$this->currentTransUnitId];
617 617
 
618
-        $this->counts[ 'segments_count_array' ][ $seg[ 'sid' ] ] = [
618
+        $this->counts['segments_count_array'][$seg['sid']] = [
619 619
             'raw_word_count' => $raw_word_count,
620 620
             'eq_word_count' => $eq_word_count,
621 621
         ];
622 622
 
623
-        $this->counts[ 'raw_word_count' ] += $raw_word_count;
624
-        $this->counts[ 'eq_word_count' ]  += $eq_word_count;
623
+        $this->counts['raw_word_count'] += $raw_word_count;
624
+        $this->counts['eq_word_count']  += $eq_word_count;
625 625
     }
626 626
 
627 627
     private function resetCounts() {
628
-        $this->counts[ 'segments_count_array' ] = [];
629
-        $this->counts[ 'raw_word_count' ] = 0;
630
-        $this->counts[ 'eq_word_count' ]  = 0;
628
+        $this->counts['segments_count_array'] = [];
629
+        $this->counts['raw_word_count'] = 0;
630
+        $this->counts['eq_word_count']  = 0;
631 631
     }
632 632
 
633 633
     /**
@@ -638,38 +638,38 @@  discard block
 block discarded – undo
638 638
      *
639 639
      * @return string
640 640
      */
641
-    protected function prepareTranslation( $seg, $transUnitTranslation = "" ) {
641
+    protected function prepareTranslation($seg, $transUnitTranslation = "") {
642 642
         $endTags = "";
643 643
 
644
-        $segment     = Strings::removeDangerousChars( $seg [ 'segment' ] );
645
-        $translation = Strings::removeDangerousChars( $seg [ 'translation' ] );
646
-        $dataRefMap  = ( isset( $seg[ 'data_ref_map' ] ) && $seg[ 'data_ref_map' ] !== null ) ? Strings::jsonToArray( $seg[ 'data_ref_map' ] ) : [];
644
+        $segment     = Strings::removeDangerousChars($seg ['segment']);
645
+        $translation = Strings::removeDangerousChars($seg ['translation']);
646
+        $dataRefMap  = (isset($seg['data_ref_map']) && $seg['data_ref_map'] !== null) ? Strings::jsonToArray($seg['data_ref_map']) : [];
647 647
 
648
-        if ( is_null( $seg [ 'translation' ] ) || $seg [ 'translation' ] == '' ) {
648
+        if (is_null($seg ['translation']) || $seg ['translation'] == '') {
649 649
             $translation = $segment;
650 650
         } else {
651
-            if ( $this->callback instanceof XliffReplacerCallbackInterface ) {
651
+            if ($this->callback instanceof XliffReplacerCallbackInterface) {
652 652
                 $error = (isset($seg['error'])) ? $seg['error'] : null;
653
-                if ( $this->callback->thereAreErrors( $seg[ 'sid' ], $segment, $translation, $dataRefMap, $error ) ) {
653
+                if ($this->callback->thereAreErrors($seg['sid'], $segment, $translation, $dataRefMap, $error)) {
654 654
                     $translation = '|||UNTRANSLATED_CONTENT_START|||' . $segment . '|||UNTRANSLATED_CONTENT_END|||';
655 655
                 }
656 656
             }
657 657
         }
658 658
 
659 659
         // for xliff v2 we ignore the marks on purpose
660
-        if ( $this->xliffVersion === 2 ) {
660
+        if ($this->xliffVersion === 2) {
661 661
             return $translation;
662 662
         }
663 663
 
664
-        if ( $seg[ 'mrk_id' ] !== null && $seg[ 'mrk_id' ] != '' ) {
665
-            if ( $this->targetLang === 'ja-JP' ) {
666
-                $seg[ 'mrk_succ_tags' ] = ltrim( $seg[ 'mrk_succ_tags' ] );
664
+        if ($seg['mrk_id'] !== null && $seg['mrk_id'] != '') {
665
+            if ($this->targetLang === 'ja-JP') {
666
+                $seg['mrk_succ_tags'] = ltrim($seg['mrk_succ_tags']);
667 667
             }
668 668
 
669
-            $translation = "<mrk mid=\"" . $seg[ 'mrk_id' ] . "\" mtype=\"seg\">" . $seg[ 'mrk_prev_tags' ] . $translation . $seg[ 'mrk_succ_tags' ] . "</mrk>";
669
+            $translation = "<mrk mid=\"" . $seg['mrk_id'] . "\" mtype=\"seg\">" . $seg['mrk_prev_tags'] . $translation . $seg['mrk_succ_tags'] . "</mrk>";
670 670
         }
671 671
 
672
-        $transUnitTranslation .= $seg[ 'prev_tags' ] . $translation . $endTags . $seg[ 'succ_tags' ];
672
+        $transUnitTranslation .= $seg['prev_tags'] . $translation . $endTags . $seg['succ_tags'];
673 673
 
674 674
         return $transUnitTranslation;
675 675
     }
@@ -683,15 +683,15 @@  discard block
 block discarded – undo
683 683
      *
684 684
      * @return string
685 685
      */
686
-    private function buildTranslateTag( $targetLang, $stateProp, $translation, $rawWordCount, $eqWordCount ) {
687
-        switch ( $this->xliffVersion ) {
686
+    private function buildTranslateTag($targetLang, $stateProp, $translation, $rawWordCount, $eqWordCount) {
687
+        switch ($this->xliffVersion) {
688 688
             case 1:
689 689
             default:
690 690
                 $tag = "<target $targetLang $stateProp>$translation</target>";
691 691
 
692 692
                 // if it's a Trados file don't append count group
693
-                if ( get_class( $this ) !== SdlXliffSAXTranslationReplacer::class ) {
694
-                    $tag .= $this->getWordCountGroup( $rawWordCount, $eqWordCount );
693
+                if (get_class($this) !== SdlXliffSAXTranslationReplacer::class) {
694
+                    $tag .= $this->getWordCountGroup($rawWordCount, $eqWordCount);
695 695
                 }
696 696
 
697 697
                 return $tag;
@@ -707,7 +707,7 @@  discard block
 block discarded – undo
707 707
      *
708 708
      * @return string
709 709
      */
710
-    private function getWordCountGroup( $raw_word_count, $eq_word_count ) {
710
+    private function getWordCountGroup($raw_word_count, $eq_word_count) {
711 711
         return "\n<count-group name=\"$this->currentTransUnitId\"><count count-type=\"x-matecat-raw\">$raw_word_count</count><count count-type=\"x-matecat-weighted\">$eq_word_count</count></count-group>";
712 712
     }
713 713
 
@@ -715,11 +715,11 @@  discard block
 block discarded – undo
715 715
      * @return array
716 716
      */
717 717
     private function getCurrentSegment() {
718
-        if ( $this->currentTransUnitTranslate === 'yes' && isset( $this->transUnits[ $this->currentTransUnitId ] ) ) {
719
-            $index = $this->transUnits[ $this->currentTransUnitId ][ $this->segmentPositionInTu ];
718
+        if ($this->currentTransUnitTranslate === 'yes' && isset($this->transUnits[$this->currentTransUnitId])) {
719
+            $index = $this->transUnits[$this->currentTransUnitId][$this->segmentPositionInTu];
720 720
 
721
-            if ( isset( $this->segments[ $index ] ) ) {
722
-                return $this->segments[ $index ];
721
+            if (isset($this->segments[$index])) {
722
+                return $this->segments[$index];
723 723
             }
724 724
         }
725 725
 
@@ -734,10 +734,10 @@  discard block
 block discarded – undo
734 734
      *
735 735
      * @return string
736 736
      */
737
-    private function createTargetTag( $translation, $stateProp ) {
737
+    private function createTargetTag($translation, $stateProp) {
738 738
         $targetLang = 'xml:lang="' . $this->targetLang . '"';
739 739
 
740
-        return $this->buildTranslateTag( $targetLang, $stateProp, $translation, $this->counts[ 'raw_word_count' ], $this->counts[ 'eq_word_count' ] );
740
+        return $this->buildTranslateTag($targetLang, $stateProp, $translation, $this->counts['raw_word_count'], $this->counts['eq_word_count']);
741 741
     }
742 742
 
743 743
     /**
@@ -745,10 +745,10 @@  discard block
 block discarded – undo
745 745
      *
746 746
      * @return string
747 747
      */
748
-    private function getWordCountGroupForXliffV2( $withMetadataTag = true ) {
748
+    private function getWordCountGroupForXliffV2($withMetadataTag = true) {
749 749
 
750 750
         $this->mdaGroupCounter++;
751
-        $segments_count_array = $this->counts[ 'segments_count_array' ];
751
+        $segments_count_array = $this->counts['segments_count_array'];
752 752
 
753 753
         $id = $this->currentSegmentArray;
754 754
 
@@ -756,23 +756,23 @@  discard block
 block discarded – undo
756 756
 
757 757
         $return = '';
758 758
 
759
-        if ( $withMetadataTag === true ) {
759
+        if ($withMetadataTag === true) {
760 760
             $return .= '<mda:metadata>';
761 761
         }
762 762
 
763 763
         $index = 0;
764
-        foreach ($segments_count_array as $segments_count_item){
764
+        foreach ($segments_count_array as $segments_count_item) {
765 765
 
766
-            $id = 'word_count_tu['. $this->currentTransUnitId . '][' . $index.']';
766
+            $id = 'word_count_tu[' . $this->currentTransUnitId . '][' . $index . ']';
767 767
             $index++;
768 768
 
769 769
             $return .= "    <mda:metaGroup id=\"" . $id . "\" category=\"row_xml_attribute\">
770
-                                <mda:meta type=\"x-matecat-raw\">". $segments_count_item['raw_word_count']."</mda:meta>
771
-                                <mda:meta type=\"x-matecat-weighted\">". $segments_count_item['eq_word_count']."</mda:meta>
770
+                                <mda:meta type=\"x-matecat-raw\">". $segments_count_item['raw_word_count'] . "</mda:meta>
771
+                                <mda:meta type=\"x-matecat-weighted\">". $segments_count_item['eq_word_count'] . "</mda:meta>
772 772
                             </mda:metaGroup>";
773 773
         }
774 774
 
775
-        if ( $withMetadataTag === true ) {
775
+        if ($withMetadataTag === true) {
776 776
             $return .= '</mda:metadata>';
777 777
         }
778 778
 
@@ -787,17 +787,17 @@  discard block
 block discarded – undo
787 787
      *
788 788
      * @return array
789 789
      */
790
-    private function setTransUnitState( $seg, $state_prop, $lastMrkState ) {
791
-        switch ( $seg[ 'status' ] ) {
790
+    private function setTransUnitState($seg, $state_prop, $lastMrkState) {
791
+        switch ($seg['status']) {
792 792
 
793 793
             case TranslationStatus::STATUS_FIXED:
794 794
             case TranslationStatus::STATUS_APPROVED:
795
-                if ( $lastMrkState == null || $lastMrkState == TranslationStatus::STATUS_APPROVED ) {
795
+                if ($lastMrkState == null || $lastMrkState == TranslationStatus::STATUS_APPROVED) {
796 796
 
797
-                    if( isset($seg[ 'r2' ]) and $seg[ 'r2' ] == 1 ){
797
+                    if (isset($seg['r2']) and $seg['r2'] == 1) {
798 798
                         $state_prop   = "state=\"final\"";
799 799
                     } else {
800
-                        $state_prop   = ( $this->xliffVersion === 2 ) ? "state=\"reviewed\"" : "state=\"signed-off\"";
800
+                        $state_prop   = ($this->xliffVersion === 2) ? "state=\"reviewed\"" : "state=\"signed-off\"";
801 801
                     }
802 802
 
803 803
                     $lastMrkState = TranslationStatus::STATUS_APPROVED;
@@ -805,7 +805,7 @@  discard block
 block discarded – undo
805 805
                 break;
806 806
 
807 807
             case TranslationStatus::STATUS_TRANSLATED:
808
-                if ( $lastMrkState == null || $lastMrkState == TranslationStatus::STATUS_TRANSLATED || $lastMrkState == TranslationStatus::STATUS_APPROVED ) {
808
+                if ($lastMrkState == null || $lastMrkState == TranslationStatus::STATUS_TRANSLATED || $lastMrkState == TranslationStatus::STATUS_APPROVED) {
809 809
                     $state_prop   = "state=\"translated\"";
810 810
                     $lastMrkState = TranslationStatus::STATUS_TRANSLATED;
811 811
                 }
@@ -813,22 +813,22 @@  discard block
 block discarded – undo
813 813
 
814 814
             case TranslationStatus::STATUS_REJECTED:  // if there is a mark REJECTED and there is not a DRAFT, all the trans-unit is REJECTED. In V2 there is no way to mark
815 815
             case TranslationStatus::STATUS_REBUTTED:
816
-                if ( ( $lastMrkState == null ) || ( $lastMrkState != TranslationStatus::STATUS_NEW || $lastMrkState != TranslationStatus::STATUS_DRAFT ) ) {
817
-                    $state_prop   = ( $this->xliffVersion === 2 ) ? "state=\"initial\"" : "state=\"needs-review-translation\"";
816
+                if (($lastMrkState == null) || ($lastMrkState != TranslationStatus::STATUS_NEW || $lastMrkState != TranslationStatus::STATUS_DRAFT)) {
817
+                    $state_prop   = ($this->xliffVersion === 2) ? "state=\"initial\"" : "state=\"needs-review-translation\"";
818 818
                     $lastMrkState = TranslationStatus::STATUS_REJECTED;
819 819
                 }
820 820
                 break;
821 821
 
822 822
             case TranslationStatus::STATUS_NEW:
823
-                if ( ( $lastMrkState == null ) || $lastMrkState != TranslationStatus::STATUS_NEW ) {
824
-                    $state_prop   = ( $this->xliffVersion === 2 ) ? "state=\"initial\"" : "state=\"new\"";
823
+                if (($lastMrkState == null) || $lastMrkState != TranslationStatus::STATUS_NEW) {
824
+                    $state_prop   = ($this->xliffVersion === 2) ? "state=\"initial\"" : "state=\"new\"";
825 825
                     $lastMrkState = TranslationStatus::STATUS_NEW;
826 826
                 }
827 827
                 break;
828 828
 
829 829
             case TranslationStatus::STATUS_DRAFT:
830
-                if ( ( $lastMrkState == null ) || $lastMrkState != TranslationStatus::STATUS_DRAFT ) {
831
-                    $state_prop   = ( $this->xliffVersion === 2 ) ? "state=\"initial\"" : "state=\"new\"";
830
+                if (($lastMrkState == null) || $lastMrkState != TranslationStatus::STATUS_DRAFT) {
831
+                    $state_prop   = ($this->xliffVersion === 2) ? "state=\"initial\"" : "state=\"new\"";
832 832
                     $lastMrkState = TranslationStatus::STATUS_DRAFT;
833 833
                 }
834 834
                 break;
@@ -837,7 +837,7 @@  discard block
 block discarded – undo
837 837
                 // this is the case when a segment is not showed in cattool, so the row in
838 838
                 // segment_translations does not exists and
839 839
                 // ---> $seg[ 'status' ] is NULL
840
-                if ( $lastMrkState == null ) { //this is the first MRK ID
840
+                if ($lastMrkState == null) { //this is the first MRK ID
841 841
                     $state_prop   = "state=\"translated\"";
842 842
                     $lastMrkState = TranslationStatus::STATUS_TRANSLATED;
843 843
                 } else {
@@ -846,17 +846,17 @@  discard block
 block discarded – undo
846 846
                 break;
847 847
         }
848 848
 
849
-        return [ $state_prop, $lastMrkState ];
849
+        return [$state_prop, $lastMrkState];
850 850
     }
851 851
 
852 852
     /**
853 853
      * @inheritDoc
854 854
      */
855
-    protected function characterData( $parser, $data ) {
855
+    protected function characterData($parser, $data) {
856 856
         // don't write <target> data
857
-        if ( !$this->inTarget && !$this->bufferIsActive ) {
858
-            $this->postProcAndFlush( $this->outputFP, $data );
859
-        } elseif ( $this->bufferIsActive ) {
857
+        if (!$this->inTarget && !$this->bufferIsActive) {
858
+            $this->postProcAndFlush($this->outputFP, $data);
859
+        } elseif ($this->bufferIsActive) {
860 860
             $this->CDATABuffer .= $data;
861 861
         }
862 862
     }
Please login to merge, or discard this patch.
src/XliffParser/AbstractXliffParser.php 1 patch
Spacing   +59 added lines, -59 removed lines patch added patch discarded remove patch
@@ -36,7 +36,7 @@  discard block
 block discarded – undo
36 36
      * @param string|null          $xliffProprietary
37 37
      * @param LoggerInterface|null $logger
38 38
      */
39
-    public function __construct( $xliffVersion, $xliffProprietary = null, LoggerInterface $logger = null ) {
39
+    public function __construct($xliffVersion, $xliffProprietary = null, LoggerInterface $logger = null) {
40 40
         $this->xliffVersion     = $xliffVersion;
41 41
         $this->logger           = $logger;
42 42
         $this->xliffProprietary = $xliffProprietary;
@@ -46,7 +46,7 @@  discard block
 block discarded – undo
46 46
      * @return string
47 47
      */
48 48
     protected function getTuTagName() {
49
-        return ( $this->xliffVersion === 1 ) ? 'trans-unit' : 'unit';
49
+        return ($this->xliffVersion === 1) ? 'trans-unit' : 'unit';
50 50
     }
51 51
 
52 52
     /**
@@ -54,7 +54,7 @@  discard block
 block discarded – undo
54 54
      *
55 55
      * @return array
56 56
      */
57
-    abstract public function parse( DOMDocument $dom, $output = [] );
57
+    abstract public function parse(DOMDocument $dom, $output = []);
58 58
 
59 59
     /**
60 60
      * Extract trans-unit content from the current node
@@ -68,33 +68,33 @@  discard block
 block discarded – undo
68 68
      * @param array $contextGroups
69 69
      * @param int $recursionLevel
70 70
      */
71
-    protected function extractTuFromNode( $childNode, &$transUnitIdArrayForUniquenessCheck, DOMDocument $dom, &$output, &$i, &$j, $contextGroups = [], $recursionLevel = 0 ) {
72
-        if ( $childNode->nodeName === 'group' ) {
71
+    protected function extractTuFromNode($childNode, &$transUnitIdArrayForUniquenessCheck, DOMDocument $dom, &$output, &$i, &$j, $contextGroups = [], $recursionLevel = 0) {
72
+        if ($childNode->nodeName === 'group') {
73 73
 
74 74
             // add nested context-groups
75
-            foreach ( $childNode->childNodes as $nestedChildNode ) {
76
-                if ( $nestedChildNode->nodeName ===  'context-group' ) {
75
+            foreach ($childNode->childNodes as $nestedChildNode) {
76
+                if ($nestedChildNode->nodeName === 'context-group') {
77 77
                     $contextGroups[] = $nestedChildNode;
78 78
                 }
79 79
             }
80 80
 
81
-            foreach ( $childNode->childNodes as $nestedChildNode ) {
81
+            foreach ($childNode->childNodes as $nestedChildNode) {
82 82
 
83 83
                 // nested groups
84
-                if ( $nestedChildNode->nodeName === 'group' ) {
84
+                if ($nestedChildNode->nodeName === 'group') {
85 85
 
86 86
                     // avoid infinite recursion
87 87
                     $recursionLevel++;
88
-                    if($recursionLevel < self::MAX_GROUP_RECURSION_LEVEL){
89
-                        $this->extractTuFromNode( $nestedChildNode, $transUnitIdArrayForUniquenessCheck, $dom, $output, $i, $j, $contextGroups, $recursionLevel );
88
+                    if ($recursionLevel < self::MAX_GROUP_RECURSION_LEVEL) {
89
+                        $this->extractTuFromNode($nestedChildNode, $transUnitIdArrayForUniquenessCheck, $dom, $output, $i, $j, $contextGroups, $recursionLevel);
90 90
                     }
91 91
 
92
-                } elseif ( $nestedChildNode->nodeName === $this->getTuTagName() ) {
93
-                    $this->extractTransUnit( $nestedChildNode, $transUnitIdArrayForUniquenessCheck, $dom, $output, $i, $j, $contextGroups );
92
+                } elseif ($nestedChildNode->nodeName === $this->getTuTagName()) {
93
+                    $this->extractTransUnit($nestedChildNode, $transUnitIdArrayForUniquenessCheck, $dom, $output, $i, $j, $contextGroups);
94 94
                 }
95 95
             }
96
-        } elseif ( $childNode->nodeName === $this->getTuTagName() ) {
97
-            $this->extractTransUnit( $childNode, $transUnitIdArrayForUniquenessCheck, $dom, $output, $i, $j, $contextGroups );
96
+        } elseif ($childNode->nodeName === $this->getTuTagName()) {
97
+            $this->extractTransUnit($childNode, $transUnitIdArrayForUniquenessCheck, $dom, $output, $i, $j, $contextGroups);
98 98
         }
99 99
     }
100 100
 
@@ -111,7 +111,7 @@  discard block
 block discarded – undo
111 111
      *
112 112
      * @return mixed
113 113
      */
114
-    abstract protected function extractTransUnit( $transUnit, &$transUnitIdArrayForUniquenessCheck, $dom, &$output, &$i, &$j,$contextGroups = [] );
114
+    abstract protected function extractTransUnit($transUnit, &$transUnitIdArrayForUniquenessCheck, $dom, &$output, &$i, &$j, $contextGroups = []);
115 115
 
116 116
     /**
117 117
      * @param DOMDocument $dom
@@ -119,10 +119,10 @@  discard block
 block discarded – undo
119 119
      *
120 120
      * @return array
121 121
      */
122
-    protected function extractContent( DOMDocument $dom, DOMNode $node ) {
122
+    protected function extractContent(DOMDocument $dom, DOMNode $node) {
123 123
         return [
124
-                'raw-content' => $this->extractTagContent( $dom, $node ),
125
-                'attr'        => $this->extractTagAttributes( $node )
124
+                'raw-content' => $this->extractTagContent($dom, $node),
125
+                'attr'        => $this->extractTagAttributes($node)
126 126
         ];
127 127
     }
128 128
 
@@ -139,12 +139,12 @@  discard block
 block discarded – undo
139 139
      *
140 140
      * @return array
141 141
      */
142
-    protected function extractTagAttributes( DOMNode $element ) {
142
+    protected function extractTagAttributes(DOMNode $element) {
143 143
         $tagAttributes = [];
144 144
 
145
-        if ( $element->hasAttributes() ) {
146
-            foreach ( $element->attributes as $attr ) {
147
-                $tagAttributes[ $attr->nodeName ] = $attr->nodeValue;
145
+        if ($element->hasAttributes()) {
146
+            foreach ($element->attributes as $attr) {
147
+                $tagAttributes[$attr->nodeName] = $attr->nodeValue;
148 148
             }
149 149
         }
150 150
 
@@ -159,17 +159,17 @@  discard block
 block discarded – undo
159 159
      *
160 160
      * @return string
161 161
      */
162
-    protected function extractTagContent( DOMDocument $dom, DOMNode $element ) {
162
+    protected function extractTagContent(DOMDocument $dom, DOMNode $element) {
163 163
         $childNodes       = $element->hasChildNodes();
164 164
         $extractedContent = '';
165 165
 
166
-        if ( !empty( $childNodes ) ) {
167
-            foreach ( $element->childNodes as $node ) {
168
-                $extractedContent .= Emoji::toEntity( Strings::fixNonWellFormedXml( $dom->saveXML( $node ) ) );
166
+        if (!empty($childNodes)) {
167
+            foreach ($element->childNodes as $node) {
168
+                $extractedContent .= Emoji::toEntity(Strings::fixNonWellFormedXml($dom->saveXML($node)));
169 169
             }
170 170
         }
171 171
 
172
-        return str_replace( Placeholder::EMPTY_TAG_PLACEHOLDER, '', $extractedContent );
172
+        return str_replace(Placeholder::EMPTY_TAG_PLACEHOLDER, '', $extractedContent);
173 173
     }
174 174
 
175 175
     /**
@@ -180,45 +180,45 @@  discard block
 block discarded – undo
180 180
      *
181 181
      * @return array
182 182
      */
183
-    protected function extractContentWithMarksAndExtTags( DOMDocument $dom, DOMElement $childNode ) {
183
+    protected function extractContentWithMarksAndExtTags(DOMDocument $dom, DOMElement $childNode) {
184 184
         $source = [];
185 185
 
186 186
         // example:
187 187
         // <g id="1"><mrk mid="0" mtype="seg">An English string with g tags</mrk></g>
188
-        $raw = $this->extractTagContent( $dom, $childNode );
188
+        $raw = $this->extractTagContent($dom, $childNode);
189 189
 
190
-        $markers = preg_split( '#<mrk\s#si', $raw, -1 );
190
+        $markers = preg_split('#<mrk\s#si', $raw, -1);
191 191
 
192 192
         $mi = 0;
193
-        while ( isset( $markers[ $mi + 1 ] ) ) {
194
-            unset( $mid );
193
+        while (isset($markers[$mi + 1])) {
194
+            unset($mid);
195 195
 
196
-            preg_match( '|mid\s?=\s?["\'](.*?)["\']|si', $markers[ $mi + 1 ], $mid );
196
+            preg_match('|mid\s?=\s?["\'](.*?)["\']|si', $markers[$mi + 1], $mid);
197 197
 
198 198
             // if it's a Trados file the trailing spaces after </mrk> are meaningful
199 199
             // so we add them to
200 200
             $trailingSpaces = '';
201
-            if ( $this->xliffProprietary === 'trados' ) {
202
-                preg_match_all( '/<\/mrk>[\s]+/iu', $markers[ $mi + 1 ], $trailingSpacesMatches );
201
+            if ($this->xliffProprietary === 'trados') {
202
+                preg_match_all('/<\/mrk>[\s]+/iu', $markers[$mi + 1], $trailingSpacesMatches);
203 203
 
204
-                if ( isset( $trailingSpacesMatches[ 0 ] ) && count( $trailingSpacesMatches[ 0 ] ) > 0 ) {
205
-                    foreach ( $trailingSpacesMatches[ 0 ] as $match ) {
206
-                        $trailingSpaces = str_replace( '</mrk>', '', $match );
204
+                if (isset($trailingSpacesMatches[0]) && count($trailingSpacesMatches[0]) > 0) {
205
+                    foreach ($trailingSpacesMatches[0] as $match) {
206
+                        $trailingSpaces = str_replace('</mrk>', '', $match);
207 207
                     }
208 208
                 }
209 209
             }
210 210
 
211 211
             //re-build the mrk tag after the split
212
-            $originalMark = trim( '<mrk ' . $markers[ $mi + 1 ] );
212
+            $originalMark = trim('<mrk ' . $markers[$mi + 1]);
213 213
 
214
-            $mark_string  = preg_replace( '#^<mrk\s[^>]+>(.*)#', '$1', $originalMark ); // at this point we have: ---> 'Test </mrk> </g>>'
215
-            $mark_content = preg_split( '#</mrk>#si', $mark_string );
214
+            $mark_string  = preg_replace('#^<mrk\s[^>]+>(.*)#', '$1', $originalMark); // at this point we have: ---> 'Test </mrk> </g>>'
215
+            $mark_content = preg_split('#</mrk>#si', $mark_string);
216 216
 
217 217
             $sourceArray = [
218
-                    'mid'           => ( isset( $mid[ 1 ] ) ) ? $mid[ 1 ] : $mi,
219
-                    'ext-prec-tags' => ( $mi == 0 ? $markers[ 0 ] : "" ),
220
-                    'raw-content'   => ( isset( $mark_content[ 0 ] ) ) ? $mark_content[ 0 ] . $trailingSpaces : '',
221
-                    'ext-succ-tags' => ( isset( $mark_content[ 1 ] ) ) ? $mark_content[ 1 ] : '',
218
+                    'mid'           => (isset($mid[1])) ? $mid[1] : $mi,
219
+                    'ext-prec-tags' => ($mi == 0 ? $markers[0] : ""),
220
+                    'raw-content'   => (isset($mark_content[0])) ? $mark_content[0] . $trailingSpaces : '',
221
+                    'ext-succ-tags' => (isset($mark_content[1])) ? $mark_content[1] : '',
222 222
             ];
223 223
 
224 224
             $source[] = $sourceArray;
@@ -234,12 +234,12 @@  discard block
 block discarded – undo
234 234
      *
235 235
      * @return array
236 236
      */
237
-    protected function getDataRefMap( $originalData ) {
237
+    protected function getDataRefMap($originalData) {
238 238
         // dataRef map
239 239
         $dataRefMap = [];
240
-        foreach ( $originalData as $datum ) {
241
-            if ( isset( $datum[ 'attr' ][ 'id' ] ) ) {
242
-                $dataRefMap[ $datum[ 'attr' ][ 'id' ] ] = $datum[ 'raw-content' ];
240
+        foreach ($originalData as $datum) {
241
+            if (isset($datum['attr']['id'])) {
242
+                $dataRefMap[$datum['attr']['id']] = $datum['raw-content'];
243 243
             }
244 244
         }
245 245
 
@@ -251,10 +251,10 @@  discard block
 block discarded – undo
251 251
      *
252 252
      * @return bool
253 253
      */
254
-    protected function stringContainsMarks( $raw ) {
255
-        $markers = preg_split( '#<mrk\s#si', $raw, -1 );
254
+    protected function stringContainsMarks($raw) {
255
+        $markers = preg_split('#<mrk\s#si', $raw, -1);
256 256
 
257
-        return isset( $markers[ 1 ] );
257
+        return isset($markers[1]);
258 258
     }
259 259
 
260 260
     /**
@@ -264,7 +264,7 @@  discard block
 block discarded – undo
264 264
      * @return array
265 265
      * @throws \Exception
266 266
      */
267
-    protected function JSONOrRawContentArray( $noteValue, $escapeStrings = true ) {
267
+    protected function JSONOrRawContentArray($noteValue, $escapeStrings = true) {
268 268
         //
269 269
         // convert double escaped entites
270 270
         //
@@ -274,17 +274,17 @@  discard block
 block discarded – undo
274 274
         // &amp;amp; ---> &amp;
275 275
         // &amp;apos ---> &apos;
276 276
         //
277
-        if ( Strings::isADoubleEscapedEntity( $noteValue ) ) {
278
-            $noteValue = Strings::htmlspecialchars_decode( $noteValue, true );
277
+        if (Strings::isADoubleEscapedEntity($noteValue)) {
278
+            $noteValue = Strings::htmlspecialchars_decode($noteValue, true);
279 279
         } else {
280 280
             // for non escaped entities $escapeStrings is always true for security reasons
281 281
             $escapeStrings = true;
282 282
         }
283 283
 
284
-        if ( Strings::isJSON( $noteValue ) ) {
285
-            return [ 'json' => Strings::cleanCDATA( $noteValue ) ];
284
+        if (Strings::isJSON($noteValue)) {
285
+            return ['json' => Strings::cleanCDATA($noteValue)];
286 286
         }
287 287
 
288
-        return [ 'raw-content' => Strings::fixNonWellFormedXml( $noteValue, $escapeStrings ) ];
288
+        return ['raw-content' => Strings::fixNonWellFormedXml($noteValue, $escapeStrings)];
289 289
     }
290 290
 }
Please login to merge, or discard this patch.
src/XliffParser/XliffParserV1.php 1 patch
Spacing   +95 added lines, -95 removed lines patch added patch discarded remove patch
@@ -16,33 +16,33 @@  discard block
 block discarded – undo
16 16
      * @inheritDoc
17 17
      * @throws Exception
18 18
      */
19
-    public function parse( DOMDocument $dom, $output = [] ) {
19
+    public function parse(DOMDocument $dom, $output = []) {
20 20
         $i = 1;
21 21
         /** @var DOMElement $file */
22
-        foreach ( $dom->getElementsByTagName( 'file' ) as $file ) {
22
+        foreach ($dom->getElementsByTagName('file') as $file) {
23 23
 
24 24
             // metadata
25
-            $output[ 'files' ][ $i ][ 'attr' ] = $this->extractMetadata( $file );
25
+            $output['files'][$i]['attr'] = $this->extractMetadata($file);
26 26
 
27 27
             // reference
28
-            if ( !empty( $this->extractReference( $file ) ) ) {
29
-                $output[ 'files' ][ $i ][ 'reference' ] = $this->extractReference( $file );
28
+            if (!empty($this->extractReference($file))) {
29
+                $output['files'][$i]['reference'] = $this->extractReference($file);
30 30
             }
31 31
 
32 32
             // trans-units
33 33
             $transUnitIdArrayForUniquenessCheck = [];
34 34
             $j                                  = 1;
35
-            foreach ( $file->childNodes as $body ) {
36
-                if ( $body->nodeName === 'body' ) {
37
-                    foreach ( $body->childNodes as $childNode ) {
38
-                        $this->extractTuFromNode( $childNode, $transUnitIdArrayForUniquenessCheck, $dom, $output, $i, $j );
35
+            foreach ($file->childNodes as $body) {
36
+                if ($body->nodeName === 'body') {
37
+                    foreach ($body->childNodes as $childNode) {
38
+                        $this->extractTuFromNode($childNode, $transUnitIdArrayForUniquenessCheck, $dom, $output, $i, $j);
39 39
                     }
40 40
 
41 41
                     // trans-unit re-count check
42
-                    $totalTransUnitsId  = count( $transUnitIdArrayForUniquenessCheck );
43
-                    $transUnitsUniqueId = count( array_unique( $transUnitIdArrayForUniquenessCheck ) );
44
-                    if ( $totalTransUnitsId != $transUnitsUniqueId ) {
45
-                        throw new DuplicateTransUnitIdInXliff( "Invalid trans-unit id, duplicate found.", 400 );
42
+                    $totalTransUnitsId  = count($transUnitIdArrayForUniquenessCheck);
43
+                    $transUnitsUniqueId = count(array_unique($transUnitIdArrayForUniquenessCheck));
44
+                    if ($totalTransUnitsId != $transUnitsUniqueId) {
45
+                        throw new DuplicateTransUnitIdInXliff("Invalid trans-unit id, duplicate found.", 400);
46 46
                     }
47 47
 
48 48
                     $i++;
@@ -58,50 +58,50 @@  discard block
 block discarded – undo
58 58
      *
59 59
      * @return array
60 60
      */
61
-    private function extractMetadata( DOMElement $file ) {
61
+    private function extractMetadata(DOMElement $file) {
62 62
         $metadata   = [];
63 63
         $customAttr = [];
64 64
 
65 65
         /** @var DOMAttr $attribute */
66
-        foreach ( $file->attributes as $attribute ) {
67
-            switch ( $attribute->localName ) {
66
+        foreach ($file->attributes as $attribute) {
67
+            switch ($attribute->localName) {
68 68
                 // original
69 69
                 case 'original':
70
-                    $metadata[ 'original' ] = $attribute->value;
70
+                    $metadata['original'] = $attribute->value;
71 71
                     break;
72 72
 
73 73
                 // source-language
74 74
                 case 'source-language':
75
-                    $metadata[ 'source-language' ] = $attribute->value;
75
+                    $metadata['source-language'] = $attribute->value;
76 76
                     break;
77 77
 
78 78
                 // data-type
79 79
                 case 'datatype':
80
-                    $metadata[ 'data-type' ] = $attribute->value;
80
+                    $metadata['data-type'] = $attribute->value;
81 81
                     break;
82 82
 
83 83
                 // target-language
84 84
                 case 'target-language':
85
-                    $metadata[ 'target-language' ] = $attribute->value;
85
+                    $metadata['target-language'] = $attribute->value;
86 86
                     break;
87 87
             }
88 88
 
89 89
             // Custom MateCat x-Attribute
90
-            preg_match( '|x-(.*?)|si', $attribute->localName, $temp );
91
-            if ( isset( $temp[ 1 ] ) ) {
92
-                $customAttr[ $attribute->localName ] = $attribute->value;
90
+            preg_match('|x-(.*?)|si', $attribute->localName, $temp);
91
+            if (isset($temp[1])) {
92
+                $customAttr[$attribute->localName] = $attribute->value;
93 93
             }
94
-            unset( $temp );
94
+            unset($temp);
95 95
 
96 96
             // Custom MateCat namespace Attribute mtc:
97
-            preg_match( '|mtc:(.*?)|si', $attribute->nodeName, $temp );
98
-            if ( isset( $temp[ 1 ] ) ) {
99
-                $customAttr[ $attribute->nodeName ] = $attribute->value;
97
+            preg_match('|mtc:(.*?)|si', $attribute->nodeName, $temp);
98
+            if (isset($temp[1])) {
99
+                $customAttr[$attribute->nodeName] = $attribute->value;
100 100
             }
101
-            unset( $temp );
101
+            unset($temp);
102 102
 
103
-            if ( !empty( $customAttr ) ) {
104
-                $metadata[ 'custom' ] = $customAttr;
103
+            if (!empty($customAttr)) {
104
+                $metadata['custom'] = $customAttr;
105 105
             }
106 106
         }
107 107
 
@@ -113,16 +113,16 @@  discard block
 block discarded – undo
113 113
      *
114 114
      * @return array
115 115
      */
116
-    private function extractReference( DOMElement $file ) {
116
+    private function extractReference(DOMElement $file) {
117 117
         $reference = [];
118 118
 
119 119
         $order = 0;
120
-        foreach ( $file->getElementsByTagName( 'reference' ) as $ref ) {
120
+        foreach ($file->getElementsByTagName('reference') as $ref) {
121 121
             /** @var DOMNode $childNode */
122
-            foreach ( $ref->childNodes as $childNode ) {
123
-                if ( $childNode->nodeName === 'internal-file' ) {
124
-                    $reference[ $order ][ 'form-type' ] = $childNode->attributes->getNamedItem( 'form' )->nodeValue;
125
-                    $reference[ $order ][ 'base64' ]    = trim( $childNode->nodeValue );
122
+            foreach ($ref->childNodes as $childNode) {
123
+                if ($childNode->nodeName === 'internal-file') {
124
+                    $reference[$order]['form-type'] = $childNode->attributes->getNamedItem('form')->nodeValue;
125
+                    $reference[$order]['base64']    = trim($childNode->nodeValue);
126 126
                     $order++;
127 127
                 }
128 128
             }
@@ -144,60 +144,60 @@  discard block
 block discarded – undo
144 144
      *
145 145
      * @throws Exception
146 146
      */
147
-    protected function extractTransUnit( $transUnit, &$transUnitIdArrayForUniquenessCheck, $dom, &$output, &$i, &$j, $contextGroups = [] ) {
147
+    protected function extractTransUnit($transUnit, &$transUnitIdArrayForUniquenessCheck, $dom, &$output, &$i, &$j, $contextGroups = []) {
148 148
         // metadata
149
-        $output[ 'files' ][ $i ][ 'trans-units' ][ $j ][ 'attr' ] = $this->extractTransUnitMetadata( $transUnit, $transUnitIdArrayForUniquenessCheck );
149
+        $output['files'][$i]['trans-units'][$j]['attr'] = $this->extractTransUnitMetadata($transUnit, $transUnitIdArrayForUniquenessCheck);
150 150
 
151 151
         // notes
152
-        $output[ 'files' ][ $i ][ 'trans-units' ][ $j ][ 'notes' ] = $this->extractTransUnitNotes( $dom, $transUnit );
152
+        $output['files'][$i]['trans-units'][$j]['notes'] = $this->extractTransUnitNotes($dom, $transUnit);
153 153
 
154 154
         // content
155 155
         /** @var DOMElement $childNode */
156
-        foreach ( $transUnit->childNodes as $childNode ) {
156
+        foreach ($transUnit->childNodes as $childNode) {
157 157
             // source
158
-            if ( $childNode->nodeName === 'source' ) {
159
-                $output[ 'files' ][ $i ][ 'trans-units' ][ $j ][ 'source' ] = $this->extractContent( $dom, $childNode );
158
+            if ($childNode->nodeName === 'source') {
159
+                $output['files'][$i]['trans-units'][$j]['source'] = $this->extractContent($dom, $childNode);
160 160
             }
161 161
 
162 162
             // seg-source
163
-            if ( $childNode->nodeName === 'seg-source' ) {
164
-                $rawSegment                                                     = $output[ 'files' ][ $i ][ 'trans-units' ][ $j ][ 'source' ][ 'raw-content' ];
165
-                $output[ 'files' ][ $i ][ 'trans-units' ][ $j ][ 'seg-source' ] = $this->extractContentWithMarksAndExtTags( $dom, $childNode, $rawSegment );
163
+            if ($childNode->nodeName === 'seg-source') {
164
+                $rawSegment                                                     = $output['files'][$i]['trans-units'][$j]['source']['raw-content'];
165
+                $output['files'][$i]['trans-units'][$j]['seg-source'] = $this->extractContentWithMarksAndExtTags($dom, $childNode, $rawSegment);
166 166
             }
167 167
 
168 168
             // target
169
-            if ( $childNode->nodeName === 'target' ) {
170
-                $output[ 'files' ][ $i ][ 'trans-units' ][ $j ][ 'target' ] = $this->extractContent( $dom, $childNode );
169
+            if ($childNode->nodeName === 'target') {
170
+                $output['files'][$i]['trans-units'][$j]['target'] = $this->extractContent($dom, $childNode);
171 171
 
172 172
                 // seg-target
173
-                $targetRawContent = @$output[ 'files' ][ $i ][ 'trans-units' ][ $j ][ 'target' ][ 'raw-content' ];
174
-                $segSource        = @$output[ 'files' ][ $i ][ 'trans-units' ][ $j ][ 'seg-source' ];
175
-                if ( isset( $targetRawContent ) && !empty( $targetRawContent ) && isset( $segSource ) && count( $segSource ) > 0 ) {
176
-                    $output[ 'files' ][ $i ][ 'trans-units' ][ $j ][ 'seg-target' ] = $this->extractContentWithMarksAndExtTags( $dom, $childNode );
177
-                    $output[ 'files' ][ $i ][ 'trans-units' ][ $j ][ 'seg-target' ][ 0 ]['attr'] = $this->extractTagAttributes($childNode);
173
+                $targetRawContent = @$output['files'][$i]['trans-units'][$j]['target']['raw-content'];
174
+                $segSource        = @$output['files'][$i]['trans-units'][$j]['seg-source'];
175
+                if (isset($targetRawContent) && !empty($targetRawContent) && isset($segSource) && count($segSource) > 0) {
176
+                    $output['files'][$i]['trans-units'][$j]['seg-target'] = $this->extractContentWithMarksAndExtTags($dom, $childNode);
177
+                    $output['files'][$i]['trans-units'][$j]['seg-target'][0]['attr'] = $this->extractTagAttributes($childNode);
178 178
                 }
179 179
             }
180 180
 
181 181
             // locked
182
-            if ( $childNode->nodeName === 'sdl:seg' ) {
183
-                $output[ 'files' ][ $i ][ 'trans-units' ][ $j ][ 'locked' ] = $this->extractLocked( $childNode );
182
+            if ($childNode->nodeName === 'sdl:seg') {
183
+                $output['files'][$i]['trans-units'][$j]['locked'] = $this->extractLocked($childNode);
184 184
             }
185 185
         }
186 186
 
187 187
         // context-group
188
-        if(!empty($contextGroups)){
189
-            foreach ($contextGroups as $contextGroup){
190
-                $output[ 'files' ][ $i ][ 'trans-units' ][ $j ][ 'context-group' ][] = $this->extractTransUnitContextGroup( $dom, $contextGroup );
188
+        if (!empty($contextGroups)) {
189
+            foreach ($contextGroups as $contextGroup) {
190
+                $output['files'][$i]['trans-units'][$j]['context-group'][] = $this->extractTransUnitContextGroup($dom, $contextGroup);
191 191
             }
192 192
         }
193 193
 
194
-        foreach ( $transUnit->getElementsByTagName( 'context-group' ) as $contextGroup ) {
195
-            $output[ 'files' ][ $i ][ 'trans-units' ][ $j ][ 'context-group' ][] = $this->extractTransUnitContextGroup( $dom, $contextGroup );
194
+        foreach ($transUnit->getElementsByTagName('context-group') as $contextGroup) {
195
+            $output['files'][$i]['trans-units'][$j]['context-group'][] = $this->extractTransUnitContextGroup($dom, $contextGroup);
196 196
         }
197 197
 
198 198
         // alt-trans
199
-        foreach ( $transUnit->getElementsByTagName( 'alt-trans' ) as $altTrans ) {
200
-            $output[ 'files' ][ $i ][ 'trans-units' ][ $j ][ 'alt-trans' ][] = $this->extractTransUnitAltTrans( $altTrans );
199
+        foreach ($transUnit->getElementsByTagName('alt-trans') as $altTrans) {
200
+            $output['files'][$i]['trans-units'][$j]['alt-trans'][] = $this->extractTransUnitAltTrans($altTrans);
201 201
         }
202 202
 
203 203
         $j++;
@@ -210,41 +210,41 @@  discard block
 block discarded – undo
210 210
      * @return array
211 211
      * @throws Exception
212 212
      */
213
-    private function extractTransUnitMetadata( DOMElement $transUnit, array &$transUnitIdArrayForUniquenessCheck ) {
213
+    private function extractTransUnitMetadata(DOMElement $transUnit, array &$transUnitIdArrayForUniquenessCheck) {
214 214
         $metadata = [];
215 215
 
216 216
         // id MUST NOT be null
217
-        if ( null === $transUnit->attributes->getNamedItem( 'id' ) ) {
218
-            throw new NotFoundIdInTransUnit( 'Invalid trans-unit id found. EMPTY value', 400 );
217
+        if (null === $transUnit->attributes->getNamedItem('id')) {
218
+            throw new NotFoundIdInTransUnit('Invalid trans-unit id found. EMPTY value', 400);
219 219
         }
220 220
 
221 221
         /**
222 222
          * @var DOMAttr $element
223 223
          */
224
-        foreach ( $transUnit->attributes as $element ) {
224
+        foreach ($transUnit->attributes as $element) {
225 225
 
226
-            if ( $element->nodeName === "id" ) {
226
+            if ($element->nodeName === "id") {
227 227
 
228 228
                 $id = $element->nodeValue;
229 229
 
230
-                if ( strlen( $id ) > 100 ) {
231
-                    throw new SegmentIdTooLongException( 'Segment-id too long. Max 100 characters allowed', 400 );
230
+                if (strlen($id) > 100) {
231
+                    throw new SegmentIdTooLongException('Segment-id too long. Max 100 characters allowed', 400);
232 232
                 }
233 233
 
234 234
                 $transUnitIdArrayForUniquenessCheck[] = $id;
235
-                $metadata[ 'id' ]                     = $id;
235
+                $metadata['id']                     = $id;
236 236
 
237
-            } elseif ( $element->nodeName === "approved" ) {
237
+            } elseif ($element->nodeName === "approved") {
238 238
                 // approved as BOOLEAN
239 239
                 // http://docs.oasis-open.org/xliff/v1.2/os/xliff-core.html#approved
240
-                $metadata[ $element->nodeName ] = filter_var( $element->nodeValue, FILTER_VALIDATE_BOOLEAN );
241
-            } elseif ( $element->nodeName === "maxwidth" ) {
240
+                $metadata[$element->nodeName] = filter_var($element->nodeValue, FILTER_VALIDATE_BOOLEAN);
241
+            } elseif ($element->nodeName === "maxwidth") {
242 242
                 // we ignore ( but we get ) the attribute size-unit="char" assuming that a restriction is everytime done by character
243 243
                 // we duplicate the info to allow Xliff V1 and V2 to work the same
244
-                $metadata[ 'sizeRestriction' ]  = filter_var( $element->nodeValue, FILTER_SANITIZE_NUMBER_INT );
245
-                $metadata[ $element->nodeName ] = filter_var( $element->nodeValue, FILTER_SANITIZE_NUMBER_INT );
244
+                $metadata['sizeRestriction']  = filter_var($element->nodeValue, FILTER_SANITIZE_NUMBER_INT);
245
+                $metadata[$element->nodeName] = filter_var($element->nodeValue, FILTER_SANITIZE_NUMBER_INT);
246 246
             } else {
247
-                $metadata[ $element->nodeName ] = $element->nodeValue;
247
+                $metadata[$element->nodeName] = $element->nodeValue;
248 248
             }
249 249
 
250 250
         }
@@ -258,19 +258,19 @@  discard block
 block discarded – undo
258 258
      * @return array
259 259
      * @throws Exception
260 260
      */
261
-    private function extractTransUnitNotes( DOMDocument $dom, DOMElement $transUnit ) {
261
+    private function extractTransUnitNotes(DOMDocument $dom, DOMElement $transUnit) {
262 262
         $notes = [];
263
-        foreach ( $transUnit->getElementsByTagName( 'note' ) as $note ) {
263
+        foreach ($transUnit->getElementsByTagName('note') as $note) {
264 264
 
265
-            $noteValue = $this->extractTagContent( $dom, $note );
265
+            $noteValue = $this->extractTagContent($dom, $note);
266 266
 
267
-            if ( '' !== $noteValue ) {
267
+            if ('' !== $noteValue) {
268 268
 
269
-                $extractedNote = $this->JSONOrRawContentArray( $noteValue );
269
+                $extractedNote = $this->JSONOrRawContentArray($noteValue);
270 270
 
271 271
                 // extract all the attributes
272
-                foreach ( $note->attributes as $attribute ) {
273
-                    $extractedNote[ $attribute->name ] = $attribute->value;
272
+                foreach ($note->attributes as $attribute) {
273
+                    $extractedNote[$attribute->name] = $attribute->value;
274 274
                 }
275 275
 
276 276
                 $notes[] = $extractedNote;
@@ -285,14 +285,14 @@  discard block
 block discarded – undo
285 285
      *
286 286
      * @return array
287 287
      */
288
-    private function extractTransUnitContextGroup( DOMDocument $dom, DOMElement $contextGroup ) {
288
+    private function extractTransUnitContextGroup(DOMDocument $dom, DOMElement $contextGroup) {
289 289
         $cg           = [];
290
-        $cg[ 'attr' ] = $this->extractTagAttributes( $contextGroup );
290
+        $cg['attr'] = $this->extractTagAttributes($contextGroup);
291 291
 
292 292
         /** @var DOMNode $context */
293
-        foreach ( $contextGroup->childNodes as $context ) {
294
-            if ( $context->nodeName === 'context' ) {
295
-                $cg[ 'contexts' ][] = $this->extractContent( $dom, $context );
293
+        foreach ($contextGroup->childNodes as $context) {
294
+            if ($context->nodeName === 'context') {
295
+                $cg['contexts'][] = $this->extractContent($dom, $context);
296 296
             }
297 297
         }
298 298
 
@@ -304,16 +304,16 @@  discard block
 block discarded – undo
304 304
      *
305 305
      * @return array
306 306
      */
307
-    private function extractTransUnitAltTrans( DOMElement $altTrans ) {
307
+    private function extractTransUnitAltTrans(DOMElement $altTrans) {
308 308
         $at           = [];
309
-        $at[ 'attr' ] = $this->extractTagAttributes( $altTrans );
309
+        $at['attr'] = $this->extractTagAttributes($altTrans);
310 310
 
311
-        if ( $altTrans->getElementsByTagName( 'source' )->length > 0 ) {
312
-            $at[ 'source' ] = $altTrans->getElementsByTagName( 'source' )->item( 0 )->nodeValue;
311
+        if ($altTrans->getElementsByTagName('source')->length > 0) {
312
+            $at['source'] = $altTrans->getElementsByTagName('source')->item(0)->nodeValue;
313 313
         }
314 314
 
315
-        if ( $altTrans->getElementsByTagName( 'target' ) ) {
316
-            $at[ 'target' ] = $altTrans->getElementsByTagName( 'target' )->item( 0 )->nodeValue;
315
+        if ($altTrans->getElementsByTagName('target')) {
316
+            $at['target'] = $altTrans->getElementsByTagName('target')->item(0)->nodeValue;
317 317
         }
318 318
 
319 319
         return $at;
@@ -324,7 +324,7 @@  discard block
 block discarded – undo
324 324
      *
325 325
      * @return bool
326 326
      */
327
-    private function extractLocked( DOMElement $locked ) {
328
-        return null !== $locked->getAttribute( 'locked' );
327
+    private function extractLocked(DOMElement $locked) {
328
+        return null !== $locked->getAttribute('locked');
329 329
     }
330 330
 }
Please login to merge, or discard this patch.
src/XliffParser/XliffParserV2.php 1 patch
Spacing   +134 added lines, -134 removed lines patch added patch discarded remove patch
@@ -15,30 +15,30 @@  discard block
 block discarded – undo
15 15
      * @inheritDoc
16 16
      * @throws \Exception
17 17
      */
18
-    public function parse( DOMDocument $dom, $output = [] ) {
18
+    public function parse(DOMDocument $dom, $output = []) {
19 19
         $i = 1;
20 20
         /** @var DOMElement $file */
21
-        foreach ( $dom->getElementsByTagName( 'file' ) as $file ) {
21
+        foreach ($dom->getElementsByTagName('file') as $file) {
22 22
 
23 23
             // metadata
24
-            $output[ 'files' ][ $i ][ 'attr' ] = $this->extractMetadata( $dom );
24
+            $output['files'][$i]['attr'] = $this->extractMetadata($dom);
25 25
 
26 26
             // notes
27
-            $output[ 'files' ][ $i ][ 'notes' ] = $this->extractNotes( $file );
27
+            $output['files'][$i]['notes'] = $this->extractNotes($file);
28 28
 
29 29
             // trans-units
30 30
             $transUnitIdArrayForUniquenessCheck = [];
31 31
             $j                                  = 1;
32 32
             /** @var DOMElement $transUnit */
33
-            foreach ( $file->childNodes as $childNode ) {
34
-                $this->extractTuFromNode( $childNode, $transUnitIdArrayForUniquenessCheck, $dom, $output, $i, $j );
33
+            foreach ($file->childNodes as $childNode) {
34
+                $this->extractTuFromNode($childNode, $transUnitIdArrayForUniquenessCheck, $dom, $output, $i, $j);
35 35
             }
36 36
 
37 37
             // trans-unit re-count check
38
-            $totalTransUnitsId  = count( $transUnitIdArrayForUniquenessCheck );
39
-            $transUnitsUniqueId = count( array_unique( $transUnitIdArrayForUniquenessCheck ) );
40
-            if ( $totalTransUnitsId != $transUnitsUniqueId ) {
41
-                throw new DuplicateTransUnitIdInXliff( "Invalid trans-unit id, duplicate found.", 400 );
38
+            $totalTransUnitsId  = count($transUnitIdArrayForUniquenessCheck);
39
+            $transUnitsUniqueId = count(array_unique($transUnitIdArrayForUniquenessCheck));
40
+            if ($totalTransUnitsId != $transUnitsUniqueId) {
41
+                throw new DuplicateTransUnitIdInXliff("Invalid trans-unit id, duplicate found.", 400);
42 42
             }
43 43
 
44 44
             $i++;
@@ -52,23 +52,23 @@  discard block
 block discarded – undo
52 52
      *
53 53
      * @return array
54 54
      */
55
-    private function extractMetadata( DOMDocument $dom ) {
55
+    private function extractMetadata(DOMDocument $dom) {
56 56
         $metadata = [];
57 57
 
58
-        $xliffNode = $dom->getElementsByTagName( 'xliff' )->item( 0 );
59
-        $fileNode  = $dom->getElementsByTagName( 'file' )->item( 0 );
58
+        $xliffNode = $dom->getElementsByTagName('xliff')->item(0);
59
+        $fileNode  = $dom->getElementsByTagName('file')->item(0);
60 60
 
61 61
         // original
62
-        $metadata[ 'original' ] = ( null !== $fileNode->attributes->getNamedItem( 'original' ) ) ? $fileNode->attributes->getNamedItem( 'original' )->nodeValue : 'no-name';
62
+        $metadata['original'] = (null !== $fileNode->attributes->getNamedItem('original')) ? $fileNode->attributes->getNamedItem('original')->nodeValue : 'no-name';
63 63
 
64 64
         // source-language
65
-        $metadata[ 'source-language' ] = ( null !== $xliffNode->attributes->getNamedItem( 'srcLang' ) ) ? $xliffNode->attributes->getNamedItem( 'srcLang' )->nodeValue : 'en-US';
65
+        $metadata['source-language'] = (null !== $xliffNode->attributes->getNamedItem('srcLang')) ? $xliffNode->attributes->getNamedItem('srcLang')->nodeValue : 'en-US';
66 66
 
67 67
         // datatype
68 68
         // @TODO to be implemented
69 69
 
70 70
         // target-language
71
-        $metadata[ 'target-language' ] = ( null !== $xliffNode->attributes->getNamedItem( 'trgLang' ) ) ? $xliffNode->attributes->getNamedItem( 'trgLang' )->nodeValue : 'en-US';
71
+        $metadata['target-language'] = (null !== $xliffNode->attributes->getNamedItem('trgLang')) ? $xliffNode->attributes->getNamedItem('trgLang')->nodeValue : 'en-US';
72 72
 
73 73
         // custom MateCat x-attribute
74 74
         // @TODO to be implemented
@@ -82,16 +82,16 @@  discard block
 block discarded – undo
82 82
      * @return array
83 83
      * @throws \Exception
84 84
      */
85
-    private function extractNotes( DOMElement $file ) {
85
+    private function extractNotes(DOMElement $file) {
86 86
         $notes = [];
87 87
 
88 88
         // loop <notes> to get nested <note> tag
89
-        foreach ( $file->childNodes as $childNode ) {
90
-            if ( $childNode->nodeName === 'notes' ) {
91
-                foreach ( $childNode->childNodes as $note ) {
92
-                    $noteValue = trim( $note->nodeValue );
93
-                    if ( '' !== $noteValue ) {
94
-                        $notes[] = $this->JSONOrRawContentArray( $noteValue );
89
+        foreach ($file->childNodes as $childNode) {
90
+            if ($childNode->nodeName === 'notes') {
91
+                foreach ($childNode->childNodes as $note) {
92
+                    $noteValue = trim($note->nodeValue);
93
+                    if ('' !== $noteValue) {
94
+                        $notes[] = $this->JSONOrRawContentArray($noteValue);
95 95
                     }
96 96
                 }
97 97
             }
@@ -113,32 +113,32 @@  discard block
 block discarded – undo
113 113
      *
114 114
      * @throws \Exception
115 115
      */
116
-    protected function extractTransUnit( $transUnit, &$transUnitIdArrayForUniquenessCheck, $dom, &$output, &$i, &$j, $contextGroups = [] ) {
116
+    protected function extractTransUnit($transUnit, &$transUnitIdArrayForUniquenessCheck, $dom, &$output, &$i, &$j, $contextGroups = []) {
117 117
         // metadata
118
-        $output[ 'files' ][ $i ][ 'trans-units' ][ $j ][ 'attr' ] = $this->extractTransUnitMetadata( $transUnit, $transUnitIdArrayForUniquenessCheck );
118
+        $output['files'][$i]['trans-units'][$j]['attr'] = $this->extractTransUnitMetadata($transUnit, $transUnitIdArrayForUniquenessCheck);
119 119
 
120 120
         // notes
121 121
         // merge <notes> with key and key-note contained in metadata <mda:metaGroup>
122
-        $output[ 'files' ][ $i ][ 'trans-units' ][ $j ][ 'notes' ] = $this->extractTransUnitNotes( $transUnit );
122
+        $output['files'][$i]['trans-units'][$j]['notes'] = $this->extractTransUnitNotes($transUnit);
123 123
 
124 124
         // uuid
125
-        foreach ( $output[ 'files' ][ $i ][ 'trans-units' ][ $j ][ 'notes' ] as $note ) {
126
-            if ( isset( $note[ 'raw-content' ] ) && Strings::isAValidUuid( $note[ 'raw-content' ] ) ) {
127
-                $output[ 'files' ][ $i ][ 'trans-units' ][ $j ][ 'attr' ][ 'uuid' ] = $note[ 'raw-content' ];
125
+        foreach ($output['files'][$i]['trans-units'][$j]['notes'] as $note) {
126
+            if (isset($note['raw-content']) && Strings::isAValidUuid($note['raw-content'])) {
127
+                $output['files'][$i]['trans-units'][$j]['attr']['uuid'] = $note['raw-content'];
128 128
             }
129 129
         }
130 130
 
131 131
         // original-data (exclusive for V2)
132 132
         // http://docs.oasis-open.org/xliff/xliff-core/v2.0/xliff-core-v2.0.html#originaldata
133
-        $originalData = $this->extractTransUnitOriginalData( $transUnit );
134
-        if ( !empty( $originalData ) ) {
135
-            $output[ 'files' ][ $i ][ 'trans-units' ][ $j ][ 'original-data' ] = $originalData;
133
+        $originalData = $this->extractTransUnitOriginalData($transUnit);
134
+        if (!empty($originalData)) {
135
+            $output['files'][$i]['trans-units'][$j]['original-data'] = $originalData;
136 136
         }
137 137
 
138 138
         // additionalTagData (exclusive for V2)
139
-        $additionalTagData = $this->extractTransUnitAdditionalTagData( $transUnit );
140
-        if ( !empty( $additionalTagData ) ) {
141
-            $output[ 'files' ][ $i ][ 'trans-units' ][ $j ][ 'additional-tag-data' ] = $additionalTagData;
139
+        $additionalTagData = $this->extractTransUnitAdditionalTagData($transUnit);
140
+        if (!empty($additionalTagData)) {
141
+            $output['files'][$i]['trans-units'][$j]['additional-tag-data'] = $additionalTagData;
142 142
         }
143 143
 
144 144
         // content
@@ -158,54 +158,54 @@  discard block
 block discarded – undo
158 158
 
159 159
         /** @var DOMElement $segment */
160 160
         $c = 0;
161
-        foreach ( $transUnit->childNodes as $segment ) {
162
-            if ( $segment->nodeName === 'segment' ) {
161
+        foreach ($transUnit->childNodes as $segment) {
162
+            if ($segment->nodeName === 'segment') {
163 163
 
164 164
                 // check segment id consistency
165
-                $attr = $output[ 'files' ][ $i ][ 'trans-units' ][ $j ][ 'attr' ];
166
-                $this->checkSegmentIdConsistency( $segment, $attr );
165
+                $attr = $output['files'][$i]['trans-units'][$j]['attr'];
166
+                $this->checkSegmentIdConsistency($segment, $attr);
167 167
 
168 168
                 // loop <segment> to get nested <source> and <target> tag
169
-                foreach ( $segment->childNodes as $childNode ) {
170
-                    if ( $childNode->nodeName === 'source' ) {
171
-                        $extractedSource               = $this->extractContent( $dom, $childNode );
172
-                        $source[ 'raw-content' ][ $c ] = $extractedSource[ 'raw-content' ];
169
+                foreach ($segment->childNodes as $childNode) {
170
+                    if ($childNode->nodeName === 'source') {
171
+                        $extractedSource               = $this->extractContent($dom, $childNode);
172
+                        $source['raw-content'][$c] = $extractedSource['raw-content'];
173 173
 
174
-                        if ( !empty( $extractedSource[ 'attr' ] ) ) {
175
-                            $source[ 'attr' ][ $c ] = $extractedSource[ 'attr' ];
174
+                        if (!empty($extractedSource['attr'])) {
175
+                            $source['attr'][$c] = $extractedSource['attr'];
176 176
                         }
177 177
 
178 178
                         // append value to 'seg-source'
179
-                        if ( $this->stringContainsMarks( $extractedSource[ 'raw-content' ] ) ) {
180
-                            $segSource = $this->extractContentWithMarksAndExtTags( $dom, $childNode );
179
+                        if ($this->stringContainsMarks($extractedSource['raw-content'])) {
180
+                            $segSource = $this->extractContentWithMarksAndExtTags($dom, $childNode);
181 181
                         } else {
182 182
                             $segSource[] = [
183
-                                    'attr'             => $this->extractTagAttributes( $segment),
184
-                                    'mid'              => count( $segSource ) > 0 ? count( $segSource ) : 0,
183
+                                    'attr'             => $this->extractTagAttributes($segment),
184
+                                    'mid'              => count($segSource) > 0 ? count($segSource) : 0,
185 185
                                     'ext-prec-tags'    => '',
186
-                                    'raw-content'      => $extractedSource[ 'raw-content' ],
186
+                                    'raw-content'      => $extractedSource['raw-content'],
187 187
                                     'ext-succ-tags'    => '',
188 188
                             ];
189 189
                         }
190 190
                     }
191 191
 
192
-                    if ( $childNode->nodeName === 'target' ) {
193
-                        $extractedTarget               = $this->extractContent( $dom, $childNode );
194
-                        $target[ 'raw-content' ][ $c ] = $extractedTarget[ 'raw-content' ];
192
+                    if ($childNode->nodeName === 'target') {
193
+                        $extractedTarget               = $this->extractContent($dom, $childNode);
194
+                        $target['raw-content'][$c] = $extractedTarget['raw-content'];
195 195
 
196
-                        if ( !empty( $extractedTarget[ 'attr' ] ) ) {
197
-                            $target[ 'attr' ][ $c ] = $extractedTarget[ 'attr' ];
196
+                        if (!empty($extractedTarget['attr'])) {
197
+                            $target['attr'][$c] = $extractedTarget['attr'];
198 198
                         }
199 199
 
200 200
                         // append value to 'seg-target'
201
-                        if ( $this->stringContainsMarks( $extractedTarget[ 'raw-content' ] ) ) {
202
-                            $segTarget = $this->extractContentWithMarksAndExtTags( $dom, $childNode );
201
+                        if ($this->stringContainsMarks($extractedTarget['raw-content'])) {
202
+                            $segTarget = $this->extractContentWithMarksAndExtTags($dom, $childNode);
203 203
                         } else {
204 204
                             $segTarget[] = [
205
-                                    'attr'             => $this->extractTagAttributes( $segment),
206
-                                    'mid'              => count( $segTarget ) > 0 ? count( $segTarget ) : 0,
205
+                                    'attr'             => $this->extractTagAttributes($segment),
206
+                                    'mid'              => count($segTarget) > 0 ? count($segTarget) : 0,
207 207
                                     'ext-prec-tags'    => '',
208
-                                    'raw-content'      => $extractedTarget[ 'raw-content' ],
208
+                                    'raw-content'      => $extractedTarget['raw-content'],
209 209
                                     'ext-succ-tags'    => '',
210 210
                             ];
211 211
                         }
@@ -216,10 +216,10 @@  discard block
 block discarded – undo
216 216
             }
217 217
         }
218 218
 
219
-        $output[ 'files' ][ $i ][ 'trans-units' ][ $j ][ 'source' ]     = $source;
220
-        $output[ 'files' ][ $i ][ 'trans-units' ][ $j ][ 'target' ]     = $target;
221
-        $output[ 'files' ][ $i ][ 'trans-units' ][ $j ][ 'seg-source' ] = $segSource;
222
-        $output[ 'files' ][ $i ][ 'trans-units' ][ $j ][ 'seg-target' ] = $segTarget;
219
+        $output['files'][$i]['trans-units'][$j]['source']     = $source;
220
+        $output['files'][$i]['trans-units'][$j]['target']     = $target;
221
+        $output['files'][$i]['trans-units'][$j]['seg-source'] = $segSource;
222
+        $output['files'][$i]['trans-units'][$j]['seg-target'] = $segTarget;
223 223
 
224 224
         $j++;
225 225
     }
@@ -230,41 +230,41 @@  discard block
 block discarded – undo
230 230
      *
231 231
      * @return array
232 232
      */
233
-    private function extractTransUnitMetadata( DOMElement $transUnit, &$transUnitIdArrayForUniquenessCheck ) {
233
+    private function extractTransUnitMetadata(DOMElement $transUnit, &$transUnitIdArrayForUniquenessCheck) {
234 234
         $metadata = [];
235 235
 
236 236
         // id
237
-        if ( null === $transUnit->attributes->getNamedItem( 'id' ) ) {
238
-            throw new NotFoundIdInTransUnit( 'Invalid trans-unit id found. EMPTY value', 400 );
237
+        if (null === $transUnit->attributes->getNamedItem('id')) {
238
+            throw new NotFoundIdInTransUnit('Invalid trans-unit id found. EMPTY value', 400);
239 239
         }
240 240
 
241
-        $id = $transUnit->attributes->getNamedItem( 'id' )->nodeValue;
241
+        $id = $transUnit->attributes->getNamedItem('id')->nodeValue;
242 242
 
243
-        if ( strlen( $id ) > 100 ) {
244
-            throw new SegmentIdTooLongException( 'Segment-id too long. Max 100 characters allowed', 400 );
243
+        if (strlen($id) > 100) {
244
+            throw new SegmentIdTooLongException('Segment-id too long. Max 100 characters allowed', 400);
245 245
         }
246 246
 
247 247
         $transUnitIdArrayForUniquenessCheck[] = $id;
248
-        $metadata[ 'id' ]                     = $id;
248
+        $metadata['id']                     = $id;
249 249
 
250 250
         // translate
251
-        if ( null !== $transUnit->attributes->getNamedItem( 'translate' ) ) {
252
-            $metadata[ 'translate' ] = $transUnit->attributes->getNamedItem( 'translate' )->nodeValue;
251
+        if (null !== $transUnit->attributes->getNamedItem('translate')) {
252
+            $metadata['translate'] = $transUnit->attributes->getNamedItem('translate')->nodeValue;
253 253
         }
254 254
 
255 255
         // tGroupBegin
256
-        if ( null !== $transUnit->attributes->getNamedItem( 'tGroupBegin' ) ) {
257
-            $metadata[ 'tGroupBegin' ] = $transUnit->attributes->getNamedItem( 'tGroupBegin' )->nodeValue;
256
+        if (null !== $transUnit->attributes->getNamedItem('tGroupBegin')) {
257
+            $metadata['tGroupBegin'] = $transUnit->attributes->getNamedItem('tGroupBegin')->nodeValue;
258 258
         }
259 259
 
260 260
         // tGroupEnd
261
-        if ( null !== $transUnit->attributes->getNamedItem( 'tGroupEnd' ) ) {
262
-            $metadata[ 'tGroupEnd' ] = $transUnit->attributes->getNamedItem( 'tGroupEnd' )->nodeValue;
261
+        if (null !== $transUnit->attributes->getNamedItem('tGroupEnd')) {
262
+            $metadata['tGroupEnd'] = $transUnit->attributes->getNamedItem('tGroupEnd')->nodeValue;
263 263
         }
264 264
 
265 265
         // sizeRestriction
266
-        if ( null !== $transUnit->attributes->getNamedItem( 'sizeRestriction' ) && '' !== $transUnit->attributes->getNamedItem( 'sizeRestriction' )->nodeValue ) {
267
-            $metadata[ 'sizeRestriction' ] = (int)$transUnit->attributes->getNamedItem( 'sizeRestriction' )->nodeValue;
266
+        if (null !== $transUnit->attributes->getNamedItem('sizeRestriction') && '' !== $transUnit->attributes->getNamedItem('sizeRestriction')->nodeValue) {
267
+            $metadata['sizeRestriction'] = (int)$transUnit->attributes->getNamedItem('sizeRestriction')->nodeValue;
268 268
         }
269 269
 
270 270
         return $metadata;
@@ -276,31 +276,31 @@  discard block
 block discarded – undo
276 276
      * @return array
277 277
      * @throws \Exception
278 278
      */
279
-    private function extractTransUnitOriginalData( DOMElement $transUnit ) {
279
+    private function extractTransUnitOriginalData(DOMElement $transUnit) {
280 280
         $originalData = [];
281 281
 
282 282
         // loop <originalData> to get nested content
283
-        foreach ( $transUnit->childNodes as $childNode ) {
284
-            if ( $childNode->nodeName === 'originalData' ) {
285
-                foreach ( $childNode->childNodes as $data ) {
286
-                    if ( null !== $data->attributes && null !== $data->attributes->getNamedItem( 'id' ) ) {
287
-                        $dataId = $data->attributes->getNamedItem( 'id' )->nodeValue;
283
+        foreach ($transUnit->childNodes as $childNode) {
284
+            if ($childNode->nodeName === 'originalData') {
285
+                foreach ($childNode->childNodes as $data) {
286
+                    if (null !== $data->attributes && null !== $data->attributes->getNamedItem('id')) {
287
+                        $dataId = $data->attributes->getNamedItem('id')->nodeValue;
288 288
 
289
-                        $dataValue = str_replace( Placeholder::WHITE_SPACE_PLACEHOLDER, ' ', $data->nodeValue );
290
-                        $dataValue = str_replace( Placeholder::NEW_LINE_PLACEHOLDER, '\n', $dataValue );
291
-                        $dataValue = str_replace( Placeholder::TAB_PLACEHOLDER, '\t', $dataValue );
289
+                        $dataValue = str_replace(Placeholder::WHITE_SPACE_PLACEHOLDER, ' ', $data->nodeValue);
290
+                        $dataValue = str_replace(Placeholder::NEW_LINE_PLACEHOLDER, '\n', $dataValue);
291
+                        $dataValue = str_replace(Placeholder::TAB_PLACEHOLDER, '\t', $dataValue);
292 292
 
293
-                        if ( '' !== $dataValue ) {
293
+                        if ('' !== $dataValue) {
294 294
 
295
-                            $jsonOrRawContentArray = $this->JSONOrRawContentArray( $dataValue, false );
295
+                            $jsonOrRawContentArray = $this->JSONOrRawContentArray($dataValue, false);
296 296
 
297 297
                             // restore xliff tags
298
-                            if ( isset( $jsonOrRawContentArray[ 'json' ] ) ) {
299
-                                $jsonOrRawContentArray[ 'json' ] = str_replace( [ Placeholder::LT_PLACEHOLDER, Placeholder::GT_PLACEHOLDER ], [ '&lt;', '&gt;' ], $jsonOrRawContentArray[ 'json' ] );
298
+                            if (isset($jsonOrRawContentArray['json'])) {
299
+                                $jsonOrRawContentArray['json'] = str_replace([Placeholder::LT_PLACEHOLDER, Placeholder::GT_PLACEHOLDER], ['&lt;', '&gt;'], $jsonOrRawContentArray['json']);
300 300
                             }
301 301
 
302
-                            if ( isset( $jsonOrRawContentArray[ 'raw-content' ] ) ) {
303
-                                $jsonOrRawContentArray[ 'raw-content' ] = str_replace( [ Placeholder::LT_PLACEHOLDER, Placeholder::GT_PLACEHOLDER ], [ '&lt;', '&gt;' ], $jsonOrRawContentArray[ 'raw-content' ] );
302
+                            if (isset($jsonOrRawContentArray['raw-content'])) {
303
+                                $jsonOrRawContentArray['raw-content'] = str_replace([Placeholder::LT_PLACEHOLDER, Placeholder::GT_PLACEHOLDER], ['&lt;', '&gt;'], $jsonOrRawContentArray['raw-content']);
304 304
                             }
305 305
 
306 306
                             $originalData[] = array_merge(
@@ -325,41 +325,41 @@  discard block
 block discarded – undo
325 325
      *
326 326
      * @return array
327 327
      */
328
-    private function extractTransUnitAdditionalTagData( DOMElement $transUnit ) {
328
+    private function extractTransUnitAdditionalTagData(DOMElement $transUnit) {
329 329
         $additionalTagData = [];
330 330
 
331 331
         // loop <originalData> to get nested content
332
-        foreach ( $transUnit->childNodes as $childNode ) {
333
-            if ( $childNode->nodeName === 'memsource:additionalTagData' ) {
334
-                foreach ( $childNode->childNodes as $data ) {
332
+        foreach ($transUnit->childNodes as $childNode) {
333
+            if ($childNode->nodeName === 'memsource:additionalTagData') {
334
+                foreach ($childNode->childNodes as $data) {
335 335
                     $dataArray = [];
336 336
 
337 337
                     // id
338
-                    if ( $data->nodeName === 'memsource:tag' ) {
339
-                        if ( null !== $data->attributes && null !== $data->attributes->getNamedItem( 'id' ) ) {
340
-                            $dataId                      = $data->attributes->getNamedItem( 'id' )->nodeValue;
341
-                            $dataArray[ 'attr' ][ 'id' ] = $dataId;
338
+                    if ($data->nodeName === 'memsource:tag') {
339
+                        if (null !== $data->attributes && null !== $data->attributes->getNamedItem('id')) {
340
+                            $dataId                      = $data->attributes->getNamedItem('id')->nodeValue;
341
+                            $dataArray['attr']['id'] = $dataId;
342 342
                         }
343 343
                     }
344 344
 
345 345
                     // in PHP 7.4 $data->childNodes is an empty DomNodeList, it is iterable with size 0
346 346
                     // PHP 5.6 check: in php 5.6 $data->childNodes can be null
347
-                    if ( $data->childNodes != null ) {
347
+                    if ($data->childNodes != null) {
348 348
 
349 349
                         // content
350
-                        foreach ( $data->childNodes as $datum ) {
351
-                            if ( $datum->nodeName === 'memsource:tagId' ) {
352
-                                $dataArray[ 'raw-content' ][ 'tagId' ] = $datum->nodeValue;
350
+                        foreach ($data->childNodes as $datum) {
351
+                            if ($datum->nodeName === 'memsource:tagId') {
352
+                                $dataArray['raw-content']['tagId'] = $datum->nodeValue;
353 353
                             }
354 354
 
355
-                            if ( $datum->nodeName === 'memsource:type' ) {
356
-                                $dataArray[ 'raw-content' ][ 'type' ] = $datum->nodeValue;
355
+                            if ($datum->nodeName === 'memsource:type') {
356
+                                $dataArray['raw-content']['type'] = $datum->nodeValue;
357 357
                             }
358 358
                         }
359 359
 
360 360
                     }
361 361
 
362
-                    if ( !empty( $dataArray ) ) {
362
+                    if (!empty($dataArray)) {
363 363
                         $additionalTagData[] = $dataArray;
364 364
                     }
365 365
                 }
@@ -375,15 +375,15 @@  discard block
 block discarded – undo
375 375
      * @param DOMElement $segment
376 376
      * @param array      $attr
377 377
      */
378
-    private function checkSegmentIdConsistency( DOMElement $segment, array $attr ) {
379
-        if ( isset( $attr[ 'tGroupBegin' ] ) && isset( $attr[ 'tGroupEnd' ] ) && $segment->attributes->getNamedItem( 'id' ) ) {
380
-            $id  = $segment->attributes->getNamedItem( 'id' )->nodeValue;
381
-            $min = (int)$attr[ 'tGroupBegin' ];
382
-            $max = (int)$attr[ 'tGroupEnd' ];
383
-
384
-            if ( false === ( ( $min <= $id ) && ( $id <= $max ) ) ) {
385
-                if ( $this->logger ) {
386
-                    $this->logger->warning( 'Segment #' . $id . ' is not included within tGroupBegin and tGroupEnd' );
378
+    private function checkSegmentIdConsistency(DOMElement $segment, array $attr) {
379
+        if (isset($attr['tGroupBegin']) && isset($attr['tGroupEnd']) && $segment->attributes->getNamedItem('id')) {
380
+            $id  = $segment->attributes->getNamedItem('id')->nodeValue;
381
+            $min = (int)$attr['tGroupBegin'];
382
+            $max = (int)$attr['tGroupEnd'];
383
+
384
+            if (false === (($min <= $id) && ($id <= $max))) {
385
+                if ($this->logger) {
386
+                    $this->logger->warning('Segment #' . $id . ' is not included within tGroupBegin and tGroupEnd');
387 387
                 }
388 388
             }
389 389
         }
@@ -395,31 +395,31 @@  discard block
 block discarded – undo
395 395
      * @return array
396 396
      * @throws \Exception
397 397
      */
398
-    private function extractTransUnitNotes( DOMElement $transUnit ) {
398
+    private function extractTransUnitNotes(DOMElement $transUnit) {
399 399
         $notes = [];
400 400
 
401 401
         // loop <notes> to get nested <note> tag
402
-        foreach ( $transUnit->childNodes as $childNode ) {
403
-            if ( $childNode->nodeName == 'notes' ) {
404
-                foreach ( $childNode->childNodes as $note ) {
405
-                    $noteValue = trim( $note->nodeValue );
406
-                    if ( '' !== $noteValue ) {
407
-                        $notes[] = $this->JSONOrRawContentArray( $noteValue );
402
+        foreach ($transUnit->childNodes as $childNode) {
403
+            if ($childNode->nodeName == 'notes') {
404
+                foreach ($childNode->childNodes as $note) {
405
+                    $noteValue = trim($note->nodeValue);
406
+                    if ('' !== $noteValue) {
407
+                        $notes[] = $this->JSONOrRawContentArray($noteValue);
408 408
                     }
409 409
                 }
410 410
             }
411 411
 
412
-            if ( $childNode->nodeName === 'mda:metadata' ) {
413
-                foreach ( $childNode->childNodes as $metadata ) {
414
-                    if ( $metadata->nodeName === 'mda:metaGroup' ) {
415
-                        foreach ( $metadata->childNodes as $meta ) {
416
-                            if ( null !== $meta->attributes && null !== $meta->attributes->getNamedItem( 'type' ) ) {
417
-                                $type      = $meta->attributes->getNamedItem( 'type' )->nodeValue;
418
-                                $metaValue = trim( $meta->nodeValue );
412
+            if ($childNode->nodeName === 'mda:metadata') {
413
+                foreach ($childNode->childNodes as $metadata) {
414
+                    if ($metadata->nodeName === 'mda:metaGroup') {
415
+                        foreach ($metadata->childNodes as $meta) {
416
+                            if (null !== $meta->attributes && null !== $meta->attributes->getNamedItem('type')) {
417
+                                $type      = $meta->attributes->getNamedItem('type')->nodeValue;
418
+                                $metaValue = trim($meta->nodeValue);
419 419
 
420
-                                if ( '' !== $metaValue ) {
420
+                                if ('' !== $metaValue) {
421 421
                                     $notes[] = array_merge(
422
-                                            $this->JSONOrRawContentArray( $metaValue ),
422
+                                            $this->JSONOrRawContentArray($metaValue),
423 423
                                             [
424 424
                                                     'attr' => [
425 425
                                                             'type' => $type
Please login to merge, or discard this patch.