PSR-4:n automaattisen lataamisen WordPress-laajennusten käyttäminen
Oletetaan, että työskentelet jonkun projektin parissa ja olet määrittänyt sen, tehtäviä on delegoitu, sinulla on kaikki aloittamiseen tarvittavat kirjastot ja työkalut ja olet erottanut teeman tai esityksen. mitkä ovat toiminnot tai laajennukset.
Mutta sen sijaan, että sinulla olisi kourallinen yksittäisiä laajennuksia, entä jos paketissa olisi paketti pienempiä toiminnallisia laajennuksia tai mikrolaajennuksia tai millä tahansa nimellä, joka toimisi paketin tehostamiseksi?
Lisäksi, jotka kaikki on rakennettu samalle perustalle, mutta jotka myös jakavat koodia keskenään ja tehdäksesi asioista mielenkiintoisempia, päätät käyttää PSR-4 automaattista latausohjelmaa Composerin kautta huolehtiaksesi kaikesta tästä?
PSR-4 WordPress-laajennusten automaattinen lataus
Ensinnäkin tapa ajatella sitä, mitä yritän sanoa (koska tietää, olenko selvä 🙃), on, että sinulla on työsi wp-content/pluginshakemistossa. Ja laajennuksesi sijaitsee esimerkiksi, acme-pluginsja siinä on alihakemistoja mikrolaajennuksillesi.
Pidämme tämän yksinkertaisena tässä esimerkissä ja sanomme, että siellä on päälaajennus ja sitten vain yksi mikrolaajennus. Hakemisto näyttäisi suunnilleen tältä;
Nyt on tiedostot, jotka odotat näkeväsi laajennuksessa:
- README,
- LISENSSI,
- CHANGELOG,
- säveltäjä.json
- säveltäjä.lukko
- myyjä
- laajennuksen bootstrap-tiedosto,
- jne.
Nyt asia on tässä: Jos käytät PSR-2 :ta ja aiot käyttää PSR-4 automaattista latausohjelmaa, sinun on tiedettävä kaksi asiaa:
- Nimiavaruuksien tulee vastata hakemiston organisaatiota. Puhuin tästä hieman WordCamp Atlanta 2017 -esitykseni aikana (erityisesti virtuaalisen ja loogisen organisaation alla).
- Kuinka työskennellä
composer.jsonmäärittääksesi automaattiset latauslaitteet. Voit lukea tästä paljon täältä, mutta annan cliff-muistiinpanot tämän viestin loppuosassa.
Joten ongelmana on, että vendorhakemisto sijaitsee tason yläpuolella, jossa jotkut lähdetiedostot ovat olemassa. Näin ollen tavallinen tapa määrittää mukautettu automaattinen lataus Composerissa ei toimi.
Esimerkiksi tämä on hyvin tyypillistä :
{
"name": "pressware/acme-plugins",
"description": "A demo plugin",
"autoload": {
"psr-4": {
"Acme": "src/",
}
},
// ...
}
Mutta työmme kompensoimiseksi meidän on tehtävä tämä :
{
"name": "pressware/acme-plugins",
"description": "A demo plugin",
"autoload": {
"psr-4": {
"Acme": "",
"AcmeMicroPlugin": "MicroPlugin/src/"
}
},
// ...
}
Se on yksinkertainen muutos, mutta se on yksinkertainen esimerkki, eikö niin? Joten mikä on take away tästä?
Huomaa, että olemme päivittäneet joitain muutoksia automaattisen latauksen sijaintiin. Tarkemmin sanottuna tämä on mitä tapahtuu:
- Ensimmäinen kohde on ylimmän tason nimiavaruus, johon kaikki Acme-laajennukseen kuuluvat laajennukset kuuluvat.
- Toinen merkintä viittaa MicroPluginiin, jonka näet yllä olevassa hakemistossa. Tämä edustaa tämän laajennuksen nimiavaruutta ja käskee Composeria etsimään lähdetiedostoja automaattisesti ladattavaksi ominaisuushakemiston avulla
Täältä lisäät uuden merkinnän automaattiseen latausohjelmaan, joka vastaa jokaista ylimmän tason laajennukseen kuuluvaa mikrolaajennusta.
Tulevien mikrolaajennusten järjestäminen
On olemassa muutamia tapoja, joilla voit järjestää koodisi niin, että voit käyttää oletusarvoista automaattista latausohjelmaa.
Jos noudatat mikroliitännäistä (paremman termin puuttuessa) mallia, se ei toimi, joten joudut järjestämään tiedostosi uudelleen, mikä voi olla tuskaa ajan myötä.
