✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

Klass_exists vältimine objektorienteeritud WordPressi koodis

5

Kui kirjutate WordPressi jaoks objektorienteeritud koodi (tavaliselt pistikprogrammide kontekstis), puutute enne klassi lähtestamist tõenäoliselt kokku class_exists kontrolliga. Kuid me peaksime praegusel hetkel hakkama suures osas oma koodis vältima class_exists’i (mõne erandiga, mida ma allpool kirjeldan).

Olenevalt kasutatavast PHP versioonist on see mõistlik. Või tegi seda omal ajal. PHP 5.3.0 seisuga pole see vajalik. Selle asemel on parem tava kasutada nimeruume.

Klassi_eksisteerimise vältimine

Sellel lehel näete kõiki WordPressi erinevate versioonide nõudeid,  nii et kui töötate WordPressi pärandversioonidega, võib kogu class_exists kontroll olla seda väärt.

Siiski on oluline märkus :

Märkus. Kui kasutate pärandkeskkonda, kus teil on ainult vanemad PHP või MySQL versioonid, töötab WordPress ka versioonidega PHP 5.2.4+ ja MySQL 5.0+, kuid need versioonid on jõudnud ametliku eluea lõppu ja seetõttu võivad teie saidil olla turvanõrkused.

Kuid enamiku jaoks toetavad kaasaegsed hostimiskeskkonnad vähemalt PHP 5.3.0, kui mitte kõrgemat versiooni, ja seetõttu ei pea me kasutama class_existsi.

Sellegipoolest ei ole haruldane näha midagi sellist :

Või niimoodi :

Aastaid tagasi kirjutasin ka sellise koodi. Mõnikord oli selleks liides juba olemasoleva koodibaasiga. Muul ajal oli see sellepärast, et ma ei teadnud paremat. Asi on selles, et sellest on saanud midagi, mida näeme WordPressi-põhises koodis, kui me ei pea seda kasutama.

Tegelikult väidan, et me ei peaks seda enam kasutama.

Aga mida rohkem koodi kirjutad ja mida rohkem koodi loed, seda rohkem õpid, eks? See on osa nimeruumide ja automaatse laadimise põhjusest.

Niisiis, kuidas oleks ülaltoodud kood kirjutatud?

Võib-olla selline :

Siiski tekitab see mõnes küsimuse: kuidas aitavad nimeruumid klassi_eksisteerimise asemel kasutada?

Ideaalis, kui sama klass eksisteerib nimeruumis, on probleem nimeruumiga. Pidage meeles, et võite mõelda nimeruumile nagu unikaalsetest osadest koosnevast paketist. Ja kuna need on ainulaadsed, ei tohiks kunagi olla teist sellist tükki või selles klassis teist samasugust.

Sel eesmärgil proovige klass_exists-kontrollide kasutamise asemel kasutada nimeruume. Muidugi ei ütle ma, et minge tagasi ja muutke kogu kood ümber – ma pole seda teinud –, kuid see ei tähenda, et kood, mille kirjutan või üle vaatan, sisaldaks selle kasutamist või soovitusi.

See on lihtne muudatus, mis võib aidata koodi hõlpsamini loetavana, vähemate tingimustingimustega (postitus teiseks korraks) ja selle palju paremini organiseerituna hoidmisel.

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem