✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

Miks WordPressis automaatse laadimisega vaeva näha, 3. osa

19

Viimases postituses ütlesin, et me ei saa endale lubada samasugust luksust, mis on staatiliselt trükitud ja kompileeritud keeltel. Täpsemalt, ma rääkisin ideest, et ei peaks automaatlaaduritega tegelema.

Selle asemel võivad kompileeritud keeled võtta kõik programmi moodustavad failid, neid töödelda ja koondada üheks binaarfailiks.

Kuid selleks on vaja teatud tüüpi programmi.

Automaatne laadimine WordPressis: linkerid ja automaatlaadurid

See tähendab, et see kasutab utiliiti, mida nimetatakse linkeriks. Kirjeldan seda lühidalt, kuid selle rolli nägemine kompileeritud keelte kontekstis võib aidata luua analoogia WordPressi (ja PHP) automaatse laadimise toimimisega.

Mis on linker?

Olenevalt keelest, millega töötate, eriti objektorienteeritud programmeerimiskeelte puhul, on tõenäoline, et kood levib mitme faili vahel.

Lisaks koondatakse kõik need failid oma pakettidesse (nimetame neid nimeruumideks kui PHP-d ja sama teevad ka enamik kompileeritud keeli). Seega eeldage tutvustamise eesmärgil, et failid sisalduvad nende nimeruumides.

Seejärel on koodibaasis kõik need failid, mis on seotud nimeruumide kaudu, kuid jaotatud erinevate failide vahel.

Kui on aeg see kõik üheks käivitatavaks binaarfailiks kompileerida, analüüsib linker-nimeline programm koodi ja töötab selle võluväel, et aidata luua ühtne käivitatav kahendfail (võrreldes failide kogumiga, nagu oleme harjunud nägema PHP-põhised projektid).

Ja automaatne laadimine?

Millised on sarnasused automaatse laadimise ja linkimise vahel? Nagu mainitud, asuvad WordPressis (ja PHP-s) loodud projektid pidevalt eraldi failides. See tähendab, et neid ei kompileerita kunagi üheks failiks.

Ütleksin, et kunagi ammu (kuigi seda juhtub ikka veel), kasutame atribuute include_once või request_once, et tuua sisse kõik vajalikud sõltuvused. Kuid automaatne laadimine välistab vajaduse seda teha.

Miks WordPressis automaatse laadimisega vaeva näha, 3. osa

Autoloaderi käsitsi kirjutamine (ilma PSR4 kasutamata).

Selle asemel võib automaatlaadur võtta meie käsutuses oleva koodi alati, kui me näiteks klassi instantseerime, ja seejärel faili automaatselt laadida (seega selle nimi), ilma et oleks vaja faili käsitsi lisada.

Analoogia

Kui linker analüüsib programmi koodibaasi ja koostab automaatselt kahendfaili, siis automaatlaadur vajab teatud tüüpi konfiguratsiooni, et anda teada, kus klassid asuvad, kuidas failisüsteemis faili asukohta selle nimeruumi ja klassi nime alusel leida ning nii edasi.

Lisaks on seda võimalik teha mitmel erineval viisil, olenevalt sellest, kas otsustate kasutada midagi nagu PSR-4 või mõnda muud laadimisstrateegiat. Kuid see ei kuulu selle postituse ulatusse.

See on kõik

Selle kõige mõte on mõista, kuidas staatiliselt trükitud keeled, mis on sageli – kuigi mitte alati – kompileeritud keeled, ja kuidas dünaamiliselt trükitud keeled – mida sageli ei kompileerita (mõelge JavaScriptile, PHP-le jne) – saavad töötada sarnastes, kuigi erinevatel viisidel.

Lühidalt:

  • kompileeritud keeled kasutavad linkereid,
  • dünaamilised keeled kasutavad automaatlaadureid.

Ja see on tõesti kõik.

Aga miks see oluline on? Et mõista WordPressi automaatse laadimise eeliseid ja saada põhjalikumaid teemasid, on minu arvates oluline mõista, kuidas ja miks me teatud asju teeme.

Ja kui mitte midagi muud, võib see aidata meil olla paremad arendajad.

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem