Page 185 - Programador-PHP
P. 185

Programación Procedural de Aplicaciones Web de baja complejidad
        PHP Experto – Tomo I                                                                                                                                                  Eugenia Bahit

        Una   forma   simple   de   lograr   esto,   es   crear   un   archivo   de
        configuración para la aplicación (que deba ser importado por
        todos los archivos de la aplicación), que decida si mostrar o no
        los errores, según el valor de una constante creada a tal fin,
        que   llameremos  PRODUCCION,   estableciendo   su   valor   por
        defecto   en  False  (significará   que   estamos   en   entorno   de
        desarrollo) y al subir a producción, la setearemos en True:

          <?php
          const PRODUCCION = False; // en entornos de producción, cambiar a True

          if(!PRODUCCION) {
              ini_set('error_reporting', E_ALL | E_NOTICE | E_STRICT);
              ini_set('display_errors', '1');
              ini_set('track_errors', 'On');
          } else {
              ini_set('display_errors', '0');
          }
          ?>



        Utilizando el símbolo @ para

        silenciar errores


        En PHP, es posible silenciar errores anteponiendo una arroba
        (@)   a   la   instrucción   que   podría   generar   un   error.   Es   una
        práctica que debe utilizarse con sumo cuidado y siempre que
        se quiera capturar el error (a pesar de estar silenciado), deberá
        establecer  track_errors  en  On  a fin de obtener dicho error
        mediante la variable $php_errormsg.




        Veamos algunos ejemplos:

          <?php
          ini_set('error_reporting', E_ALL | E_NOTICE | E_STRICT);
          ini_set('display_errors', '0');
          ini_set('track_errors', 'On');

          $archivo = @fopen('archivo_que_no_existe.txt', 'r');



                                             185
   180   181   182   183   184   185   186   187   188   189   190