{"id":229528,"date":"2022-11-14T12:44:00","date_gmt":"2022-11-14T09:44:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229528"},"modified":"2022-11-14T12:48:56","modified_gmt":"2022-11-14T09:48:56","slug":"por-que-molestarse-con-la-carga-automatica-en-wordpress-parte-1","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/por-que-molestarse-con-la-carga-automatica-en-wordpress-parte-1\/","title":{"rendered":"Por qu\u00e9 molestarse con la carga autom\u00e1tica en WordPress, Parte 1"},"content":{"rendered":"\n<p>Una de las cosas m\u00e1s f\u00e1ciles que podemos hacer cuando trabajamos en complementos de WordPress es eliminar\u00a0 las declaraciones <strong>require_once<\/strong> o <strong>include_once<\/strong> en todo nuestro c\u00f3digo.<\/p>\n<p>\u00bfY por qu\u00e9 no? Es una manera f\u00e1cil de incorporar todos los archivos o dependencias necesarios para una clase determinada, hacer que sea f\u00e1cil de leer y no tener que preocuparse por crear enormes archivos de c\u00f3digo. Es decir, nos ayuda a simplificar lo que estamos escribiendo para que podamos hacer que nuestras clases [en su mayor\u00eda o idealmente] hagan bien lo que est\u00e1n haciendo.<\/p>\n<p>Sin embargo, si ha le\u00eddo este sitio durante el \u00faltimo a\u00f1o, sabe que soy un fan\u00e1tico de la carga autom\u00e1tica y es algo que creo que cualquiera que trabaje con PHP, independientemente de si est\u00e1 usando WordPress u otra plataforma, deber\u00eda usar.<\/p>\n<p>Pero plantea dos preguntas, especialmente si reci\u00e9n est\u00e1 comenzando:<\/p>\n<ol>\n<li>\u00bfPor qu\u00e9 molestarse con la carga autom\u00e1tica cuando hay otras formas de manejar las dependencias de carga?<\/li>\n<li>\u00bfC\u00f3mo se compara la carga autom\u00e1tica con los lenguajes compilados?<\/li>\n<\/ol>\n<p>As\u00ed que pens\u00e9 que valdr\u00eda la pena responder esto en las pr\u00f3ximas dos publicaciones.<\/p>\n<h2>\u00bfPor qu\u00e9 molestarse con la carga autom\u00e1tica?<\/h2>\n<p>El resumen es este:<\/p>\n<ol>\n<li><strong>require_once<\/strong> e <strong>include_once<\/strong> pueden conducir a un c\u00f3digo que es dif\u00edcil de depurar,<\/li>\n<li>es dif\u00edcil rastrear el c\u00f3digo.<\/li>\n<\/ol>\n<p>Pero como asi?<\/p>\n<h3>1 La depuraci\u00f3n es dif\u00edcil<\/h3>\n<p>Al escribir c\u00f3digo, si algo es seguro, es que habr\u00e1 algo que no funcionar\u00e1 seg\u00fan lo previsto. Est\u00e1 en la naturaleza de lo que hacemos, \u00bfverdad?<\/p>\n<p>Entonces, cuando se trata de depurar c\u00f3digo, todos tenemos nuestras estrategias.<\/p>\n<ul>\n<li>algunos de nosotros optamos por usar <strong>echo<\/strong> o <strong>var_dump<\/strong> para rastrear el c\u00f3digo,<\/li>\n<li><a href=\"https:\/\/wordpress.org\/plugins\/debug-bar-console\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">usar un complemento<\/a> en WordPress,<\/li>\n<li>otros usan un depurador.<\/li>\n<\/ul>\n<p>Aunque esta publicaci\u00f3n no trata sobre c\u00f3mo depurar, es el hecho de que tenemos que depurar. Entonces, si sabemos que vamos a tener que hacerlo, \u00bfno deber\u00edamos hacerlo lo m\u00e1s f\u00e1cil posible para nosotros?<\/p>\n<p>PHP es un lenguaje de tipado din\u00e1mico, por lo que hay muchas cosas, en general, de las que nos encargamos cada vez que escribimos el c\u00f3digo. Es decir, ciertas cosas se infieren o se coaccionan cada vez que se ejecuta el c\u00f3digo.<\/p>\n<p>Por ejemplo, suponga que est\u00e1 trabajando con una cadena y la est\u00e1 comparando con un n\u00famero. El int\u00e9rprete har\u00e1 lo que pueda para adivinar qu\u00e9 es lo que est\u00e1 haciendo (\u00bfbusca analizar la cadena en un n\u00famero entero o viceversa?) y luego trabajar con eso.<\/p>\n<p>Trabajar solo con variables puede ser un ejercicio de precisi\u00f3n porque queremos que nuestro c\u00f3digo se lea como queremos. \u00bfPor qu\u00e9 dejar que el int\u00e9rprete adivine qu\u00e9 es lo que queremos decir? Y si el int\u00e9rprete tiene que hacer un trabajo extra, los humanos ciertamente lo hacen.<\/p>\n<p>Con ese fin, si sabemos que se van a introducir errores y sabemos que hay formas de escribir un c\u00f3digo m\u00e1s limpio, \u00bfpor qu\u00e9 no hacerlo?<\/p>\n<h3>2 Rastrear es dif\u00edcil (\u00bfo quiz\u00e1s m\u00e1s dif\u00edcil?)<\/h3>\n<p>Pero esto todav\u00eda no proporciona una raz\u00f3n de por qu\u00e9 deber\u00edamos confiar en algo como un cargador autom\u00e1tico en lugar de las funciones integradas del lenguaje, \u00bfverdad?<\/p>\n<p>Considere esto: digamos que est\u00e1 buscando en un archivo tratando de encontrar un error y se encuentra con una funci\u00f3n que tiene alg\u00fan c\u00f3digo, usa <strong>include_once<\/strong> y luego usa otro c\u00f3digo.<\/p>\n<p>Esto significa que debe leer el c\u00f3digo, mantenerlo mentalmente archivado, saltar a otro archivo, comprender ese c\u00f3digo y luego volver al archivo original. Y esto supone que el segundo archivo tampoco <strong>incluye<\/strong> ni <strong>requiere<\/strong> otros archivos.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-165694-61e786c8874b7.jpg\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-165694-61e786c8874b7.jpg\" alt=\"Por qu\u00e9 molestarse con la carga autom\u00e1tica en WordPress, Parte 1\"><\/a><\/p>\n<p>Se llama c\u00f3digo espagueti por una raz\u00f3n.<\/p>\n<p>Dicho esto, puede ver la situaci\u00f3n que esto presenta cuando opta por anidar este c\u00f3digo en el resto de su programa. En resumen, ha anidado la inclusi\u00f3n de dependencias que inherentemente hace que sea m\u00e1s dif\u00edcil rastrear d\u00f3nde algo puede estar yendo mal.<\/p>\n<p>Esto no quiere decir que la carga autom\u00e1tica solucione esto autom\u00e1ticamente, sino que no tiene por qu\u00e9 ser as\u00ed. En su lugar, puede escribir c\u00f3digo que instancia clases, llama a m\u00e9todos y luego ejecuta c\u00f3digo sin necesidad de incluir nada manualmente.<\/p>\n<h3>C\u00f3digo m\u00e1s legible y rastreable<\/h3>\n<p>Al hacer esto, encuentro que nos obliga a escribir un c\u00f3digo m\u00e1s limpio, posiblemente un c\u00f3digo m\u00e1s f\u00e1cil de mantener. Tambi\u00e9n facilita la escritura de c\u00f3digo que podemos rastrear m\u00e1s f\u00e1cilmente y que es m\u00e1s f\u00e1cil de aprovechar con un depurador.<\/p>\n<p>Es decir, podemos establecer puntos de interrupci\u00f3n en ciertos lugares de nuestro c\u00f3digo, hacer que el depurador nos lleve autom\u00e1ticamente a la clase que se est\u00e1 invocando y retroceder a la funci\u00f3n que la estaba llamando.<\/p>\n<p>Esto no significa que no se pueda hacer de otra manera, pero los beneficios superan con creces las alternativas. Y, por supuesto, esto a\u00fan deja la pregunta de por qu\u00e9 se necesita la carga autom\u00e1tica (o cualquier inclusi\u00f3n de archivos de terceros).<\/p>\n<p>Pero eso es lo que se cubrir\u00e1 en la segunda parte de la serie.<\/p>\n<h2>Otra lectura<\/h2>\n<p>Mi publicaci\u00f3n sobre espacios de <a href=\"https:\/\/wordpress.mediadoma.com\/es\/espacios-de-nombres-y-carga-automatica-en-wordpress\/\" title=\"nombres y carga autom\u00e1tica en WordPress\">nombres y carga autom\u00e1tica en WordPress<\/a>, as\u00ed como el <a href=\"https:\/\/github.com\/tommcfarlin\/simple-autoloader-for-wordpress\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">cargador autom\u00e1tico simple para WordPress,<\/a> son otros dos recursos que obviamente encuentro relacionados con esta publicaci\u00f3n en particular. Entonces, si tiene tiempo, \u00e9cheles un vistazo (y no dude en abrir un problema o una solicitud de extracci\u00f3n en el proyecto de cargador autom\u00e1tico simple).<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ya he hablado y escrito sobre la carga autom\u00e1tica en WordPress, pero sigo encontrando los beneficios de la ayuda de la carga autom\u00e1tica para escribir c\u00f3digo organizado y rastreable.<\/p>\n","protected":false},"author":1,"featured_media":165695,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[892,716,840],"tags":[1172],"class_list":["post-229528","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo","category-desarrollador","category-tutoriales","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/229528","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/comments?post=229528"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/229528\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/165695"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=229528"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=229528"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=229528"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}