diff --git a/config/application.config.php b/config/application.config.php index d9711965ab3cf91bd28e109dd0d181faed717dd7..c7800de4654f8c8a5d1bedea77991ee09e96828a 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 40337b43aab9a5c1ff493ae57c014874ee3c8d84..a62331b7beaaa82eb82bf4b8243d45c82263374a 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 cd45e97f3bf9793007e92a7d15a63b1543f09866..5d93a939a25c8cf1c7146c94dba4ba687928243a 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); }