Edellisessä viestissä loimme rekisterin, jota käytetään tallentamaan kaikki eri luokat, jotka ovat vastuussa widgetillemme toiminnallisuuden antamisesta.
Tätä varten esitellään useita muita luokkia, mutta ennen kuin siirrymme sinne, meidän on lisättävä rekisteri laajennuksen bootstrapiin (puhumattakaan bootstrapin luomisesta laajennukselle).
Tarkemmin sanottuna tähän jäimme:
Kuten aiemmin viestissä mainittiin, meidän on lisättävä tämä laajennuksen käynnistyspalkkiin. Tätä varten meidän on kuitenkin määritettävä oma suodattimemme, jotta voimme helposti siirtää rekisterin muun laajennuksen ympärille (kun sen aika tulee).
Joten tässä viestissä keskitymme tekemään juuri niin.
WordPress Widget Boilerplate: Refactoring, osa 5
Jos olet seurannut sarjaa tähän asti, sinun pitäisi olla hyvässä asemassa erityisesti rekisterin lisäämistä varten, jotta meillä on pääsy siihen koko laajennuksen ajan.
Tämän tekeminen edellyttää kuitenkin, että osaat määrittää suodattimet. WordPressissä käytämme toimintoja ja suodattimia jatkuvasti.
Näissä koukuissa on se, että ne on kuitenkin jo määritelty. Joten miten määrittelemme suodattimemme?
Katsotaanpa, miten tehdään juuri niin.
1 Suodattimemme määrittely
Ensinnäkin meidän on ymmärrettävä muutama käsite:
- mikä on suodatin,
- kuinka lisätä suodatin,
- kuinka lisätä rekisterimme suodattimeen
- kuinka noutaa luokka suodattimesta.
Onneksi kaikki yllä oleva on helppo selittää.
Mikä on suodatin?
Yksinkertaisesti sanottuna koukkujen avulla voimme soittaa WordPressiin tiettyinä aikoina ohjelman suorittamisen aikana. Toiminnot on yleensä varattu käytökselle; Suodattimet on varattu datalle.
Lisäksi suodattimien avulla voimme työskennellä tiettyjen sovelluksen tietojen kanssa – se voi olla olemassa olevaa dataa tai jopa uutta dataa. Ja meidän tapauksessamme se tulee olemaan rekisteriluokka, joka sisältää viittauksia muihin tietoihin.
Suodattimen lisääminen
Suodattimen lisääminen on helppoa. Siinä on kolme osaa:
- kutsua add_filter ,
- määrittää suodattimelle yksilöllisen tunnisteen,
- siirtää suodattimeen tietoja, jotka voidaan palauttaa aina kun sitä kutsutaan.
Meille aion tunnistaa rekisterimme wpWidgetRegistry- suodattimeksi. Huomaa kuitenkin, että on tärkeää valita toteutukselle yksilöllinen nimi, koska jos et valitse sitä, voit päätyä törmäyksiin muiden tietojen kanssa, jos toinen laajennus käyttää samaa tunnistetta.
Joka tapauksessa suodattimen lisääminen suorittaa yksinkertaisen tehtävän:
Liitä funktio tai menetelmä tiettyyn suodatintoimintoon.
Tämä tarkoittaa siis sitä, että meidän on määriteltävä menetelmä tunnuksellamme. PHP:n luonteen vuoksi meidän ei tarvitse käyttää erillistä funktiota.
Sen sijaan voimme käyttää anonyymiä funktiota.
Anonyymit funktiot, jotka tunnetaan myös nimellä sulkemiset, mahdollistavat funktioiden luomisen, joilla ei ole määriteltyä nimeä. Ne ovat hyödyllisimpiä takaisinsoittoparametrien arvoina, mutta niillä on monia muita käyttötarkoituksia.
Anonyymi funktio, jonka aiomme määrittää, hyväksyy viittauksen laajennukseen argumenttina ja palauttaa sen aina, kun suodatinta kutsutaan (joka näytetään myöhemmin tässä artikkelissa).
Tietojen välittäminen suodattimellemme
Nyt kun kaikki tämä on käsitelty, voimme käydä läpi prosessin, jossa luodaan rekisterimme esiintymä, määritetään suodatin ja lisätään sitten rekisteri, jotta se on käytettävissä koko sovelluksessa.
Joten päälaajennustiedostoon, eli wordpress-widget-boilerplate.php- tiedostoon, lisäämme seuraavat koodirivit :
<?php
namespace WordPressWidgetBoilerplate;
use WordPressWidgetBoilerplateUtilitiesRegistry;
// More to come...
Yllä oleva ilmoittaa nimitilan, jossa rekisteri sijaitsee. Sitten lisäämme seuraavan koodilohkon automaattilataimen alle:
<?php
// Setup a filter so we can retrieve the registry throughout the plugin.
$registry = new Registry();
add_filter('wpWidgetRegistry', function() use ($registry) {
return $registry;
});
Huomaa, että kun yrität aktivoida laajennuksen, se ei aktivoidu ja antaa virheilmoituksen. Tämä johtuu automaattilataimen puutteesta, josta keskustellaan seuraavassa viestissä.
2 Rekisterin haku
Koska rekisteri on määritetty laajennuksen käynnistysraportissa ja se tehdään suodattimen avulla, voimme käyttää rekisteriä missä tahansa laajennuksessamme kutsumalla mukautettua suodatinta.
Oletetaan esimerkiksi, että olemme toisella luokalla ja meidän on saatava viittaus rekisteriin. Voimme tehdä tämän soittamalla tämän puhelun :
<?php
// Retrieve the registry anywhere in the plugin.
$registry = apply_filters('wpWidgetRegistry', null);
Ja siinä se. Helppoa, eikö? Niin kauan kuin kaikki on lisätty kunnolla rekisteriin – joka katetaan pian –, voimme päästä niihin kaikkiin edellisessä viestissä käyttämiemme yksilöllisten tunnisteiden kautta.
Autoloader
Nyt alamme käyttää nimiavaruuksia ja muita luokkia. Tämä tarkoittaa, että meidän on käytettävä automaattilataajia.
Joten ennen kuin ryhdymme muokkaamaan koko luokkaa nykyisessä muodossaan, teemme pienen kierroksen joihinkin Composerin ominaisuuksiin nähdäksemme, kuinka sitä käytetään automaattisen latausohjelman luomiseen (joiden lisäksi käyttää sitä käsittelemään lähdekoodimme laatua).

