PartBuilder
Used by MessageParser to keep information about a parsed message as an intermediary before creating a Message object and its MessagePart children.
Tags
Table of Contents
- $children : array<string|int, PartBuilder>
- $endBoundaryFound : bool
- $headerContainer : HeaderContainer
- $messagePartFactory : MessagePartFactory
- $mimeBoundary : bool|null|string
- $parent : PartBuilder
- $parentBoundaryFound : bool
- $properties : array<string|int, string>
- $streamContentEndPos : int
- $streamContentStartPos : int
- $streamPartEndPos : int
- $streamPartStartPos : int
- __construct() : mixed
- Sets up class dependencies.
- addChild() : mixed
- Registers the passed PartBuilder as a child of the current PartBuilder.
- addHeader() : mixed
- Adds a header with the given $name and $value to the headers array.
- canHaveHeaders() : bool
- Returns false if this part has a parent part in which endBoundaryFound is set to true (i.e. this isn't a discardable part following the parent's end boundary line).
- createMessagePart() : MessagePart
- Creates a MessagePart and returns it using the PartBuilder's MessagePartFactory passed in during construction.
- getChildren() : array<string|int, PartBuilder>
- Returns all children PartBuilder objects.
- getContentType() : ParameterHeader
- Returns a ParameterHeader representing the parsed Content-Type header for this PartBuilder.
- getHeaderContainer() : HeaderContainer
- Returns the HeaderContainer object containing parsed headers.
- getMimeBoundary() : string
- Returns the parsed boundary parameter of the Content-Type header if set for a multipart message part.
- getParent() : PartBuilder
- Returns this PartBuilder's parent.
- getProperty() : mixed
- Returns the value of the property with the given $name.
- getStreamContentLength() : int
- Returns the length of this part's content stream.
- getStreamContentStartOffset() : int
- Returns the offset for this part's content within its part stream.
- getStreamPartLength() : int
- Returns the length of this part's stream.
- getStreamPartStartOffset() : int
- Returns the offset for this part's stream within its parent stream.
- isMime() : bool
- Returns true if either a Content-Type or Mime-Version header are defined in this PartBuilder's headers.
- isMultiPart() : bool
- Returns true if this part's content-type is multipart/*
- isParentBoundaryFound() : bool
- Returns true if MessageParser passed an input line to setEndBoundary that matches a parent's mime boundary, and the following input belongs to a new part under its parent.
- setEndBoundaryFound() : bool
- Returns true if the passed $line of read input matches this PartBuilder's mime boundary, or any of its parent's mime boundaries for a multipart message.
- setEof() : mixed
- Called once EOF is reached while reading content. The method sets the flag used by PartBuilder::isParentBoundaryFound to true on this part and all parent PartBuilders.
- setProperty() : mixed
- Sets the specified property denoted by $name to $value.
- setStreamContentStartPos() : mixed
- Sets the start position of the content in the input stream.
- setStreamPartAndContentEndPos() : mixed
- Sets the end position of the content and part in the input stream.
- setStreamPartEndPos() : mixed
- Sets the end position of the part in the input stream, and also calls parent->setParentStreamPartEndPos to expand to parent parts.
- setStreamPartStartPos() : mixed
- Sets the start position of the part in the input stream.
Properties
$children
private
array<string|int, PartBuilder>
$children
= []
$endBoundaryFound
private
bool
$endBoundaryFound
= false
$headerContainer
private
HeaderContainer
$headerContainer
$messagePartFactory
private
MessagePartFactory
$messagePartFactory
$mimeBoundary
private
bool|null|string
$mimeBoundary
= false
$parent
private
PartBuilder
$parent
= null
$parentBoundaryFound
private
bool
$parentBoundaryFound
= false
$properties
private
array<string|int, string>
$properties
= []
$streamContentEndPos
private
int
$streamContentEndPos
= 0
$streamContentStartPos
private
int
$streamContentStartPos
= 0
$streamPartEndPos
private
int
$streamPartEndPos
= 0
$streamPartStartPos
private
int
$streamPartStartPos
= 0
Methods
__construct()
Sets up class dependencies.
public
__construct(MessagePartFactory $mpf, HeaderContainer $headerContainer) : mixed
Parameters
- $mpf : MessagePartFactory
- $headerContainer : HeaderContainer
Return values
mixed —addChild()
Registers the passed PartBuilder as a child of the current PartBuilder.
public
addChild(PartBuilder $partBuilder) : mixed
Parameters
- $partBuilder : PartBuilder
Return values
mixed —addHeader()
Adds a header with the given $name and $value to the headers array.
public
addHeader(string $name, string $value) : mixed
Removes non-alphanumeric characters from $name, and sets it to lower-case to use as a key in the private headers array. Sets the original $name and $value as elements in the headers' array value for the calculated key.
Parameters
- $name : string
- $value : string
Return values
mixed —canHaveHeaders()
Returns false if this part has a parent part in which endBoundaryFound is set to true (i.e. this isn't a discardable part following the parent's end boundary line).
public
canHaveHeaders() : bool
Return values
bool —createMessagePart()
Creates a MessagePart and returns it using the PartBuilder's MessagePartFactory passed in during construction.
public
createMessagePart([StreamInterface $stream = null ]) : MessagePart
Parameters
- $stream : StreamInterface = null
Return values
MessagePart —getChildren()
Returns all children PartBuilder objects.
public
getChildren() : array<string|int, PartBuilder>
Return values
array<string|int, PartBuilder> —getContentType()
Returns a ParameterHeader representing the parsed Content-Type header for this PartBuilder.
public
getContentType() : ParameterHeader
Return values
ParameterHeader —getHeaderContainer()
Returns the HeaderContainer object containing parsed headers.
public
getHeaderContainer() : HeaderContainer
Return values
HeaderContainer —getMimeBoundary()
Returns the parsed boundary parameter of the Content-Type header if set for a multipart message part.
public
getMimeBoundary() : string
Return values
string —getParent()
Returns this PartBuilder's parent.
public
getParent() : PartBuilder
Return values
PartBuilder —getProperty()
Returns the value of the property with the given $name.
public
getProperty(string $name) : mixed
Parameters
- $name : string
Return values
mixed —getStreamContentLength()
Returns the length of this part's content stream.
public
getStreamContentLength() : int
Return values
int —getStreamContentStartOffset()
Returns the offset for this part's content within its part stream.
public
getStreamContentStartOffset() : int
Return values
int —getStreamPartLength()
Returns the length of this part's stream.
public
getStreamPartLength() : int
Return values
int —getStreamPartStartOffset()
Returns the offset for this part's stream within its parent stream.
public
getStreamPartStartOffset() : int
Return values
int —isMime()
Returns true if either a Content-Type or Mime-Version header are defined in this PartBuilder's headers.
public
isMime() : bool
Return values
bool —isMultiPart()
Returns true if this part's content-type is multipart/*
public
isMultiPart() : bool
Return values
bool —isParentBoundaryFound()
Returns true if MessageParser passed an input line to setEndBoundary that matches a parent's mime boundary, and the following input belongs to a new part under its parent.
public
isParentBoundaryFound() : bool
Return values
bool —setEndBoundaryFound()
Returns true if the passed $line of read input matches this PartBuilder's mime boundary, or any of its parent's mime boundaries for a multipart message.
public
setEndBoundaryFound(string $line) : bool
If the passed $line is the ending boundary for the current PartBuilder, $this->isEndBoundaryFound will return true after.
Parameters
- $line : string
Return values
bool —setEof()
Called once EOF is reached while reading content. The method sets the flag used by PartBuilder::isParentBoundaryFound to true on this part and all parent PartBuilders.
public
setEof() : mixed
Return values
mixed —setProperty()
Sets the specified property denoted by $name to $value.
public
setProperty(string $name, mixed $value) : mixed
Parameters
- $name : string
- $value : mixed
Return values
mixed —setStreamContentStartPos()
Sets the start position of the content in the input stream.
public
setStreamContentStartPos(int $streamContentStartPos) : mixed
Parameters
- $streamContentStartPos : int
Return values
mixed —setStreamPartAndContentEndPos()
Sets the end position of the content and part in the input stream.
public
setStreamPartAndContentEndPos(int $streamContentEndPos) : mixed
Parameters
- $streamContentEndPos : int
Return values
mixed —setStreamPartEndPos()
Sets the end position of the part in the input stream, and also calls parent->setParentStreamPartEndPos to expand to parent parts.
public
setStreamPartEndPos(int $streamPartEndPos) : mixed
Parameters
- $streamPartEndPos : int
Return values
mixed —setStreamPartStartPos()
Sets the start position of the part in the input stream.
public
setStreamPartStartPos(int $streamPartStartPos) : mixed
Parameters
- $streamPartStartPos : int