Rekisterimallin käyttäminen WordPressissä
Olen keskustellut Twitterissä useiden ystävien ja muiden kanssa ohjelmointikielten globaalien muuttujien käsitteestä. Niille, jotka ovat uusia ohjelmoinnin parissa tai jotka eivät ole varmoja siitä, miksi ne ovat huonoja:
Globaalien muuttujien käyttö tekee ohjelmistoista vaikeampaa lukea ja ymmärtää. Koska mikä tahansa koodi missä tahansa ohjelmassa voi muuttaa muuttujan arvoa milloin tahansa, muuttujan käytön ymmärtäminen voi edellyttää suuren osan ohjelman ymmärtämistä.
Tämä ei tarkoita, etteikö niillä olisi käyttöä, mutta jos olet kiinnostunut olio-ohjelmoinnista (etenkin WordPress-asetuksissa, joissa aiot käyttää PHP:tä), on tärkeää ymmärtää joitain parempia vaihtoehtoja. kuin globaalit muuttujat.
Toisin sanoen on olemassa tapoja käsitellä tietoja sovelluksesi ympärillä ilman globaaleja muuttujia. Ja yksi tällainen tapa on rekisterimalli.
Rekisterimalli WordPressissä
Ensinnäkin huomaa, että suunnittelumallit ylittävät minkä tahansa tietyn kuvion. Niin kauan kuin kieli tarjoaa objektien (tai jopa abstraktioiden) käsitteet, malli on mahdollista toteuttaa.
Mutta miksi vaivautua käyttämään tätä?
Kuva Samuel Zeller Unsplashista
Lyhyesti sanottuna se tarjoaa oliopohjaisen tavan siirtää tietoja sovelluksesi ympärillä ilman globaaleja muuttujia. Asiat, kuten riippuvuusinjektiosäiliöt, ovat myös hyviä tähän, mutta ne eivät kuulu tämän postauksen piiriin. Väittäisin myös, että joskus ne voivat olla ylivoimaisia pienten laajennusten yhteydessä.
Mallin toteuttaminen
Näin ollen kuinka voimme ottaa rekisterimallin käyttöön WordPressissä ja hyödyntää sitä työssämme? Katsotaanpa ensin kuvion perusrakennetta :
Huomaa, että sen toteutus on melko yksinkertaista:
- Luokka sisältää yhden taulukon yksityisenä omaisuutena.
- Tiedot lisätään taulukkoon tietyllä tunnuksella.
- Tiedot voidaan hakea kuviosta tunnuksella.
Voit jopa viedä tämän tietyn mallin seuraavalle tasolle, jos se hyväksyy vain tietyn tyyppisen luokan (kuten esimerkiksi AbstractEvent) ja sitten automaattisesti kutsua luokassa olevan funktion aina, kun se siirretään (tai haetaan) rekisteristä.
Mutta siitä on tulossa monimutkaisempi toteutus, jonka haluaisin tälle viestille.
Rekisterin määrittäminen
WordPressin koukkujärjestelmän luonteen vuoksi rekisteri on määritettävä ja rekisteröitävä WordPressiin tietyllä tavalla.
Oletetaan, että työskentelet laajennuksen kanssa. Tee laajennuksen bootstrap-tiedostossa jotain tällaista:
Tämä luo rekisterin ja sitten vastaavan suodattimen, jota voimme käyttää myöhemmin laajennuksessa rekisterin ja siten sen ylläpitämien muiden objektien hakemiseen.
Rekisterin käyttäminen
Jos haluat lisätä kohteen rekisteriin, kutsu lisäystoiminto ja anna yksilöllinen tunnus ja objektin esiintymä. Huomaa, että nykyinen toteutuksemme siirtää kaikki aiemmat objektin esiintymät roskakoriin, jolla on sama avain, ja korvaa sen sillä, mitä annamme sille.
Sieltä voit sitten noutaa rekisteriin tallentamasi objektit :
Ja voit käyttää niitä aivan kuten oy muillakin tavoilla. Mutta näin vältytään yksittäisten muuttujien, globaalien muuttujien tai muiden vaarallisten asioiden käytön tarpeelta.
Sana koetettavuudesta
Toinen etu, jonka löydän tämän mallin toteutuksesta, on se, että sen avulla voit kirjoittaa yksikkötestejä helpommin sitä vastaan, vaan se antaa sinulle myös mahdollisuuden kirjoittaa testejä sen sisältämiin objekteihin.
Tällä tarkoitan, että voit kirjoittaa luokkasi riippumattomammin WordPressistä, jolloin verkkotunnuksen logiikka erotetaan ydinsovelluksesta ja ne edustavat paremmin tietoja, joita niiden on tarkoitus ylläpitää.