Issues (384)

src/Parser/Head/Sour.php (3 issues)

1
<?php
2
/**
3
 * php-gedcom.
4
 *
5
 * php-gedcom is a library for parsing, manipulating, importing and exporting
6
 * GEDCOM 5.5 files in PHP 5.3+.
7
 *
8
 * @author          Kristopher Wilson <[email protected]>
9
 * @copyright       Copyright (c) 2010-2013, Kristopher Wilson
10
 * @license         MIT
11
 *
12
 * @link            http://github.com/mrkrstphr/php-gedcom
13
 */
14
15
namespace Gedcom\Parser\Head;
16
17
class Sour extends \Gedcom\Parser\Component
18
{
19
    public static function parse(\Gedcom\Parser $parser)
20
    {
21
        $record = $parser->getCurrentLineRecord();
22
        $depth = (int) $record[0];
23
        if (isset($record[2])) {
24
            $source = new \Gedcom\Record\Head\Sour();
25
            $source->setSour(trim($record[2]));
0 ignored issues
show
The method setSour() does not exist on Gedcom\Record\Head\Sour. Since you implemented __call, consider adding a @method annotation. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

25
            $source->/** @scrutinizer ignore-call */ 
26
                     setSour(trim($record[2]));
Loading history...
26
        } else {
27
            $parser->skipToNextLevel($depth);
28
29
            return null;
30
        }
31
32
        $parser->forward();
33
34
        while (!$parser->eof()) {
35
            $record = $parser->getCurrentLineRecord();
36
            $recordType = strtoupper(trim($record[1]));
37
            $currentDepth = (int) $record[0];
38
39
            if ($currentDepth <= $depth) {
40
                $parser->back();
41
                break;
42
            }
43
44
            switch ($recordType) {
45
                case 'VERS':
46
                    $source->setVers(trim($record[2]));
0 ignored issues
show
The method setVers() does not exist on Gedcom\Record\Head\Sour. Since you implemented __call, consider adding a @method annotation. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

46
                    $source->/** @scrutinizer ignore-call */ 
47
                             setVers(trim($record[2]));
Loading history...
47
                    break;
48
                case 'NAME':
49
                    $source->setName(trim($record[2]));
50
                    break;
51
                case 'CORP':
52
                    $corp = \Gedcom\Parser\Head\Sour\Corp::parse($parser);
53
                    $source->setCorp($corp);
54
                    break;
55
                case 'DATA':
56
                    $data = Parser\Head\Sour\Data::parse($parser);
0 ignored issues
show
The type Gedcom\Parser\Head\Parser\Head\Sour\Data was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
57
                    $source->setData($data);
58
                    break;
59
                default:
60
                    $parser->logUnhandledRecord(self::class.' @ '.__LINE__);
61
            }
62
63
            $parser->forward();
64
        }
65
66
        return $source;
67
    }
68
}
69