Метод ошибки выглядит так:
//Вивід критичної помилки static function displayCritical(array $flags = ['code' => 'UNKNOWN', 'name' => false, 'description' => false, 'status' => 503]) { //Перевіряємо вхідні параметри if (!isset($flags['code'])) $flags['code'] = 'UNKNOWN'; if (!isset($flags['status'])) $flags['status'] = 503; if (!isset($flags['name'])) $flags['name'] = false; if (!isset($flags['description'])) $flags['description'] = false; //Завантажуємо мовні константи опису помилок if (!defined('LANG_ERROR_DEFINED')) { if (!defined('DIR_LANG')) Processor_::getLanguage(); File_::parseJson([ 'file' => DIR_LANG.'error.json', 'prefix' => 'LANG_ERROR', 'error_reporting' => 1 ]); //Також завантажуємо родові константи if (DIR_ROOT !== '') File_::parseJson([ 'file' => DIR_ROOT.DIR_LANG.'error.json', 'prefix' => 'LANG_ERROR', 'error_reporting' => 1 ]); } //Встановлюємо статус код HTTP if ($flags['status'] !== 200) Processor_::setHttpStatus(['code' => $flags['status']]); //Перериваємо роботу скрипту та виводимо помилку $render = new Render_(); die($render->display([ 'page' => 'error', 'title' => ((defined('LANG_ERROR_'.$flags['code'].'_TITLE')) ? constant('LANG_ERROR_'.$flags['code'].'_TITLE') : LANG_ERROR_TITLE), 'css' => ['error'], 'js' => false, 'error' => [ 'code' => $flags['code'], 'type' => 'ERROR', 'name' => $flags['name'], 'description' => $flags['description'] ] ])); }
А вот фатальная ошибка вызывается уже процедурой, ибо в этом случае, может быть ошибка связанная и с подключением класса Error.
function throw_fatal_error($code = 'UNKNOWN', $name = false) { //Встановлюємо заголовки header('HTTP/1.1 503 Service Temporarily Unavailable'); header('Status: 503 Service Temporarily Unavailable'); header('Retry-After: 20160'); header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0'); header('Pragma: no-cache'); header('Connection: close'); //Робимо код придатним до читання людиною if (strpos($code, '_')) $code = str_replace('_', ' ', $code); $code = convert_case($code, 'MB_FIRST_WORD', 'utf-8'); //Виводимо сторінку echo '<!DOCTYPE html>', '<html id="error">', '<head>', '<meta charset="',((defined('CONF_CHARSET')) ? CONF_CHARSET : 'utf-8'),'">', '<title>', 'Fatal Error!', '</title>', //@ Регулярно оновлювати альтернативний CSS ((defined('DIR_TEMPLATE') and defined('CONF_CSS')) ? '<link rel="stylesheet" href="'.DIR_TEMPLATE.DIR_CSS.'error.css">' : '<style>*{margin:0;padding:0;border:none;outline:none}header,nav,section,aside,article,footer,mark{display:block}body{font:15px Tahoma;width:80%;margin:15px auto 10px}h1{font:400 22px Georgia,\'Times New Roman\';color:#B00}p{margin:5px 0}</style>'), '</head>', '<body id="fatal">', '<h1>', 'Fatal error! ',$code, '</h1>', (($name !== false) ? '<p>'.$name.'</p>' : ''), '</body>', '</html>'; die;}
Будет еще контроль по группам и связь с автодебагером. Пока что похоже на ООП ради ООП. Могли бы вы хотя бы описать как бы лично реализовали данный участок кода?
Я то сам легко могу править свой код и думаю как раз об общей производительности, а не о производительности разработки, да вот только, не планирую работать всегда над данным проектом сам и хотелось бы логичнее. :( В команде не работал, поэтому, не знаю как писать универсальный код.
Просто <? echo $login; ?>, без кавычек.
revered, переменные в URL не интерпретируются скриптом. Нужно строить сразу статическую ссылку.
Покажите как строится ссылка. Наверное, используете одинарные кавычки.
$login = $_GET['l'];
Да проблема как раз в том, что с каждым днем это стает похожим на фреймворк.
Может кто-то может посмотреть участки кода, и дать хотя бы пару поверхностных советов по архитектуре. Хочется использовать ООП, но что-то вместо этого выходит не легкий и читабельный код, а комбайн-фреймворк.
revered, это eval, это не безопасно. Лучше используйте шаблоны.
siv1987, этот код говорит об ошибке на стороне клиента.
Если страница удалена, нужно отдавать 410. Я так делаю, так советует спецификация. Если веб мастера будут использовать только 4 кода (200, 301, 404, 503), тогда половину функционала HTTP вообще не будет развиваться и вскоре вымрут. А как по мне, все коды очень полезные, и нужно пользоваться всеми, если в этом есть надобность.