Eelmises postituses lõime registri, mida kasutatakse kõigi meie vidina funktsionaalsuse andmise eest vastutavate erinevate klasside salvestamiseks.
Selleks tutvustatakse mitmesuguseid muid klasse, kuid enne sinna minekut peame lisama plugina alglaadimisribale registri (rääkimata pistikprogrammi alglaadimisseadme loomisest).
Täpsemalt, siin me pooleli jäime:
Nagu postituses varem mainitud, peame selle lisama pistikprogrammi alglaadimisribale. Selleks peame aga määratlema oma filtri, et saaksime registrit hõlpsalt ülejäänud pistikprogrammist mööda saata (kui selleks on aeg).
Nii et selles postituses keskendume just sellele.
WordPressi vidina katlaplaat: ümberkujundamine, 5. osa
Kui olete seeriat siiani jälginud, peaksite olema spetsiaalselt registri lisamiseks heas positsioonis, et meil oleks sellele juurdepääs kogu pistikprogrammi vältel.
Selleks aga eeldate, et teate, kuidas filtreid määratleda. WordPressis kasutame toiminguid ja filtreid kogu aeg.
Nende konksude puhul on aga see, et need on juba määratletud. Niisiis, kuidas me oma filtrit määratleme?
Vaatame, kuidas täpselt seda teha.
1 Meie filtri määratlemine
Esiteks peame mõistma mõnda mõistet:
- mis on filter,
- kuidas filtrit lisada,
- kuidas lisada meie register filtrisse
- kuidas klassi filtrist alla laadida.
Õnneks on kõike ülaltoodut lihtne seletada.
Mis on filter?
Lihtsamalt öeldes võimaldavad konksud meil programmi täitmise ajal teatud aegadel WordPressi helistada. Tegevused on tavaliselt reserveeritud käitumisele; Filtrid on reserveeritud andmete jaoks.
Lisaks võimaldavad filtrid töötada rakenduses konkreetsete andmetega – need võivad olla juba olemasolevad andmed või isegi uued andmed. Ja meie puhul on see registriklass, mis sisaldab viiteid teistele andmetele.
Filtri lisamine
Filtri lisamine on lihtne. Sellel on kolm osa:
- kutsudes add_filter ,
- filtri kordumatu identifikaatori määratlemine,
- edastab filtrisse teavet, mida saab alati tagasi kutsuda.
Meie jaoks tuvastan meie registri wpWidgetRegistry filtrina. Arvestage siiski, et on oluline valida oma juurutamisele kordumatu nimi, sest kui te seda ei tee, võite sattuda kokkupõrkeni muude andmetega, kui mõni teine pistikprogramm kasutab sama tuvastatut.
Igatahes täidab filtri lisamine lihtsa ülesande:
Ühendage funktsioon või meetod konkreetse filtritoiminguga.
See tähendab, et peame oma ID-ga defineerima meetodi. PHP olemuse tõttu ei pea me kasutama eraldi funktsiooni.
Selle asemel saame kasutada anonüümset funktsiooni.
Anonüümsed funktsioonid, tuntud ka kui sulgemised, võimaldavad luua funktsioone, millel pole määratud nime. Need on kõige kasulikumad tagasihelistamise parameetrite väärtusena, kuid neil on palju muid kasutusviise.
Anonüümne funktsioon, mille me defineerime, aktsepteerib argumendina viidet pistikprogrammile ja tagastab selle alati, kui filtrit kutsutakse (mida näidatakse selles artiklis hiljem).
Teabe edastamine meie filtrisse
Nüüd, kui see kõik on kaetud, saame läbida oma registri eksemplari loomise, filtri määratlemise ja seejärel registri lisamise, et see oleks kogu rakenduses juurdepääsetav.
Nii et peamises pistikprogrammi failis, st failis wordpress-widget-boilerplate.php, lisame järgmised koodiread :
<?php
namespace WordPressWidgetBoilerplate;
use WordPressWidgetBoilerplateUtilitiesRegistry;
// More to come...
Ülaltoodu deklareerib nimeruumi, milles register asub. Seejärel lisame automaatlaaduri alla järgmise koodiploki:
<?php
// Setup a filter so we can retrieve the registry throughout the plugin.
$registry = new Registry();
add_filter('wpWidgetRegistry', function() use ($registry) {
return $registry;
});
Pange tähele, et kui soovite pistikprogrammi aktiveerida, siis see ei aktiveeru ja kuvab veateate. Selle põhjuseks on automaatlaaduri puudumine, mida arutatakse järgmises postituses.
2 Meie registri leidmine
Kuna register on määratletud pistikprogrammi alglaadimissüsteemis ja seda tehakse filtri abil, pääseme registrile juurde kõikjal meie pistikprogrammis, helistades kohandatud filtrile.
Oletame näiteks, et oleme teises klassis ja peame hankima viite registrile. Selleks saame teha järgmise kõne :
<?php
// Retrieve the registry anywhere in the plugin.
$registry = apply_filters('wpWidgetRegistry', null);
Ja see ongi kõik. Lihtne, eks? Niikaua kui kõik on korralikult registrisse lisatud – mis varsti kaetakse –, siis pääseme neile kõigile ligi eelmises postituses kasutatud kordumatute identifikaatorite kaudu.
Automaatlaadur
Nüüd hakkame kasutama nimeruume ja kasutama muid klasse. See tähendab, et me peame kasutama automaatlaadureid.
Nii et enne kui asume kogu klassi praegusel kujul ümber kujundama, teeme väikese põike mõnele Composeri funktsioonile, et näha, kuidas seda kasutatakse automaatlaaduri genereerimiseks (lisaks juba olemasolevatele asjadele kasutades seda meie lähtekoodi kvaliteedi haldamiseks).

