-
Notifications
You must be signed in to change notification settings - Fork 882
/
integration-information-repository.php
43 lines (37 loc) · 1.04 KB
/
integration-information-repository.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
// phpcs:disable Yoast.NamingConventions.NamespaceName.TooLong
namespace Yoast\WP\SEO\Editors\Application\Integrations;
use Yoast\WP\SEO\Editors\Domain\Integrations\Integration_Data_Provider_Interface;
/**
* The repository to get all enabled integrations.
*
* @makePublic
*/
class Integration_Information_Repository {
/**
* All plugin integrations.
*
* @var Integration_Data_Provider_Interface[] $plugin_integrations
*/
private $plugin_integrations;
/**
* The constructor.
*
* @param Integration_Data_Provider_Interface ...$plugin_integrations All integrations.
*/
public function __construct( Integration_Data_Provider_Interface ...$plugin_integrations ) {
$this->plugin_integrations = $plugin_integrations;
}
/**
* Returns the analysis list.
*
* @return array<array<string,bool>> The parsed list.
*/
public function get_integration_information(): array {
$array = [];
foreach ( $this->plugin_integrations as $feature ) {
$array = \array_merge( $array, $feature->to_legacy_array() );
}
return $array;
}
}