Documentation

SlackHandler extends SocketHandler
in package

Sends notifications through Slack API

Tags
author

Greg Kedzierski greg@gregkedzierski.com

see
https://api.slack.com/

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

$processors

protected array<string|int, callable> $processors = []
Tags
phpstan-var

array<(callable(LogRecord): LogRecord)|ProcessorInterface>

$slackRecord

Instance of the SlackRecord util class preparing data for Slack API.

private SlackRecord $slackRecord

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
throws
MissingExtensionException

If no OpenSSL PHP extension configured

__destruct()

public __destruct() : 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
$this

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() : int|null
Return values
int|null

getConnectionString()

Get current connection string

public getConnectionString() : string
Return values
string

getConnectionTimeout()

Get current connection timeout setting

public getConnectionTimeout() : float
Return values
float

getLevel()

Gets minimum logging level at which this handler will be triggered.

public getLevel() : Level
Return values
Level

getTimeout()

Get current in-transfer timeout

public getTimeout() : float
Return values
float

getToken()

public getToken() : string
Return values
string

getWritingTimeout()

Get current local writing timeout

public getWritingTimeout() : float
Return values
float

handle()

Handles a record.

public handle(LogRecord $record) : bool
Parameters
$record : LogRecord

The record to handle

Tags
inheritDoc
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
inheritDoc

includeContextAndExtra()

public includeContextAndExtra(bool $includeContextAndExtra) : $this
Parameters
$includeContextAndExtra : bool
Return values
$this

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(LogRecord $record) : bool
Parameters
$record : LogRecord

Partial log record having only a level initialized

Tags
inheritDoc
Return values
bool

isPersistent()

Get persistent setting

public isPersistent() : bool
Return values
bool

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
$this

setChannel()

Channel used by the bot when posting

public setChannel(string $channel) : $this
Parameters
$channel : string
Return values
$this

setChunkSize()

Set chunk size. Only has effect during connection in the writing cycle.

public setChunkSize(int $bytes) : $this
Parameters
$bytes : int
Return values
$this

setIconEmoji()

public setIconEmoji(string $iconEmoji) : $this
Parameters
$iconEmoji : string
Return values
$this

setLevel()

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
phpstan-param

value-ofLevel::VALUES|value-ofLevel::NAMES|Level|LogLevel::* $level

Return values
$this

setPersistent()

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
$this

setUsername()

Username used by the bot when posting

public setUsername(string $username) : $this
Parameters
$username : string
Return values
$this

setWritingTimeout()

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
$this

useAttachment()

public useAttachment(bool $useAttachment) : $this
Parameters
$useAttachment : bool
Return values
$this

useShortAttachment()

public useShortAttachment(bool $useShortAttachment) : $this
Parameters
$useShortAttachment : bool
Return values
$this

finalizeWrite()

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|false

fwrite()

Wrapper to allow mocking

protected fwrite(string $data) : int|false
Parameters
$data : string
Return values
int|false

generateDataStream()

protected generateDataStream(LogRecord $record) : string
Parameters
$record : LogRecord
Tags
inheritDoc
Return values
string

getResource()

protected getResource() : resource|null
Return values
resource|null

pfsockopen()

Wrapper to allow mocking

protected pfsockopen() : resource|false
Return values
resource|false

prepareContentData()

protected prepareContentData(LogRecord $record) : array<string|int, string>
Parameters
$record : LogRecord
Return values
array<string|int, string>

streamGetMetadata()

Wrapper to allow mocking

protected streamGetMetadata() : array<string|int, mixed>|bool
Return values
array<string|int, mixed>|bool

buildHeader()

Builds the header of the API Call

private buildHeader(string $content) : string
Parameters
$content : string
Return values
string

        
On this page

Search results