mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-04-16 21:08:59 -04:00
- Merge Config and Core File Changes 4.6.3 > 4.6.4 - Merge Config and Core File Changes 4.6.4 > 4.7.0 - Added app\Config\WorkerMode.php - Merge Config and Core File Changes Not previously merged - Added app\Config\Hostnames.php - Corrected incorrect CSS property used in invoice.php view. - Corrected unknown CSS properties used in register.php view. - Used shorthand CSS in debug.css - Corrected indentation in barcode_sheet.php view. - Corrected indentation in footer.php view. - Corrected indentation in invoice_email.php view. - Replaced obsolete attributes with CSS style attributes in barcode_sheet.php - Replaced obsolete attribute in error_exception.php - Replaced obsolete attribute in invoice_email.php - Replaced obsolete attribute in quote_email.php - Replaced obsolete attributes in work_order_email.php - Fixed indentation in system_info.php - Replaced <strong> tag outside <p> tags, which isn't allowed, with style attributes. - Simplified js return logic and indentation fixes in tax_categories.php - Simplified js return logic in tax_codes.php - Simplified js return logic in tax_jurisdictions.php - Removed unnecessary labels in manage views. - Rewrite JavaScript function and PHP to be more readable in bar.php, hbar.php, line.php and pie.php - Added type declarations, return types and an import to app\Config\Services - Updated Attribute.php parameter type - Updated Receiving_lib.php parameter type - Updated Receivings.php parameter types and updated PHPdocs - Updated tabular_helper.php parameter types and updated PHPdocs - Added type declarations and corrected PHPdocs in url_helper.php - Added return types to functions - Revert $objectSrc value in ContentSecurityPolicy.php - Correct return type in Customer->get_stats() - Correct return type in Item->get_info_by_id_or_number() - Correct misspelling in border-spacing - Added missing css style semicolons - Resolve operator precedence ambiguity. - Resolve column mismatch. - Added missing escaping in view. - Updated requirement for PHP 8.2 - Resolve unresolved conflicts - Added PHP 8.2 requirement to the README.md - Fixed bugs in display of UI - Fixed duplicated `>` in app\Views\Expenses\manage.php - Removed excess whitespace at the end of some lines in table_filter_persistence.php - Added missing `>` in app\Views\Expenses\manage.php - Corrected grammar in PHPdoc in table_filter_persistence.php - Remove bug causing `\` to be injected into the new giftcard value - Fix bug causing DROPDOWN Attribute Values to not save correctly - Added check for null in $normalizedItemId - Removing < PHP 8.2 from linting and tests - Update Linter to not include PHP 8.2 and 8.1 - Remove PHP 8.1 unit test cycle. - Update Bug Report Template - Update Composer files for CodeIgniter 4.7.2 - Updated INSTALL.md to reflect changes. --------- Signed-off-by: objec <objecttothis@gmail.com>
70 lines
2.2 KiB
PHP
70 lines
2.2 KiB
PHP
<?php
|
|
/**
|
|
* @var object $exception
|
|
* @var string $message
|
|
*/
|
|
|
|
use CodeIgniter\CLI\CLI;
|
|
|
|
// The main Exception
|
|
CLI::write('[' . $exception::class . ']', 'light_gray', 'red');
|
|
CLI::write($message);
|
|
CLI::write('at ' . CLI::color(clean_path($exception->getFile()) . ':' . $exception->getLine(), 'green'));
|
|
CLI::newLine();
|
|
|
|
$last = $exception;
|
|
|
|
while ($prevException = $last->getPrevious()) {
|
|
$last = $prevException;
|
|
|
|
CLI::write(' Caused by:');
|
|
CLI::write(' [' . $prevException::class . ']', 'red');
|
|
CLI::write(' ' . $prevException->getMessage());
|
|
CLI::write(' at ' . CLI::color(clean_path($prevException->getFile()) . ':' . $prevException->getLine(), 'green'));
|
|
CLI::newLine();
|
|
}
|
|
|
|
// The backtrace
|
|
if (defined('SHOW_DEBUG_BACKTRACE') && SHOW_DEBUG_BACKTRACE) {
|
|
$backtraces = $last->getTrace();
|
|
|
|
if ($backtraces) {
|
|
CLI::write('Backtrace:', 'green');
|
|
}
|
|
|
|
foreach ($backtraces as $i => $error) {
|
|
$padFile = ' '; // 4 spaces
|
|
$padClass = ' '; // 7 spaces
|
|
$c = str_pad($i + 1, 3, ' ', STR_PAD_LEFT);
|
|
|
|
if (isset($error['file'])) {
|
|
$filepath = clean_path($error['file']) . ':' . $error['line'];
|
|
|
|
CLI::write($c . $padFile . CLI::color($filepath, 'yellow'));
|
|
} else {
|
|
CLI::write($c . $padFile . CLI::color('[internal function]', 'yellow'));
|
|
}
|
|
|
|
$function = '';
|
|
|
|
if (isset($error['class'])) {
|
|
$type = ($error['type'] === '->') ? '()' . $error['type'] : $error['type'];
|
|
$function .= $padClass . $error['class'] . $type . $error['function'];
|
|
} elseif (! isset($error['class']) && isset($error['function'])) {
|
|
$function .= $padClass . $error['function'];
|
|
}
|
|
|
|
$args = implode(', ', array_map(static fn ($value): string => match (true) {
|
|
is_object($value) => 'Object(' . $value::class . ')',
|
|
is_array($value) => $value !== [] ? '[...]' : '[]',
|
|
$value === null => 'null', // return the lowercased version
|
|
default => var_export($value, true),
|
|
}, array_values($error['args'] ?? [])));
|
|
|
|
$function .= '(' . $args . ')';
|
|
|
|
CLI::write($function);
|
|
CLI::newLine();
|
|
}
|
|
}
|