* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License * @link https://vufind.org/wiki/development:plugins:record_drivers Wiki */ namespace VuFind\Marc\Serialization; use function call_user_func; /** * Abstract base class for serialization format support classes. * * @category VuFind * @package MARC * @author Ere Maijala * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License * @link https://vufind.org/wiki/development:plugins:record_drivers Wiki */ abstract class AbstractSerializationFile implements SerializationFileInterface, MessageCallbackInterface { /** * Message callback * * @var callable */ protected $messageCallback = null; /** * Set message callback * * @param callable $callback Message callback * * @return void */ public function setMessageCallback(?callable $callback): void { $this->messageCallback = $callback; } /** * Output a message * * @param string $msg Message * @param int $level Error level (see * https://www.php.net/manual/en/function.error-reporting.php) * * @return void */ protected function message(string $msg, int $level): void { if (null !== $this->messageCallback) { call_user_func($this->messageCallback, $msg, $level); } } }