Copied!

Interface defining a message part parser.

AbstractInterface
Methods
public abstract canParse(ZBateson\MailMimeParser\Parser\PartBuilder $part) : bool
 

Called by the ParserManager to determine if the passed PartBuilder is a part handled by this IParser.

public abstract getParserMessageProxyFactory() : ZBateson\MailMimeParser\Parser\Proxy\ParserPartProxyFactory
 

Returns the ParserPartProxyFactory responsible for creating IMessage parts for this parser.

This is called by ParserManager after 'canParse' if it returns true so a ParserPartProxy can be created out of the PartBuilder.

public abstract getParserPartProxyFactory() : ZBateson\MailMimeParser\Parser\Proxy\ParserPartProxyFactory
 

Returns the ParserPartProxyFactory responsible for creating IMessagePart parts for this parser.

This is called by ParserManager after 'canParse' if it returns true so a ParserPartProxy can be created out of the PartBuilder.

public abstract parseContent(ZBateson\MailMimeParser\Parser\Proxy\ParserPartProxy $proxy) : static
 

Performs read operations for content from the stream of the passed ParserPartProxy, and setting content bounds for the part in the passed ParserPartProxy.

The implementation should call $proxy->setStreamContentStartPos() and $proxy->setStreamContentAndPartEndPos() so an IMessagePart can return content from the raw message.

Reading should stop once the end of the current part's content has been reached or the end of the message has been reached. If the end of the message has been reached $proxy->setEof() should be called in addition to setStreamContentAndPartEndPos().

public abstract parseNextChild(ZBateson\MailMimeParser\Parser\Proxy\ParserMimePartProxy $proxy) : ?ZBateson\MailMimeParser\Parser\Proxy\ParserPartProxy
 

Performs read operations to read children from the passed $proxy, using its stream, and reading up to (and not including) the beginning of the child's content if another child exists.

The implementation should:

  1. Return null if there are no more children.
  2. Read headers
  3. Create a PartBuilder (adding the passed $proxy as its parent)
  4. Call ParserManager::createParserProxyFor() on the ParserManager previously set by a call to setParserManager(), which may determine that a different parser is responsible for parts represented by the headers and PartBuilder passed to it.

The method should then return the ParserPartProxy returned by the ParserManager, or null if there are no more children to read.

  • return \ParserPartProxy|null The child ParserPartProxy or null if there are no more children under $proxy.
public abstract setParserManager(ZBateson\MailMimeParser\Parser\ParserManagerService $pm) : static
 

Sets up the passed ParserManager as the ParserManager for this part, which should be used when a new part is created (after its headers are read and a PartBuilder is created from it.)

  • param \ParserManagerService $pm The ParserManager to set.
© 2024 Bruce Wells
Search Namespaces \ Classes
Configuration