Copied!

Holds generic/all purpose information about a part while it's being parsed.

The class holds:

  • a HeaderContainer to hold headers
  • stream positions (part start/end positions, content start/end)
  • the message's psr7 stream and a resource handle created from it (held only for a top-level PartBuilder representing the message, child PartBuilders do not duplicate/hold a separate stream).

More specific information a parser needs to keep about a message as it's parsing it should be stored in its ParserPartProxy.

CloneableInstantiable
Methods
public __construct(ZBateson\MailMimeParser\Message\PartHeaderContainer $headerContainer, ?Psr\Http\Message\StreamInterface $messageStream = NULL, ?ZBateson\MailMimeParser\Parser\Proxy\ParserMimePartProxy $parent = NULL)
public __destruct()
public getHeaderContainer() : ZBateson\MailMimeParser\Message\PartHeaderContainer
 

Returns this part's PartHeaderContainer.

public getMessageResourceHandle() : ?mixed
 

Returns the resource handle for a the message's stream, getting it from the parent part if this is a child part.

  • return resource
public getMessageResourceHandlePos() : int
 

Shortcut for calling ftell($partBuilder->getMessageResourceHandle()).

public getParent() : ?ZBateson\MailMimeParser\Parser\Proxy\ParserMimePartProxy
 

The ParserPartProxy parent of this PartBuilder.

public getStream() : Psr\Http\Message\StreamInterface
 

Returns the raw message StreamInterface for a message, getting it from the parent part if this is a child part.

public getStreamContentLength() : int
 

Returns the length of this part's content stream.

This method does not perform checks on whether the start pos and end pos of this part's content have been set, and so could cause errors if called before being set and are still null.

public getStreamContentStartPos() : ?int
 

Returns the byte offset start position of the content of this part within the main raw message stream, or null if not set.

public getStreamPartLength() : int
 

Returns the number of raw bytes this part has.

This method does not perform checks on whether the start pos and end pos of this part have been set, and so could cause errors if called before being set and are still null.

public getStreamPartStartPos() : int
 

Returns the byte offset start position for this part within the message stream.

public isContentParsed() : bool
 

Returns true if the byte offset positions for this part's content have been set.

  • return bool true if set.
public isMime() : bool
 

Returns true if this part, or any parent, have a Content-Type or MIME-Version header set.

  • return bool true if it's a mime message or child of a mime message.
public setStreamContentStartPos(int $streamContentStartPos) : static
 

Sets the byte offset start position of the content in the raw message stream.

public setStreamPartAndContentEndPos(int $streamContentEndPos) : static
 

Sets the byte offset end position of the content and part in the raw message stream.

public setStreamPartEndPos(int $streamPartEndPos) : static
 

Sets the byte offset end position of the part in the raw message stream, and also calls its parent's setParentStreamPartEndPos to expand to parent PartBuilders.

public setStreamPartStartPos(int $streamPartStartPos) : static
 

Sets the byte offset start position of the part in the raw message stream.

Properties
private ZBateson\MailMimeParser\Message\PartHeaderContainer $headerContainer
 
  • var \PartHeaderContainer The parsed part's headers.
private ?mixed $messageHandle = NULL
 
  • var resource the raw message input stream handle constructed from $messageStream or null for a child part
private ?Psr\Http\Message\StreamInterface $messageStream = NULL
 
  • var \StreamInterface the raw message input stream for a message, or null for a child part.
private ?ZBateson\MailMimeParser\Parser\Proxy\ParserMimePartProxy $parent = NULL
 
  • var \ParserMimePartProxy The parent proxy part if one is set, or null if the part being built doesn't have a parent.
private ?int $streamContentEndPos = NULL
 
  • var ?int The offset read end position in the message's stream for the end of this part's content (body).
private ?int $streamContentStartPos = NULL
 
  • var ?int The offset read start position in the message's stream for the beginning of this part's content (body).
private int $streamPartEndPos
 
  • var int The offset read end position for this part. If the part is a multipart mime part, the end position is after all of this parts children.
private int $streamPartStartPos
 
  • var int The offset read start position for this part (beginning of headers) in the message's stream.
© 2025 Bruce Wells
Search Namespaces \ Classes
Configuration