WordPress manejo de errores con WP_Error Clase I

Incluso si llevas un S En su cofre, cuando se trata de programación, los errores indudablemente se introducirán en su aplicación. Estos errores son causados ​​por nosotros los programadores como resultado de un error de código o por los usuarios que no están dispuestos a cumplir con las restricciones de la aplicación o del sitio web..

Los errores causados ​​por los usuarios finales suelen ser más adversos que los del programador porque los datos o la información introducidos por el usuario son impredecibles..

Por ejemplo, en un campo de formulario de correo electrónico, en lugar de ingresar un correo electrónico válido, el usuario podría ingresar un texto que no es de correo electrónico. Si el sitio web carece de un mecanismo de manejo de errores sólido, el usuario puede obtener acceso no autorizado a información confidencial.

Dado que no se puede predecir el comportamiento de los usuarios, se puede programar un sitio web o una aplicación para que rechace de manera correcta cualquier información no válida ingresada por el usuario e informe al usuario de que la información no es válida. Este proceso es lo que se denomina manejo de errores.

WordPress se entrega con una clase WP_Error que hace que el manejo de errores dentro de los complementos y WordPress sea mucho más fácil.

Entendiendo WP_Error

los WP_Error La clase consta de dos propiedades y ocho métodos. Estas propiedades son utilizadas internamente por la clase y es probable que no las necesite, ya que la mayoría de las tareas que desea llevar a cabo se pueden realizar utilizando los métodos de la clase.

A continuación se muestran las dos propiedades de clase y lo que hacen.

  • $ errores esuna matriz que contiene la lista de errores.
  • $ error_data Es una matriz que contiene la lista de datos para códigos de error..

Antes de examinar los métodos de clase, me gustaría explicar estos tres términos de uso interno por parte de WP_Error clase - Código, Mensaje, Datos.

No se preocupe si son difíciles de entender en este momento: las cosas se vuelven más claras a medida que examinamos ejemplos de código en la siguiente sección.

  • El código es similar a los datos de un par de clave / valor, como una matriz: la código en este sentido es la clave.
  • El mensaje es el valor de un par clave / valor guardado en el errores propiedad de clase.
  • Datos, como el mensaje anterior, es el valor de una clave ( código ) pero guardado en el error_data propiedad.

Ahora a los métodos de clase y lo que hacen:

  • __construir() Es un método mágico de PHP que acepta tres argumentos: código, mensaje y datos. Pasando el argumento sobre la instanciación de la WP_Error clase configura el mensaje de error.
  • get_error_codes ()devuelve una lista de todos los códigos de error si están disponibles.
  • get_error_code ()recupera el primer código de error y devuelve una cadena, entero o vacío si no hay códigos de error.
  • get_error_messages ($ code) recuperar todos los mensajes de error cuando el código el argumento está ausente o los mensajes de error coinciden con el código argumento. Devuelve una matriz de cadenas de error en caso de éxito, o una matriz vacía en caso de falla (si se usa el parámetro de código).
  • get_error_message ($ code)recibe un solo mensaje de error. Esto obtendrá el primer mensaje disponible para el código. Si no se proporciona ningún código, se utilizará el primer código disponible. Devuelve una cadena de error. 
  • get_error_data ($ code) recuperar datos de error para un código de error dado. Devuelve los datos o null, si no hay errores.. 
  • agregar ($ código, $ mensaje, $ datos)añadir más mensajes de error a la lista de mensajes de error.
  • add_data ($ data, código $)Agrega datos para el código de error. El código de error solo puede contener una pieza de datos de error.

Cómo funciona la clase WP_Error

Usar el WP_Error clase para el manejo de errores, en primer lugar crear una instancia de la clase mediante el uso del método de la clase. Puede agregar un mensaje de error pasando el código, mensaje, y datosen la instanciación.

$ my_error = new WP_Error ('juguete', 'mi juguete favorito es la plataforma');

Examinando la estructura del objeto $ my_error vía print_r () revela:

WP_Error Object ([errors] => Array ([toy] => Array ([0] => mi juguete favorito es la carretilla)) [error_data] => Array () 

Tenga en cuenta que nuestro error definido se almacena en errores propiedad de clase mientras que la error_data propiedad no tiene datos.

Al pasar un tercer argumento sobre la creación de instancias, cree un dato con el código (primer argumento) es la clave de la matriz y el tercer argumento (datos), el valor de la matriz.


WP_Error Object ([errors] => Array ([toy] => Array ([0] => mi juguete favorito es dolly)) [error_data] => Array ([toy] => my best))

Para agregar o agregar más mensajes de error a la lista de errores, añadir Se utiliza un método que acepta. código, mensaje, y datos como argumento del método.

agregar ('juego', 'mi consola de juegos favorita es PS4');

Pasando un tercer argumento (tipo de datos mixto) a la añadir() método agrega un dato al código de error.

agregar ('juego', 'mi consola de juegos favorita es PS4', 'mejor juego');

Utilizando print_r ()  De nuevo, veamos la estructura e información de nuestra $ my_error WP_Error objeto.

WP_Error Object ([errores] => Array ([toy] => Array ([0] => mi juguete favorito es dolly) [game] => Array ([0] => mi consola de juegos favorita es PS4)) [error_data ] => Array ([toy] => best toy [game] => best game))

los agregar datos() El método también podría usarse para agregar estrictamente datos para el código de error. El código de error solo puede contener un dato de error..

$ my_error-> add_data ('mi mejor maestro es el Tío Sam', 'maestro');

Hemos aprendido cómo crear instancias y agregar mensajes de error y datos a la WP_Error objeto. Veamos cómo recuperar el mensaje de error, el código y los datos..

Utilizando la get_error_codes () método devuelve una lista de todos los códigos de error.

print_r ($ my_error-> get_error_codes ()); / * devuelve Array ([0] => toy [1] => game) * /

Mientras get_error_code () solo devuelve el primer código de error.

print_r ($ my_error-> get_error_code ()); // juguete

los get_error_messages () Recupere todos los mensajes de error cuando el código el argumento está ausente o los mensajes de error que coinciden con el código argumento.

print_r ($ my_error-> get_error_messages ()); / * devuelve Array ([0] => mi juguete favorito es dolly [1] => mi consola de juegos favorita es PS4) * /

print_r ($ my_error-> get_error_messages ('juego')); / * devuelve Array ([0] => mi consola de juegos favorita es PS4) * /

los get_error_message () devuelve un solo mensaje de error que coincide con el código. Si no hay código, devuelve el primer mensaje de error..

print_r ($ my_error-> get_error_message ()); // mi juguete favorito es el carro

los get_error_data () devuelve los datos para el código de error.

print_r ($ my_error-> get_error_data ()); // mejor juguete

print_r ($ my_error-> get_error_data ('teacher')); // mi mejor maestro es el tio sam

Al crear un complemento, es posible que desee comprobar si una variable es una WP_Error objeto. Aquí es donde is_wp_error () Viene muy bien.

Además, es posible que también desee asegurarse WP_Error El objeto no contiene ningún mensaje de error antes de que se procese una acción. Por ejemplo, el siguiente fragmento de código comprueba si $ my_error El objeto no contiene ningún error. Si es verdad, "No hay error, estamos bien para ir"se repite.

if (1> count ($ my_error-> get_error_messages ())) echo "No hay error, estamos listos"; 

Resumen

En esta primera parte de la serie sobre el manejo de errores en WordPress usando WP_Error, Nos echamos un vistazo a la clase, explicamos lo que hace cada método de clase con ejemplos de código..

La segunda parte nos mostrará un práctico caso de uso al usar WP_Error Para manejar errores al desarrollar complementos. En realidad estaremos creando un complemento de formulario de contacto a medida que avanzamos..
Permanece atento, no te lo pierdas!