Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
50.00% covered (danger)
50.00%
1 / 2
50.00% covered (danger)
50.00%
1 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
AbstractBase
50.00% covered (danger)
50.00%
1 / 2
50.00% covered (danger)
50.00%
1 / 2
2.50
0.00% covered (danger)
0.00%
0 / 1
 setConfig
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 throwAsIlsException
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3/**
4 * Default ILS driver base class.
5 *
6 * PHP version 8
7 *
8 * Copyright (C) Villanova University 2007.
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2,
12 * as published by the Free Software Foundation.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
22 *
23 * @category VuFind
24 * @package  ILS_Drivers
25 * @author   Andrew S. Nagy <vufind-tech@lists.sourceforge.net>
26 * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
27 * @link     https://vufind.org/wiki/development:plugins:ils_drivers Wiki
28 */
29
30namespace VuFind\ILS\Driver;
31
32use VuFind\Exception\ILS as ILSException;
33
34/**
35 * Default ILS driver base class.
36 *
37 * @category VuFind
38 * @package  ILS_Drivers
39 * @author   Andrew S. Nagy <vufind-tech@lists.sourceforge.net>
40 * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
41 * @link     https://vufind.org/wiki/development:plugins:ils_drivers Wiki
42 *
43 * @SuppressWarnings(PHPMD.NumberOfChildren)
44 */
45abstract class AbstractBase implements DriverInterface
46{
47    /**
48     * Driver configuration
49     *
50     * @var array
51     */
52    protected $config = [];
53
54    /**
55     * Set configuration.
56     *
57     * Set the configuration for the driver.
58     *
59     * @param array $config Configuration array (usually loaded from a VuFind .ini
60     * file whose name corresponds with the driver class name).
61     *
62     * @return void
63     */
64    public function setConfig($config)
65    {
66        $this->config = $config;
67    }
68
69    /**
70     * Rethrow the provided exception as an ILS exception.
71     *
72     * @param \Throwable $exception Exception to rethrow
73     * @param string     $msg       Override exception message (optional)
74     *
75     * @throws ILSException
76     * @return never
77     */
78    protected function throwAsIlsException(
79        \Throwable $exception,
80        string $msg = null
81    ): void {
82        throw new ILSException($msg ?? $exception->getMessage(), 0, $exception);
83    }
84}