master

laravel/framework

Last updated at: 29/12/2023 09:23

Headers.php

TLDR

The Headers.php file in the Illuminate\Mail\Mailables namespace defines a class named Headers. This class is responsible for representing the headers of an email message. It provides methods for setting and accessing the message ID, referenced message IDs, and text headers. The class also includes a method to convert the referenced message IDs to a formatted string.

Classes

Headers

The Headers class represents the headers of an email message. It includes the following properties:

  • $messageId: The message's message ID.
  • $references: The message IDs that are referenced by the message.
  • $text: The message's text headers.

The class provides the following methods:

  • __construct(string $messageId = null, array $references = [], array $text = []): Creates a new instance of headers for a message. The $messageId, $references, and $text arguments are optional and can be specified as named arguments.
  • messageId(string $messageId): Sets the message ID.
  • references(array $references): Sets the message IDs referenced by this message.
  • text(array $text): Sets the headers for this message.
  • referencesString(): string: Returns the references header as a formatted string.
<?php

namespace Illuminate\Mail\Mailables;

use Illuminate\Support\Str;
use Illuminate\Support\Traits\Conditionable;

class Headers
{
    use Conditionable;

    /**
     * The message's message ID.
     *
     * @var string|null
     */
    public $messageId;

    /**
     * The message IDs that are referenced by the message.
     *
     * @var array
     */
    public $references;

    /**
     * The message's text headers.
     *
     * @var array
     */
    public $text;

    /**
     * Create a new instance of headers for a message.
     *
     * @param  string|null  $messageId
     * @param  array  $references
     * @param  array  $text
     * @return void
     *
     * @named-arguments-supported
     */
    public function __construct(string $messageId = null, array $references = [], array $text = [])
    {
        $this->messageId = $messageId;
        $this->references = $references;
        $this->text = $text;
    }

    /**
     * Set the message ID.
     *
     * @param  string  $messageId
     * @return $this
     */
    public function messageId(string $messageId)
    {
        $this->messageId = $messageId;

        return $this;
    }

    /**
     * Set the message IDs referenced by this message.
     *
     * @param  array  $references
     * @return $this
     */
    public function references(array $references)
    {
        $this->references = array_merge($this->references, $references);

        return $this;
    }

    /**
     * Set the headers for this message.
     *
     * @param  array  $references
     * @return $this
     */
    public function text(array $text)
    {
        $this->text = array_merge($this->text, $text);

        return $this;
    }

    /**
     * Get the references header as a string.
     *
     * @return string
     */
    public function referencesString(): string
    {
        return collect($this->references)->map(function ($messageId) {
            return Str::finish(Str::start($messageId, '<'), '>');
        })->implode(' ');
    }
}