MailMimeParser 3.0

SplitParameterPart extends ParameterPart
in package

Holds a running value for an RFC-2231 split header parameter.

ParameterConsumer creates SplitParameterTokens when a split header parameter is first found, and adds subsequent split parts to an already created one if the parameter name matches.

Tags
author

Zaahid Bateson

Table of Contents

$canIgnoreSpacesAfter  : bool
$canIgnoreSpacesBefore  : bool
$charset  : string|null
$charsetConverter  : MbWrapper
$children  : array<string|int, HeaderPart>
$encoded  : bool
$index  : int|null
$isSpace  : bool
True if the part is a space token
$language  : string|null
$logger  : LoggerInterface
$name  : string
$partFactory  : HeaderPartFactory
$value  : string
$errors  : array<string|int, mixed>
$validated  : bool
__construct()  : mixed
Initializes a SplitParameterToken.
__toString()  : string
Returns the value of the part (which is a string).
addError()  : static
Creates and adds an Error object to this ErrorBag.
getAllErrors()  : array<string|int, Error>
Returns any errors on this object, and all IErrorBag children of this object at or above the passed PSR log level from Psr\Log\LogLevel (defaulting to LogLevel::ERROR).
getCharset()  : string|null
Returns the charset if the part is an RFC-2231 part with a charset set.
getChildParts()  : array<string|int, IHeaderPart>
Returns the child parts this container part consists of.
getComments()  : array<string|int, CommentPart>
Returns any CommentParts under this part container.
getErrorLoggingContextName()  : string
Returns the class name. Override to identify objects in logs.
getErrors()  : array<string|int, Error>
Returns any local errors this object has at or above the passed PSR log level in Psr\Log\LogLevel (defaulting to LogLevel::ERROR).
getIndex()  : int|null
getLanguage()  : string|null
Returns the RFC-1766 (or subset) language tag, if the parameter is an RFC-2231 part with a language tag set.
getName()  : string
Returns the name of the name/value part.
getValue()  : string
Returns the part's representative value after any necessary processing has been performed. For the raw value, call getRawValue().
hasAnyErrors()  : bool
Returns true if there are errors on this object, or any IErrorBag child of this object at or above the passed PSR log level in Psr\Log\LogLevel (defaulting to LogLevel::ERROR). Note that this will stop after finding the first error and return, so may be slightly more performant if an error actually exists over calling getAllErrors if only interested in whether an error exists.
hasErrors()  : bool
Returns true if this object has an error in its error bag at or above the passed $minPsrLevel (defaults to ERROR). If $validate is true, additional validation may be performed.
isUrlEncoded()  : bool
convertEncoding()  : string
Ensures the encoding of the passed string is set to UTF-8.
decodePartValue()  : string
filterIgnoredSpaces()  : array<string|int, HeaderPart>
Filters out ignorable space tokens.
getErrorBagChildren()  : array<string|int, IErrorBag>
Return any children ErrorBag objects.
getNameFromParts()  : string
Creates the string 'name' representation of this part constructed from the child name parts passed to it.
getValueFromParts()  : string
validate()  : void
Perform any extra validation and call 'addError'.
combineAdjacentUnencodedParts()  : array<string|int, mixed>
getMimeTokens()  : array<string|int, mixed>

Properties

$canIgnoreSpacesAfter

protected bool $canIgnoreSpacesAfter = false

set to true to ignore spaces after this part

$canIgnoreSpacesBefore

protected bool $canIgnoreSpacesBefore = false

set to true to ignore spaces before this part

$charset

protected string|null $charset = null

charset of content if set.

$charsetConverter

protected MbWrapper $charsetConverter

the charset converter used for converting strings in HeaderPart::convertEncoding

$children

protected array<string|int, HeaderPart> $children = []

parts that were used to create this part, collected for proper error reporting and validation.

$encoded

protected bool $encoded = false

true if the part is an RFC-2231 encoded part, and the value needs to be decoded.

$index

protected int|null $index = null

the zero-based index of the part if part of a 'continuation' in an RFC-2231 split parameter.

$isSpace

True if the part is a space token

protected bool $isSpace = false

$language

protected string|null $language = null

the RFC-1766 language tag if set.

$logger

protected LoggerInterface $logger

$value

protected string $value

the representative value of the part after any conversion or processing has been done on it (e.g. removing new lines, converting, whatever else).

$errors

private array<string|int, mixed> $errors = []

array of Error objects belonging to this object.

$validated

private bool $validated = false

true once the object has been validated.

Methods

__construct()

Initializes a SplitParameterToken.

public __construct(LoggerInterface $logger, MbWrapper $charsetConverter, HeaderPartFactory $headerPartFactory, array<string|int, ParameterPart$children) : mixed
Parameters
$logger : LoggerInterface
$charsetConverter : MbWrapper
$headerPartFactory : HeaderPartFactory
$children : array<string|int, ParameterPart>
Return values
mixed

__toString()

Returns the value of the part (which is a string).

public __toString() : string
Return values
string

the value

addError()

Creates and adds an Error object to this ErrorBag.

public addError(string $message, string $psrLogLevel[, Throwable|null $exception = null ]) : static
Parameters
$message : string
$psrLogLevel : string
$exception : Throwable|null = null
Return values
static

getAllErrors()

Returns any errors on this object, and all IErrorBag children of this object at or above the passed PSR log level from Psr\Log\LogLevel (defaulting to LogLevel::ERROR).

public getAllErrors([bool $validate = false ][, string $minPsrLevel = LogLevel::ERROR ]) : array<string|int, Error>

Care should be taken using this if the intention is to only 'preview' a message without parsing it entirely, since this will cause the whole message to be parsed as it traverses children, and could be slow on messages with large attachments, etc...

If $validate is true, additional validation may be performed on children to check for errors.

Parameters
$validate : bool = false
$minPsrLevel : string = LogLevel::ERROR
Return values
array<string|int, Error>

getCharset()

Returns the charset if the part is an RFC-2231 part with a charset set.

public getCharset() : string|null
Return values
string|null

getChildParts()

Returns the child parts this container part consists of.

public getChildParts() : array<string|int, IHeaderPart>
Return values
array<string|int, IHeaderPart>

getComments()

Returns any CommentParts under this part container.

public getComments() : array<string|int, CommentPart>
Return values
array<string|int, CommentPart>

getErrorLoggingContextName()

Returns the class name. Override to identify objects in logs.

public getErrorLoggingContextName() : string
Return values
string

getErrors()

Returns any local errors this object has at or above the passed PSR log level in Psr\Log\LogLevel (defaulting to LogLevel::ERROR).

public getErrors([bool $validate = false ][, string $minPsrLevel = LogLevel::ERROR ]) : array<string|int, Error>

If $validate is true, additional validation may be performed on the object to check for errors.

Parameters
$validate : bool = false
$minPsrLevel : string = LogLevel::ERROR
Return values
array<string|int, Error>

getIndex()

public getIndex() : int|null
Return values
int|null

getLanguage()

Returns the RFC-1766 (or subset) language tag, if the parameter is an RFC-2231 part with a language tag set.

public getLanguage() : string|null
Return values
string|null

the language if set, or null if not

getName()

Returns the name of the name/value part.

public getName() : string
Return values
string

getValue()

Returns the part's representative value after any necessary processing has been performed. For the raw value, call getRawValue().

public getValue() : string
Return values
string

The value of the part

hasAnyErrors()

Returns true if there are errors on this object, or any IErrorBag child of this object at or above the passed PSR log level in Psr\Log\LogLevel (defaulting to LogLevel::ERROR). Note that this will stop after finding the first error and return, so may be slightly more performant if an error actually exists over calling getAllErrors if only interested in whether an error exists.

public hasAnyErrors([bool $validate = false ][, string $minPsrLevel = LogLevel::ERROR ]) : bool

Care should be taken using this if the intention is to only 'preview' a message without parsing it entirely, since this will cause the whole message to be parsed as it traverses children, and could be slow on messages with large attachments, etc...

If $validate is true, additional validation may be performed to check for errors.

Parameters
$validate : bool = false
$minPsrLevel : string = LogLevel::ERROR
Return values
bool

hasErrors()

Returns true if this object has an error in its error bag at or above the passed $minPsrLevel (defaults to ERROR). If $validate is true, additional validation may be performed.

public hasErrors([bool $validate = false ][, string $minPsrLevel = LogLevel::ERROR ]) : bool

The PSR levels are defined in Psr\Log\LogLevel.

Parameters
$validate : bool = false
$minPsrLevel : string = LogLevel::ERROR
Return values
bool

isUrlEncoded()

public isUrlEncoded() : bool
Return values
bool

convertEncoding()

Ensures the encoding of the passed string is set to UTF-8.

protected convertEncoding(string $str[, string $from = 'ISO-8859-1' ][, bool $force = false ]) : string

The method does nothing if the passed $from charset is UTF-8 already, or if $force is set to false and mb_check_encoding for $str returns true for 'UTF-8'.

Parameters
$str : string
$from : string = 'ISO-8859-1'
$force : bool = false
Return values
string

utf-8 string

decodePartValue()

protected decodePartValue(string $value[, string|null $charset = null ]) : string
Parameters
$value : string
$charset : string|null = null
Return values
string

filterIgnoredSpaces()

Filters out ignorable space tokens.

protected filterIgnoredSpaces(array<string|int, HeaderPart$parts) : array<string|int, HeaderPart>

Spaces are removed if parts on either side of it have their canIgnoreSpaceAfter/canIgnoreSpaceBefore properties set to true.

Parameters
$parts : array<string|int, HeaderPart>
Return values
array<string|int, HeaderPart>

getErrorBagChildren()

Return any children ErrorBag objects.

protected abstract getErrorBagChildren() : array<string|int, IErrorBag>
Return values
array<string|int, IErrorBag>

getNameFromParts()

Creates the string 'name' representation of this part constructed from the child name parts passed to it.

protected getNameFromParts(array<string|int, mixed> $parts) : string
Parameters
$parts : array<string|int, mixed>
Return values
string

getValueFromParts()

protected getValueFromParts(array<string|int, mixed> $parts) : string
Parameters
$parts : array<string|int, mixed>
Return values
string

validate()

Perform any extra validation and call 'addError'.

protected validate() : void

getErrors and getAllErrors call validate() if their $validate parameter is true. validate() is only called once on an object with getErrors getAllErrors.

Return values
void

combineAdjacentUnencodedParts()

private combineAdjacentUnencodedParts(array<string|int, mixed> $parts) : array<string|int, mixed>
Parameters
$parts : array<string|int, mixed>
Return values
array<string|int, mixed>

getMimeTokens()

private getMimeTokens(string $value) : array<string|int, mixed>
Parameters
$value : string
Return values
array<string|int, mixed>

Search results