/** * GithubIssue constructor. * Internally formats the Github issue title and message * @param string $message * @param int $code * @param int $severity * @param string $path * @param int $lineno * @param string $trace */ public function __construct($message = null, $code = null, $severity = null, $path = null, $lineno = null, $trace = null) { // Default message if (null === $message) { $message = 'An error occured.'; } // Format the title under 50 characters $this->title = GithubIssue::formatTitle($path, $lineno, $message); // Only display a two-parent-directories-deep path, for readability $shortPath = GithubIssue::formatPath($path); $bodyContents = []; // Head table (Code and Severity) if (null !== $code || null !== $severity) { $bodyContents[] = GithubIssue::formatTable($code, $severity); } // $path:$line if (null !== $path) { $pathText = '**Path**' . PHP_EOL . $shortPath; if (null !== $lineno) { $pathText .= ':**' . $lineno . '**'; } $bodyContents[] = $pathText; } if (null !== $message) { $bodyContents[] = '**Message**' . PHP_EOL . $message; } if (null !== $trace) { $bodyContents[] = '**Stack trace**' . PHP_EOL . '```' . PHP_EOL . $trace . PHP_EOL . '```'; } // Format the body $this->body = GithubIssue::formatBody($bodyContents); }