Issues (186)

Classes/Service/Container.php (3 issues)

1
<?php
2
declare(strict_types=1);
3
4
/*
5
 * Copyright (C)
6
 * Nathan Boiron <[email protected]>
7
 * Romain Canon <[email protected]>
8
 *
9
 * This file is part of the TYPO3 NotiZ project.
10
 * It is free software; you can redistribute it and/or modify it
11
 * under the terms of the GNU General Public License, either
12
 * version 3 of the License, or any later version.
13
 *
14
 * For the full copyright and license information, see:
15
 * http://www.gnu.org/licenses/gpl-3.0.html
16
 */
17
18
namespace CuyZ\Notiz\Service;
19
20
use CuyZ\Notiz\Service\Traits\ExtendedSelfInstantiateTrait;
21
use TYPO3\CMS\Core\Authentication\BackendUserAuthentication;
22
use TYPO3\CMS\Core\SingletonInterface;
23
use TYPO3\CMS\Extbase\Object\ObjectManager;
0 ignored issues
show
The type TYPO3\CMS\Extbase\Object\ObjectManager 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...
24
use TYPO3\CMS\Frontend\Page\PageRepository;
0 ignored issues
show
The type TYPO3\CMS\Frontend\Page\PageRepository 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...
25
26
class Container implements SingletonInterface
27
{
28
    use ExtendedSelfInstantiateTrait {
29
        get as getInstance;
30
    }
31
32
    /**
33
     * @var ObjectManager
34
     */
35
    protected $objectManager;
36
37
    /**
38
     * @var PageRepository
39
     */
40
    protected $pageRepository;
41
42
    /**
43
     * @param ObjectManager $objectManager
44
     */
45
    public function __construct(ObjectManager $objectManager)
46
    {
47
        $this->objectManager = $objectManager;
48
    }
49
50
    /**
51
     * @param string $className
52
     * @param mixed ...$arguments
53
     * @return object
54
     */
55
    public static function get(string $className, ...$arguments)
56
    {
57
        return static::getInstance()->objectManager->get($className, ...$arguments);
58
    }
59
60
    /**
61
     * @return BackendUserAuthentication
62
     */
63
    public static function getBackendUser(): BackendUserAuthentication
64
    {
65
        return $GLOBALS['BE_USER'];
66
    }
67
68
    /**
69
     * @return PageRepository
70
     */
71
    public static function getPageRepository(): PageRepository
72
    {
73
        $instance = self::getInstance();
74
75
        if (null === $instance->pageRepository) {
76
            $instance->pageRepository = $instance->get(PageRepository::class);
0 ignored issues
show
The call to CuyZ\Notiz\Service\Trait...InstantiateTrait::get() has too many arguments starting with TYPO3\CMS\Frontend\Page\PageRepository::class. ( Ignorable by Annotation )

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

76
            /** @scrutinizer ignore-call */ 
77
            $instance->pageRepository = $instance->get(PageRepository::class);

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. Please note the @ignore annotation hint above.

Loading history...
77
        }
78
79
        return $instance->pageRepository;
80
    }
81
}
82