From 345c43a8a6af2f8b1f494f3700987cecaaaa98a5 Mon Sep 17 00:00:00 2001 From: Demian Katz <demian.katz@villanova.edu> Date: Thu, 28 Feb 2013 09:14:07 -0500 Subject: [PATCH] Decouple more controllers from config reader. --- module/VuFind/config/module.config.php | 20 ++++++++++++++++--- .../VuFind/Controller/BrowseController.php | 7 ++++--- .../Controller/CollectionController.php | 5 +++-- .../Controller/CollectionsController.php | 6 ++++-- 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/module/VuFind/config/module.config.php b/module/VuFind/config/module.config.php index d4dc2d5cf18..fafc4b7fc77 100644 --- a/module/VuFind/config/module.config.php +++ b/module/VuFind/config/module.config.php @@ -74,16 +74,30 @@ $config = array( ), ), 'controllers' => array( + 'factories' => array( + 'browse' => function ($sm) { + return new \VuFind\Controller\BrowseController( + $sm->getServiceLocator()->get('VuFind\Config')->get('config') + ); + }, + 'collection' => function ($sm) { + return new \VuFind\Controller\CollectionController( + $sm->getServiceLocator()->get('VuFind\Config')->get('config') + ); + }, + 'collections' => function ($sm) { + return new \VuFind\Controller\CollectionsController( + $sm->getServiceLocator()->get('VuFind\Config')->get('config') + ); + }, + ), 'invokables' => array( 'admin' => 'VuFind\Controller\AdminController', 'ajax' => 'VuFind\Controller\AjaxController', 'alphabrowse' => 'VuFind\Controller\AlphabrowseController', 'author' => 'VuFind\Controller\AuthorController', 'authority' => 'VuFind\Controller\AuthorityController', - 'browse' => 'VuFind\Controller\BrowseController', 'cart' => 'VuFind\Controller\CartController', - 'collection' => 'VuFind\Controller\CollectionController', - 'collections' => 'VuFind\Controller\CollectionsController', 'cover' => 'VuFind\Controller\CoverController', 'error' => 'VuFind\Controller\ErrorController', 'help' => 'VuFind\Controller\HelpController', diff --git a/module/VuFind/src/VuFind/Controller/BrowseController.php b/module/VuFind/src/VuFind/Controller/BrowseController.php index 48be5538684..bffd94c18fa 100644 --- a/module/VuFind/src/VuFind/Controller/BrowseController.php +++ b/module/VuFind/src/VuFind/Controller/BrowseController.php @@ -26,7 +26,6 @@ * @link http://vufind.org/wiki/vufind2:building_a_controller Wiki */ namespace VuFind\Controller; -use VuFind\Config\Reader as ConfigReader; /** * BrowseController Class @@ -64,10 +63,12 @@ class BrowseController extends AbstractBase /** * Constructor + * + * @param \Zend\Config\Config $config VuFind configuration */ - public function __construct() + public function __construct(\Zend\Config\Config $config) { - $this->config = ConfigReader::getConfig(); + $this->config = $config; $this->disabledFacets = array(); foreach ($this->config->Browse as $key => $setting) { diff --git a/module/VuFind/src/VuFind/Controller/CollectionController.php b/module/VuFind/src/VuFind/Controller/CollectionController.php index 380af3f1ed0..eff46209f5e 100644 --- a/module/VuFind/src/VuFind/Controller/CollectionController.php +++ b/module/VuFind/src/VuFind/Controller/CollectionController.php @@ -40,14 +40,15 @@ class CollectionController extends AbstractRecord { /** * Constructor + * + * @param \Zend\Config\Config $config VuFind configuration */ - public function __construct() + public function __construct(\Zend\Config\Config $config) { // Call standard record controller initialization: parent::__construct(); // Set default tab, if specified: - $config = \VuFind\Config\Reader::getConfig(); if (isset($config->Collections->defaultTab)) { $this->defaultTab = $config->Collections->defaultTab; } diff --git a/module/VuFind/src/VuFind/Controller/CollectionsController.php b/module/VuFind/src/VuFind/Controller/CollectionsController.php index 579593815dd..dd45c58ff60 100644 --- a/module/VuFind/src/VuFind/Controller/CollectionsController.php +++ b/module/VuFind/src/VuFind/Controller/CollectionsController.php @@ -47,10 +47,12 @@ class CollectionsController extends AbstractBase /** * Constructor + * + * @param \Zend\Config\Config $config VuFind configuration */ - public function __construct() + public function __construct(\Zend\Config\Config $config) { - $this->config = \VuFind\Config\Reader::getConfig(); + $this->config = $config; } /** -- GitLab