Test Failed
Push — master ( e3c39f...fe570d )
by Mihail
07:20
created

Apps/Controller/Front/Content/Boot.php (3 issues)

Checks if the types of the passed arguments in a function/method call are compatible.

Bug Minor
1
<?php
2
3
namespace Apps\Controller\Front\Content;
4
5
6
use Apps\ActiveRecord\Content;
7
use Apps\Controller\Front\Search;
8
use Apps\Model\Front\Search\AbstractSearchResult;
9
use Apps\Model\Front\Search\EntitySearchMain;
10
use Ffcms\Core\App;
11
use Apps\ActiveRecord\App as AppRecord;
12
use Ffcms\Core\Helper\Text;
13
use Ffcms\Core\Helper\Type\Str;
14
use Ffcms\Templex\Helper\Html\Dom;
15
use Illuminate\Support\Collection;
16
17
/**
18
 * Trait Boot
19
 * @package Apps\Controller\Front\Content
20
 */
21
trait Boot
22
{
23
    /**
24
     * Implement boot features
25
     */
26
    public static function boot(): void
27
    {
28
        App::$Event->on(Search::EVENT_SEARCH_RUN, function ($model) {
29
            /** @var EntitySearchMain $model */
30
            $limit = (int)$model->getConfigs()['itemPerApp'];
31
            if ($limit < 1) {
32
                $limit = 1;
33
            }
34
35
            // relevant search by string query
36
            $records = Content::search($model->query)
37
                ->where('display', true)
38
                ->take($limit)
39
                ->get();
40
41
            /** @var Content[]|Collection $records */
42
            $records->each(function($item) use ($model) {
43
                /** @var Content $item */
44
                $title = $item->getLocaled('title');
45
                $text = App::$Security->strip_tags($item->getLocaled('text'));
46
                $snippet = Text::snippet($text);
0 ignored issues
show
It seems like $text can also be of type array and array and null; however, parameter $text of Ffcms\Core\Helper\Text::snippet() does only seem to accept string, maybe add an additional type check? ( Ignorable by Annotation )

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

46
                $snippet = Text::snippet(/** @scrutinizer ignore-type */ $text);
Loading history...
47
                // prevent empty items
48
                if (Str::likeEmpty($title)) {
0 ignored issues
show
It seems like $title can also be of type array; however, parameter $string of Ffcms\Core\Helper\Type\Str::likeEmpty() does only seem to accept null|string, maybe add an additional type check? ( Ignorable by Annotation )

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

48
                if (Str::likeEmpty(/** @scrutinizer ignore-type */ $title)) {
Loading history...
49
                    return;
50
                }
51
52
                // initialize abstract response pattern
53
                $res = new AbstractSearchResult();
54
                $res->setTitle($title);
0 ignored issues
show
It seems like $title can also be of type array; however, parameter $value of Apps\Model\Front\Search\...earchResult::setTitle() does only seem to accept string, maybe add an additional type check? ( Ignorable by Annotation )

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

54
                $res->setTitle(/** @scrutinizer ignore-type */ $title);
Loading history...
55
                $res->setSnippet($snippet);
56
                $res->setDate($item->created_at);
57
                $res->setRelevance((int)$item->relevance);
58
                $res->setUri('/content/read/' . $item->getPath());
59
60
                $model->add($res);
61
            });
62
        });
63
    }
64
}