1 | <?php |
||||||
2 | |||||||
3 | /** |
||||||
4 | * @license MIT, http://opensource.org/licenses/MIT |
||||||
5 | * @copyright Aimeos (aimeos.org), 2015-2023 |
||||||
6 | */ |
||||||
7 | |||||||
8 | namespace Aimeos\Shop\Base; |
||||||
9 | |||||||
10 | |||||||
11 | use Illuminate\Support\Facades\Request; |
||||||
12 | use Illuminate\Support\Facades\Route; |
||||||
13 | |||||||
14 | |||||||
15 | /** |
||||||
16 | * Service providing the context objects |
||||||
17 | */ |
||||||
18 | class Locale |
||||||
19 | { |
||||||
20 | /** |
||||||
21 | * @var \Illuminate\Contracts\Config\Repository |
||||||
22 | */ |
||||||
23 | private $config; |
||||||
24 | |||||||
25 | /** |
||||||
26 | * @var \Aimeos\MShop\Locale\Item\Iface |
||||||
27 | */ |
||||||
28 | private $locale; |
||||||
29 | |||||||
30 | |||||||
31 | /** |
||||||
32 | * Initializes the object |
||||||
33 | * |
||||||
34 | * @param \Illuminate\Contracts\Config\Repository $config Configuration object |
||||||
35 | */ |
||||||
36 | public function __construct( \Illuminate\Contracts\Config\Repository $config ) |
||||||
37 | { |
||||||
38 | $this->config = $config; |
||||||
39 | } |
||||||
40 | |||||||
41 | |||||||
42 | /** |
||||||
43 | * Returns the locale item for the current request |
||||||
44 | * |
||||||
45 | * @param \Aimeos\MShop\ContextIface $context Context object |
||||||
46 | * @return \Aimeos\MShop\Locale\Item\Iface Locale item object |
||||||
47 | */ |
||||||
48 | public function get( \Aimeos\MShop\ContextIface $context ) : \Aimeos\MShop\Locale\Item\Iface |
||||||
49 | { |
||||||
50 | if( $this->locale === null ) |
||||||
51 | { |
||||||
52 | $site = config( 'shop.mshop.locale.site', 'default' ); |
||||||
0 ignored issues
–
show
'shop.mshop.locale.site' of type string is incompatible with the type array expected by parameter $options of config() .
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||||
53 | $lang = app()->getLocale(); |
||||||
0 ignored issues
–
show
The method
getLocale() does not exist on Illuminate\Container\Container . Are you sure you never get this type here, but always one of the subclasses?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||||
54 | $currency = ''; |
||||||
55 | |||||||
56 | if( Route::current() ) |
||||||
57 | { |
||||||
58 | $site = Request::route( 'site', $site ); |
||||||
59 | $lang = Request::route( 'locale', $lang ); |
||||||
60 | $currency = Request::route( 'currency', $currency ); |
||||||
61 | } |
||||||
62 | |||||||
63 | $site = Request::input( 'site', $site ); |
||||||
64 | $lang = Request::input( 'locale', $lang ); |
||||||
65 | $currency = Request::input( 'currency', $currency ); |
||||||
66 | |||||||
67 | $localeManager = \Aimeos\MShop::create( $context, 'locale' ); |
||||||
68 | $disableSites = $this->config->get( 'shop.disableSites', true ); |
||||||
69 | |||||||
70 | $this->locale = $localeManager->bootstrap( $site, $lang, $currency, $disableSites ); |
||||||
0 ignored issues
–
show
The method
bootstrap() does not exist on Aimeos\MShop\Common\Manager\Iface . It seems like you code against a sub-type of said class. However, the method does not exist in Aimeos\MShop\Common\Manager\Decorator\Iface or Aimeos\MShop\Order\Manag...rvice\Transaction\Iface or Aimeos\MShop\Service\Manager\Lists\Type\Iface or Aimeos\MShop\Price\Manager\Iface or Aimeos\MShop\Attribute\Manager\Type\Iface or Aimeos\MShop\Order\Manager\Service\Iface or Aimeos\MShop\Review\Manager\Iface or Aimeos\MShop\Price\Manager\Lists\Type\Iface or Aimeos\MShop\Media\Manager\Type\Iface or Aimeos\MShop\Coupon\Manager\Code\Iface or Aimeos\MShop\Product\Manager\Iface or Aimeos\MShop\Supplier\Manager\Iface or Aimeos\MShop\Price\Manager\Property\Type\Iface or Aimeos\MShop\Common\Manager\Property\Iface or Aimeos\MShop\Customer\Manager\Property\Iface or Aimeos\MShop\Price\Manager\Lists\Iface or Aimeos\MShop\Cms\Manager\Lists\Type\Iface or Aimeos\MShop\Supplier\Manager\Lists\Type\Iface or Aimeos\MShop\Service\Manager\Lists\Iface or Aimeos\MShop\Tag\Manager\Type\Iface or Aimeos\MShop\Text\Manager\Lists\Iface or Aimeos\MShop\Price\Manager\Type\Iface or Aimeos\MShop\Locale\Manager\Currency\Iface or Aimeos\MShop\Media\Manager\Lists\Type\Iface or Aimeos\MShop\Catalog\Manager\Lists\Iface or Aimeos\MShop\Tag\Manager\Iface or Aimeos\MShop\Coupon\Manager\Iface or Aimeos\MShop\Attribute\Manager\Iface or Aimeos\MShop\Common\Manager\Lists\Iface or Aimeos\MShop\Attribute\Manager\Property\Type\Iface or Aimeos\MShop\Service\Manager\Type\Iface or Aimeos\MShop\Order\Manager\Address\Iface or Aimeos\MShop\Product\Manager\Lists\Iface or Aimeos\MShop\Order\Manager\Product\Attribute\Iface or Aimeos\MShop\Customer\Manager\Property\Type\Iface or Aimeos\MShop\Order\Manager\Iface or Aimeos\MShop\Customer\Manager\Iface or Aimeos\MShop\Media\Manager\Iface or Aimeos\MShop\Rule\Manager\Type\Iface or Aimeos\MShop\Order\Manager\Coupon\Iface or Aimeos\MShop\Customer\Manager\Lists\Type\Iface or Aimeos\MShop\Attribute\Manager\Lists\Iface or Aimeos\MShop\Product\Manager\Property\Type\Iface or Aimeos\MShop\Media\Manager\Lists\Iface or Aimeos\MShop\Plugin\Manager\Iface or Aimeos\MShop\Group\Manager\Iface or Aimeos\MShop\Catalog\Manager\Iface or Aimeos\MShop\Locale\Manager\Site\Iface or Aimeos\MShop\Order\Manager\Service\Attribute\Iface or Aimeos\MShop\Product\Manager\Type\Iface or Aimeos\MShop\Supplier\Manager\Lists\Iface or Aimeos\MShop\Stock\Manager\Type\Iface or Aimeos\MShop\Text\Manager\Iface or Aimeos\MShop\Common\Manager\Type\Iface or Aimeos\MAdmin\Job\Manager\Iface or Aimeos\MShop\Product\Manager\Lists\Type\Iface or Aimeos\MShop\Text\Manager\Lists\Type\Iface or Aimeos\MShop\Text\Manager\Type\Iface or Aimeos\MShop\Cms\Manager\Iface or Aimeos\MShop\Order\Manager\Status\Iface or Aimeos\MShop\Rule\Manager\Iface or Aimeos\MShop\Common\Manager\Address\Iface or Aimeos\MShop\Plugin\Manager\Type\Iface or Aimeos\MShop\Stock\Manager\Iface or Aimeos\MShop\Attribute\Manager\Property\Iface or Aimeos\MShop\Subscription\Manager\Iface or Aimeos\MShop\Media\Manager\Property\Type\Iface or Aimeos\MShop\Product\Manager\Property\Iface or Aimeos\MShop\Locale\Manager\Language\Iface or Aimeos\MShop\Media\Manager\Property\Iface or Aimeos\MShop\Service\Manager\Iface or Aimeos\MShop\Attribute\Manager\Lists\Type\Iface or Aimeos\MAdmin\Log\Manager\Iface or Aimeos\MShop\Cms\Manager\Lists\Iface or Aimeos\MAdmin\Cache\Manager\Iface or Aimeos\MShop\Order\Manager\Basket\Iface or Aimeos\MShop\Order\Manager\Product\Iface or Aimeos\MShop\Price\Manager\Property\Iface or Aimeos\MShop\Customer\Manager\Lists\Iface or Aimeos\MShop\Catalog\Manager\Lists\Type\Iface or Aimeos\MShop\Index\Manager\Iface or Aimeos\MShop\Index\Manager\Attribute\Iface or Aimeos\MShop\Index\Manager\Text\Iface or Aimeos\MShop\Index\Manager\Supplier\Iface or Aimeos\MShop\Index\Manager\Catalog\Iface or Aimeos\MShop\Index\Manager\Price\Iface or Aimeos\MShop\Supplier\Manager\Address\Iface or Aimeos\MShop\Customer\Manager\Address\Iface . Are you sure you never get one of those?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||||
71 | } |
||||||
72 | |||||||
73 | return $this->locale; |
||||||
74 | } |
||||||
75 | |||||||
76 | |||||||
77 | /** |
||||||
78 | * Returns the locale item for the current request |
||||||
79 | * |
||||||
80 | * @param \Aimeos\MShop\ContextIface $context Context object |
||||||
81 | * @param string $site Unique site code |
||||||
82 | * @return \Aimeos\MShop\Locale\Item\Iface Locale item object |
||||||
83 | */ |
||||||
84 | public function getBackend( \Aimeos\MShop\ContextIface $context, string $site ) : \Aimeos\MShop\Locale\Item\Iface |
||||||
85 | { |
||||||
86 | $localeManager = \Aimeos\MShop::create( $context, 'locale' ); |
||||||
87 | |||||||
88 | try { |
||||||
89 | $localeItem = $localeManager->bootstrap( $site, '', '', false, null, true ); |
||||||
90 | } catch( \Aimeos\MShop\Exception $e ) { |
||||||
91 | $localeItem = $localeManager->create(); |
||||||
92 | } |
||||||
93 | |||||||
94 | return $localeItem->setCurrencyId( null )->setLanguageId( null ); |
||||||
95 | } |
||||||
96 | } |
||||||
97 |
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.