<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/language.errors.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ru',
  ),
  'this' => 
  array (
    0 => 'language.errors.basics.php',
    1 => 'Основы',
    2 => 'Основы',
  ),
  'up' => 
  array (
    0 => 'language.errors.php',
    1 => 'Ошибки',
  ),
  'prev' => 
  array (
    0 => 'language.errors.php',
    1 => 'Ошибки',
  ),
  'next' => 
  array (
    0 => 'language.errors.php7.php',
    1 => 'Ошибки в PHP 7',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ru',
    'path' => 'language/errors/basics.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="language.errors.basics" class="sect1">
 <h2 class="title">Основы</h2>

 <p class="para">
  PHP сообщает об ошибках в ответ на некоторые внутренние ошибочные обстоятельства.
  Они могут быть использованы для уведомления о разных состояниях,
  а также могут выводиться на экран и записываться в логи по желанию.
 </p>

 <p class="para">
  Каждая ошибка, генерируемая PHP, обязательно содержит информацию о своём типе.
  <a href="errorfunc.constants.php" class="link">В этом списке</a> перечислены все типы ошибок,
  а также описания их поведений и провоцирующие их причины.
 </p>

 <div class="sect2" id="language.errors.basics.handling">
  <h3 class="title">Обработка ошибок</h3>

  <p class="para">
   PHP, по умолчанию, может обрабатывать любые ошибки в соответствии со своей
   конфигурацией, если обработчик ошибок не установлен. О каких ошибках сообщать
   и какие ошибки игнорировать указывается в параметре <a href="errorfunc.configuration.php#ini.error-reporting" class="link"><code class="parameter">error_reporting</code></a>
   конфигурации php.ini, или во время исполнения программы с помощью вызова
   <span class="function"><a href="function.error-reporting.php" class="function">error_reporting()</a></span>. Настоятельно рекомендуется заранее конфигурировать php.ini,
   так как некоторые ошибки могут произойти до начала выполнения вашего скрипта.
  </p>

  <p class="para">
   На стадии разработки, обязательно настройте параметр
   <a href="errorfunc.configuration.php#ini.error-reporting" class="link"><code class="parameter">error_reporting</code></a>
   на значение <strong><code><a href="errorfunc.constants.php#constant.e-all">E_ALL</a></code></strong>, так как вам необходимо знать обо всех ошибках
   для их решения на этой стадии. Когда продукт готов, вы можете изменить значение на менее
   подробное, вроде <code class="code">E_ALL &amp; ~E_NOTICE &amp; ~E_DEPRECATED</code>,
   но во многих случаях значение <strong><code><a href="errorfunc.constants.php#constant.e-all">E_ALL</a></code></strong> также желательно, так как
   оно может предупреждать заранее о других возможных ошибках.
  </p>

  <p class="para">
   Дальнейшая работа PHP с появившимися ошибками зависит от двух других параметров в php.ini.
   Параметр <a href="errorfunc.configuration.php#ini.display-errors" class="link"><code class="parameter">display_errors</code></a>
   определяет, включать ли данные ошибки в вывод скрипта или нет. Когда продукт готов,
   обязательно выключите этот параметр, так как в описании ошибки может содержаться
   конфиденциальная информация, вроде паролей базы данных. Во время разработки данный
   параметр лучше включить для решения проблем, провоцирующих ошибки.
  </p>

  <p class="para">
   Кроме отображения ошибок, их можно записывать в лог с помощью включённого параметра
   <a href="errorfunc.configuration.php#ini.log-errors" class="link"><code class="parameter">log_errors</code></a>.
   Файл лога указывается в параметре <a href="errorfunc.configuration.php#ini.error-log" class="link"><code class="parameter">error_log</code></a>.
   Данная функция незаменима на стадии конечного продукта, так как
   позволяет видеть информацию об ошибках и составлять основанные на них
   отчёты вдали от глаз пользователя.
  </p>
 </div>

 <div class="sect2" id="language.errors.basics.user">
  <h3 class="title">Пользовательская обработка ошибок</h3>

  <p class="para">
   Если вас не устраивает работа предустановленного обработчика ошибок,
   вы также можете обрабатывать множество видов ошибки с помощью своего обработчика,
   который можно установить вызовом функции <span class="function"><a href="function.set-error-handler.php" class="function">set_error_handler()</a></span>.
   Некоторые ошибки не могут обрабатываться пользовательским обработчиком,
   но те, которые могут, обрабатываются по вашему желанию: например, ваш скрипт
   может выдавать пользователю любую отдельную страницу ошибки, а подробную информацию
   записывать в лог или отсылать по почте.
  </p>
 </div>
</div><?php manual_footer($setup); ?>