HEX
Server: Apache/2
System: Linux s01 6.1.0-34-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.135-1 (2025-04-25) x86_64
User: beestg (1003)
PHP: 8.3.25
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/beestg/public_html/wp-content/plugins/mailpoet/lib/Automation/Engine/Data/SubjectEntry.php
<?php declare(strict_types = 1);

namespace MailPoet\Automation\Engine\Data;

if (!defined('ABSPATH')) exit;


use MailPoet\Automation\Engine\Data\Subject as SubjectData;
use MailPoet\Automation\Engine\Exceptions;
use MailPoet\Automation\Engine\Integration\Payload;
use MailPoet\Automation\Engine\Integration\Subject;
use Throwable;

/**
 * @template-covariant S of Subject<Payload>
 */
class SubjectEntry {
  /** @var S */
  private $subject;

  /** @var SubjectData */
  private $subjectData;

  /** @var Payload|null */
  private $payloadCache;

  /** @param S $subject */
  public function __construct(
    Subject $subject,
    SubjectData $subjectData
  ) {
    $this->subject = $subject;
    $this->subjectData = $subjectData;
  }

  /** @return S */
  public function getSubject(): Subject {
    return $this->subject;
  }

  public function getSubjectData(): SubjectData {
    return $this->subjectData;
  }

  /** @return Payload */
  public function getPayload() {
    if ($this->payloadCache === null) {
      try {
        $this->payloadCache = $this->subject->getPayload($this->subjectData);
      } catch (Throwable $e) {
        throw Exceptions::subjectLoadFailed($this->subject->getKey(), $this->subjectData->getArgs());
      }
    }
    return $this->payloadCache;
  }
}