warning ver ven quitar pantalla los las errores error_reporting donde deshabilitar bloquear php error-reporting

php - ver - ¿Cuál es la configuración de error_reporting() recomendada para el desarrollo? ¿Qué pasa con E_STRICT?



quitar las notice en php (8)

En versiones PHP más nuevas, E_ALL incluye más clases de errores. Desde PHP 5.3, E_ALL incluye todo excepto E_STRICT. En PHP 6, incluso incluirá eso. Esta es una buena sugerencia: es mejor ver más mensajes de error en lugar de menos.

Lo que está incluido en E_ALL está documentado en la página de constantes predefinidas de PHP en el manual en línea.

Personalmente, creo que no importa mucho si usas E_STRICT. Ciertamente no le hará daño, especialmente porque puede evitar que escriba scripts que tienen una pequeña posibilidad de romperse en versiones futuras de PHP. Por otro lado, en algunos casos, los mensajes estrictos pueden ser demasiado ruidosos, tal vez especialmente si tiene prisa. Sugiero que lo enciendas por defecto y lo apagues cuando se vuelva molesto.

Normalmente uso E_ALL para ver cualquier cosa que PHP pueda decir sobre mi código para intentar mejorarlo.

Me acabo de dar cuenta de una constante de error E_STRICT , pero nunca la he usado ni la he escuchado, ¿es ésta una buena E_STRICT para el desarrollo? El manual dice:

Avisos de tiempo de ejecución. Habilítelo para que PHP sugiera cambios a su código que garantizarán la mejor interoperabilidad y compatibilidad de su código.

Entonces, me pregunto si estoy usando el mejor nivel de error_reporting con E_ALL o ¿sería eso junto con E_STRICT el mejor? ¿O hay alguna otra combinación que aún deba aprender?


No hablando estrictamente de error_reporting, recomiendo utilizar cualquier IDE que muestre automáticamente errores de análisis y problemas técnicos comunes (por ejemplo, asignación en condición).

Zend Studio para Eclipse tiene esta característica habilitada por defecto, y desde que comencé a usarla, me ha ayudado mucho a detectar errores antes de que ocurran.

Por ejemplo, tenía este fragmento de código donde almacenaba algunos datos en la variable $GLOBALS , pero inadvertidamente escribí $_GLOBALS . Los datos nunca se almacenaron en caché, y nunca supe si Zend no me dijo: "Oye, esta $_GLOBALS aparece solo una vez, eso podría ser un error".


Use lo siguiente en php.ini:

error_reporting = E_ALL | E_STRICT

También debe instalar Xdebug , puede resaltar sus errores en cegar colores brillantes e imprimir información detallada útil.

Nunca deje ningún error o aviso en su código, incluso si es inofensivo.


ini_set ("display_errors", "2"); ERROR_REPORTING (E_ALL);


Puede usar error_reporting = -1
Siempre constará de todos los bits (incluso si no están en E_ALL)


En mi opinión, cuanto más alto establezca el nivel de informe de errores en la fase de desarrollo, mejor.

En un entorno en vivo, desea un conjunto ligeramente reducido (pero solo ligeramente) reducido, pero desea que se registre en algún lugar que el usuario no pueda ver (prefiero syslog ).

http://php.net/error_reporting

E_ALL | E_STRICT E_ALL | E_STRICT para desarrollo con PHP antes de 5.2.0.

5.2 introduce E_RECOVERABLE_ERROR y 5.3 introduce E_DEPRECATED y E_USER_DEPRECATED . Probablemente quieras activarlos si estás ejecutando una de esas versiones.

Si quisiera usar números mágicos, podría simplemente establecer el valor error_reporting valor bastante alto de 2^n-1 , por ejemplo, 16777215 , y eso realmente 1..n todos los bits entre 1..n . Pero no creo que usar números mágicos sea una buena idea ...

En mi opinión, PHP ha dejado caer un poco el balón al hacer que E_ALL no sea realmente todo. Pero aparentemente se va a solucionar en PHP 6 ...


En PHP 5, las cosas cubiertas por E_STRICT no están cubiertas por E_ALL , por lo que para obtener la mayor cantidad de información, debe combinarlas:

error_reporting(E_ALL | E_STRICT);

En PHP 5.4, E_STRICT se incluirá en E_ALL , por lo que puede usar simplemente E_ALL .

También puedes usar

error_reporting(-1);

que siempre habilitará todos los errores. Cuál es más semánticamente correcto como:

error_reporting(~0);


Dependiendo de sus planes de soporte a largo plazo para este código, la E_STRICT errores con E_STRICT habilitada puede ayudar a que su código continúe funcionando en un futuro lejano, pero probablemente sea excesivo para el uso diario. Hay dos cosas importantes que E_STRICT tener en cuenta E_STRICT :

  1. Según el manual , la mayoría de los errores de E_STRICT se generan en tiempo de compilación, no en tiempo de ejecución. Si está aumentando el nivel de error a E_ALL dentro de su código (y no a través de php.ini ), es posible que nunca vea los errores de E_STRICT todos modos.
  2. E_STRICT está dentro de E_ALL bajo PHP 6, pero no bajo PHP 5. Si actualiza su servidor a PHP6, y tiene E_ALL configurado como se describe en el n. ° 1 anterior, comenzará a ver errores de E_STRICT sin requerir ningún cambio adicional de su parte.