diff --git a/module/VuFind/src/VuFind/Recommend/ConsortialVuFind.php b/module/VuFind/src/VuFind/Recommend/ConsortialVuFind.php index 0e4a1dfbb0bb..8cd43e12f9a0 100644 --- a/module/VuFind/src/VuFind/Recommend/ConsortialVuFind.php +++ b/module/VuFind/src/VuFind/Recommend/ConsortialVuFind.php @@ -29,7 +29,6 @@ namespace VuFind\Recommend; -use VuFind\Config\Config; use VuFind\Connection\ExternalVuFind as Connection; use function intval; @@ -67,20 +66,6 @@ class ConsortialVuFind implements RecommendInterface, \Psr\Log\LoggerAwareInterf */ protected $limit = 5; - /** - * Connection to consortial VuFind API. - * - * @var Connection - */ - protected $connection; - - /** - * ConsortialVuFind.ini configuration. - * - * @var Config - */ - protected $config; - /** * Base URL of a search results page. * @@ -119,15 +104,13 @@ class ConsortialVuFind implements RecommendInterface, \Psr\Log\LoggerAwareInterf /** * Constructor. * - * @param Config $config ConsortialVuFind.ini configuration + * @param array $config ConsortialVuFind.ini configuration * @param Connection $connection Connection to consortial VuFind API */ public function __construct( - Config $config, - Connection $connection + protected array $config, + protected Connection $connection ) { - $this->config = $config; - $this->connection = $connection; } /** @@ -146,20 +129,20 @@ public function setConfig($settings) $configSectionName = $settings[2] ?? 'ReShare'; // Read config file - $configSection = $this->config->get($configSectionName); + $configSection = $this->config[$configSectionName] ?? []; if ($configSection) { - $this->resultsBaseUrl = $configSection->results_base_url; - $this->recordBaseUrl = $configSection->record_base_url; - $this->searchFilters = $configSection->filters?->toArray() ?? []; - - // Configure connection - $this->connection->setBaseUrl($configSection->api_base_url); + $this->resultsBaseUrl = $configSection['results_base_url'] ?? null; + $this->recordBaseUrl = $configSection['record_base_url'] ?? null; + $this->searchFilters = $configSection['filters'] ?? []; // Confirm that required configuration is present $this->hasMinimumConfig = $this->resultsBaseUrl && $this->recordBaseUrl - && $configSection->api_base_url; - if (!$this->hasMinimumConfig) { + && ($configSection['api_base_url'] ?? null); + if ($this->hasMinimumConfig) { + // Configure connection + $this->connection->setBaseUrl($configSection['api_base_url']); + } else { $this->logError("Required configuration missing in '$configSectionName' section of ConsortialVuFind.ini."); } diff --git a/module/VuFind/src/VuFind/Recommend/ConsortialVuFindFactory.php b/module/VuFind/src/VuFind/Recommend/ConsortialVuFindFactory.php index 158f00f07825..d7dac5dc5fc6 100644 --- a/module/VuFind/src/VuFind/Recommend/ConsortialVuFindFactory.php +++ b/module/VuFind/src/VuFind/Recommend/ConsortialVuFindFactory.php @@ -71,7 +71,7 @@ public function __invoke( } return new $requestedName( - $container->get(\VuFind\Config\ConfigManagerInterface::class)->getConfigObject('ExternalVuFind'), + $container->get(\VuFind\Config\ConfigManagerInterface::class)->getConfigArray('ExternalVuFind'), $container->get(\VuFind\Connection\ExternalVuFind::class) ); } diff --git a/module/VuFind/tests/unit-tests/src/VuFindTest/Recommend/ConsortialVuFindTest.php b/module/VuFind/tests/unit-tests/src/VuFindTest/Recommend/ConsortialVuFindTest.php index 4fbd47dce0d6..5c1144194fae 100644 --- a/module/VuFind/tests/unit-tests/src/VuFindTest/Recommend/ConsortialVuFindTest.php +++ b/module/VuFind/tests/unit-tests/src/VuFindTest/Recommend/ConsortialVuFindTest.php @@ -30,7 +30,6 @@ namespace VuFindTest\Recommend; -use VuFind\Config\Config; use VuFind\Config\ConfigManagerInterface; use VuFind\Connection\ExternalVuFind; use VuFind\Recommend\ConsortialVuFind; @@ -144,7 +143,7 @@ protected function buildConfig(): array */ protected function buildConsortialVuFind(array $config): ConsortialVuFind { - $consortialVuFind = new ConsortialVuFind(new Config($config), $this->connector); + $consortialVuFind = new ConsortialVuFind($config, $this->connector); $consortialVuFind->setConfig('lookfor:3:ReShare'); $queryResults = $this->buildQueryResults('civil war');