2016-02-15 4 views
0

Я использую error_reporting (E_ALL), чтобы показывать ошибки, и он отлично работает. В настоящее время я помещаю эту функцию на каждую страницу и код, для которых я хочу показать ошибку, это означает, что я использую ее сто раз в моем проекте. Есть ли способ, с помощью которого я не должен повторять эту функцию снова и снова, но он работает для всего сайта, например, для ввода заголовка или подключения к базе данных. Извините, если я спрашиваю что-то глупое, но просто хотел быть уверенным, что что-то подобное может работать и является обычной практикой.Отображение ошибок с error_reporting (E_ALL)

+1

Это общепринятая в PHP, чтобы включаемый файл, который содержит что-то необходимое для всего сайта для вещей, как больше этого –

+4

общий для использования php.ini или .htaccess –

ответ

1

Есть несколько способов, чтобы идти об этом:

php.ini

Если у вас есть доступ к нему, вы должны настроить это в файле php.ini. Таким образом, этот параметр будет применяться глобально, и вам не нужно будет включать эту функцию в каждый файл.

display_errors = On 
error_reporting = E_ALL 

.htaccess

Некоторые хостинг-провайдеры позволяют создать .htaccess файл, который живет в корне вашего проекта. Ниже также может позволить ошибки в глобальном масштабе, а также позволяет избежать повторения кодовой

php_flag display_errors on 
php_flag error_reporting 32767 

http://php.net/manual/en/errorfunc.constants.php

файл содержит

Если все остальное терпит неудачу, вы можете продолжать, как вы или принять взглянуть на то, как ваш приложение/сайт выполняется. Если у вас есть следующий код в начале - самая большая точка входа вашего приложения, любые из них наследуют его. Это лучше всего подходит, если все запросы направляются в один и тот же файл.

error_reporting(E_ALL); 
ini_set('display_errors', 1); 

include 'otherstuff.php'; // will also display errors 

Однако, если ваше приложение имеет несколько точек входа, рассмотрите возможность использования общих включений, чтобы вы, по крайней мере, не повторяли код.

includes.php
error_reporting(E_ALL); 
ini_set('display_errors', 1); 
index.php
include 'includes.php'; 

// other code 
+0

спасибо php.ini кажется лучшей практикой, у меня есть '; display_errors ; Значение по умолчанию: On ; Значение разработки: ; Производственное значение: Off' поэтому здесь мне нужно удалить точку с запятой до значения по умолчанию и вставить 'error_reporting()' под ним? –

+0

@ bɪɡɪnə Yup, вам нужно удалить ';', поскольку это определяет, является ли строка комментарием. Однако вы захотите убедиться, что значение «Значение по умолчанию» отсутствует в фактическом значении. В целом, строки должны выглядеть точно, как я добавил их в ответ выше :) – Sean3z

Смежные вопросы