A bi-directional parser-to-part proxy for IMessage objects created by NonMimeParser.

public ZBateson\MailMimeParser\Parser\Proxy\ParserPartProxy::__construct(ZBateson\MailMimeParser\Parser\PartBuilder $partBuilder, ZBateson\MailMimeParser\Parser\IParser $parser)
public ZBateson\MailMimeParser\Parser\PartBuilder::__destruct()
public clearNextPart() : self

Sets the next part start position, file mode, and filename to null

public ZBateson\MailMimeParser\Parser\Proxy\ParserMimePartProxy::getContentType()

Returns a ParameterHeader representing the parsed Content-Type header for this part.

  • return ?\ZBateson\MailMimeParser\Header\IHeader
public ZBateson\MailMimeParser\Parser\Proxy\ParserPartProxy::getHeaderContainer()
public ZBateson\MailMimeParser\Parser\Proxy\ParserMessageProxy::getLastLineEndingLength() : int
public ZBateson\MailMimeParser\Parser\Proxy\ParserPartProxy::getMessageResourceHandle()
public ZBateson\MailMimeParser\Parser\Proxy\ParserPartProxy::getMessageResourceHandlePos() : int
public ZBateson\MailMimeParser\Parser\Proxy\ParserMimePartProxy::getMimeBoundary()

Returns the parsed boundary parameter of the Content-Type header if set for a multipart message part.

  • return string
public getNextPartFilename() : ?string

Returns the next part's filename in a uu-encoded 'begin' line if one exists, or null otherwise.

  • return string|null The file name or null
public getNextPartMode() : ?int

Returns the next part's unix file mode in a uu-encoded 'begin' line if one exists, or null otherwise.

  • return int|null The file mode or null
public getNextPartStart() : ?int

Returns the next part's start position within the message's raw stream, or null if not set, not discovered, or there are no more parts under this message.

  • return int|null The start position or null
public ZBateson\MailMimeParser\Parser\Proxy\ParserPartProxy::getParent()
public ZBateson\MailMimeParser\Parser\Proxy\ParserPartProxy::getPart()

Returns the IMessagePart associated with this proxy.

  • return \IMessagePart the part.
public ZBateson\MailMimeParser\Parser\Proxy\ParserPartProxy::getStream()
public ZBateson\MailMimeParser\Parser\Proxy\ParserPartProxy::getStreamContentLength() : int
public ZBateson\MailMimeParser\Parser\Proxy\ParserPartProxy::getStreamContentStartPos() : ?int
public ZBateson\MailMimeParser\Parser\Proxy\ParserPartProxy::getStreamPartLength() : int
public ZBateson\MailMimeParser\Parser\Proxy\ParserPartProxy::getStreamPartStartPos() : int
public ZBateson\MailMimeParser\Parser\Proxy\ParserPartProxy::isContentParsed() : ?bool
public ZBateson\MailMimeParser\Parser\Proxy\ParserMimePartProxy::isEndBoundaryFound() : bool

Returns true if an end boundary was found for this part.

public ZBateson\MailMimeParser\Parser\Proxy\ParserPartProxy::isMime() : bool
public ZBateson\MailMimeParser\Parser\Proxy\ParserMimePartProxy::isParentBoundaryFound() : bool

Returns true if the parser 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 ZBateson\MailMimeParser\Parser\Proxy\ParserMimePartProxy::parseAll()

Parses all content and children for this part.

  • return static
public ZBateson\MailMimeParser\Parser\Proxy\ParserPartProxy::parseContent()

Requests the parser to parse this part's content, and call setStreamContentStartPos/EndPos to setup this part's boundaries within the main message's raw stream.

The method first checks to see if the content has already been parsed, and is safe to call multiple times.

  • return static
public ZBateson\MailMimeParser\Parser\Proxy\ParserMimePartProxy::popNextChild()

Returns the next child part if one exists, popping it from the internal 'stack' of children, attempting to parse a new one if the stack is empty, and returning null if there are no more children.

  • return \IMessagePart|null the child part.
public ZBateson\MailMimeParser\Parser\Proxy\ParserMimePartProxy::setEndBoundaryFound(string $line)

Returns true if the passed $line of read input matches this part's mime boundary, or any of its parent's mime boundaries for a multipart message.

If the passed $line is the ending boundary for the current part, $this->isEndBoundaryFound will return true after.

  • return bool
public ZBateson\MailMimeParser\Parser\Proxy\ParserMimePartProxy::setEof() : self

Called once EOF is reached while reading content. The method sets the flag used by isParentBoundaryFound() to true on this part and all parent parts.

  • return static
public ZBateson\MailMimeParser\Parser\Proxy\ParserMessageProxy::setLastLineEndingLength(int $lastLineEndingLength)
  • return static
public setNextPartFilename(string $nextPartFilename) : self

Sets the next part's filename from its 'begin' line.

public setNextPartMode(int $nextPartMode) : self

Sets the next part's unix file mode from its 'begin' line.

public setNextPartStart(int $nextPartStart) : self

Sets the next part's start position within the message's raw stream.

public ZBateson\MailMimeParser\Parser\Proxy\ParserPartProxy::setPart(ZBateson\MailMimeParser\Message\IMessagePart $part) : self

Sets the associated part.

  • param \IMessagePart $part The part
public ZBateson\MailMimeParser\Parser\Proxy\ParserPartProxy::setStreamContentStartPos(int $streamContentStartPos)
  • return static
public ZBateson\MailMimeParser\Parser\Proxy\ParserMimePartProxy::setStreamPartAndContentEndPos(int $streamContentEndPos)

Overridden to set a 0-length content length, and a stream end pos of -2 if the passed end pos is before the start pos (can happen if a mime end boundary doesn't have an empty line before the next parent start boundary).

  • return static
public ZBateson\MailMimeParser\Parser\Proxy\ParserPartProxy::setStreamPartEndPos(int $streamPartEndPos)
  • return static
public ZBateson\MailMimeParser\Parser\Proxy\ParserPartProxy::setStreamPartStartPos(int $streamPartStartPos)
  • return static
protected ZBateson\MailMimeParser\Parser\Proxy\ParserMimePartProxy::$allChildrenParsed = false
  • var bool true once all children of this part have been parsed.
protected ZBateson\MailMimeParser\Parser\Proxy\ParserMimePartProxy::$children = []
  • var \ParserPartProxy[] Parsed children used as a 'first-in-first-out' stack as children are parsed.
protected ZBateson\MailMimeParser\Parser\Proxy\ParserMimePartProxy::$endBoundaryFound = false
  • var bool set to true once the end boundary of the currently-parsed part is found.
protected ZBateson\MailMimeParser\Parser\Proxy\ParserMimePartProxy::$lastAddedChild = NULL
  • var \ParserPartProxy Reference to the last child added to this part.
protected ZBateson\MailMimeParser\Parser\Proxy\ParserMessageProxy::$lastLineEndingLength = 0
  • var int maintains the character length of the last line separator, typically 2 for CRLF, to keep track of the correct 'end' position for a part because the CRLF before a boundary is considered part of the boundary.
protected ZBateson\MailMimeParser\Parser\Proxy\ParserMimePartProxy::$mimeBoundary = false
  • var bool|null|string FALSE if not queried for in the content-type header of this part, NULL if the current part does not have a boundary, and otherwise contains the value of the boundary parameter of the content-type header if the part contains one.
protected $nextPartFilename = NULL
  • var string The next part's file name in a uu-encoded 'begin' line if exists, or null otherwise.
protected $nextPartMode = NULL
  • var int The next part's unix file mode in a uu-encoded 'begin' line if exists, or null otherwise.
protected $nextPartStart = NULL
  • var int|null The next part's start position within the message's raw stream, or null if not set, not discovered, or there are no more parts.
protected ZBateson\MailMimeParser\Parser\Proxy\ParserMimePartProxy::$parentBoundaryFound = false
  • var bool set to true once a boundary belonging to this parent's part is found.
protected ZBateson\MailMimeParser\Parser\Proxy\ParserPartProxy::$parser = NULL
  • var \IParser The parser.
protected ZBateson\MailMimeParser\Parser\Proxy\ParserPartProxy::$partBuilder = NULL
  • var \PartBuilder The part's PartBuilder.
protected ZBateson\MailMimeParser\Parser\Proxy\ParserMimePartProxy::ensureLastChildParsed() : self

Ensures that the last child added to this part is fully parsed (content and children).

protected ZBateson\MailMimeParser\Parser\Proxy\ParserMimePartProxy::parseNextChild() : self

Parses the next child of this part and adds it to the 'stack' of children.

© 2024 Bruce Wells
Search Namespaces \ Classes