PartFilter
Provides a way to define a filter of MessagePart for use in various calls to add/remove MessagePart.
A PartFilter is defined as a set of properties in the class, set to either be 'included' or 'excluded'. The filter is simplistic in that a property defined as included must be set on a part for it to be passed, and an excluded filter must not be set for the part to be passed. There is no provision for creating logical conditions.
The only property set by default is $signedpart, which defaults to FILTER_EXCLUDE.
A PartFilter can be instantiated with an array of keys matching class properties, and values to set them for convenience.
$inlineParts = $message->getAllParts(new PartFilter([
'multipart' => PartFilter::FILTER_INCLUDE,
'headers' => [
FILTER_EXCLUDE => [
'Content-Disposition': 'attachment'
]
]
]));
$inlineTextPart = $message->getAllParts(PartFilter::fromInlineContentType('text/plain'));
Tags
Table of Contents
- FILTER_EXCLUDE = 1
- FILTER_INCLUDE = 2
- FILTER_OFF = 0
- $hascontent : int
- $hashCode : string
- $headers : array<string|int, array<string|int, string>>
- $multipart : int
- $signedpart : int
- $textpart : int
- __construct() : mixed
- Constructs a PartFilter, optionally instantiating member variables with values in the passed array.
- __get() : mixed
- Returns the value of the member variable denoted by $name
- __isset() : bool
- Returns true if the variable denoted by $name is a member variable of PartFilter.
- __set() : mixed
- Sets the member variable denoted by $name to the passed $value after validating it.
- filter() : bool
- Determines if the passed MessagePart should be filtered out or not.
- fromContentType() : PartFilter
- Convenience method to filter for a specific mime type.
- fromDisposition() : PartFilter
- Convenience method to search for parts with a specific Content-Disposition, optionally including multipart parts.
- fromInlineContentType() : PartFilter
- Convenience method to look for parts of a specific mime-type, and that do not specifically have a Content-Disposition equal to 'attachment'.
- setHeaders() : mixed
- Sets the PartFilter's headers filter to the passed array after validating it.
- failsHasContentFilter() : bool
- Returns true if the passed MessagePart fails the filter's hascontent filter settings.
- failsHeaderFor() : bool
- Tests a single header value against $part, and returns true if the test fails.
- failsHeaderPartFilter() : bool
- Returns true if the passed MessagePart fails the filter's header filter settings.
- failsMultiPartFilter() : bool
- Returns true if the passed MessagePart fails the filter's multipart filter settings.
- failsSignedPartFilter() : bool
- Returns true if the passed MessagePart fails the filter's signedpart filter settings.
- failsTextPartFilter() : bool
- Returns true if the passed MessagePart fails the filter's textpart filter settings.
- validateArgument() : mixed
- Validates an argument passed to __set to insure it's set to a value in $valid.
Constants
FILTER_EXCLUDE
public
int
FILTER_EXCLUDE
= 1
FILTER_INCLUDE
public
int
FILTER_INCLUDE
= 2
FILTER_OFF
public
int
FILTER_OFF
= ""
Properties
$hascontent
private
int
$hascontent
= ZBatesonMailMimeParserMessagePartFilter::FILTER_OFF
$hashCode
private
string
$hashCode
$headers
private
array<string|int, array<string|int, string>>
$headers
= []
$multipart
private
int
$multipart
= ZBatesonMailMimeParserMessagePartFilter::FILTER_OFF
$signedpart
private
int
$signedpart
= ZBatesonMailMimeParserMessagePartFilter::FILTER_EXCLUDE
$textpart
private
int
$textpart
= ZBatesonMailMimeParserMessagePartFilter::FILTER_OFF
Methods
__construct()
Constructs a PartFilter, optionally instantiating member variables with values in the passed array.
public
__construct([array<string|int, mixed> $filter = [] ]) : mixed
The passed array must use keys equal to member variable names, e.g. 'multipart', 'textpart', 'signedpart' and 'headers'.
Parameters
- $filter : array<string|int, mixed> = []
Return values
mixed —__get()
Returns the value of the member variable denoted by $name
public
__get(string $name) : mixed
Parameters
- $name : string
Return values
mixed —__isset()
Returns true if the variable denoted by $name is a member variable of PartFilter.
public
__isset(string $name) : bool
Parameters
- $name : string
Return values
bool —__set()
Sets the member variable denoted by $name to the passed $value after validating it.
public
__set(string $name, int|array<string|int, mixed> $value) : mixed
Parameters
- $name : string
- $value : int|array<string|int, mixed>
Tags
Return values
mixed —filter()
Determines if the passed MessagePart should be filtered out or not.
public
filter(MessagePart $part) : bool
If the MessagePart passes all filter tests, true is returned. Otherwise false is returned.
Parameters
- $part : MessagePart
Return values
bool —fromContentType()
Convenience method to filter for a specific mime type.
public
static fromContentType(string $mimeType) : PartFilter
Parameters
- $mimeType : string
Return values
PartFilter —fromDisposition()
Convenience method to search for parts with a specific Content-Disposition, optionally including multipart parts.
public
static fromDisposition(string $disposition[, int $multipart = PartFilter::FILTER_OFF ]) : PartFilter
Parameters
- $disposition : string
- $multipart : int = PartFilter::FILTER_OFF
Return values
PartFilter —fromInlineContentType()
Convenience method to look for parts of a specific mime-type, and that do not specifically have a Content-Disposition equal to 'attachment'.
public
static fromInlineContentType(string $mimeType) : PartFilter
Parameters
- $mimeType : string
Return values
PartFilter —setHeaders()
Sets the PartFilter's headers filter to the passed array after validating it.
public
setHeaders(array<string|int, mixed> $headers) : mixed
Parameters
- $headers : array<string|int, mixed>
Tags
Return values
mixed —failsHasContentFilter()
Returns true if the passed MessagePart fails the filter's hascontent filter settings.
private
failsHasContentFilter(MessagePart $part) : bool
Parameters
- $part : MessagePart
Return values
bool —failsHeaderFor()
Tests a single header value against $part, and returns true if the test fails.
private
failsHeaderFor(MessagePart $part, int $type, string $name, string $header) : bool
Parameters
- $part : MessagePart
- $type : int
- $name : string
- $header : string
Tags
Return values
bool —failsHeaderPartFilter()
Returns true if the passed MessagePart fails the filter's header filter settings.
private
failsHeaderPartFilter(MessagePart $part) : bool
Parameters
- $part : MessagePart
Return values
bool —failsMultiPartFilter()
Returns true if the passed MessagePart fails the filter's multipart filter settings.
private
failsMultiPartFilter(MessagePart $part) : bool
Parameters
- $part : MessagePart
Return values
bool —failsSignedPartFilter()
Returns true if the passed MessagePart fails the filter's signedpart filter settings.
private
failsSignedPartFilter(MessagePart $part) : bool
Parameters
- $part : MessagePart
Return values
bool —failsTextPartFilter()
Returns true if the passed MessagePart fails the filter's textpart filter settings.
private
failsTextPartFilter(MessagePart $part) : bool
Parameters
- $part : MessagePart
Return values
bool —validateArgument()
Validates an argument passed to __set to insure it's set to a value in $valid.
private
validateArgument(string $name, string $value, array<string|int, mixed> $valid) : mixed
Parameters
- $name : string
-
Name of the member variable
- $value : string
-
The value to test
- $valid : array<string|int, mixed>
-
an array of valid values