✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

Om oföränderliga värden i WordPress-plugins

9

Om du har gjort något arbete – eller till och med någon läsning – med objektorienterad programmering, då har du förmodligen stött på idén om oföränderlighet. Det är tanken på att något är oföränderligt.

Ibland kan du ha oföränderliga värden, och ibland kan du ha oföränderliga objekt (åtminstone efter att de instansierats).

Motsatsen till oföränderlig (men han var min favoritninjasköldpadda i alla fall).

Saken är den att ju mer jag arbetar med objektorienterad kod, desto mindre tenderar jag att arbeta med oföränderliga variabler. Visst, jag kommer att använda konstanter som definierats i en konfigurationsfil, men det är inte troligt att du kommer att hitta mig som lagrar värden inom en klass som en const.

Det antyder förmodligen något om mig och mina förmågor, men det är sant. Tack och lov är kodrecensioner bra för att hjälpa dig se möjligheter om var du kan utnyttja strategier som du normalt inte skulle göra. Och så är fallet med oföränderliga värden i WordPress-plugins.

Naturligtvis är detta en av de saker som uppmärksammades av en vän när jag granskade min kod.

När vi arbetar med WordPress är många av oss sannolikt bekanta med functions.php och wp-config.php och den roll de spelar i WordPress-applikationen.

Ja, det finns tillfällen då saker hör hemma i wp-config.php, och ja, det finns tillfällen då saker hör hemma i functions.php, men ibland tycker jag att just den filen missbrukas med alldeles för många funktioner, värden och så vidare .

Men hur är det med plugins? Specifikt, hur är det med objektorienterade plugins? Som exempel kan du säga att du arbetar med ett API som kräver en API-nyckel, så att du inte stöter på en viss hastighetsgräns med en gratisversion av applikationen.

Vanligtvis kanske du hittar mig som lagrar värdet i huvudpluginklassen som en instansvariabel som kan skickas runt, eller så är det kanske i en containerklass som jag kan referera till och använda dess get – metod.

Men vad sägs om att använda en const- egenskap i en klass och sedan skicka runt den via setter-injektion?

Låt oss till exempel säga att det finns en plugin-klass som förlitar sig på en hjälpklass för att rendera något på skärmen. API-nyckeln kan definieras i den här klassen och sedan skickas till hjälparen när det behövs :

Därefter kan hjälparklassen göra ett anrop till det godtyckliga API:et (jag kallar det Canvas eftersom vi hypotetiskt är något) med sin URL och skickar API-nyckeln som en del av frågesträngen.

Den här vägen:

  • det finns en enda plats där värdet hålls,
  • det finns ett beskrivande namn som indikerar vad den lagrar,
  • det kan överföras till andra klasser med minimalt beroende,
  • de andra klasserna kan referera till dem som lokala variabler eller som instansvariabler (beroende på hur de skickas runt).

Visst, det finns andra sätt på vilka dessa värden kan behållas (igen med hjälp av functions.php eller något liknande).

Men om du arbetar med objektorienterad programmering och du vill arbeta med oföränderliga värden i ett WordPress-plugin, vore det inte klokt att behålla det i sammanhanget med klasserna som utgör plugin-programmet?

Inspelningskälla: tommcfarlin.com

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer