{"id":229537,"date":"2022-11-14T14:28:00","date_gmt":"2022-11-14T11:28:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229537"},"modified":"2022-11-14T14:28:56","modified_gmt":"2022-11-14T11:28:56","slug":"por-que-molestarse-con-la-carga-automatica-en-wordpress-parte-2","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/por-que-molestarse-con-la-carga-automatica-en-wordpress-parte-2\/","title":{"rendered":"Por qu\u00e9 molestarse con la carga autom\u00e1tica en WordPress, Parte 2"},"content":{"rendered":"\n<p>En <a href=\"https:\/\/wordpress.mediadoma.com\/es\/por-que-molestarse-con-la-carga-automatica-en-wordpress-parte-1\/\" title=\"la publicaci\u00f3n anterior\">la publicaci\u00f3n anterior<\/a>, cubr\u00ed algunos puntos sobre por qu\u00e9 creo que <strong>include_once, <em><\/em><\/strong> require_once <em><\/em> y otras declaraciones similares dan como resultado pr\u00e1cticas de desarrollo deficientes (al menos en lo que respecta al trabajo que estamos haciendo con nuestros proyectos de WordPress ).<\/p>\n<p>Si no lo has le\u00eddo, no es gran cosa. La esencia de la publicaci\u00f3n es que estas declaraciones hacen:<\/p>\n<ol>\n<li>depuraci\u00f3n m\u00e1s dif\u00edcil,<\/li>\n<li>rastrear el c\u00f3digo es m\u00e1s dif\u00edcil de hacer.<\/li>\n<\/ol>\n<p>En \u00faltima instancia, son cosas que podemos evitar. Termino el post con lo siguiente:<\/p>\n<p>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>Y aunque me encantar\u00eda cubrir todos los detalles en esta publicaci\u00f3n, tomar\u00e9 esta y una publicaci\u00f3n m\u00e1s como importante para comprender algunos temas fundamentales sobre lenguajes, int\u00e9rpretes y compiladores antes de avanzar demasiado.<\/p>\n<h2>Autocarga en WordPress: Tipos de Idiomas<\/h2>\n<p>Cuando se trata de lenguajes de programaci\u00f3n, se pueden dividir en dos tipos distintos de lenguajes:<\/p>\n<ol>\n<li>tipificado est\u00e1ticamente<\/li>\n<li>tipado din\u00e1micamente<\/li>\n<\/ol>\n<p>Tambi\u00e9n son f\u00e1ciles de detectar.<\/p>\n<h3>Lenguajes de tipo est\u00e1tico<\/h3>\n<p>Un lenguaje de tipo est\u00e1tico significa que cuando declara una variable, como una cadena, un n\u00famero entero o un n\u00famero de coma flotante, mantiene ese tipo durante toda su vida \u00fatil.<\/p>\n<p>Esto no significa que no se pueda cambiar o analizar en otro tipo, pero la idea es que declares su tipo y as\u00ed es como funciona.<\/p>\n<p>Por lo general, se especifica como un cierto tipo cuando se declara, como <strong>string<\/strong> o <strong>int<\/strong>, y se ve con mayor frecuencia en lenguajes compilados.<\/p>\n<h3>Lenguajes de tipado din\u00e1mico<\/h3>\n<p>Los lenguajes tipificados din\u00e1micamente, por otro lado, tienen variables que son m\u00e1s fluidas, a falta de un t\u00e9rmino mejor, en la naturaleza.<\/p>\n<p>Es decir, inicialmente puede declararlo como una <strong>cadena<\/strong>, luego compararlo con un <strong>n\u00famero entero<\/strong> y luego usarlo como una <strong>cadena<\/strong> nuevamente.<\/p>\n<p>El int\u00e9rprete o compilador (seg\u00fan el idioma que est\u00e9 usando) har\u00e1 lo mejor que pueda para inferir lo que est\u00e1 tratando de hacer en funci\u00f3n del contexto de lo que est\u00e1 haciendo en su c\u00f3digo, pero no siempre es correcto.<\/p>\n<p>Eso puede conducir a efectos secundarios extra\u00f1os y errores.<\/p>\n<p>JavaScript es as\u00ed. Para ver un ejemplo, abre la consola de tu navegador e ingresa algo como lo que ves en la siguiente captura de pantalla (y presta atenci\u00f3n al resultado):<\/p>\n<p>Tenga en cuenta que cuando usamos un signo de igual doble est\u00e1ndar, el int\u00e9rprete fuerza la cadena al tipo booleano aunque la cadena verdadera no sea verdadera.<\/p>\n<p>El segundo caso es exacto (y es por eso que casi siempre se deben usar triples iguales).<\/p>\n<p>Adem\u00e1s, c\u00f3mo algo puede funcionar en un idioma no es c\u00f3mo puede funcionar en otro idioma.\n<\/p>\n<p>La conclusi\u00f3n es que no espere que sus idiomas hagan lo mismo solo porque pueden admitir escritura din\u00e1mica.<\/p>\n<h2>\u00bfQu\u00e9 tiene que ver esto con la carga autom\u00e1tica?<\/h2>\n<p>De acuerdo, hemos hablado un poco sobre las primitivas y todo eso est\u00e1 bien, pero no hace mucho cuando se habla de clases, objetos, creaci\u00f3n de instancias, carga autom\u00e1tica, etc., \u00bfverdad?<\/p>\n<p>El prop\u00f3sito de traer a colaci\u00f3n los temas antes mencionados es mostrar el rol que juegan los int\u00e9rpretes y compiladores cuando se trabaja con c\u00f3digo en lenguajes din\u00e1micos.<\/p>\n<p>Y esto es importante porque PHP es un lenguaje din\u00e1mico.<\/p>\n<p>En este punto, originalmente iba a comenzar a ver el c\u00f3digo PHP de muestra, los espacios de nombres, la carga autom\u00e1tica, <strong>las declaraciones de inclusi\u00f3n<\/strong> y todo eso, pero trato de mantener mis art\u00edculos con cierta extensi\u00f3n y esto comenz\u00f3 a extenderse un poco m\u00e1s de lo que quer\u00eda. .<\/p>\n<p>Entonces, la conclusi\u00f3n final de esta publicaci\u00f3n, si tuviera que resumirla, es esta:<\/p>\n<p>Los lenguajes tipeados din\u00e1micamente, como PHP, no tienen el lujo de los lenguajes compilados donde todo se compila en un solo binario. Tenemos que decirle al programa, de alguna manera, d\u00f3nde existen las dependencias dentro del contexto del programa m\u00e1s grande.<\/p>\n<p>Y eso es lo que tratar\u00e9 de cubrir en la pr\u00f3xima publicaci\u00f3n.<\/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>Comprender los lenguajes escritos din\u00e1micamente y los lenguajes escritos est\u00e1ticamente es clave cuando se trata de comprender la carga autom\u00e1tica en WordPress y en PHP.<\/p>\n","protected":false},"author":1,"featured_media":165674,"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-229537","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\/229537","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=229537"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/229537\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/165674"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=229537"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=229537"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=229537"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}