Files
carpseeds.pl/wp-content/plugins/akeebabackupwp/app/Solo/Model/Mixin/GetErrorsFromExceptions.php
2024-07-15 11:28:08 +02:00

46 lines
1.2 KiB
PHP

<?php
/**
* @package solo
* @copyright Copyright (c)2014-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
namespace Solo\Model\Mixin;
use Exception;
use Throwable;
trait GetErrorsFromExceptions
{
/**
* Retrieve the messages from nested exceptions into an array. It will optionally add the trace as the last element
* of the array if debug mode (JDEBUG or AKEEBADEBUG) is enabled and $includeTraceInDebug is true.
*
* @param Exception|Throwable $exception The Exception or Throwable to log
*
* @param bool $includeTraceInDebug Include the trace when debug mode is enabled
*
* @return array
*/
public function getErrorsFromExceptions($exception, $includeTraceInDebug = true)
{
$ret = [
$exception->getMessage(),
];
$previous = $exception->getPrevious();
if (!is_null($previous))
{
$ret = array_merge($ret, $this->getErrorsFromExceptions($previous, false));
}
if ($includeTraceInDebug && ((defined('JDEBUG') && JDEBUG) || (defined('AKEEBADEBUG') && AKEEBADEBUG)))
{
$ret[] = $exception->getTraceAsString();
}
return $ret;
}
}