SlackHandler
extends SocketHandler
in package
Sends notifications through Slack API
Tags
Table of Contents
- $bubble : mixed
- $formatter : FormatterInterface
- $level : mixed
- $processors : mixed
- $chunkSize : mixed
- $connectionString : mixed
- $connectionTimeout : mixed
- $errno : mixed
- $errstr : mixed
- $lastSentBytes : mixed
- $lastWritingAt : mixed
- $persistent : mixed
- $resource : mixed
- $slackRecord : SlackRecord
- Instance of the SlackRecord util class preparing data for Slack API.
- $timeout : mixed
- $token : string
- Slack API token
- $writingTimeout : mixed
- __construct() : mixed
- __destruct() : mixed
- close() : mixed
- Closes the handler.
- closeSocket() : mixed
- Close socket, if open
- getBubble() : bool
- Gets the bubbling behavior.
- getChunkSize() : float
- Get current chunk size
- getConnectionString() : string
- Get current connection string
- getConnectionTimeout() : float
- Get current connection timeout setting
- getFormatter() : mixed
- getLevel() : int
- Gets minimum logging level at which this handler will be triggered.
- getSlackRecord() : mixed
- getTimeout() : float
- Get current in-transfer timeout
- getToken() : mixed
- getWritingTimeout() : float
- Get current local writing timeout
- handle() : mixed
- {@inheritdoc}
- handleBatch() : mixed
- Handles a set of records at once.
- isConnected() : bool
- Check to see if the socket is currently available.
- isHandling() : bool
- Checks whether the given record will be handled by this handler.
- isPersistent() : bool
- Get persistent setting
- popProcessor() : callable
- Removes the processor on top of the stack and returns it.
- pushProcessor() : self
- Adds a processor in the stack.
- reset() : mixed
- setBubble() : self
- Sets the bubbling behavior.
- setChunkSize() : mixed
- Set chunk size. Only has effect during connection in the writing cycle.
- setConnectionTimeout() : mixed
- Set connection timeout. Only has effect before we connect.
- setFormatter() : mixed
- setLevel() : self
- Sets minimum logging level at which this handler will be triggered.
- setPersistent() : mixed
- Set socket connection to nbe persistent. It only has effect before the connection is initiated.
- setTimeout() : mixed
- Set write timeout. Only has effect before we connect.
- setWritingTimeout() : mixed
- Set writing timeout. Only has effect during connection in the writing cycle.
- finalizeWrite() : mixed
- Finalizes the request by reading some bytes and then closing the socket
- fsockopen() : mixed
- Wrapper to allow mocking
- fwrite() : mixed
- Wrapper to allow mocking
- generateDataStream() : string
- getAttachmentColor() : string
- Returned a Slack message attachment color associated with provided level.
- getDefaultFormatter() : FormatterInterface
- Gets the default formatter.
- getResource() : resource|null
- pfsockopen() : mixed
- Wrapper to allow mocking
- prepareContentData() : array<string|int, mixed>
- Prepares content data
- processRecord() : array<string|int, mixed>
- Processes a record.
- streamGetMetadata() : mixed
- Wrapper to allow mocking
- streamSetChunkSize() : mixed
- Wrapper to allow mocking
- streamSetTimeout() : mixed
- Wrapper to allow mocking
- stringify() : string
- Stringifies an array of key/value pairs to be used in attachment fields
- write() : void
- Connect (if necessary) and write to the socket
- buildContent() : string
- Builds the body of API call
- buildHeader() : string
- Builds the header of the API Call
- connect() : mixed
- connectIfNotConnected() : mixed
- createSocketResource() : mixed
- setSocketTimeout() : mixed
- setStreamChunkSize() : mixed
- validateTimeout() : mixed
- writeToSocket() : mixed
- writingIsTimedOut() : mixed
Properties
$bubble
protected
mixed
$bubble
= true
$formatter
protected
FormatterInterface
$formatter
$level
protected
mixed
$level
= MonologLogger::DEBUG
$processors
protected
mixed
$processors
= array()
$chunkSize
private
mixed
$chunkSize
= null
$connectionString
private
mixed
$connectionString
$connectionTimeout
private
mixed
$connectionTimeout
$errno
private
mixed
$errno
$errstr
private
mixed
$errstr
$lastSentBytes
private
mixed
$lastSentBytes
= null
$lastWritingAt
private
mixed
$lastWritingAt
$persistent
private
mixed
$persistent
= false
$resource
private
mixed
$resource
$slackRecord
Instance of the SlackRecord util class preparing data for Slack API.
private
SlackRecord
$slackRecord
$timeout
private
mixed
$timeout
= 0
$token
Slack API token
private
string
$token
$writingTimeout
private
mixed
$writingTimeout
= 10
Methods
__construct()
public
__construct(string $token, string $channel[, string|null $username = null ][, bool $useAttachment = true ][, string|null $iconEmoji = null ][, int $level = Logger::CRITICAL ][, bool $bubble = true ][, bool $useShortAttachment = false ][, bool $includeContextAndExtra = false ][, array<string|int, mixed> $excludeFields = array() ]) : mixed
Parameters
- $token : string
-
Slack API token
- $channel : string
-
Slack channel (encoded ID or name)
- $username : string|null = null
-
Name of a bot
- $useAttachment : bool = true
-
Whether the message should be added to Slack as attachment (plain text otherwise)
- $iconEmoji : string|null = null
-
The emoji name to use (or null)
- $level : int = Logger::CRITICAL
-
The minimum logging level at which this handler will be triggered
- $bubble : bool = true
-
Whether the messages that are handled can bubble up the stack or not
- $useShortAttachment : bool = false
-
Whether the the context/extra messages added to Slack as attachments are in a short style
- $includeContextAndExtra : bool = false
-
Whether the attachment should include context and extra data
- $excludeFields : array<string|int, mixed> = array()
-
Dot separated list of fields to exclude from slack message. E.g. ['context.field1', 'extra.field2']
Tags
Return values
mixed —__destruct()
public
__destruct() : mixed
Return values
mixed —close()
Closes the handler.
public
close() : mixed
This will be called automatically when the object is destroyed
Return values
mixed —closeSocket()
Close socket, if open
public
closeSocket() : mixed
Return values
mixed —getBubble()
Gets the bubbling behavior.
public
getBubble() : bool
Return values
bool —true means that this handler allows bubbling. false means that bubbling is not permitted.
getChunkSize()
Get current chunk size
public
getChunkSize() : float
Return values
float —getConnectionString()
Get current connection string
public
getConnectionString() : string
Return values
string —getConnectionTimeout()
Get current connection timeout setting
public
getConnectionTimeout() : float
Return values
float —getFormatter()
public
getFormatter() : mixed
Return values
mixed —getLevel()
Gets minimum logging level at which this handler will be triggered.
public
getLevel() : int
Return values
int —getSlackRecord()
public
getSlackRecord() : mixed
Return values
mixed —getTimeout()
Get current in-transfer timeout
public
getTimeout() : float
Return values
float —getToken()
public
getToken() : mixed
Return values
mixed —getWritingTimeout()
Get current local writing timeout
public
getWritingTimeout() : float
Return values
float —handle()
{@inheritdoc}
public
handle(array<string|int, mixed> $record) : mixed
Parameters
- $record : array<string|int, mixed>
Return values
mixed —handleBatch()
Handles a set of records at once.
public
handleBatch(array<string|int, mixed> $records) : mixed
Parameters
- $records : array<string|int, mixed>
-
The records to handle (an array of record arrays)
Return values
mixed —isConnected()
Check to see if the socket is currently available.
public
isConnected() : bool
UDP might appear to be connected but might fail when writing. See http://php.net/fsockopen for details.
Return values
bool —isHandling()
Checks whether the given record will be handled by this handler.
public
isHandling(array<string|int, mixed> $record) : bool
Parameters
- $record : array<string|int, mixed>
-
Partial log record containing only a level key
Return values
bool —isPersistent()
Get persistent setting
public
isPersistent() : bool
Return values
bool —popProcessor()
Removes the processor on top of the stack and returns it.
public
popProcessor() : callable
Return values
callable —pushProcessor()
Adds a processor in the stack.
public
pushProcessor(mixed $callback) : self
Parameters
- $callback : mixed
Return values
self —reset()
public
reset() : mixed
Return values
mixed —setBubble()
Sets the bubbling behavior.
public
setBubble(bool $bubble) : self
Parameters
- $bubble : bool
-
true means that this handler allows bubbling. false means that bubbling is not permitted.
Return values
self —setChunkSize()
Set chunk size. Only has effect during connection in the writing cycle.
public
setChunkSize(float $bytes) : mixed
Parameters
- $bytes : float
Return values
mixed —setConnectionTimeout()
Set connection timeout. Only has effect before we connect.
public
setConnectionTimeout(float $seconds) : mixed
Parameters
- $seconds : float
Tags
Return values
mixed —setFormatter()
public
setFormatter(FormatterInterface $formatter) : mixed
Parameters
- $formatter : FormatterInterface
Return values
mixed —setLevel()
Sets minimum logging level at which this handler will be triggered.
public
setLevel(int|string $level) : self
Parameters
- $level : int|string
-
Level or level name
Return values
self —setPersistent()
Set socket connection to nbe persistent. It only has effect before the connection is initiated.
public
setPersistent(bool $persistent) : mixed
Parameters
- $persistent : bool
Return values
mixed —setTimeout()
Set write timeout. Only has effect before we connect.
public
setTimeout(float $seconds) : mixed
Parameters
- $seconds : float
Tags
Return values
mixed —setWritingTimeout()
Set writing timeout. Only has effect during connection in the writing cycle.
public
setWritingTimeout(float $seconds) : mixed
Parameters
- $seconds : float
-
0 for no timeout
Return values
mixed —finalizeWrite()
Finalizes the request by reading some bytes and then closing the socket
protected
finalizeWrite() : mixed
If we do not read some but close the socket too early, slack sometimes drops the request entirely.
Return values
mixed —fsockopen()
Wrapper to allow mocking
protected
fsockopen() : mixed
Return values
mixed —fwrite()
Wrapper to allow mocking
protected
fwrite(mixed $data) : mixed
Parameters
- $data : mixed
Return values
mixed —generateDataStream()
protected
generateDataStream(array<string|int, mixed> $record) : string
Parameters
- $record : array<string|int, mixed>
Return values
string —getAttachmentColor()
Returned a Slack message attachment color associated with provided level.
protected
getAttachmentColor(int $level) : string
Parameters
- $level : int
Tags
Return values
string —getDefaultFormatter()
Gets the default formatter.
protected
getDefaultFormatter() : FormatterInterface
Return values
FormatterInterface —getResource()
protected
getResource() : resource|null
Return values
resource|null —pfsockopen()
Wrapper to allow mocking
protected
pfsockopen() : mixed
Return values
mixed —prepareContentData()
Prepares content data
protected
prepareContentData(array<string|int, mixed> $record) : array<string|int, mixed>
Parameters
- $record : array<string|int, mixed>
Return values
array<string|int, mixed> —processRecord()
Processes a record.
protected
processRecord(array<string|int, mixed> $record) : array<string|int, mixed>
Parameters
- $record : array<string|int, mixed>
Return values
array<string|int, mixed> —streamGetMetadata()
Wrapper to allow mocking
protected
streamGetMetadata() : mixed
Return values
mixed —streamSetChunkSize()
Wrapper to allow mocking
protected
streamSetChunkSize() : mixed
Tags
Return values
mixed —streamSetTimeout()
Wrapper to allow mocking
protected
streamSetTimeout() : mixed
Tags
Return values
mixed —stringify()
Stringifies an array of key/value pairs to be used in attachment fields
protected
stringify(array<string|int, mixed> $fields) : string
Parameters
- $fields : array<string|int, mixed>
Tags
Return values
string —write()
Connect (if necessary) and write to the socket
protected
write(array<string|int, mixed> $record) : void
Parameters
- $record : array<string|int, mixed>
Return values
void —buildContent()
Builds the body of API call
private
buildContent(array<string|int, mixed> $record) : string
Parameters
- $record : array<string|int, mixed>
Return values
string —buildHeader()
Builds the header of the API Call
private
buildHeader(string $content) : string
Parameters
- $content : string
Return values
string —connect()
private
connect() : mixed
Return values
mixed —connectIfNotConnected()
private
connectIfNotConnected() : mixed
Return values
mixed —createSocketResource()
private
createSocketResource() : mixed
Return values
mixed —setSocketTimeout()
private
setSocketTimeout() : mixed
Return values
mixed —setStreamChunkSize()
private
setStreamChunkSize() : mixed
Return values
mixed —validateTimeout()
private
validateTimeout(mixed $value) : mixed
Parameters
- $value : mixed
Return values
mixed —writeToSocket()
private
writeToSocket(mixed $data) : mixed
Parameters
- $data : mixed
Return values
mixed —writingIsTimedOut()
private
writingIsTimedOut(mixed $sent) : mixed
Parameters
- $sent : mixed