Skip to content

Commit 0e3d71f

Browse files
committed
EWPP-4991: Ensure PHP8.3 compatibility.
1 parent 46d73b3 commit 0e3d71f

File tree

46 files changed

+110
-75
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+110
-75
lines changed

.drone.yml

+7-7
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ services:
1919
- DOCUMENT_ROOT=/test/oe_link_lists
2020
- COMPOSERVER=--2
2121
mysql:
22-
image: git.fpfis.tech.ec.europa.eu/fpfis/dependency_proxy/containers/percona:5.7
23-
command: --innodb-log-file-size=1G --max_allowed_packet=1G --innodb-buffer-pool-size=512M --wait_timeout=3000 --net_write_timeout=3000 --log_error_verbosity=3
22+
image: git.fpfis.tech.ec.europa.eu/fpfis/dependency_proxy/containers/percona:8.0
23+
command: --innodb-log-file-size=1G --max_allowed_packet=1G --innodb-buffer-pool-size=512M --wait_timeout=3000 --net_write_timeout=3000 --log_error_verbosity=3 --skip-log-bin --innodb-flush-log-at-trx-commit=2 --innodb-read-io-threads=16 --innodb-write-io-threads=16
2424
environment:
2525
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
2626
selenium:
@@ -69,11 +69,11 @@ pipeline:
6969

7070
matrix:
7171
include:
72-
- CORE_VERSION: 10.2.0
73-
PHP_VERSION: 8.1
74-
- CORE_VERSION: 10.2.0
75-
PHP_VERSION: 8.2
7672
- CORE_VERSION: 10.3.0
7773
PHP_VERSION: 8.1
7874
- CORE_VERSION: 10.3.0
79-
PHP_VERSION: 8.2
75+
PHP_VERSION: 8.3
76+
- CORE_VERSION: 10.4.0
77+
PHP_VERSION: 8.1
78+
- CORE_VERSION: 10.4.0
79+
PHP_VERSION: 8.3

composer.json

+13-3
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
"drupal/inline_entity_form": "^1.0-rc15",
2121
"drupal/multivalue_form_element": "^1.0-beta6",
2222
"drush/drush": "^12",
23-
"openeuropa/code-review": "^2.0.0-alpha6",
23+
"openeuropa/code-review-drupal": "^1.0.0-alpha",
2424
"openeuropa/oe_multilingual": "^1.13",
25-
"openeuropa/task-runner-drupal-project-symlink": "^1.0-beta6",
25+
"openeuropa/task-runner-drupal-project-symlink": "^1.0",
2626
"phpspec/prophecy-phpunit": "^2"
2727
},
2828
"scripts": {
@@ -33,6 +33,14 @@
3333
{
3434
"type": "composer",
3535
"url": "https://packages.drupal.org/8"
36+
},
37+
{
38+
"type": "git",
39+
"url": "https://github.com/openeuropa/DrupalDriver.git"
40+
},
41+
{
42+
"type": "git",
43+
"url": "https://github.com/openeuropa/code-review-drupal.git"
3644
}
3745
],
3846
"autoload": {
@@ -76,9 +84,11 @@
7684
"cweagans/composer-patches": true,
7785
"dealerdirect/phpcodesniffer-composer-installer": true,
7886
"drupal/core-composer-scaffold": true,
87+
"php-http/discovery": false,
7988
"phpro/grumphp": true,
89+
"phpro/grumphp-shim": true,
8090
"phpstan/extension-installer": true,
81-
"php-http/discovery": false
91+
"tbachert/spi": true
8292
}
8393
}
8494
}

docker-compose.yml

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
version: '2'
21
services:
32
web:
4-
image: fpfis/httpd-php-dev:8.1
3+
image: fpfis/httpd-php-dev:8.3
54
working_dir: /var/www/html
65
ports:
76
- 8080:8080
@@ -17,8 +16,8 @@ services:
1716
# Enable step debugging for all PHP request. See ./README.md#step-debugging for more information.
1817
# XDEBUG_SESSION: 1
1918
mysql:
20-
image: percona/percona-server:5.7
21-
command: --innodb-log-file-size=1G --max_allowed_packet=1G --innodb-buffer-pool-size=512M --wait_timeout=3000 --net_write_timeout=3000 --log_error_verbosity=3
19+
image: percona/percona-server:8.0
20+
command: --innodb-log-file-size=1G --max_allowed_packet=1G --innodb-buffer-pool-size=512M --wait_timeout=3000 --net_write_timeout=3000 --log_error_verbosity=3 --skip-log-bin --innodb-flush-log-at-trx-commit=2 --innodb-read-io-threads=16 --innodb-write-io-threads=16
2221
environment:
2322
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
2423
# ports:

grumphp.yml.dist

+8-13
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,12 @@
11
imports:
2-
- { resource: vendor/openeuropa/code-review/dist/drupal-conventions.yml }
3-
parameters:
4-
tasks.phpcs.ignore_patterns:
5-
- build/
6-
- node_modules/
7-
- vendor/
8-
tasks.phpcs.triggered_by:
9-
- inc
10-
- install
11-
- module
12-
- php
13-
- theme
14-
- yml
2+
- { resource: ./vendor/openeuropa/code-review-drupal/dist/oe-component-conventions.yml }
153
grumphp:
4+
tasks:
5+
phpparser:
6+
ignore_patterns:
7+
- vendor/
168
git_hook_variables:
179
EXEC_GRUMPHP_COMMAND: 'docker-compose exec -T web'
10+
11+
parameters:
12+
tasks.phpstan.configuration: phpstan.neon.dist

modules/oe_link_lists_internal_source/src/Plugin/LinkSource/InternalLinkSource.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ public function updateFilterPlugins(array &$form, FormStateInterface $form_state
303303
/**
304304
* {@inheritdoc}
305305
*/
306-
public function getLinks(int $limit = NULL, int $offset = 0): LinkCollectionInterface {
306+
public function getLinks(?int $limit = NULL, int $offset = 0): LinkCollectionInterface {
307307
$entity_type_id = $this->configuration['entity_type'];
308308
$bundle_id = $this->configuration['bundle'];
309309
$links = new LinkCollection();

modules/oe_link_lists_local/tests/src/FunctionalJavascript/LocalLinkListsTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ public function testLocalLinkList(): void {
211211
$this->getSession()->getPage()->selectFieldOption('No results behaviour', 'Hide');
212212
$this->assertSession()->assertWaitOnAjaxRequest();
213213
$this->getSession()->getPage()->pressButton('Save');
214-
$this->assertSession()->pageTextContains('Saved the Regular Link list.');
214+
$this->assertSession()->pageTextContains('Created the Regular Link list.');
215215
$link_list = $this->getLinkListByTitle('Regular', TRUE);
216216
$this->assertFalse($link_list->isPublished());
217217
$this->assertEquals('draft', $link_list->get('moderation_state')->value);

modules/oe_link_lists_local/tests/src/Kernel/LocalLinkListsTest.php

+1
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ public function testBaseFieldOverride(): void {
8484
* Tests that local link lists are not queryable.
8585
*/
8686
public function testLocalLinkListQueryAlter(): void {
87+
/** @var \Drupal\Core\Entity\RevisionableStorageInterface $link_list_storage */
8788
$link_list_storage = $this->container->get('entity_type.manager')->getStorage('link_list');
8889
$values = [
8990
'bundle' => 'dynamic',

modules/oe_link_lists_manual_source/src/Form/LinkListLinkForm.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ class LinkListLinkForm extends ContentEntityForm {
5151
* @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
5252
* The entity type manager.
5353
*/
54-
public function __construct(EntityRepositoryInterface $entity_repository, EntityTypeBundleInfoInterface $entity_type_bundle_info = NULL, TimeInterface $time = NULL, AccountProxyInterface $account, MessengerInterface $messenger, EntityTypeManagerInterface $entity_type_manager) {
54+
public function __construct(EntityRepositoryInterface $entity_repository, EntityTypeBundleInfoInterface $entity_type_bundle_info, TimeInterface $time, AccountProxyInterface $account, MessengerInterface $messenger, EntityTypeManagerInterface $entity_type_manager) {
5555
parent::__construct($entity_repository, $entity_type_bundle_info, $time);
5656

5757
$this->account = $account;

modules/oe_link_lists_manual_source/src/Form/LinkListLinkTypeForm.php

+3
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ public function save(array $form, FormStateInterface $form_state) {
7676
$status = $entity_type->save();
7777

7878
$t_args = ['%name' => $entity_type->label()];
79+
$message = '';
7980
if ($status == SAVED_UPDATED) {
8081
$message = $this->t('The link list link type %name has been updated.', $t_args);
8182
}
@@ -85,6 +86,8 @@ public function save(array $form, FormStateInterface $form_state) {
8586
$this->messenger()->addStatus($message);
8687

8788
$form_state->setRedirectUrl($entity_type->toUrl('collection'));
89+
90+
return $status;
8891
}
8992

9093
}

modules/oe_link_lists_manual_source/src/Plugin/LinkSource/ManualLinkSource.php

+4-1
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ public function preSave(ContentEntityInterface $entity): void {
160160
/**
161161
* {@inheritdoc}
162162
*/
163-
public function getLinks(int $limit = NULL, int $offset = 0): LinkCollectionInterface {
163+
public function getLinks(?int $limit = NULL, int $offset = 0): LinkCollectionInterface {
164164
$ids = $this->configuration['links'];
165165
if (!$ids) {
166166
return new LinkCollection();
@@ -172,6 +172,7 @@ public function getLinks(int $limit = NULL, int $offset = 0): LinkCollectionInte
172172

173173
// For legacy reasons, we need to first dispatch the event responsible for
174174
// resolving all links if there are any subscribers to this event.
175+
// @phpstan-ignore-next-line
175176
$listeners = $this->eventDispatcher->getListeners(ManualLinksResolverEvent::NAME);
176177
if ($listeners) {
177178
return $this->legacyResolveLinks($link_entities);
@@ -255,7 +256,9 @@ protected function getLinkIds(LinkListInterface $link_list): array {
255256
* The list of resolved links.
256257
*/
257258
protected function legacyResolveLinks(array $link_entities) {
259+
// @phpstan-ignore-next-line
258260
$event = new ManualLinksResolverEvent($link_entities);
261+
// @phpstan-ignore-next-line
259262
$this->eventDispatcher->dispatch($event, ManualLinksResolverEvent::NAME);
260263
return $event->getLinks();
261264
}

modules/oe_link_lists_manual_source/tests/src/FunctionalJavascript/ManualLinkListTestBase.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ protected function setUp(): void {
6666
* @param string|null $teaser
6767
* The teaser.
6868
*/
69-
protected function createInlineInternalLink(string $page, string $title = NULL, string $teaser = NULL): void {
69+
protected function createInlineInternalLink(string $page, ?string $title = NULL, ?string $teaser = NULL): void {
7070
$this->getSession()->getPage()->selectFieldOption('links[actions][bundle]', 'internal');
7171
$this->getSession()->getPage()->pressButton('Add new Link');
7272
$this->assertSession()->assertWaitOnAjaxRequest();

modules/oe_link_lists_rss_source/src/Form/FeedRefreshForm.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public function access(AccountInterface $account, RouteMatchInterface $route_mat
7979
/**
8080
* {@inheritdoc}
8181
*/
82-
public function buildForm(array $form, FormStateInterface $form_state, LinkListInterface $link_list = NULL) {
82+
public function buildForm(array $form, FormStateInterface $form_state, ?LinkListInterface $link_list = NULL) {
8383
$form['message'] = [
8484
'#type' => 'markup',
8585
'#markup' => $this->t('Are you sure you want to refresh the feeds?'),

modules/oe_link_lists_rss_source/src/Plugin/LinkSource/RssLinkSource.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ public function preSave(ContentEntityInterface $entity): void {
138138
/**
139139
* {@inheritdoc}
140140
*/
141-
public function getLinks(int $limit = NULL, int $offset = 0): LinkCollectionInterface {
141+
public function getLinks(?int $limit = NULL, int $offset = 0): LinkCollectionInterface {
142142
$feed = $this->getFeed();
143143
$link_collection = new LinkCollection();
144144

modules/oe_link_lists_rss_source/src/Plugin/LinkSource/RssLinksSource.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ public function preSave(ContentEntityInterface $entity): void {
164164
/**
165165
* {@inheritdoc}
166166
*/
167-
public function getLinks(int $limit = NULL, int $offset = 0): LinkCollectionInterface {
167+
public function getLinks(?int $limit = NULL, int $offset = 0): LinkCollectionInterface {
168168
$feeds = $this->getFeeds();
169169
$link_collection = new LinkCollection();
170170

modules/oe_link_lists_rss_source/tests/src/Kernel/RssLinkSourcePluginTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -439,7 +439,7 @@ protected function getExpectedLinks(): array {
439439
else {
440440
// If there is no such filter format, we can assume that the module
441441
// version is 1.x, so we get the allowed html from settings.
442-
$allowed_tags = preg_split('/\s+|<|>/', $this->configFactory->get('aggregator.settings')->get('items.allowed_html'), -1, PREG_SPLIT_NO_EMPTY);
442+
$allowed_tags = preg_split('/\s+|<|>/', $this->container->get('config.factory')->get('aggregator.settings')->get('items.allowed_html'), -1, PREG_SPLIT_NO_EMPTY);
443443
}
444444

445445
$links = [];

modules/oe_link_lists_rss_source/tests/src/Kernel/RssLinksSourcePluginTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,7 @@ protected function getExpectedLinks(): array {
448448
else {
449449
// If there is no such filter format, we can assume that the module
450450
// version is 1.x, so we get the allowed html from settings.
451-
$allowed_tags = preg_split('/\s+|<|>/', $this->configFactory->get('aggregator.settings')->get('items.allowed_html'), -1, PREG_SPLIT_NO_EMPTY);
451+
$allowed_tags = preg_split('/\s+|<|>/', $this->container->get('config.factory')->get('aggregator.settings')->get('items.allowed_html'), -1, PREG_SPLIT_NO_EMPTY);
452452
}
453453

454454
$links = [];

phpstan.neon.dist

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
includes:
2+
- ./vendor/openeuropa/code-review-drupal/dist/phpstan.drupal.neon
3+
parameters:
4+
excludePaths:
5+
# Exclude the following file from analysis as RawDrupalContext is not present.
6+
- tests/src/Behat/LinkListsContext.php

src/DefaultEntityLink.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public function getCacheMaxAge() {
6464
/**
6565
* {@inheritdoc}
6666
*/
67-
public function access($operation, AccountInterface $account = NULL, $return_as_object = FALSE) {
67+
public function access($operation, ?AccountInterface $account = NULL, $return_as_object = FALSE) {
6868
$result = parent::access($operation, $account, TRUE);
6969

7070
if ($this->entity) {

src/DefaultLink.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ public function setTeaser(array $teaser): void {
104104
/**
105105
* {@inheritdoc}
106106
*/
107-
public function access($operation, AccountInterface $account = NULL, $return_as_object = FALSE) {
107+
public function access($operation, ?AccountInterface $account = NULL, $return_as_object = FALSE) {
108108
if ($operation !== 'view') {
109109
throw new \InvalidArgumentException('Only the "view" permission is supported for links.');
110110
}

src/Entity/LinkList.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -143,10 +143,12 @@ public function setCreatedTime(int $timestamp): LinkListInterface {
143143
* {@inheritdoc}
144144
*/
145145
public function save() {
146-
parent::save();
146+
$status = parent::save();
147147

148148
// Invalidate the block cache to update the derivatives.
149149
\Drupal::service('plugin.manager.block')->clearCachedDefinitions();
150+
151+
return $status;
150152
}
151153

152154
/**

src/Form/LinkListTypeForm.php

+3
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ public function save(array $form, FormStateInterface $form_state) {
7373
$status = $entity_type->save();
7474

7575
$t_args = ['%name' => $entity_type->label()];
76+
$message = '';
7677
if ($status == SAVED_UPDATED) {
7778
$message = $this->t('The link list type %name has been updated.', $t_args);
7879
}
@@ -82,6 +83,8 @@ public function save(array $form, FormStateInterface $form_state) {
8283
$this->messenger()->addStatus($message);
8384

8485
$form_state->setRedirectUrl($entity_type->toUrl('collection'));
86+
87+
return $status;
8588
}
8689

8790
}

src/LinkDisplayPluginManager.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public function __construct(\Traversable $namespaces, CacheBackendInterface $cac
4141
/**
4242
* {@inheritdoc}
4343
*/
44-
public function getPluginsAsOptions(string $bundle = NULL, string $link_source = NULL): array {
44+
public function getPluginsAsOptions(?string $bundle = NULL, ?string $link_source = NULL): array {
4545
$options = $this->getPluginsAsOptionsByBundle($bundle);
4646

4747
$definitions = $this->getDefinitions();

src/LinkDisplayPluginManagerInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,6 @@ interface LinkDisplayPluginManagerInterface extends PluginManagerInterface {
2424
* @return array
2525
* The options.
2626
*/
27-
public function getPluginsAsOptions(string $bundle = NULL, string $link_source = NULL): array;
27+
public function getPluginsAsOptions(?string $bundle = NULL, ?string $link_source = NULL): array;
2828

2929
}

src/LinkListPluginManagerTrait.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ trait LinkListPluginManagerTrait {
2020
* @return array
2121
* The options.
2222
*/
23-
protected function getPluginsAsOptionsByBundle(string $bundle = NULL): array {
23+
protected function getPluginsAsOptionsByBundle(?string $bundle = NULL): array {
2424
$definitions = $this->getDefinitions();
2525
$options = [];
2626
foreach ($definitions as $name => $definition) {

src/LinkListViewBuilder.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ class LinkListViewBuilder extends EntityViewBuilder {
9595
*
9696
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
9797
*/
98-
public function __construct(EntityTypeInterface $entity_type, EntityRepositoryInterface $entity_repository, LanguageManagerInterface $language_manager, Registry $theme_registry = NULL, EntityDisplayRepositoryInterface $entity_display_repository = NULL, LinkSourcePluginManagerInterface $link_source_plugin_manager, LinkDisplayPluginManagerInterface $link_display_plugin_manager, EventDispatcherInterface $event_dispatcher, EntityTypeManagerInterface $entity_type_manager, NoResultsBehaviourPluginManagerInterface $no_results_behaviour_manager, MoreLinkPluginManagerInterface $more_link_manager) {
98+
public function __construct(EntityTypeInterface $entity_type, EntityRepositoryInterface $entity_repository, LanguageManagerInterface $language_manager, Registry $theme_registry, EntityDisplayRepositoryInterface $entity_display_repository, LinkSourcePluginManagerInterface $link_source_plugin_manager, LinkDisplayPluginManagerInterface $link_display_plugin_manager, EventDispatcherInterface $event_dispatcher, EntityTypeManagerInterface $entity_type_manager, NoResultsBehaviourPluginManagerInterface $no_results_behaviour_manager, MoreLinkPluginManagerInterface $more_link_manager) {
9999
parent::__construct($entity_type, $entity_repository, $language_manager, $theme_registry, $entity_display_repository);
100100
$this->linkSourceManager = $link_source_plugin_manager;
101101
$this->linkDisplayManager = $link_display_plugin_manager;

src/LinkSourceInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public function label(): string;
3333
* @return \Drupal\oe_link_lists\LinkCollectionInterface
3434
* A list of links.
3535
*/
36-
public function getLinks(int $limit = NULL, int $offset = 0): LinkCollectionInterface;
36+
public function getLinks(?int $limit = NULL, int $offset = 0): LinkCollectionInterface;
3737

3838
/**
3939
* Called when parent entity's presave hook is invoked.

src/LinkSourcePluginManager.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public function __construct(\Traversable $namespaces, CacheBackendInterface $cac
4141
/**
4242
* {@inheritdoc}
4343
*/
44-
public function getPluginsAsOptions(string $bundle = NULL): array {
44+
public function getPluginsAsOptions(?string $bundle = NULL): array {
4545
return $this->getPluginsAsOptionsByBundle($bundle);
4646
}
4747

src/LinkSourcePluginManagerInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ interface LinkSourcePluginManagerInterface extends PluginManagerInterface {
2222
* @return array
2323
* The options.
2424
*/
25-
public function getPluginsAsOptions(string $bundle = NULL): array;
25+
public function getPluginsAsOptions(?string $bundle = NULL): array;
2626

2727
/**
2828
* Returns the plugin IDs that have been deprecated.

src/MoreLinkPluginManager.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public function __construct(\Traversable $namespaces, CacheBackendInterface $cac
4141
/**
4242
* {@inheritdoc}
4343
*/
44-
public function getPluginsAsOptions(string $bundle = NULL): array {
44+
public function getPluginsAsOptions(?string $bundle = NULL): array {
4545
return $this->getPluginsAsOptionsByBundle($bundle);
4646
}
4747

src/MoreLinkPluginManagerInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,6 @@ interface MoreLinkPluginManagerInterface extends PluginManagerInterface {
2222
* @return array
2323
* The options.
2424
*/
25-
public function getPluginsAsOptions(string $bundle = NULL): array;
25+
public function getPluginsAsOptions(?string $bundle = NULL): array;
2626

2727
}

src/NoResultsBehaviourPluginManager.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public function __construct(\Traversable $namespaces, CacheBackendInterface $cac
4141
/**
4242
* {@inheritdoc}
4343
*/
44-
public function getPluginsAsOptions(string $bundle = NULL): array {
44+
public function getPluginsAsOptions(?string $bundle = NULL): array {
4545
return $this->getPluginsAsOptionsByBundle($bundle);
4646
}
4747

src/NoResultsBehaviourPluginManagerInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,6 @@ interface NoResultsBehaviourPluginManagerInterface extends PluginManagerInterfac
2222
* @return array
2323
* The options.
2424
*/
25-
public function getPluginsAsOptions(string $bundle = NULL): array;
25+
public function getPluginsAsOptions(?string $bundle = NULL): array;
2626

2727
}

0 commit comments

Comments
 (0)