1 | <?php |
||||
2 | |||||
3 | /** |
||||
4 | * webtrees: online genealogy |
||||
5 | * Copyright (C) 2025 webtrees development team |
||||
6 | * This program is free software: you can redistribute it and/or modify |
||||
7 | * it under the terms of the GNU General Public License as published by |
||||
8 | * the Free Software Foundation, either version 3 of the License, or |
||||
9 | * (at your option) any later version. |
||||
10 | * This program is distributed in the hope that it will be useful, |
||||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
13 | * GNU General Public License for more details. |
||||
14 | * You should have received a copy of the GNU General Public License |
||||
15 | * along with this program. If not, see <https://www.gnu.org/licenses/>. |
||||
16 | */ |
||||
17 | |||||
18 | declare(strict_types=1); |
||||
19 | |||||
20 | namespace Fisharebest\Webtrees\Http\RequestHandlers; |
||||
21 | |||||
22 | use Fisharebest\Webtrees\Family; |
||||
0 ignored issues
–
show
|
|||||
23 | use Fisharebest\Webtrees\Registry; |
||||
24 | use Fisharebest\Webtrees\Services\SearchService; |
||||
25 | use Fisharebest\Webtrees\Tree; |
||||
26 | use Illuminate\Support\Collection; |
||||
27 | |||||
28 | use function array_filter; |
||||
29 | use function explode; |
||||
30 | use function view; |
||||
31 | |||||
32 | /** |
||||
33 | * Autocomplete for families. |
||||
34 | */ |
||||
35 | class TomSelectFamily extends AbstractTomSelectHandler |
||||
36 | { |
||||
37 | protected SearchService $search_service; |
||||
38 | |||||
39 | /** |
||||
40 | * @param SearchService $search_service |
||||
41 | */ |
||||
42 | public function __construct( |
||||
43 | SearchService $search_service |
||||
44 | ) { |
||||
45 | $this->search_service = $search_service; |
||||
46 | } |
||||
47 | |||||
48 | /** |
||||
49 | * Perform the search |
||||
50 | * |
||||
51 | * @param Tree $tree |
||||
52 | * @param string $query |
||||
53 | * @param int $offset |
||||
54 | * @param int $limit |
||||
55 | * @param string $at |
||||
56 | * |
||||
57 | * @return Collection<int,array{text:string,value:string}> |
||||
58 | */ |
||||
59 | protected function search(Tree $tree, string $query, int $offset, int $limit, string $at): Collection |
||||
60 | { |
||||
61 | // Search by XREF |
||||
62 | $family = Registry::familyFactory()->make($query, $tree); |
||||
63 | |||||
64 | if ($family instanceof Family) { |
||||
65 | $results = new Collection([$family]); |
||||
0 ignored issues
–
show
array($family) of type array<integer,Fisharebest\Webtrees\Family> is incompatible with the type Illuminate\Contracts\Support\Arrayable expected by parameter $items of Illuminate\Support\Collection::__construct() .
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
![]() |
|||||
66 | } else { |
||||
67 | $search = array_filter(explode(' ', $query)); |
||||
68 | $results = $this->search_service->searchFamilyNames([$tree], $search, $offset, $limit); |
||||
69 | } |
||||
70 | |||||
71 | return $results->map(static fn (Family $family): array => [ |
||||
72 | 'text' => view('selects/family', ['family' => $family]), |
||||
73 | 'value' => $at . $family->xref() . $at, |
||||
74 | ]); |
||||
75 | } |
||||
76 | } |
||||
77 |
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:For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths