✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

Vältä class_exists oliopohjaisessa WordPress-koodissa

8

Jos kirjoitat oliokoodia WordPressille (yleensä laajennusten yhteydessä), törmäät todennäköisesti class_exists-tarkistukseen ennen luokan alustamista. Mutta tässä vaiheessa meidän pitäisi alkaa välttää class_exists-elementtejä suuressa osassa koodiamme (muutamia poikkeuksia lukuun ottamatta, jotka esitän alla).

Riippuen käyttämästäsi PHP-versiosta, tämä on järkevää. Tai teki sen aikoinaan. PHP 5.3.0:sta lähtien tämä ei ole välttämätöntä. Sen sijaan on parempi käytäntö käyttää nimiavaruuksia.

Vältä class_exists

Näet kaikki vaatimukset WordPressin eri versioille tällä sivulla,  joten jos työskentelet WordPressin vanhojen versioiden kanssa, koko class_exists-tarkistus saattaa olla sen arvoinen.

Silti on tärkeä huomautus :

Huomautus: Jos olet vanhassa ympäristössä, jossa sinulla on vain vanhempia PHP- tai MySQL-versioita, WordPress toimii myös PHP 5.2.4+ ja MySQL 5.0+ -versioiden kanssa, mutta nämä versiot ovat saavuttaneet virallisen End Of Lifen ja voivat siten altistaa sivustosi tietoturva-aukkoja.

Mutta useimmille meistä nykyaikaiset isännöintiympäristöt tukevat vähintään PHP 5.3.0:aa, ellei uudempaa, ja sen vuoksi meidän ei tarvitse käyttää class_exists-asetusta.

Tästä huolimatta ei ole harvinaista nähdä jotain tällaista :

Tai näin :

Vuosia sitten kirjoitin myös tällaisen koodin. Joskus se oli rajapinta olemassa olevan koodikannan kanssa. Muina aikoina se johtui siitä, etten tiennyt paremmasta. Asia on, että tästä on tullut jotain, mitä näemme WordPress-pohjaisessa koodissa, kun meidän ei tarvitse käyttää sitä.

Itse asiassa väittäisin, että meidän ei pitäisi käyttää sitä enää.

Mutta mitä enemmän koodia kirjoitat ja mitä enemmän koodia luet, sitä enemmän opit, eikö niin? Se on osa koko syytä nimiavaruuksiin ja automaattiseen lataamiseen.

Joten miten yllä oleva koodi kirjoitettaisiin?

Ehkä näin :

Tämä herättää kuitenkin kysymyksen: kuinka nimiavaruudet auttavat class_exists-käytön sijaan?

Ihannetapauksessa, jos sama luokka on olemassa nimiavaruudessa, nimiavaruudessa on ongelma. Muista, että voit ajatella nimiavaruutta kuin pakettia, joka koostuu ainutlaatuisista osista. Ja koska ne ovat ainutlaatuisia, ei koskaan pitäisi olla toista kappaletta tai tässä luokassa toista samanlaista luokkaa.

Tätä tarkoitusta varten pyritä käyttämään nimiavaruuksia class_exists-tarkistusten sijaan. En tietenkään tarkoita, että palaa takaisin ja muokkaa koko koodisi uudelleen – en ole tehnyt niin – mutta se ei tarkoita, että kirjoittamani tai tarkistamani koodi sisältävät sen käyttöä tai suosituksia.

Se on helppo muutos, joka voi auttaa pitämään koodin helpommin luettavana, täynnä vähemmän ehtoja (viesti toiselle kertaalle) ja pitämään sen paljon paremmin järjestyksessä.

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja