✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

Por qué molestarse con la carga automática en WordPress, Parte 1

28

Una de las cosas más fáciles que podemos hacer cuando trabajamos en complementos de WordPress es eliminar  las declaraciones require_once o include_once en todo nuestro código.

¿Y por qué no? Es una manera fácil de incorporar todos los archivos o dependencias necesarios para una clase determinada, hacer que sea fácil de leer y no tener que preocuparse por crear enormes archivos de código. Es decir, nos ayuda a simplificar lo que estamos escribiendo para que podamos hacer que nuestras clases [en su mayoría o idealmente] hagan bien lo que están haciendo.

Sin embargo, si ha leído este sitio durante el último año, sabe que soy un fanático de la carga automática y es algo que creo que cualquiera que trabaje con PHP, independientemente de si está usando WordPress u otra plataforma, debería usar.

Pero plantea dos preguntas, especialmente si recién está comenzando:

  1. ¿Por qué molestarse con la carga automática cuando hay otras formas de manejar las dependencias de carga?
  2. ¿Cómo se compara la carga automática con los lenguajes compilados?

Así que pensé que valdría la pena responder esto en las próximas dos publicaciones.

¿Por qué molestarse con la carga automática?

El resumen es este:

  1. require_once e include_once pueden conducir a un código que es difícil de depurar,
  2. es difícil rastrear el código.

Pero como asi?

1 La depuración es difícil

Al escribir código, si algo es seguro, es que habrá algo que no funcionará según lo previsto. Está en la naturaleza de lo que hacemos, ¿verdad?

Entonces, cuando se trata de depurar código, todos tenemos nuestras estrategias.

  • algunos de nosotros optamos por usar echo o var_dump para rastrear el código,
  • usar un complemento en WordPress,
  • otros usan un depurador.

Aunque esta publicación no trata sobre cómo depurar, es el hecho de que tenemos que depurar. Entonces, si sabemos que vamos a tener que hacerlo, ¿no deberíamos hacerlo lo más fácil posible para nosotros?

PHP es un lenguaje de tipado dinámico, por lo que hay muchas cosas, en general, de las que nos encargamos cada vez que escribimos el código. Es decir, ciertas cosas se infieren o se coaccionan cada vez que se ejecuta el código.

Por ejemplo, suponga que está trabajando con una cadena y la está comparando con un número. El intérprete hará lo que pueda para adivinar qué es lo que está haciendo (¿busca analizar la cadena en un número entero o viceversa?) y luego trabajar con eso.

Trabajar solo con variables puede ser un ejercicio de precisión porque queremos que nuestro código se lea como queremos. ¿Por qué dejar que el intérprete adivine qué es lo que queremos decir? Y si el intérprete tiene que hacer un trabajo extra, los humanos ciertamente lo hacen.

Con ese fin, si sabemos que se van a introducir errores y sabemos que hay formas de escribir un código más limpio, ¿por qué no hacerlo?

2 Rastrear es difícil (¿o quizás más difícil?)

Pero esto todavía no proporciona una razón de por qué deberíamos confiar en algo como un cargador automático en lugar de las funciones integradas del lenguaje, ¿verdad?

Considere esto: digamos que está buscando en un archivo tratando de encontrar un error y se encuentra con una función que tiene algún código, usa include_once y luego usa otro código.

Esto significa que debe leer el código, mantenerlo mentalmente archivado, saltar a otro archivo, comprender ese código y luego volver al archivo original. Y esto supone que el segundo archivo tampoco incluye ni requiere otros archivos.

Por qué molestarse con la carga automática en WordPress, Parte 1

Se llama código espagueti por una razón.

Dicho esto, puede ver la situación que esto presenta cuando opta por anidar este código en el resto de su programa. En resumen, ha anidado la inclusión de dependencias que inherentemente hace que sea más difícil rastrear dónde algo puede estar yendo mal.

Esto no quiere decir que la carga automática solucione esto automáticamente, sino que no tiene por qué ser así. En su lugar, puede escribir código que instancia clases, llama a métodos y luego ejecuta código sin necesidad de incluir nada manualmente.

Código más legible y rastreable

Al hacer esto, encuentro que nos obliga a escribir un código más limpio, posiblemente un código más fácil de mantener. También facilita la escritura de código que podemos rastrear más fácilmente y que es más fácil de aprovechar con un depurador.

Es decir, podemos establecer puntos de interrupción en ciertos lugares de nuestro código, hacer que el depurador nos lleve automáticamente a la clase que se está invocando y retroceder a la función que la estaba llamando.

Esto no significa que no se pueda hacer de otra manera, pero los beneficios superan con creces las alternativas. Y, por supuesto, esto aún deja la pregunta de por qué se necesita la carga automática (o cualquier inclusión de archivos de terceros).

Pero eso es lo que se cubrirá en la segunda parte de la serie.

Otra lectura

Mi publicación sobre espacios de nombres y carga automática en WordPress, así como el cargador automático simple para WordPress, son otros dos recursos que obviamente encuentro relacionados con esta publicación en particular. Entonces, si tiene tiempo, écheles un vistazo (y no dude en abrir un problema o una solicitud de extracción en el proyecto de cargador automático simple).

Fuente de grabación: tommcfarlin.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More