Completed
Pull Request — master (#106)
by
unknown
03:15 queued 01:17
created

CsvDictionary   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 5
c 2
b 0
f 0
lcom 0
cbo 3
dl 0
loc 32
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B fromString() 0 26 5
1
<?php
2
3
namespace Gettext\Extractors;
4
5
use Gettext\Translations;
6
7
/**
8
 * Class to get gettext strings from plain json.
9
 */
10
class CsvDictionary extends Extractor implements ExtractorInterface
11
{
12
    /**
13
     * {@inheritdoc}
14
     */
15
    public static function fromString($string, Translations $translations = null, $file = '')
16
    {
17
        if ($translations === null) {
18
            $translations = new Translations();
19
        }
20
21
        $handle = fopen('php://memory', 'w');
22
23
        fputs($handle, $string);
24
        rewind($handle);
25
26
        $entries = array();
27
        while ($row = fgetcsv($handle)) {
28
            $entries[$row[0]] = $row[1];
29
        }
30
31
        fclose($handle);
32
33
        if ($entries) {
0 ignored issues
show
Bug Best Practice introduced by
The expression $entries of type array is implicitly converted to a boolean; are you sure this is intended? If so, consider using ! empty($expr) instead to make it clear that you intend to check for an array without elements.

This check marks implicit conversions of arrays to boolean values in a comparison. While in PHP an empty array is considered to be equal (but not identical) to false, this is not always apparent.

Consider making the comparison explicit by using empty(..) or ! empty(...) instead.

Loading history...
34
            foreach ($entries as $original => $translation) {
35
                $translations->insert(null, $original)->setTranslation($translation);
36
            }
37
        }
38
39
        return $translations;
40
    }
41
}
42