From 40d9a8ffdd198fa381379a0702de0a22fa674c8c Mon Sep 17 00:00:00 2001 From: Demian Katz <demian.katz@villanova.edu> Date: Fri, 12 Jan 2018 09:39:59 -0500 Subject: [PATCH] Modernized record driver service configuration. - Use fully qualified class names as service names. - Move configuration into plugin manager. --- module/VuFind/config/module.config.php | 23 +------- .../src/VuFind/RecordDriver/PluginManager.php | 53 +++++++++++++++++++ 2 files changed, 54 insertions(+), 22 deletions(-) diff --git a/module/VuFind/config/module.config.php b/module/VuFind/config/module.config.php index 7ffa0ac1b55..a91c743560f 100644 --- a/module/VuFind/config/module.config.php +++ b/module/VuFind/config/module.config.php @@ -514,28 +514,7 @@ $config = [ ], ], 'recommend' => [ /* See VuFind\Recommend\PluginManager for defaults */ ], - 'recorddriver' => [ - 'abstract_factories' => ['VuFind\RecordDriver\PluginFactory'], - 'factories' => [ - 'eds' => 'VuFind\RecordDriver\Factory::getEDS', - 'eit' => 'VuFind\RecordDriver\Factory::getEIT', - 'missing' => 'VuFind\RecordDriver\Factory::getMissing', - 'pazpar2' => 'VuFind\RecordDriver\Factory::getPazpar2', - 'primo' => 'VuFind\RecordDriver\Factory::getPrimo', - 'solrauth' => 'VuFind\RecordDriver\Factory::getSolrAuth', - 'solrdefault' => 'VuFind\RecordDriver\Factory::getSolrDefault', - 'solrmarc' => 'VuFind\RecordDriver\Factory::getSolrMarc', - 'solrmarcremote' => 'VuFind\RecordDriver\Factory::getSolrMarcRemote', - 'solrreserves' => 'VuFind\RecordDriver\Factory::getSolrReserves', - 'solrweb' => 'VuFind\RecordDriver\Factory::getSolrWeb', - 'summon' => 'VuFind\RecordDriver\Factory::getSummon', - 'worldcat' => 'VuFind\RecordDriver\Factory::getWorldCat', - ], - 'invokables' => [ - 'browzine' => 'VuFind\RecordDriver\BrowZine', - 'libguides' => 'VuFind\RecordDriver\LibGuides', - ], - ], + 'recorddriver' => [ /* See VuFind\RecordDriver\PluginManager for defaults */ ], 'recordtab' => [ 'abstract_factories' => ['VuFind\RecordTab\PluginFactory'], 'factories' => [ diff --git a/module/VuFind/src/VuFind/RecordDriver/PluginManager.php b/module/VuFind/src/VuFind/RecordDriver/PluginManager.php index 1d5fe47316f..3d07a756363 100644 --- a/module/VuFind/src/VuFind/RecordDriver/PluginManager.php +++ b/module/VuFind/src/VuFind/RecordDriver/PluginManager.php @@ -38,6 +38,57 @@ namespace VuFind\RecordDriver; */ class PluginManager extends \VuFind\ServiceManager\AbstractPluginManager { + /** + * Default plugin aliases. + * + * @var array + */ + protected $aliases = [ + 'browzine' => 'VuFind\RecordDriver\BrowZine', + 'eds' => 'VuFind\RecordDriver\EDS', + 'eit' => 'VuFind\RecordDriver\EIT', + 'libguides' => 'VuFind\RecordDriver\LibGuides', + 'missing' => 'VuFind\RecordDriver\Missing', + 'pazpar2' => 'VuFind\RecordDriver\Pazpar2', + 'primo' => 'VuFind\RecordDriver\Primo', + 'solrauth' => 'VuFind\RecordDriver\SolrAuth', + 'solrdefault' => 'VuFind\RecordDriver\SolrDefault', + 'solrmarc' => 'VuFind\RecordDriver\SolrMarc', + 'solrmarcremote' => 'VuFind\RecordDriver\SolrMarcRemote', + 'solrreserves' => 'VuFind\RecordDriver\SolrReserves', + 'solrweb' => 'VuFind\RecordDriver\SolrWeb', + 'summon' => 'VuFind\RecordDriver\Summon', + 'worldcat' => 'VuFind\RecordDriver\WorldCat', + ]; + + /** + * Default plugin factories. + * + * @var array + */ + protected $factories = [ + 'VuFind\RecordDriver\BrowZine' => + 'Zend\ServiceManager\Factory\InvokableFactory', + 'VuFind\RecordDriver\EDS' => 'VuFind\RecordDriver\Factory::getEDS', + 'VuFind\RecordDriver\EIT' => 'VuFind\RecordDriver\Factory::getEIT', + 'VuFind\RecordDriver\LibGuides' => + 'Zend\ServiceManager\Factory\InvokableFactory', + 'VuFind\RecordDriver\Missing' => 'VuFind\RecordDriver\Factory::getMissing', + 'VuFind\RecordDriver\Pazpar2' => 'VuFind\RecordDriver\Factory::getPazpar2', + 'VuFind\RecordDriver\Primo' => 'VuFind\RecordDriver\Factory::getPrimo', + 'VuFind\RecordDriver\SolrAuth' => 'VuFind\RecordDriver\Factory::getSolrAuth', + 'VuFind\RecordDriver\SolrDefault' => + 'VuFind\RecordDriver\Factory::getSolrDefault', + 'VuFind\RecordDriver\SolrMarc' => 'VuFind\RecordDriver\Factory::getSolrMarc', + 'VuFind\RecordDriver\SolrMarcRemote' => + 'VuFind\RecordDriver\Factory::getSolrMarcRemote', + 'VuFind\RecordDriver\SolrReserves' => + 'VuFind\RecordDriver\Factory::getSolrReserves', + 'VuFind\RecordDriver\SolrWeb' => 'VuFind\RecordDriver\Factory::getSolrWeb', + 'VuFind\RecordDriver\Summon' => 'VuFind\RecordDriver\Factory::getSummon', + 'VuFind\RecordDriver\WorldCat' => 'VuFind\RecordDriver\Factory::getWorldCat', + ]; + /** * Constructor * @@ -54,6 +105,8 @@ class PluginManager extends \VuFind\ServiceManager\AbstractPluginManager // we are building a brand new object. $this->sharedByDefault = false; + $this->addAbstractFactory('VuFind\RecordDriver\PluginFactory'); + parent::__construct($configOrContainerInstance, $v3config); // Add an initializer for setting up hierarchies -- GitLab