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

Kuidas kasutada PSR-4 WordPressi pistikprogrammide automaatset laadimist

21

Oletagem, et töötate kellegi jaoks projekti kallal ja olete selle välja määranud, ülesanded on delegeeritud, teil on kõik alustamiseks vajalikud teegid ja tööriistad ning olete eraldanud teema või esitluse ja millised on funktsioonid või pistikprogrammid.

Aga selle asemel, et omada käputäis üksikuid pistikprogramme, mis siis, kui paketi toiteks töötaks pakett väiksemaid funktsionaalseid pistikprogramme või mikropistikprogramme või kuidas iganes neid nimetada?

Lisaks, mis kõik on üles ehitatud samale alusele, kuid jagavad ka omavahel koodi ja asjade huvitavamaks muutmiseks otsustate selle kõige eest hoolitsemiseks kasutada PSR-4 automaatlaadurit Composeri kaudu?

PSR-4 WordPressi pistikprogrammide automaatne laadimine

Esiteks, viis mõelda sellele, mida ma üritan öelda (sest kes teab, kas ma saan selgeks 🙃), on see, et teie töö on wp-content/pluginskataloogis. Ja teie pistikprogramm asub näiteks acme-pluginsja sellel on teie mikropistikprogrammide alamkataloogid.

Jätame selle näite puhul lihtsaks ja ütleme, et seal on põhiplugin ja siis ainult üks mikroplugin. Kataloog näeks välja umbes selline;

Kuidas kasutada PSR-4 WordPressi pistikprogrammide automaatset laadimist

Nüüd on failid, mida eeldate pistikprogrammis näha:

  • LOE ME,
  • LITSENTS,
  • CHANGELOG,
  • helilooja.json
  • helilooja.lukk
  • müüja
  • pistikprogrammi alglaadimisfail,
  • jne.

Nüüd on asi järgmine: kui kasutate PSR-2 ja kavatsete kasutada PSR-4 automaatlaadurit, siis peate teadma kahte asja:

  1. Nimeruumid peaksid ühtima kataloogi organisatsiooniga. Rääkisin sellest veidi oma WordCamp Atlanta 2017 esitluses (täpsemalt virtuaalse ja loogilise korralduse all).
  2. Kuidas automaatlaadurite määratlemiseks töötada composer.json. Siit saate selle kohta palju lugeda, kuid selle postituse ülejäänud osas annan kaljumärkmed.

Seega on probleem selles, et vendorkataloog asub mõne lähtefaili olemasolu tasemest kõrgemal. Seega standardne viis kohandatud automaatlaaduri seadistamiseks rakenduses Composer ei tööta.

Näiteks on väga tüüpiline näha järgmist :

{
  "name": "pressware/acme-plugins",
  "description": "A demo plugin",
  "autoload": {
    "psr-4": {
      "Acme": "src/",
    }
  },
  // ...
}

Kuid oma töö kompenseerimiseks peame tegema järgmist :

{
  "name": "pressware/acme-plugins",
  "description": "A demo plugin",
  "autoload": {
    "psr-4": {
      "Acme": "",
      "AcmeMicroPlugin": "MicroPlugin/src/"
    }
  },
  // ...
}

See on lihtne muudatus, kuid see on lihtne näide, eks? Mis on siis sellest väljavõte?

Pange tähele, et oleme värskendanud mõningaid muudatusi automaatse laadimise asukohas. Täpsemalt toimub see:

  • Esimene element on ülataseme nimeruum, kuhu kuuluvad kõik Acme pluginasse kuuluvad pluginad.
  • Teine kirje viitab MicroPluginile, mida näete ülaltoodud kataloogis. See tähistab selle konkreetse pistikprogrammi nimeruumi ja käsib Composeril otsida lähtefaile, mida atribuutide kataloogi kasutades automaatselt laadida

Siit lisate automaatlaaduri jaoks uue kirje, mis vastab igale tipptaseme pistikprogrammi kuuluvale mikropluginale.

Tulevaste mikropluginate korraldamine

Koodi korraldamiseks nii, et saaksite kasutada vaikeautomaatset laadijat, on mitu võimalust.

Kui järgite mikropistikprogrammi (parema termini puudumisel) mudelit, siis see ei tööta, nii et peate oma faile ümber korraldama ja see võib aja jooksul valus olla.

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