Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 0 additions & 12 deletions phpstan-baseline.neon
Original file line number Diff line number Diff line change
Expand Up @@ -15294,18 +15294,6 @@ parameters:
count: 1
path: src/lib/MVC/Symfony/SiteAccess/SiteAccessProviderInterface.php

-
message: '#^Property Ibexa\\Core\\MVC\\Symfony\\SiteAccess\\SiteAccessService\:\:\$siteAccess \(Ibexa\\Core\\MVC\\Symfony\\SiteAccess\) does not accept Ibexa\\Core\\MVC\\Symfony\\SiteAccess\|null\.$#'
identifier: assign.propertyType
count: 1
path: src/lib/MVC/Symfony/SiteAccess/SiteAccessService.php

-
message: '#^Property Ibexa\\Core\\MVC\\Symfony\\SiteAccess\\SiteAccessService\:\:\$siteAccess \(Ibexa\\Core\\MVC\\Symfony\\SiteAccess\) on left side of \?\? is not nullable\.$#'
identifier: nullCoalesce.property
count: 1
path: src/lib/MVC/Symfony/SiteAccess/SiteAccessService.php

-
message: '#^Method Ibexa\\Core\\MVC\\Symfony\\Templating\\Exception\\InvalidResponseException\:\:addParameter\(\) has no return type specified\.$#'
identifier: missingType.return
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@
$this->defaultScope = $scope;

// On scope change check if siteaccess has been updated so we can log warnings if there are any
if ($this->siteAccess->matchingType !== 'uninitialized') {
if ($this->siteAccess->matchingType !== SiteAccess::MATCHING_TYPE_UNINITIALIZED) {
$this->warnAboutTooEarlyLoadedParams();
}
}
Expand Down Expand Up @@ -253,13 +253,13 @@
*
* @return string
*/
private function logTooEarlyLoadedListIfNeeded($paramName)

Check failure on line 256 in src/bundle/Core/DependencyInjection/Configuration/ConfigResolver.php

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Refactor this function to reduce its Cognitive Complexity from 30 to the 15 allowed.

See more on https://sonarcloud.io/project/issues?id=ibexa_core&issues=AZ_MpGiRSk-vE5ewMPjk&open=AZ_MpGiRSk-vE5ewMPjk&pullRequest=796
{
if ($this->container instanceof ContainerBuilder) {
return;
}

if ($this->siteAccess->matchingType !== 'uninitialized') {
if ($this->siteAccess->matchingType !== SiteAccess::MATCHING_TYPE_UNINITIALIZED) {
return;
}

Expand Down
3 changes: 1 addition & 2 deletions src/bundle/Core/Resources/config/services.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ services:
# Siteaccess is injected in the container at runtime
Ibexa\Core\MVC\Symfony\SiteAccess:
class: Ibexa\Core\MVC\Symfony\SiteAccess
arguments: ['%ibexa.site_access.default.name%', 'uninitialized']
arguments: ['%ibexa.site_access.default.name%', !php/const Ibexa\Core\MVC\Symfony\SiteAccess::MATCHING_TYPE_UNINITIALIZED]

Ibexa\Bundle\Core\DependencyInjection\Configuration\ConfigResolver\DefaultScopeConfigResolver:
arguments:
Expand Down Expand Up @@ -392,4 +392,3 @@ services:
decoration_priority: 500
arguments:
$inner: '@.inner'

2 changes: 2 additions & 0 deletions src/lib/MVC/Symfony/SiteAccess.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ class SiteAccess extends ValueObject implements JsonSerializable
{
public const DEFAULT_MATCHING_TYPE = 'default';

public const MATCHING_TYPE_UNINITIALIZED = 'uninitialized';

/**
* Name of the siteaccess.
*
Expand Down
14 changes: 8 additions & 6 deletions src/lib/MVC/Symfony/SiteAccess/SiteAccessService.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,18 @@
namespace Ibexa\Core\MVC\Symfony\SiteAccess;

use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface;
use Ibexa\Core\Base\Exceptions\InvalidArgumentException;
use Ibexa\Core\Base\Exceptions\NotFoundException;
use Ibexa\Core\MVC\Symfony\SiteAccess;
use function iterator_to_array;

class SiteAccessService implements SiteAccessServiceInterface, SiteAccessAware
{
/** @var \Ibexa\Core\MVC\Symfony\SiteAccess\SiteAccessProviderInterface */
private $provider;
private SiteAccessProviderInterface $provider;

/** @var \Ibexa\Core\MVC\Symfony\SiteAccess */
private $siteAccess;
private ?SiteAccess $siteAccess = null;

/** @var \Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface */
private $configResolver;
private ConfigResolverInterface $configResolver;

public function __construct(
SiteAccessProviderInterface $provider,
Expand Down Expand Up @@ -64,6 +62,10 @@ public function getCurrent(): ?SiteAccess
public function getSiteAccessesRelation(?SiteAccess $siteAccess = null): array
{
$siteAccess = $siteAccess ?? $this->siteAccess;
if ($siteAccess === null) {
throw new InvalidArgumentException('siteAccess', 'no SiteAccess given and none currently set');
}

$saRelationMap = [];

/** @var \Ibexa\Core\MVC\Symfony\SiteAccess[] $saList */
Expand Down
2 changes: 2 additions & 0 deletions src/lib/MVC/Symfony/SiteAccess/SiteAccessServiceInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ public function getCurrent(): ?SiteAccess;
* Handles relation between SiteAccesses. Related SiteAccesses share the same repository and root location id.
*
* @return string[]
*
* @throws \Ibexa\Core\Base\Exceptions\InvalidArgumentException if no SiteAccess is given and none is currently set
*/
public function getSiteAccessesRelation(?SiteAccess $siteAccess = null): array;
}
Expand Down
2 changes: 1 addition & 1 deletion tests/integration/Core/Resources/settings/common.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ services:

Ibexa\Core\MVC\Symfony\SiteAccess:
class: Ibexa\Core\MVC\Symfony\SiteAccess
arguments: ['default', 'uninitialized']
arguments: ['default', !php/const Ibexa\Core\MVC\Symfony\SiteAccess::MATCHING_TYPE_UNINITIALIZED]

Ibexa\Core\MVC\Symfony\SiteAccess\SiteAccessService:
class: Ibexa\Core\MVC\Symfony\SiteAccess\SiteAccessService
Expand Down
Loading