Улучшение текущей функции PHP для обработки ошибок - PullRequest
0 голосов
/ 11 марта 2011

, если кто-то может помочь мне улучшить эту функцию, чтобы использовать ее с этим форматом ( с нуля, не проверено ):

<?php
  define("LINEA", __LINE__, true);
  function line($string)
  {
    return $string . LINEA;
  }
  echo line('Error: ');
?>

Пример текущего использования:

<?php
function line($startText, $line, $endText = NULL)
{
  $endText = !empty($endText) ? $endText : '';
  return $startText . $line . $endText;
}
/*
...
lot of code
...
*/
echo line('Error on line: ', __LINE__) . '<br />';
/*
...
lot of code
...
*/
echo line('Alert - ', __LINE__, '!');
?>

Выходы:

Error on line: 12
Alert - 18!

Ответы [ 2 ]

2 голосов
/ 11 марта 2011

Вы могли бы рассмотреть возможность использования debug_backtrace для получения информации о вызывающем функции, включая строку, файл, класс, текущую область и многое другое. Таким образом, вам не нужно передавать какую-либо информацию о номере строки в функцию регистрации ошибок.

Имейте в виду, что генерация этой информации может немного снизить производительность.

Вам также следует рассмотреть возможность использования существующего пакета журналирования, такого как Журнал PEAR , Zend_Log или Apache log4php .

1 голос
/ 11 марта 2011

Не похоже, что ваша функция line () приносит вам больше пользы. Почему бы вам просто не позвонить:

echo 'Error on line: ' . __LINE__;
...