Skip to content
Snippets Groups Projects
Commit 49283b9c authored by Demian Katz's avatar Demian Katz
Browse files

Merge pull request #22 from dmj/t/search-2.1

Minor improvements for release 2.1 (mostly search system related)
parents fdaa361e de5ca601
No related merge requests found
......@@ -319,6 +319,7 @@ $config = array(
),
'invokables' => array(
'VuFind\SessionManager' => 'Zend\Session\SessionManager',
'VuFind\Search' => 'VuFindSearch\Service',
),
'initializers' => array(
array('VuFind\ServiceManager\Initializer', 'initInstance'),
......
......@@ -445,7 +445,7 @@ class Bootstrapper
$sm = $this->event->getApplication()->getServiceManager();
$bm = $sm->get('VuFind\Search\BackendManager');
$events = $sm->get('SharedEventManager');
$events->attach('VuFind\Search', 'resolve', array($bm, 'onResolve'));
$events->attach('VuFindSearch', 'resolve', array($bm, 'onResolve'));
}
/**
......
......@@ -276,6 +276,26 @@ class CitationTest extends \VuFindTest\Unit\ViewHelperTestCase
// @codingStandardsIgnoreEnd
);
/**
* Setup test case.
*
* Mark test skipped if short_open_tag is not enabled. The partial
* uses short open tags. This directive is PHP_INI_PERDIR,
* i.e. can only be changed via php.ini or a per-directory
* equivalent. The testCitations() will fail if the test is run on
* a system with short_open_tag disabled in the system-wide php
* ini-file.
*
* @return void
*/
protected function setup ()
{
parent::setup();
if (!ini_get('short_open_tag')) {
$this->markTestSkipped('Test requires short_open_tag to be enabled');
}
}
/**
* Test citation generation
*
......
......@@ -76,34 +76,4 @@ class Module
),
);
}
/**
* Return service configuration.
*
* @return array
*/
public function getServiceConfig()
{
return array(
'factories' => array(
'VuFind\Search' => array($this, 'setup'),
)
);
}
/**
* Return configured search service to superior service manager.
*
* @param ServiceManager $sm Service manager
*
* @return SearchService
*/
public function setup(ServiceManager $sm)
{
$service = new Service();
if ($sm->has('VuFind\Logger')) {
$service->setLogger($sm->get('VuFind\Logger'));
}
return $service;
}
}
\ No newline at end of file
......@@ -33,7 +33,6 @@ use VuFindSearch\Backend\BackendInterface;
use VuFindSearch\Feature\RetrieveBatchInterface;
use VuFindSearch\Backend\Exception\BackendException;
use Zend\Log\LoggerInterface;
use Zend\EventManager\EventManagerInterface;
use Zend\EventManager\EventManager;
......@@ -48,20 +47,22 @@ use Zend\EventManager\EventManager;
*/
class Service
{
/**
* Event manager.
* Event identifiers.
*
* @var EventManager
* @var string
*/
protected $events;
const EVENT_PRE = 'pre';
const EVENT_POST = 'post';
const EVENT_ERROR = 'error';
const EVENT_RESOLVE = 'resolve';
/**
* Logger, if any.
* Event manager.
*
* @var LoggerInterface
* @var EventManager
*/
protected $logger;
protected $events;
/**
* Cache resolved backends.
......@@ -217,28 +218,17 @@ class Service
return $response;
}
/**
* Set application logger.
*
* @param LoggerInterface $logger Logger
*
* @return void
*/
public function setLogger(LoggerInterface $logger)
{
$this->logger = $logger;
}
/**
* Set EventManager instance.
*
* @param EventManagerInterface $events Event manager
*
* @return void
* @todo Deprecate `VuFind\Search' event namespace (2.2)
*/
public function setEventManager(EventManagerInterface $events)
{
$events->setIdentifiers('VuFind\Search');
$events->setIdentifiers(array('VuFind\Search', 'VuFindSearch'));
$this->events = $events;
}
......@@ -252,7 +242,7 @@ class Service
public function getEventManager()
{
if (!$this->events) {
$this->events = new EventManager('VuFind\Search');
$this->setEventManager(new EventManager());
}
return $this->events;
}
......@@ -273,7 +263,7 @@ class Service
{
if (!isset($this->backends[$backend])) {
$response = $this->getEventManager()->trigger(
"resolve",
self::EVENT_RESOLVE,
$this,
$args,
function ($o) {
......@@ -303,7 +293,7 @@ class Service
*/
public function triggerError(BackendException $exception, $args)
{
$this->getEventManager()->trigger('error', $exception, $args);
$this->getEventManager()->trigger(self::EVENT_ERROR, $exception, $args);
}
/**
......@@ -316,7 +306,7 @@ class Service
*/
protected function triggerPre(BackendInterface $backend, $args)
{
$this->getEventManager()->trigger('pre', $backend, $args);
$this->getEventManager()->trigger(self::EVENT_PRE, $backend, $args);
}
/**
......@@ -329,22 +319,7 @@ class Service
*/
protected function triggerPost($response, $args)
{
$this->getEventManager()->trigger('post', $response, $args);
$this->getEventManager()->trigger(self::EVENT_POST, $response, $args);
}
/**
* Send a message to the logger.
*
* @param string $level Log level
* @param string $message Log message
* @param array $context Log context
*
* @return void
*/
protected function log($level, $message, array $context = array())
{
if ($this->logger) {
$this->logger->$level($message, $context);
}
}
}
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment