Your ROOT_URL in app.ini is https://code.exacti.com.br/ but you are visiting https://git.exacti.com.br/ExacTI/phacil-framework/blame/commit/d1e0816c032482bb9ea9da42fbfce0c307f09195/system/engine/exception.php You should set ROOT_URL correctly, otherwise the web may not work correctly.
A super easy PHP Framework for web development! https://github.com/exacti/phacil-framework

74 lines
1.7 KiB

<?php
/**
* Copyright © 2022 ExacTI Technology Solutions. All rights reserved.
* GPLv3 General License.
* https://exacti.com.br
* Phacil PHP Framework - https://github.com/exacti/phacil-framework
* @author Bruno O. Notario <oliveira131@hotmail.com>
*/
namespace Phacil\Framework;
/**
* Exception extended for log on destruct
* @since 2.0.0
* @package Phacil\Framework
*/
class Exception extends \Exception
{
public $errorFormat = 'text';
protected $heritageTrace = false;
/**
*
* @param \Exception $object
* @return $this
*/
public function setObject(\Exception $object){
$this->message = $object->getMessage();
$this->line = $object->getLine();
$this->heritageTrace = $object->getTrace();
$this->file = $object->getFile();
return $this;
}
/**
* Save the exceptions in the exceptions log file
* @return void
*/
public function __destruct()
{
$debugging = (\Phacil\Framework\Config::DEBUG()) ?: false;
$this->errorFormat = \Phacil\Framework\Config::DEBUG_FORMAT() ?: $this->errorFormat;
$log = new \Phacil\Framework\Log("exception.log");
$errorStamp = [
'error' => $this->getMessage(),
'line' => $this->getLine(),
'file' => $this->getFile(),
'trace' => ($debugging) ? (($this->errorFormat == 'json') ? ($this->heritageTrace ?: $this->getTrace()) : Debug::trace(($this->heritageTrace ?: $this->getTrace()))) : null
];
$log->write(($this->errorFormat == 'json') ? json_encode($errorStamp) : implode(PHP_EOL, array_map(
['self','convertArray'],
$errorStamp,
array_keys($errorStamp)
)));
}
/**
*
* @param string|array $v
* @param string $k
* @return string
*/
static public function convertArray($v, $k) {
return sprintf("%s: %s", $k, (is_array($v) ? json_encode($v) : $v));
}
}