From 99d9d86e01ace05191bc3639e16b23c6676d3cb4 Mon Sep 17 00:00:00 2001
From: Demian Katz <demian.katz@villanova.edu>
Date: Fri, 1 Mar 2013 14:03:19 -0500
Subject: [PATCH] Use new init() mechanism to eliminate use of Config\Reader
 calls.

---
 .../VuFind/src/VuFind/Search/Solr/Options.php | 19 ++++++++-------
 .../VuFind/src/VuFind/Search/Solr/Params.php  | 21 ++++++++--------
 .../VuFind/Search/SolrCollection/Options.php  | 11 +++++----
 .../src/VuFind/Search/Summon/Options.php      | 24 ++++++++++++++-----
 .../src/VuFind/Search/WorldCat/Options.php    | 19 +++++++++++----
 5 files changed, 58 insertions(+), 36 deletions(-)

diff --git a/module/VuFind/src/VuFind/Search/Solr/Options.php b/module/VuFind/src/VuFind/Search/Solr/Options.php
index 4b2fab1393c..ed2b5149956 100644
--- a/module/VuFind/src/VuFind/Search/Solr/Options.php
+++ b/module/VuFind/src/VuFind/Search/Solr/Options.php
@@ -26,8 +26,6 @@
  * @link     http://www.vufind.org  Main Page
  */
 namespace VuFind\Search\Solr;
-use VuFind\Config\Reader as ConfigReader,
-    VuFind\Search\Base\Options as BaseOptions;
 
 /**
  * Solr Search Options
@@ -38,7 +36,7 @@ use VuFind\Config\Reader as ConfigReader,
  * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
  * @link     http://www.vufind.org  Main Page
  */
-class Options extends BaseOptions
+class Options extends \VuFind\Search\Base\Options
 {
     /**
      * Spelling limit
@@ -83,15 +81,17 @@ class Options extends BaseOptions
     protected $solrShardsFieldsToStrip = array();
 
     /**
-     * Constructor
+     * Perform initialization that cannot occur in constructor due to need for
+     * injected dependencies.
      *
      * @return void
      */
-    public function __construct()
+    public function init()
     {
-        parent::__construct();
+        parent::init();
 
-        $searchSettings = ConfigReader::getConfig($this->searchIni);
+        $searchSettings = $this->getServiceLocator()->get('VuFind\Config')
+            ->get($this->searchIni);
         if (isset($searchSettings->General->default_limit)) {
             $this->defaultLimit = $searchSettings->General->default_limit;
         }
@@ -156,7 +156,8 @@ class Options extends BaseOptions
         }
 
         // Load facet preferences
-        $facetSettings = ConfigReader::getConfig($this->facetsIni);
+        $facetSettings = $this->getServiceLocator()->get('VuFind\Config')
+            ->get($this->facetsIni);
         if (isset($facetSettings->Advanced_Settings->translated_facets)
             && count($facetSettings->Advanced_Settings->translated_facets) > 0
         ) {
@@ -170,7 +171,7 @@ class Options extends BaseOptions
         }
 
         // Load Spelling preferences
-        $config = ConfigReader::getConfig();
+        $config = $this->getServiceLocator()->get('VuFind\Config')->get('config');
         if (isset($config->Spelling->enabled)) {
             $this->spellcheck = $config->Spelling->enabled;
         }
diff --git a/module/VuFind/src/VuFind/Search/Solr/Params.php b/module/VuFind/src/VuFind/Search/Solr/Params.php
index 99c52084d57..58ab2ee2bc9 100644
--- a/module/VuFind/src/VuFind/Search/Solr/Params.php
+++ b/module/VuFind/src/VuFind/Search/Solr/Params.php
@@ -26,7 +26,6 @@
  * @link     http://www.vufind.org  Main Page
  */
 namespace VuFind\Search\Solr;
-use VuFind\Config\Reader as ConfigReader, VuFind\Search\Base\Params as BaseParams;
 
 /**
  * Solr Search Parameters
@@ -37,7 +36,7 @@ use VuFind\Config\Reader as ConfigReader, VuFind\Search\Base\Params as BaseParam
  * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
  * @link     http://www.vufind.org  Main Page
  */
-class Params extends BaseParams
+class Params extends \VuFind\Search\Base\Params
 {
     /**
      * Facet result limit
@@ -62,17 +61,17 @@ class Params extends BaseParams
     protected $overrideQuery = false;
 
     /**
-     * Constructor
+     * Perform initialization that cannot occur in constructor due to need for
+     * injected dependencies.
      *
-     * @param \VuFind\Search\Base\Options $options Options to use (null to load
-     * defaults)
+     * @return void
      */
-    public function __construct($options = null)
+    public function init()
     {
-        parent::__construct($options);
+        parent::init();
 
         // Use basic facet limit by default, if set:
-        $config = ConfigReader::getConfig('facets');
+        $config = $this->getServiceLocator()->get('VuFind\Config')->get('facets');
         if (isset($config->Results_Settings->facet_limit)
             && is_numeric($config->Results_Settings->facet_limit)
         ) {
@@ -284,7 +283,7 @@ class Params extends BaseParams
      */
     protected function initFacetList($facetList, $facetSettings)
     {
-        $config = ConfigReader::getConfig('facets');
+        $config = $this->getServiceLocator()->get('VuFind\Config')->get('facets');
         if (!isset($config->$facetList)) {
             return false;
         }
@@ -329,7 +328,7 @@ class Params extends BaseParams
      */
     public function initBasicFacets()
     {
-        $config = ConfigReader::getConfig('facets');
+        $config = $this->getServiceLocator()->get('VuFind\Config')->get('facets');
         if (isset($config->ResultsTop)) {
             foreach ($config->ResultsTop as $key => $value) {
                 $this->addFacet($key, $value);
@@ -471,7 +470,7 @@ class Params extends BaseParams
      */
     public function getQueryIDLimit()
     {
-        $config = ConfigReader::getConfig();
+        $config = $this->getServiceLocator()->get('VuFind\Config')->get('config');
         return isset($config->Index->maxBooleanClauses)
             ? $config->Index->maxBooleanClauses : 1024;
     }
diff --git a/module/VuFind/src/VuFind/Search/SolrCollection/Options.php b/module/VuFind/src/VuFind/Search/SolrCollection/Options.php
index e53233ee682..c0cd39b2e42 100644
--- a/module/VuFind/src/VuFind/Search/SolrCollection/Options.php
+++ b/module/VuFind/src/VuFind/Search/SolrCollection/Options.php
@@ -26,7 +26,6 @@
  * @link     http://vufind.org   Main Site
  */
 namespace VuFind\Search\SolrCollection;
-use VuFind\Config\Reader as ConfigReader;
 
 /**
  * Solr Collection Search Options
@@ -40,16 +39,18 @@ use VuFind\Config\Reader as ConfigReader;
 class Options extends \VuFind\Search\Solr\Options
 {
     /**
-     * Constructor
+     * Perform initialization that cannot occur in constructor due to need for
+     * injected dependencies.
      *
      * @return void
      */
-    public function __construct()
+    public function init()
     {
-        parent::__construct();
+        parent::init();
 
         // Load sort preferences (or defaults if none in .ini file):
-        $searchSettings = ConfigReader::getConfig('Collection');
+        $searchSettings = $this->getServiceLocator()->get('VuFind\Config')
+            ->get('Collection');
         if (isset($searchSettings->Sort)) {
             $this->sortOptions = array();
             foreach ($searchSettings->Sort as $key => $value) {
diff --git a/module/VuFind/src/VuFind/Search/Summon/Options.php b/module/VuFind/src/VuFind/Search/Summon/Options.php
index 201c8c9c6b9..83d39b38721 100644
--- a/module/VuFind/src/VuFind/Search/Summon/Options.php
+++ b/module/VuFind/src/VuFind/Search/Summon/Options.php
@@ -26,8 +26,6 @@
  * @link     http://www.vufind.org  Main Page
  */
 namespace VuFind\Search\Summon;
-use VuFind\Config\Reader as ConfigReader,
-    VuFind\Search\Base\Options as BaseOptions;
 
 /**
  * Summon Search Options
@@ -38,10 +36,12 @@ use VuFind\Config\Reader as ConfigReader,
  * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
  * @link     http://www.vufind.org  Main Page
  */
-class Options extends BaseOptions
+class Options extends \VuFind\Search\Base\Options
 {
     /**
      * Maximum number of results
+     *
+     * @var int
      */
     protected $resultLimit = 400;
 
@@ -53,10 +53,21 @@ class Options extends BaseOptions
     public function __construct()
     {
         $this->searchIni = $this->facetsIni = 'Summon';
-        parent::__construct();
+    }
+
+    /**
+     * Perform initialization that cannot occur in constructor due to need for
+     * injected dependencies.
+     *
+     * @return void
+     */
+    public function init()
+    {
+        parent::init();
 
         // Load facet preferences:
-        $facetSettings = ConfigReader::getConfig($this->facetsIni);
+        $facetSettings = $this->getServiceLocator()->get('VuFind\Config')
+            ->get($this->facetsIni);
         if (isset($facetSettings->Advanced_Settings->translated_facets)
             && count($facetSettings->Advanced_Facet_Settings->translated_facets) > 0
         ) {
@@ -71,7 +82,8 @@ class Options extends BaseOptions
         }
 
         // Load the search configuration file:
-        $searchSettings = ConfigReader::getConfig($this->searchIni);
+        $searchSettings = $this->getServiceLocator()->get('VuFind\Config')
+            ->get($this->searchIni);
 
         // Set up highlighting preference
         if (isset($searchSettings->General->highlighting)) {
diff --git a/module/VuFind/src/VuFind/Search/WorldCat/Options.php b/module/VuFind/src/VuFind/Search/WorldCat/Options.php
index 0f5947c1d3d..ee7246b9c52 100644
--- a/module/VuFind/src/VuFind/Search/WorldCat/Options.php
+++ b/module/VuFind/src/VuFind/Search/WorldCat/Options.php
@@ -26,8 +26,6 @@
  * @link     http://www.vufind.org  Main Page
  */
 namespace VuFind\Search\WorldCat;
-use VuFind\Config\Reader as ConfigReader,
-    VuFind\Search\Base\Options as BaseOptions;
 
 /**
  * WorldCat Search Options
@@ -38,7 +36,7 @@ use VuFind\Config\Reader as ConfigReader,
  * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
  * @link     http://www.vufind.org  Main Page
  */
-class Options extends BaseOptions
+class Options extends \VuFind\Search\Base\Options
 {
     /**
      * Constructor
@@ -48,10 +46,21 @@ class Options extends BaseOptions
     public function __construct()
     {
         $this->searchIni = $this->facetsIni = 'WorldCat';
-        parent::__construct();
+    }
+
+    /**
+     * Perform initialization that cannot occur in constructor due to need for
+     * injected dependencies.
+     *
+     * @return void
+     */
+    public function init()
+    {
+        parent::init();
 
         // Load the configuration file:
-        $searchSettings = ConfigReader::getConfig($this->searchIni);
+        $searchSettings = $this->getServiceLocator()->get('VuFind\Config')
+            ->get($this->searchIni);
 
         // Search handler setup:
         $this->defaultHandler = 'srw.kw';
-- 
GitLab