for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/**
* php-gedcom.
*
* php-gedcom is a library for parsing, manipulating, importing and exporting
* GEDCOM 5.5 files in PHP 5.3+.
* @author Kristopher Wilson <[email protected]>
* @copyright Copyright (c) 2010-2013, Kristopher Wilson
* @license MIT
* @link http://github.com/mrkrstphr/php-gedcom
*/
namespace PhpGedcom\Parser;
class SourRef extends \PhpGedcom\Parser\Component
{
public static function parse(\PhpGedcom\Parser $parser)
$record = $parser->getCurrentLineRecord();
$depth = (int) $record[0];
if (isset($record[2])) {
$sour = new \PhpGedcom\Record\SourRef();
$sour->setSour($parser->normalizeIdentifier($record[2]));
setSour()
PhpGedcom\Record\SourRef
__call
If this is a false-positive, you can also ignore this issue in your code via the ignore-call annotation
ignore-call
$sour->/** @scrutinizer ignore-call */
setSour($parser->normalizeIdentifier($record[2]));
} else {
$parser->skipToNextLevel($depth);
return null;
}
$parser->forward();
while (!$parser->eof()) {
$recordType = strtoupper(trim($record[1]));
$currentDepth = (int) $record[0];
if ($currentDepth <= $depth) {
$parser->back();
break;
switch ($recordType) {
case 'PAGE':
$sour->setPage(trim($record[2]));
setPage()
setPage(trim($record[2]));
case 'EVEN':
$even = \PhpGedcom\Parser\SourRef\Even::parse($parser);
$sour->setEven($even);
setEven()
setEven($even);
case 'DATA':
$sour->setData(\PhpGedcom\Parser\SourRef\Data::parse($parser));
setData()
setData(\PhpGedcom\Parser\SourRef\Data::parse($parser));
case 'TEXT':
$sour->setText($parser->parseMultiLineRecord());
setText()
setText($parser->parseMultiLineRecord());
case 'OBJE':
$obje = \PhpGedcom\Parser\ObjeRef::parse($parser);
if ($obje) {
$sour->addNote($obje);
addNote()
addNote($obje);
case 'NOTE':
$note = \PhpGedcom\Parser\NoteRef::parse($parser);
if ($note) {
$sour->addNote($note);
case 'QUAY':
$sour->setQuay(trim($record[2]));
setQuay()
setQuay(trim($record[2]));
default:
$parser->logUnhandledRecord(get_class().' @ '.__LINE__);
return $sour;