<?php
declare(strict_types=1);
/**************************************************************************************
*
* Catalyst PHP Framework
* PHP Version 8.3 (Required).
*
* @package Catalyst
* @subpackage Public
* @see https://github.com/arcanisgk/catalyst
*
* @author Walter Nuñez (arcanisgk/original founder) <[email protected]>
* @copyright 2023 - 2025
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*
* @note This program is distributed in the hope that it will be useful
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE.
*
* @category Framework
* @filesource
*
* @link https://catalyst.dock Local development URL
*
*/
use Catalyst\Helpers\Debug\Dumper;
if (!defined('LOADED_DUMP_FUNCTION')) {
/**
* Internal function to handle variable dumping
*
* @param array $var Variables to dump
* @param bool $exit Whether to exit after dumping
* @return void
*/
function _ex_internal(array $var, bool $exit = false): void
{
if (IS_DEVELOPMENT) {
// Get backtrace information to determine caller
$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2)[1];
$caller = [
'file' => $backtrace['file'] ?? 'unknown',
'line' => $backtrace['line'] ?? 0
];
Dumper::dump(['data' => $var, 'caller' => $caller, 'config' => ['colorTheme' => 'monokai']]);
} else {
echo "Dump is disabled in production mode.";
}
if ($exit) {
exit;
}
}
/**
* Dump variables for inspection
*
* @param mixed ...$var Variables to dump
* @return void
*/
function ex(...$var): void
{
_ex_internal($var);
}
/**
* Dump variables and exit script execution
*
* @param mixed ...$var Variables to dump
* @return never
*/
function ex_c(...$var): never
{
_ex_internal($var, true);
exit;
}
define('LOADED_DUMP_FUNCTION', true);
}
|