SlackHandler
extends SocketHandler
in package
Sends notifications through Slack API
Tags
Table of Contents
Properties
- $bubble : bool
- $formatter : FormatterInterface|null
- $level : Level
- $processors : array<string|int, callable>
- $slackRecord : SlackRecord
- Instance of the SlackRecord util class preparing data for Slack API.
- $token : string
- Slack API token
Methods
- __construct() : mixed
- __destruct() : mixed
- __sleep() : mixed
- close() : void
- We will not close a PersistentSocket instance so it can be reused in other requests.
- closeSocket() : void
- Close socket, if open
- excludeFields() : $this
- getBubble() : bool
- Gets the bubbling behavior.
- getChunkSize() : int|null
- Get current chunk size
- getConnectionString() : string
- Get current connection string
- getConnectionTimeout() : float
- Get current connection timeout setting
- getFormatter() : FormatterInterface
- Gets the formatter.
- getLevel() : Level
- Gets minimum logging level at which this handler will be triggered.
- getSlackRecord() : SlackRecord
- getTimeout() : float
- Get current in-transfer timeout
- getToken() : string
- getWritingTimeout() : float
- Get current local writing timeout
- handle() : bool
- Handles a record.
- handleBatch() : void
- Handles a set of records at once.
- includeContextAndExtra() : $this
- 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
- pushProcessor() : HandlerInterface
- reset() : void
- setBubble() : $this
- Sets the bubbling behavior.
- setChannel() : $this
- Channel used by the bot when posting
- setChunkSize() : $this
- Set chunk size. Only has effect during connection in the writing cycle.
- setConnectionTimeout() : $this
- Set connection timeout. Only has effect before we connect.
- setFormatter() : HandlerInterface
- Sets the formatter.
- setIconEmoji() : $this
- setLevel() : $this
- Sets minimum logging level at which this handler will be triggered.
- setPersistent() : $this
- Set socket connection to be persistent. It only has effect before the connection is initiated.
- setTimeout() : $this
- Set write timeout. Only has effect before we connect.
- setUsername() : $this
- Username used by the bot when posting
- setWritingTimeout() : $this
- Set writing timeout. Only has effect during connection in the writing cycle.
- useAttachment() : $this
- useShortAttachment() : $this
- finalizeWrite() : void
- Finalizes the request by reading some bytes and then closing the socket
- fsockopen() : resource|false
- Wrapper to allow mocking
- fwrite() : int|false
- Wrapper to allow mocking
- generateDataStream() : string
- getDefaultFormatter() : FormatterInterface
- Gets the default formatter.
- getResource() : resource|null
- pfsockopen() : resource|false
- Wrapper to allow mocking
- prepareContentData() : array<string|int, string>
- processRecord() : LogRecord
- resetProcessors() : void
- streamGetMetadata() : array<string|int, mixed>|bool
- Wrapper to allow mocking
- streamSetChunkSize() : int|false
- Wrapper to allow mocking
- streamSetTimeout() : bool
- Wrapper to allow mocking
- 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
Properties
$bubble
protected
bool
$bubble
= true
$formatter
protected
FormatterInterface|null
$formatter
= null
$level
protected
Level
$level
= \Monolog\Level::Debug
$processors
protected
array<string|int, callable>
$processors
= []
Tags
$slackRecord
Instance of the SlackRecord util class preparing data for Slack API.
private
SlackRecord
$slackRecord
$token
Slack API token
private
string
$token
Methods
__construct()
public
__construct(string $token, string $channel[, string|null $username = null ][, bool $useAttachment = true ][, string|null $iconEmoji = null ][, mixed $level = Level::Critical ][, bool $bubble = true ][, bool $useShortAttachment = false ][, bool $includeContextAndExtra = false ][, array<string|int, string> $excludeFields = [] ][, bool $persistent = false ][, float $timeout = 0.0 ][, float $writingTimeout = 10.0 ][, float|null $connectionTimeout = null ][, int|null $chunkSize = null ]) : 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 : mixed = Level::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 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, string> = []
-
Dot separated list of fields to exclude from slack message. E.g. ['context.field1', 'extra.field2']
- $persistent : bool = false
-
Flag to enable/disable persistent connections
- $timeout : float = 0.0
-
Socket timeout to wait until the request is being aborted
- $writingTimeout : float = 10.0
-
Socket timeout to wait until the request should've been sent/written
- $connectionTimeout : float|null = null
-
Socket connect timeout to wait until the connection should've been established
- $chunkSize : int|null = null
-
Sets the chunk size. Only has effect during connection in the writing cycle
Tags
__destruct()
public
__destruct() : mixed
__sleep()
public
__sleep() : mixed
close()
We will not close a PersistentSocket instance so it can be reused in other requests.
public
close() : void
closeSocket()
Close socket, if open
public
closeSocket() : void
excludeFields()
public
excludeFields(array<string|int, string> $excludeFields) : $this
Parameters
- $excludeFields : array<string|int, string>
Return values
$thisgetBubble()
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() : int|null
Return values
int|nullgetConnectionString()
Get current connection string
public
getConnectionString() : string
Return values
stringgetConnectionTimeout()
Get current connection timeout setting
public
getConnectionTimeout() : float
Return values
floatgetFormatter()
Gets the formatter.
public
getFormatter() : FormatterInterface
Return values
FormatterInterfacegetLevel()
Gets minimum logging level at which this handler will be triggered.
public
getLevel() : Level
Return values
LevelgetSlackRecord()
public
getSlackRecord() : SlackRecord
Return values
SlackRecordgetTimeout()
Get current in-transfer timeout
public
getTimeout() : float
Return values
floatgetToken()
public
getToken() : string
Return values
stringgetWritingTimeout()
Get current local writing timeout
public
getWritingTimeout() : float
Return values
floathandle()
Handles a record.
public
handle(LogRecord $record) : bool
Parameters
- $record : LogRecord
-
The record to handle
Tags
Return values
bool —true means that this handler handled the record, and that bubbling is not permitted. false means the record was either not processed or that this handler allows bubbling.
handleBatch()
Handles a set of records at once.
public
handleBatch(array<string|int, mixed> $records) : void
Parameters
- $records : array<string|int, mixed>
-
The records to handle
Tags
includeContextAndExtra()
public
includeContextAndExtra(bool $includeContextAndExtra) : $this
Parameters
- $includeContextAndExtra : bool
Return values
$thisisConnected()
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
boolisHandling()
Checks whether the given record will be handled by this handler.
public
isHandling(LogRecord $record) : bool
Parameters
- $record : LogRecord
-
Partial log record having only a level initialized
Tags
Return values
boolisPersistent()
Get persistent setting
public
isPersistent() : bool
Return values
boolpopProcessor()
public
popProcessor() : callable
Tags
Return values
callablepushProcessor()
public
pushProcessor(callable $callback) : HandlerInterface
Parameters
- $callback : callable
Tags
Return values
HandlerInterfacereset()
public
reset() : void
setBubble()
Sets the bubbling behavior.
public
setBubble(bool $bubble) : $this
Parameters
- $bubble : bool
-
true means that this handler allows bubbling. false means that bubbling is not permitted.
Return values
$thissetChannel()
Channel used by the bot when posting
public
setChannel(string $channel) : $this
Parameters
- $channel : string
Return values
$thissetChunkSize()
Set chunk size. Only has effect during connection in the writing cycle.
public
setChunkSize(int $bytes) : $this
Parameters
- $bytes : int
Return values
$thissetConnectionTimeout()
Set connection timeout. Only has effect before we connect.
public
setConnectionTimeout(float $seconds) : $this
Parameters
- $seconds : float
Tags
Return values
$thissetFormatter()
Sets the formatter.
public
setFormatter(FormatterInterface $formatter) : HandlerInterface
Parameters
- $formatter : FormatterInterface
Return values
HandlerInterface —self
setIconEmoji()
public
setIconEmoji(string $iconEmoji) : $this
Parameters
- $iconEmoji : string
Return values
$thissetLevel()
Sets minimum logging level at which this handler will be triggered.
public
setLevel(Level|LogLevel::* $level) : $this
Parameters
- $level : Level|LogLevel::*
-
Level or level name
Tags
Return values
$thissetPersistent()
Set socket connection to be persistent. It only has effect before the connection is initiated.
public
setPersistent(bool $persistent) : $this
Parameters
- $persistent : bool
Return values
$thissetTimeout()
Set write timeout. Only has effect before we connect.
public
setTimeout(float $seconds) : $this
Parameters
- $seconds : float
Tags
Return values
$thissetUsername()
Username used by the bot when posting
public
setUsername(string $username) : $this
Parameters
- $username : string
Return values
$thissetWritingTimeout()
Set writing timeout. Only has effect during connection in the writing cycle.
public
setWritingTimeout(float $seconds) : $this
Parameters
- $seconds : float
-
0 for no timeout
Return values
$thisuseAttachment()
public
useAttachment(bool $useAttachment) : $this
Parameters
- $useAttachment : bool
Return values
$thisuseShortAttachment()
public
useShortAttachment(bool $useShortAttachment) : $this
Parameters
- $useShortAttachment : bool
Return values
$thisfinalizeWrite()
Finalizes the request by reading some bytes and then closing the socket
protected
finalizeWrite() : void
If we do not read some but close the socket too early, slack sometimes drops the request entirely.
fsockopen()
Wrapper to allow mocking
protected
fsockopen() : resource|false
Return values
resource|falsefwrite()
Wrapper to allow mocking
protected
fwrite(string $data) : int|false
Parameters
- $data : string
Return values
int|falsegenerateDataStream()
protected
generateDataStream(LogRecord $record) : string
Parameters
- $record : LogRecord
Tags
Return values
stringgetDefaultFormatter()
Gets the default formatter.
protected
getDefaultFormatter() : FormatterInterface
Overwrite this if the LineFormatter is not a good default for your handler.
Return values
FormatterInterfacegetResource()
protected
getResource() : resource|null
Return values
resource|nullpfsockopen()
Wrapper to allow mocking
protected
pfsockopen() : resource|false
Return values
resource|falseprepareContentData()
protected
prepareContentData(LogRecord $record) : array<string|int, string>
Parameters
- $record : LogRecord
Return values
array<string|int, string>processRecord()
protected
processRecord(LogRecord $record) : LogRecord
Parameters
- $record : LogRecord
Return values
LogRecordresetProcessors()
protected
resetProcessors() : void
streamGetMetadata()
Wrapper to allow mocking
protected
streamGetMetadata() : array<string|int, mixed>|bool
Return values
array<string|int, mixed>|boolstreamSetChunkSize()
Wrapper to allow mocking
protected
streamSetChunkSize() : int|false
Tags
Return values
int|falsestreamSetTimeout()
Wrapper to allow mocking
protected
streamSetTimeout() : bool
Tags
Return values
boolwrite()
Connect (if necessary) and write to the socket
protected
write(LogRecord $record) : void
Parameters
- $record : LogRecord
Tags
buildContent()
Builds the body of API call
private
buildContent(LogRecord $record) : string
Parameters
- $record : LogRecord
Return values
stringbuildHeader()
Builds the header of the API Call
private
buildHeader(string $content) : string
Parameters
- $content : string