From eb6f89db1c03b32f05b30c083c728c55124754c6 Mon Sep 17 00:00:00 2001 From: Demian Katz <demian.katz@villanova.edu> Date: Thu, 20 Dec 2012 11:31:06 -0500 Subject: [PATCH] Hooked up VuFindHttp module. --- config/application.config.php | 2 +- module/VuFind/config/module.config.php | 16 +++++++++++ .../src/VuFind/ServiceManager/Initializer.php | 27 ++++++++++++++++--- 3 files changed, 40 insertions(+), 5 deletions(-) diff --git a/config/application.config.php b/config/application.config.php index d9711965ab3..c7800de4654 100644 --- a/config/application.config.php +++ b/config/application.config.php @@ -1,7 +1,7 @@ <?php $config = array( 'modules' => array( - 'VuFind', + 'VuFindHttp', 'VuFind', ), 'module_listener_options' => array( 'config_glob_paths' => array( diff --git a/module/VuFind/config/module.config.php b/module/VuFind/config/module.config.php index 40337b43aab..a62331b7bea 100644 --- a/module/VuFind/config/module.config.php +++ b/module/VuFind/config/module.config.php @@ -409,6 +409,17 @@ $config = array( 'VuFind\DbAdapter' => function ($sm) { return \VuFind\Db\AdapterFactory::getAdapter(); }, + 'VuFind\Http' => function ($sm) { + $config = \VuFind\Config\Reader::getConfig(); + $options = array(); + if (isset($config->Proxy->host)) { + $options['proxy_host'] = $config->Proxy->host; + if (isset($config->Proxy->port)) { + $options['proxy_port'] = $config->Proxy->port; + } + } + return new \VuFindHttp\HttpService($options); + }, 'VuFind\ILSConnection' => function ($sm) { $catalog = new \VuFind\ILS\Connection(); return $catalog @@ -498,6 +509,11 @@ $config = array( ), ), 'translator' => array(), + 'view_helpers' => array( + 'initializers' => array( + array('VuFind\ServiceManager\Initializer', 'initZendPlugin'), + ), + ), 'view_manager' => array( 'display_not_found_reason' => APPLICATION_ENV == 'development', 'display_exceptions' => APPLICATION_ENV == 'development', diff --git a/module/VuFind/src/VuFind/ServiceManager/Initializer.php b/module/VuFind/src/VuFind/ServiceManager/Initializer.php index cd45e97f3bf..5d93a939a25 100644 --- a/module/VuFind/src/VuFind/ServiceManager/Initializer.php +++ b/module/VuFind/src/VuFind/ServiceManager/Initializer.php @@ -58,6 +58,28 @@ class Initializer if ($instance instanceof \VuFind\I18n\Translator\TranslatorAwareInterface) { $instance->setTranslator($sm->get('VuFind\Translator')); } + if ($instance instanceof \VuFindHttp\HttpServiceAwareInterface) { + $instance->setHttpService($sm->get('VuFind\Http')); + } + return $instance; + } + + /** + * Given a Zend Framework Plugin Manager, initialize the instance. + * + * @param object $instance Instance to + * initialize + * @param \Zend\ServiceManager\AbstractPluginManager $manager Plugin manager + * + * @return object + */ + public static function initZendPlugin($instance, + \Zend\ServiceManager\AbstractPluginManager $manager + ) { + $sm = $manager->getServiceLocator(); + if (null !== $sm) { + static::initInstance($instance, $sm); + } return $instance; } @@ -71,10 +93,7 @@ class Initializer */ public static function initPlugin($instance, AbstractPluginManager $manager) { - $sm = $manager->getServiceLocator(); - if (null !== $sm) { - static::initInstance($instance, $sm); - } + static::initZendPlugin($instance, $manager); if (method_exists($instance, 'setPluginManager')) { $instance->setPluginManager($manager); } -- GitLab