diff options
| author | Greg Roach <fisharebest@webtrees.net> | 2019-05-17 15:42:02 +0100 |
|---|---|---|
| committer | Greg Roach <fisharebest@webtrees.net> | 2019-05-17 15:42:02 +0100 |
| commit | 4ecdc95f55b633d2526da60d81dd95edbebd5228 (patch) | |
| tree | f0be679af6fad5ce0e53f527cbc04e0804274355 /app/Census/AbstractCensusColumn.php | |
| parent | 23a3423962031084f4e4e500a7152510afa573bc (diff) | |
| download | webtrees-4ecdc95f55b633d2526da60d81dd95edbebd5228.tar.gz webtrees-4ecdc95f55b633d2526da60d81dd95edbebd5228.tar.bz2 webtrees-4ecdc95f55b633d2526da60d81dd95edbebd5228.zip | |
Simplify function using collections
Diffstat (limited to 'app/Census/AbstractCensusColumn.php')
| -rw-r--r-- | app/Census/AbstractCensusColumn.php | 35 |
1 files changed, 14 insertions, 21 deletions
diff --git a/app/Census/AbstractCensusColumn.php b/app/Census/AbstractCensusColumn.php index 2339062427..c5193a2b43 100644 --- a/app/Census/AbstractCensusColumn.php +++ b/app/Census/AbstractCensusColumn.php @@ -20,6 +20,9 @@ namespace Fisharebest\Webtrees\Census; use Fisharebest\Webtrees\Date; use Fisharebest\Webtrees\Family; use Fisharebest\Webtrees\Individual; +use function array_slice; +use function explode; +use function implode; /** * Definitions for a census column @@ -39,10 +42,10 @@ class AbstractCensusColumn * Create a column for a census * * @param CensusInterface $census - The census to which this column forms part. - * @param string $abbr - The abbrievated on-screen name "BiC" + * @param string $abbr - The abbreviated on-screen name "BiC" * @param string $title - The full column heading "Born in the county" */ - public function __construct(CensusInterface $census, $abbr, $title) + public function __construct(CensusInterface $census, string $abbr, string $title) { $this->census = $census; $this->abbr = $abbr; @@ -70,7 +73,7 @@ class AbstractCensusColumn { $family = $individual->primaryChildFamily(); - if ($family) { + if ($family instanceof Family) { return $family->husband(); } @@ -88,7 +91,7 @@ class AbstractCensusColumn { $family = $individual->primaryChildFamily(); - if ($family) { + if ($family instanceof Family) { return $family->wife(); } @@ -104,23 +107,13 @@ class AbstractCensusColumn */ public function spouseFamily(Individual $individual): ?Family { - // Exclude families that were created after this census date - $families = []; - foreach ($individual->spouseFamilies() as $family) { - if (Date::compare($family->getMarriageDate(), $this->date()) <= 0) { - $families[] = $family; - } - } - - if (empty($families)) { - return null; - } - - usort($families, static function (Family $x, Family $y): int { - return Date::compare($x->getMarriageDate(), $y->getMarriageDate()); - }); - - return end($families); + return $individual->spouseFamilies() + ->filter(function (Family $family): bool { + // Exclude families that were created after this census date + return Date::compare($family->getMarriageDate(), $this->date()) <= 0; + }) + ->sort(Family::marriageDateComparator()) + ->last(); } /** |
