Skip to content
Draft
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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@
"require-dev": {
"behat/behat": "^3.6.1",
"friends-of-behat/mink-extension": "^2.4",
"ibexa/code-style": "~2.1.0",
"ibexa/code-style": "^2.2.x-dev",
"ibexa/rector": "~5.0.x-dev",
"jenner/simple_fork": "^1.2",
"matthiasnoback/symfony-dependency-injection-test": "^5.0",
Expand Down
288 changes: 0 additions & 288 deletions phpstan-baseline.neon

Large diffs are not rendered by default.

7 changes: 4 additions & 3 deletions src/bundle/Core/ApiLoader/CacheFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
namespace Ibexa\Bundle\Core\ApiLoader;

use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface;
use Symfony\Component\Cache\Adapter\AdapterInterface;
use Symfony\Component\Cache\Adapter\TagAwareAdapter;
use Symfony\Component\Cache\Adapter\TagAwareAdapterInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
Expand All @@ -27,13 +28,13 @@ public function __construct(ContainerInterface $container)
}

/**
* @param \Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface $configResolver
* @param ConfigResolverInterface $configResolver
*
* @return \Symfony\Component\Cache\Adapter\TagAwareAdapterInterface
* @return TagAwareAdapterInterface
*/
public function getCachePool(ConfigResolverInterface $configResolver)
{
/** @var \Symfony\Component\Cache\Adapter\AdapterInterface $cacheService */
/** @var AdapterInterface $cacheService */
$cacheService = $this->container->get($configResolver->getParameter('cache_service_name'));

// If cache service is already implementing TagAwareAdapterInterface, return as-is
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,4 @@

use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException;

final class InvalidRepositoryException extends InvalidArgumentException
{
}
final class InvalidRepositoryException extends InvalidArgumentException {}
4 changes: 1 addition & 3 deletions src/bundle/Core/ApiLoader/Exception/InvalidSearchEngine.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,4 @@

use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException;

final class InvalidSearchEngine extends InvalidArgumentException
{
}
final class InvalidSearchEngine extends InvalidArgumentException {}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,4 @@

use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException;

final class InvalidSearchEngineIndexer extends InvalidArgumentException
{
}
final class InvalidSearchEngineIndexer extends InvalidArgumentException {}
4 changes: 1 addition & 3 deletions src/bundle/Core/ApiLoader/Exception/InvalidStorageEngine.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,4 @@

use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException;

final class InvalidStorageEngine extends InvalidArgumentException
{
}
final class InvalidStorageEngine extends InvalidArgumentException {}
6 changes: 2 additions & 4 deletions src/bundle/Core/ApiLoader/RepositoryConfigurationProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,11 @@

/**
* @deprecated 5.0.0 The "\Ibexa\Bundle\Core\ApiLoader\RepositoryConfigurationProvider" class is deprecated, will be removed in 6.0.0.
* Inject {@see \Ibexa\Contracts\Core\Container\ApiLoader\RepositoryConfigurationProviderInterface} from Dependency Injection Container instead.
* Inject {@see RepositoryConfigurationProviderInterface} from Dependency Injection Container instead.
*/
final readonly class RepositoryConfigurationProvider implements RepositoryConfigurationProviderInterface
{
public function __construct(private RepositoryConfigurationProviderInterface $configurationProvider)
{
}
public function __construct(private RepositoryConfigurationProviderInterface $configurationProvider) {}

public function getRepositoryConfig(): array
{
Expand Down
6 changes: 3 additions & 3 deletions src/bundle/Core/ApiLoader/RepositoryFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
*/
class RepositoryFactory
{
/** @var \Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface */
/** @var ConfigResolverInterface */
private $configResolver;

/**
Expand All @@ -51,10 +51,10 @@ class RepositoryFactory
*/
private $policyMap;

/** @var \Psr\Log\LoggerInterface */
/** @var LoggerInterface */
private $logger;

/** @var \Ibexa\Contracts\Core\Repository\LanguageResolver */
/** @var LanguageResolver */
private $languageResolver;

public function __construct(
Expand Down
18 changes: 10 additions & 8 deletions src/bundle/Core/ApiLoader/SearchEngineFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

use Ibexa\Bundle\Core\ApiLoader\Exception\InvalidSearchEngine;
use Ibexa\Contracts\Core\Container\ApiLoader\RepositoryConfigurationProviderInterface;
use Ibexa\Contracts\Core\Search\Handler;
use Ibexa\Contracts\Core\Search\Handler as SearchHandler;

/**
Expand All @@ -20,32 +21,33 @@ class SearchEngineFactory
* Hash of registered search engines.
* Key is the search engine identifier, value search handler itself.
*
* @var \Ibexa\Contracts\Core\Search\Handler[]
* @var Handler[]
*/
protected $searchEngines = [];

public function __construct(
private readonly RepositoryConfigurationProviderInterface $repositoryConfigurationProvider,
) {
}
) {}

/**
* Registers $searchHandler as a valid search engine with identifier $searchEngineIdentifier.
*
* Note It is strongly recommended to register a lazy persistent handler.
*
* @param \Ibexa\Contracts\Core\Search\Handler $searchHandler
* @param Handler $searchHandler
* @param string $searchEngineIdentifier
*/
public function registerSearchEngine(SearchHandler $searchHandler, $searchEngineIdentifier)
{
public function registerSearchEngine(
SearchHandler $searchHandler,
$searchEngineIdentifier
) {
$this->searchEngines[$searchEngineIdentifier] = $searchHandler;
}

/**
* Returns registered search engines.
*
* @return \Ibexa\Contracts\Core\Search\Handler[]
* @return Handler[]
*/
public function getSearchEngines()
{
Expand All @@ -56,7 +58,7 @@ public function getSearchEngines()
* Builds search engine identified by its identifier (the "alias" attribute in the service tag),
* resolved for current SiteAccess.
*
* @throws \Ibexa\Bundle\Core\ApiLoader\Exception\InvalidSearchEngine
* @throws InvalidSearchEngine
*/
public function buildSearchEngine(): SearchHandler
{
Expand Down
20 changes: 11 additions & 9 deletions src/bundle/Core/ApiLoader/SearchEngineIndexerFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
use Ibexa\Bundle\Core\ApiLoader\Exception\InvalidSearchEngine;
use Ibexa\Bundle\Core\ApiLoader\Exception\InvalidSearchEngineIndexer;
use Ibexa\Contracts\Core\Container\ApiLoader\RepositoryConfigurationProviderInterface;
use Ibexa\Core\Search\Common\Indexer;
use Ibexa\Core\Search\Common\Indexer as SearchEngineIndexer;

/**
Expand All @@ -21,32 +22,33 @@ class SearchEngineIndexerFactory
* Hash of registered search engine indexers.
* Key is the search engine identifier, value indexer itself.
*
* @var \Ibexa\Core\Search\Common\Indexer[]
* @var Indexer[]
*/
protected $searchEngineIndexers = [];

public function __construct(
private readonly RepositoryConfigurationProviderInterface $repositoryConfigurationProvider,
) {
}
) {}

/**
* Registers $searchEngineIndexer as a valid search engine indexer with identifier $searchEngineIdentifier.
*
* note: It is strongly recommended to register indexer as a lazy service.
*
* @param \Ibexa\Core\Search\Common\Indexer $searchEngineIndexer
* @param Indexer $searchEngineIndexer
* @param string $searchEngineIdentifier
*/
public function registerSearchEngineIndexer(SearchEngineIndexer $searchEngineIndexer, $searchEngineIdentifier)
{
public function registerSearchEngineIndexer(
SearchEngineIndexer $searchEngineIndexer,
$searchEngineIdentifier
) {
$this->searchEngineIndexers[$searchEngineIdentifier] = $searchEngineIndexer;
}

/**
* Returns registered search engine indexers.
*
* @return \Ibexa\Core\Search\Common\Indexer[]
* @return Indexer[]
*/
public function getSearchEngineIndexers()
{
Expand All @@ -57,9 +59,9 @@ public function getSearchEngineIndexers()
* Build search engine indexer identified by its identifier (the "alias" attribute in the service tag),
* resolved for current SiteAccess.
*
* @throws \Ibexa\Bundle\Core\ApiLoader\Exception\InvalidSearchEngineIndexer
* @throws InvalidSearchEngineIndexer
*
* @return \Ibexa\Core\Search\Common\Indexer
* @return Indexer
*/
public function buildSearchEngineIndexer(): SearchEngineIndexer
{
Expand Down
7 changes: 3 additions & 4 deletions src/bundle/Core/ApiLoader/StorageConnectionFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,17 @@
final readonly class StorageConnectionFactory
{
/**
* @phpstan-param \Symfony\Contracts\Service\ServiceProviderInterface<\Doctrine\DBAL\Connection> $serviceLocator
* @phpstan-param ServiceProviderInterface<Connection> $serviceLocator
*/
public function __construct(
private RepositoryConfigurationProviderInterface $repositoryConfigurationProvider,
private ServiceProviderInterface $serviceLocator,
) {
}
) {}

/**
* Returns database connection used by database handler.
*
* @throws \InvalidArgumentException
* @throws InvalidArgumentException
* @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException
*/
public function getConnection(): Connection
Expand Down
17 changes: 10 additions & 7 deletions src/bundle/Core/ApiLoader/StorageEngineFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@

use Ibexa\Bundle\Core\ApiLoader\Exception\InvalidStorageEngine;
use Ibexa\Contracts\Core\Container\ApiLoader\RepositoryConfigurationProviderInterface;
use Ibexa\Contracts\Core\Persistence\Handler;
use Ibexa\Contracts\Core\Persistence\Handler as PersistenceHandler;
use Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException;

/**
* The storage engine factory.
Expand All @@ -20,27 +22,28 @@ class StorageEngineFactory
* Hash of registered storage engines.
* Key is the storage engine identifier, value persistence handler itself.
*
* @var \Ibexa\Contracts\Core\Persistence\Handler[]
* @var Handler[]
*/
protected array $storageEngines = [];

public function __construct(
private readonly RepositoryConfigurationProviderInterface $repositoryConfigurationProvider,
) {
}
) {}

/**
* Registers $persistenceHandler as a valid storage engine, with identifier $storageEngineIdentifier.
*
* Note: It is strongly recommenced to register a lazy persistent handler.
*/
public function registerStorageEngine(PersistenceHandler $persistenceHandler, string $storageEngineIdentifier): void
{
public function registerStorageEngine(
PersistenceHandler $persistenceHandler,
string $storageEngineIdentifier
): void {
$this->storageEngines[$storageEngineIdentifier] = $persistenceHandler;
}

/**
* @return \Ibexa\Contracts\Core\Persistence\Handler[]
* @return Handler[]
*/
public function getStorageEngines(): array
{
Expand All @@ -50,7 +53,7 @@ public function getStorageEngines(): array
/**
* Builds storage engine identified by $storageEngineIdentifier (the "alias" attribute in the service tag).
*
* @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException
* @throws InvalidArgumentException
*/
public function buildStorageEngine(): PersistenceHandler
{
Expand Down
6 changes: 4 additions & 2 deletions src/bundle/Core/Cache/Warmer/ProxyCacheWarmer.php
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,10 @@ public function isOptional(): bool
return false;
}

public function warmUp(string $cacheDir, ?string $buildDir = null): array
{
public function warmUp(
string $cacheDir,
?string $buildDir = null
): array {
$this->proxyGenerator->warmUp(self::PROXY_CLASSES);

return [];
Expand Down
14 changes: 8 additions & 6 deletions src/bundle/Core/Command/CheckURLsCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,16 @@ class CheckURLsCommand extends Command
private const DEFAULT_ITERATION_COUNT = 50;
private const DEFAULT_REPOSITORY_USER = 'admin';

/** @var \Ibexa\Contracts\Core\Repository\UserService */
/** @var UserService */
private $userService;

/** @var \Ibexa\Contracts\Core\Repository\PermissionResolver */
/** @var PermissionResolver */
private $permissionResolver;

/** @var \Ibexa\Contracts\Core\Repository\URLService */
/** @var URLService */
private $urlService;

/** @var \Ibexa\Bundle\Core\URLChecker\URLCheckerInterface */
/** @var URLCheckerInterface */
private $urlChecker;

public function __construct(
Expand Down Expand Up @@ -77,8 +77,10 @@ public function configure(): void
);
}

protected function execute(InputInterface $input, OutputInterface $output): int
{
protected function execute(
InputInterface $input,
OutputInterface $output
): int {
$this->permissionResolver->setCurrentUserReference(
$this->userService->loadUserByLogin($input->getOption('user'))
);
Expand Down
19 changes: 12 additions & 7 deletions src/bundle/Core/Command/CleanupVersionsCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,10 @@ protected function configure(): void
);
}

protected function execute(InputInterface $input, OutputInterface $output): int
{
protected function execute(
InputInterface $input,
OutputInterface $output
): int {
// We don't load repo services or config resolver before execute() to avoid loading before SiteAccess is set.
$keep = $input->getOption('keep');
if ($keep === 'config_default') {
Expand Down Expand Up @@ -205,7 +207,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int
(int) $contentId
), OutputInterface::VERBOSITY_VERBOSE);

/** @var \Ibexa\Contracts\Core\Repository\Values\Content\VersionInfo $version */
/** @var VersionInfo $version */
foreach ($versions as $version) {
$contentService->deleteVersion($version);
++$removedVersionsCounter;
Expand Down Expand Up @@ -243,10 +245,13 @@ protected function execute(InputInterface $input, OutputInterface $output): int
*
* @return array
*
* @throws \Ibexa\Core\Base\Exceptions\InvalidArgumentException
* @throws InvalidArgumentException
*/
protected function getObjectsIds($keep, $status, $excludedContentTypes = [])
{
protected function getObjectsIds(
$keep,
$status,
$excludedContentTypes = []
) {
$query = $this->connection->createQueryBuilder()
->select('c.id')
->from(Gateway::CONTENT_ITEM_TABLE, 'c')
Expand Down Expand Up @@ -285,7 +290,7 @@ protected function getObjectsIds($keep, $status, $excludedContentTypes = [])
*
* @return int
*
* @throws \Ibexa\Core\Base\Exceptions\InvalidArgumentException
* @throws InvalidArgumentException
*/
private function mapStatusToVersionInfoStatus($status)
{
Expand Down
Loading
Loading