mirror of
https://github.com/the-djmaze/snappymail.git
synced 2025-02-09 07:24:03 +08:00
74 lines
1.3 KiB
PHP
74 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace MailSo\Log\Drivers;
|
|
|
|
/**
|
|
* @category MailSo
|
|
* @package Log
|
|
* @subpackage Drivers
|
|
*/
|
|
class Callback extends \MailSo\Log\Driver
|
|
{
|
|
/**
|
|
* @var mixed
|
|
*/
|
|
private $fWriteCallback;
|
|
|
|
/**
|
|
* @var mixed
|
|
*/
|
|
private $fClearCallback;
|
|
|
|
/**
|
|
* @access protected
|
|
*
|
|
* @param mixed $fWriteCallback
|
|
* @param mixed $fClearCallback
|
|
*/
|
|
protected function __construct($fWriteCallback, $fClearCallback)
|
|
{
|
|
parent::__construct();
|
|
|
|
$this->fWriteCallback = \is_callable($fWriteCallback) ? $fWriteCallback : null;
|
|
$this->fClearCallback = \is_callable($fClearCallback) ? $fClearCallback : null;
|
|
}
|
|
|
|
/**
|
|
* @param mixed $fWriteCallback
|
|
* @param mixed $fClearCallback = null
|
|
*
|
|
* @return \MailSo\Log\Drivers\Callback
|
|
*/
|
|
public static function NewInstance($fWriteCallback, $fClearCallback = null)
|
|
{
|
|
return new self($fWriteCallback, $fClearCallback);
|
|
}
|
|
|
|
/**
|
|
* @param string|array $sDesc
|
|
*
|
|
* @return bool
|
|
*/
|
|
protected function writeImplementation($sDesc)
|
|
{
|
|
if ($this->fWriteCallback)
|
|
{
|
|
\call_user_func_array($this->fWriteCallback, array($sDesc));
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* @return bool
|
|
*/
|
|
protected function clearImplementation()
|
|
{
|
|
if ($this->fClearCallback)
|
|
{
|
|
\call_user_func($this->fClearCallback);
|
|
}
|
|
|
|
return true;
|
|
}
|
|
}
|